Table of Contents

Introduction

This scenario shows how to take send an invoice through email and EHF.

It is assumed that there exists an invoice that the client want to send. For details on how to create the invoice see Create Invoice Scenario.

Find the company and its send invoice service

Start at the start endpoint and find the company whose invoice that should be sent.

Exchange #1

Request
GET https://fiken.no/api/v1
Accept: application/hal+json, application/vnd.error+json
Response
200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: ...
Content-Type: application/hal+json;charset=UTF-8
Date: ...
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Request-ID: <random UUID>

{
  "_links": {
    "self": {
      "href": "https://fiken.no/api/v1"
    },
    "https://fiken.no/api/v1/rel/companies": {
      "href": "https://.../url-1"
    }
  }
}

Exchange #2

Request
GET https://.../url-1
Accept: application/hal+json, application/vnd.error+json
Response
200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: ...
Content-Type: application/hal+json;charset=UTF-8
Date: ...
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Request-ID: <random UUID>

{
  "_links": {
    "self": {
      "href": "https://.../url-1"
    }
  },
  "_embedded": {
    "https://fiken.no/api/v1/rel/companies": [
      {
        "_links": {
          "self": {
            "href": "https://.../url-2"
          },
          "https://fiken.no/api/v1/rel/accounts": {
            "href": "https://.../url-3{year}",
            "templated": true
          },
          "https://fiken.no/api/v1/rel/bank-accounts": {
            "href": "https://.../url-4"
          },
          "https://fiken.no/api/v1/rel/contacts": {
            "href": "https://.../url-5"
          },
          "https://fiken.no/api/v1/rel/invoices": {
            "href": "https://.../url-6"
          },
          "https://fiken.no/api/v1/rel/credit-notes": {
            "href": "https://.../url-7"
          },
          "https://fiken.no/api/v1/rel/products": {
            "href": "https://.../url-8"
          },
          "https://fiken.no/api/v1/rel/sales": {
            "href": "https://.../url-9"
          },
          "https://fiken.no/api/v1/rel/purchases": {
            "href": "https://.../url-10"
          },
          "https://fiken.no/api/v1/rel/create-invoice-service": {
            "href": "https://.../url-11"
          },
          "https://fiken.no/api/v1/rel/create-general-journal-entry-service": {
            "href": "https://.../url-12"
          },
          "https://fiken.no/api/v1/rel/document-sending-service": {
            "href": "https://.../url-13"
          },
          "https://fiken.no/api/v1/rel/search": {
            "href": "https://.../url-14"
          }
        },
        "name": "Test1",
        "slug": "test1",
        "organizationNumber": "893186352"
      }
    ]
  }
}

In this response we find the link with the https://fiken.no/api/v1/rel/document-sending-service relation and that it resolves to https://.../url-13.

Now it is possible to send the invoice. This example assumes that the invoice is available at https://.../url-15.

Sending by auto

Exchange #3

Request
POST https://.../url-13
Accept: application/hal+json, application/vnd.error+json
Content-Type: application/hal+json

{
  "resource": "https://.../url-15",
  "method": "auto",
  "recipientEmail": "foo@example.org",
  "recipientName": "Foo Bar"
  "mobileNumber": "12345678"
}
Response
200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: ...
Content-Type: application/hal+json;charset=UTF-8
Date: ...
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Request-ID: <random UUID>

{
  "_links": {}
}

Sending by email

Exchange #4

Request
POST https://.../url-13
Accept: application/hal+json, application/vnd.error+json
Content-Type: application/hal+json

{
  "resource": "https://.../url-15",
  "method": "email",
  "recipientEmail": "foo@example.org",
  "recipientName": "Foo Bar"
}
Response
200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: ...
Content-Type: application/hal+json;charset=UTF-8
Date: ...
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Request-ID: <random UUID>

{
  "_links": {}
}

Sending by EHF

Exchange #5

Request
POST https://.../url-13
Accept: application/hal+json, application/vnd.error+json
Content-Type: application/hal+json

{
  "resource": "https://.../url-15",
  "method": "ehf",
  "organizationNumber": "913312465"
}
Response
200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: ...
Content-Type: application/hal+json;charset=UTF-8
Date: ...
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Request-ID: <random UUID>

{
  "_links": {}
}

Sending by SMS

Exchange #6

Request
POST https://.../url-13
Accept: application/hal+json, application/vnd.error+json
Content-Type: application/hal+json

{
  "resource": "https://.../url-15",
  "method": "sms",
  "mobileNumber": "90123456"
}
Response
200 OK
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Content-Length: ...
Content-Type: application/hal+json;charset=UTF-8
Date: ...
Expires: Thu, 01 Jan 1970 00:00:00 GMT
X-Request-ID: <random UUID>

{
  "_links": {}
}