Om adgang til CUBS APIer
Der er 2 niveauer adgangen til CUBS API’er:
generel, som kræver en OAuth2ClientCredentials token
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.