/api/inbound/orderOrder från e-handel eller kassasystem
Tar emot en order i ETT generiskt format och gör den till ett fakturautkast — inga plattformsadaptrar, och det är ett val. En adapter mot någon annans API går inte att bygga rätt utan ett konto att pröva mot, och en gissning om moms blir kundens myndighetsfel.
pricesIncludeVat är obligatoriskt: det går inte att se på ett tal om momsen ingår, och att anta fel gör varje rad 25 procent fel. En order som inte går att kontera rätt får 422 och SPARAS med sitt skäl — den går att rätta och skicka om. En spärrad order som försvinner är omöjlig att skilja från en order som aldrig kom.
Debet & Kredit kör på din egen server, så bas-URL:en är din — inte vår. Skriv in den här, så byts den ut i varje kodexempel i dokumentationen.
POST https://din-installation.se/api/inbound/orderBehörighet
Ta emot underlag intake:write
Lämnar in ordrar och e-fakturor till inkorgen. Ser inget som redan finns.
Takt
600 anrop per timme och nyckel (ställbart per nyckel).
Bakåtkompatibelt
ORDER_INBOUND_SECRET fungerar parallellt
Parametrar
Kropp (JSON)
| Namn | Typ | Krävs | Beskrivning |
|---|---|---|---|
externalId | string | ja | Butikens ordernummer. Unikt — samma nummer kan aldrig bli två fakturor. SHOP-10042 |
orderDate | date | ja | Orderdatum (ÅÅÅÅ-MM-DD). 2026-03-12 |
currency | string | ja | Orderns valuta. SEK — bokföringen sker i redovisningsvalutan, och en order i annan valuta spärras med sitt skäl i stället för att räknas om med en gissad kurs. SEK |
pricesIncludeVat | boolean | ja | Om radernas priser är inklusive moms. Obligatoriskt. true |
total | number | nej | Vad kunden betalade inklusive moms. Krävs när pricesIncludeVat är true, så baklängesräkningen kan stämmas av. 1249 |
customer | object | ja | name, och gärna email, orgNumber, vatNumber och countryCode. |
rows | array | ja | description, quantity, unitPrice, vatRate och gärna articleNumber. |
Svar
Exempel på anrop:
{
"externalId": "SHOP-10042",
"orderDate": "2026-03-12",
"currency": "SEK",
"pricesIncludeVat": true,
"total": 1249,
"customer": {
"name": "Anna Andersson",
"email": "anna@example.com",
"countryCode": "SE"
},
"rows": [
{
"description": "Träningsbälte",
"quantity": 1,
"unitPrice": 1249,
"vatRate": 25
}
]
}Exempel på svar:
{
"ok": true,
"invoiceId": "7d8e9f0a-1b2c-4d3e-8f4a-5b6c7d8e9f0a",
"customerId": "3c9a1b2d-4e5f-4a6b-8c7d-9e0f1a2b3c4d"
}Statuskoder
| Kod | error | Betydelse |
|---|---|---|
| 200 | — | Utkastet skapades — eller ordern var redan mottagen (duplicate: true). |
| 400 | — | Kroppen är inte giltig JSON. |
| 413 | — | Ordern är större än 1 MB. |
| 422 | — | Ordern är mottagen och sparad med sitt skäl, men kunde inte konteras. Någon ska titta på den — skicka den inte om oförändrad. |
| 403 | insufficient_scope | Nyckeln är giltig men saknar behörigheten rutten kräver. |
| 401 | unauthorized | Saknad, felformad eller okänd nyckel. |
| 401 | key_revoked | Nyckeln är återkallad av installationens ägare. |
| 429 | rate_limited | Nyckelns kvot för timmen är förbrukad. Retry-After säger när den återställs. |
| 503 | server_misconfigured | Installationen saknar konfiguration för API:et. |
Felkroppens fält och råd om omförsök står på Fel och statuskoder.
Kodexempel
curl -X POST "https://din-installation.se/api/inbound/order" \
-H "Authorization: Bearer dk_live_DIN_NYCKEL" \
-H "Content-Type: application/json" \
-d '{
"externalId": "SHOP-10042",
"orderDate": "2026-03-12",
"currency": "SEK",
"pricesIncludeVat": true,
"total": 1249,
"customer": {
"name": "Anna Andersson",
"email": "anna@example.com",
"countryCode": "SE"
},
"rows": [
{
"description": "Träningsbälte",
"quantity": 1,
"unitPrice": 1249,
"vatRate": 25
}
]
}'