← Referens
POST/api/v1/kundfakturor

Skapa ett fakturautkast, och bokför det om du vill

Tar en färdig faktura mot en KÄND kund — det är skillnaden mot orderintaget, som tar en butiksorder som ska tolkas. Utkastet skrivs genom samma väg som fakturaformuläret, med samma kontroll mellan radens momssats och intäktskontots momskod. Med "book": true bokförs fakturan direkt: nummer, OCR och verifikat sätts i en transaktion.

Bokföringen går genom motorns egna funktioner, vilket betyder att momslås, oföränderliga verifikat och avslutade räkenskapsår gäller lika för API:et som för dig själv i gränssnittet. Ett anrop som stoppas av ett lås får 422 med skälet utskrivet — det är en egenskap hos ett bokföringsprogram, inte en brist i API:et.

**Nyckeln behöver båda behörigheterna: Bokföra och Läsa.** Utkastet slås upp mot kunden för att veta momstyp, och mot intäktskontots momskod för att kunna jämföra den med radens momssats — båda uppslagen är läsningar. En nyckel med enbart Bokföra får 403 med det beskedet i klartext.

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/v1/kundfakturor

Behörighet

Bokföra ledger:write

Skapar och bokför fakturor genom samma spärrar som programmet självt: momslås, låsta perioder och avslutade räkenskapsår gäller lika.

Takt

600 anrop per timme och nyckel (ställbart per nyckel).

Parametrar

Huvuden

NamnTypKrävsBeskrivning
Idempotency-Keystringja8–255 tecken som du väljer själv, unikt per faktura. Samma nyckel igen ger det sparade svaret i stället för en andra faktura. order-2026-0042

Kropp (JSON)

NamnTypKrävsBeskrivning
customerIduuidjaKundens id. Kunden måste finnas — den här rutten skapar aldrig kunder. 3c9a1b2d-4e5f-4a6b-8c7d-9e0f1a2b3c4d
invoiceDatedatejaFakturadatum (ÅÅÅÅ-MM-DD). 2026-03-12
paymentTermsintegerjaBetalningsvillkor i dagar, 0–90. Förfallodagen räknas i kalendern. 30
yourReferencestringnejKundens referens.
notesstringnejFritext på fakturan.
rowsarrayjaMinst en rad med description, quantity, unitPrice, vatRate och account.
bookbooleannejtrue bokför fakturan direkt. Utelämnad eller false lämnar den som utkast. false

Svar

Exempel på anrop:

{
  "customerId": "3c9a1b2d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
  "invoiceDate": "2026-03-12",
  "paymentTerms": 30,
  "rows": [
    {
      "description": "Konsultation mars",
      "quantity": 10,
      "unitPrice": 1000,
      "vatRate": 25,
      "account": 3041
    }
  ],
  "book": false
}

Exempel på svar:

{
  "id": "7d8e9f0a-1b2c-4d3e-8f4a-5b6c7d8e9f0a",
  "status": "draft",
  "invoice_number": null,
  "net_amount": 10000,
  "vat_amount": 2500,
  "total_amount": 12500
}

Statuskoder

KoderrorBetydelse
200Fakturan skapades — eller är sedan tidigare skapad med samma Idempotency-Key.
400idempotency_requiredHuvudet Idempotency-Key saknas.
400invalid_requestKroppen går inte att läsa — svaret säger vilket fält.
413payload_too_largeKroppen är större än 512 kB. En faktura är några kilobyte; taket stoppar en kropp som inte är en.
409idempotency_conflictSamma Idempotency-Key har redan använts med en annan kropp.
409idempotency_in_progressEtt anrop med samma Idempotency-Key behandlas just nu. Skicka om exakt samma anrop om en stund — du får då det första svaret. Byt INTE nyckel: det första anropet kan mycket väl ha bokfört.
422unprocessableFakturan är mottagen men kunde inte skapas eller bokföras. Skälet står i svaret — låst period, avslutat räkenskapsår eller en momskonflikt mellan rad och konto.
403insufficient_scopeNyckeln är giltig men saknar behörigheten rutten kräver.
401unauthorizedSaknad, felformad eller okänd nyckel.
401key_revokedNyckeln är återkallad av installationens ägare.
429rate_limitedNyckelns kvot för timmen är förbrukad. Retry-After säger när den återställs.
503server_misconfiguredInstallationen 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/v1/kundfakturor" \
  -H "Authorization: Bearer dk_live_DIN_NYCKEL" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-2026-0042" \
  -d '{
  "customerId": "3c9a1b2d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",
  "invoiceDate": "2026-03-12",
  "paymentTerms": 30,
  "rows": [
    {
      "description": "Konsultation mars",
      "quantity": 10,
      "unitPrice": 1000,
      "vatRate": 25,
      "account": 3041
    }
  ],
  "book": false
}'