API

Om adgang til CUBS APIer


Der er 2 niveauer adgangen til CUBS API’er:

  1. generel, som kræver en OAuth2ClientCredentials token

  2. kunde, som kræver en OAuth2Password token


OAuth2ClientCredentials giver adgang til generelle API

OAuth2Password giver adgang til data på en specifik kunde (f.eks. alt under /selfcare* )


Sådan forbinder du til CUBS APIer

Hvis vi f.eks. skal hente en liste over fakturaer for en konkret kunde (“Get ordered invoice list”), så er processen således:

Så processen for at kalde “Get ordered invoice list" er at vi først skal lave et generelt login og efterfølgende logged ind som den kunde vi ønsker at hente data for.


NOTE!
I eksemplerne herunder skal felterne {{}} erstattes med ægte værdier fra dit CUBS system.


1. Login til CUBS API (OAuth2ClientCredentials)

POST /v1/oauth/token med en requst body som nedenstående:

{
  "grant_type": "client_credentials",
  "client_id": "{{client_id}}",
  "client_secret": "{{client_secret}}"
}

2. Gem den access_token som kommer retur

Eksempel på login request svar

{
    "token_type": "Bearer",
    "expires_in": 31536000,
    "access_token": "eyJ0eXAiOiJKV1QiLCJ..[midten klippe ud]..Ytcd-vpUU-U_DDPGaj-cPwZj54Wy_jVrXV8S8wQ3ec0"
}

3. Login som kunden (OAuth2Password)

POST /selfcare/v1/authenticate med en authentication BearerToken sat til værdien af access_token fra pkt. 2

og en header grant_type: password

og en med en request body som nedenstående.

{
  "customer_number":"13579"
}

Customer number er kundenummer uden foranstillet prefix (e.g. “K”).


4. Gem token som modtages return. Den skal bruges i pkt. 5.

Eksempel på login request svar

{
    "token_type": "Bearer",
    "expires_in": 31536000,
    "token": "eyJ0eXAiOiJKV1QiLCJ..[midten klippe ud]..Ytcd-vpUU-U_DDPGaj-cPwZj54Wy_jVrXV8S8wQ3ec0"
}

5. Hent fakturalisten

GET kald /v2/invoices med en authentication BearerToken sat til værdien af token fra pkt. 4

Eksempel på liste af fakturaer som modtages som svar

[
    {
        "type": "invoice",
        "invoice_no": "F1234",
        "agreement_id": 1,
        "agreement_external_id": "a4ef8697-1574-4f63-bdda-8ad8599d685f",
        "invoice_date_at": "2024-03-21 00:00:00",
        "invoice_due_at": "2024-04-01 00:00:00",
        "amount_outstanding": 0,
        "entry_no": "F000000445",
        "price": 5,
        "price_vat": 5,
        "balance": 0,
        "has_pdf": true,
        "status": "paid",
        "tags": []
    },
    {
        "type": "invoice",
        "invoice_no": "F1235",
        "agreement_id": 2,
        "agreement_external_id": "a4ef8697-1574-4f63-bdda-8ad8535f685f",
        "invoice_date_at": "2024-03-21 00:00:00",
        "invoice_due_at": "2024-03-21 00:00:00",
        "amount_outstanding": 0,
        "entry_no": "F000000274",
        "price": -5,
        "price_vat": -5,
        "balance": 0,
        "has_pdf": true,
        "status": "done",
        "tags": []
    }
]

Tip

Husk generelt at sætte headeren “Accept: application/json” i alle de kald du foretager til CUBS API.

Fandt du hvad du søgte?

Vi bestræber os på at denne side kan besvare de fleste spørgsmål du måtte have om CUBS. Hvis du alligevel mangler noget, så er du velkommen til at kontakte vores support.

Mangler du noget indhold, som var i den gamle wiki? Klik her for gammel wiki

Kontakt support