Leverantörsfakturor
Leverantörsreskontran – lista, registrera, uppdatera, bokföra och makulera leverantörsfakturor via /3/supplierinvoices.
Leverantörsfakturaresursen speglar Fortnox /3/supplierinvoices. Fakturan adresseras på Klirrs eget löpnummer (GivenNumber), inte på leverantörens fakturanummer (InvoiceNumber), som varken är unikt eller Klirrs att dela ut. GivenNumber kan inte ändras.
POST skapar ett utkast. Bokföringen görs i ett separat steg med /bookkeep.
Scope: supplierinvoice · Kräver AI Pro
Endpoints
| Metod och sökväg | Beskrivning |
|---|---|
| GET/api/v1/3/supplierinvoices | Lista leverantörsfakturor (reducerad listform) |
| POST/api/v1/3/supplierinvoices | Registrera ett utkast. Svarar 201. |
| GET/api/v1/3/supplierinvoices/{GivenNumber} | Hämta en faktura (fullständig form) |
| PUT/api/v1/3/supplierinvoices/{GivenNumber} | Uppdatera ett utkast (partiellt) |
| PUT/api/v1/3/supplierinvoices/{GivenNumber}/bookkeep | Bokför fakturan |
| PUT/api/v1/3/supplierinvoices/{GivenNumber}/cancel | Makulera fakturan |
| PUT/api/v1/3/supplierinvoices/{GivenNumber}/credit | Stöds inte – svarar 400 |
| PUT/api/v1/3/supplierinvoices/{GivenNumber}/approvalbookkeep | Stöds inte – svarar 400 |
| PUT/api/v1/3/supplierinvoices/{GivenNumber}/approvalpayment | Stöds inte – svarar 400 |
Det finns ingen DELETE. Vägen bort är /cancel. Bas-URL: https://app.klirr.ai/api/v1. Skrivningar kuverteras i SupplierInvoice.
Listparametrar
Utöver paginering (page, limit, offset). Det finns ingen sortby. Listan sorteras alltid på GivenNumber, nyast först.
| Parameter | Värden | Beskrivning |
|---|---|---|
filter | se nedan | Okänt värde ger 400. |
suppliernumber | text | Leverantörens nummer. Okänd leverantör ger en tom lista, inte 404. |
invoicenumber | text | Leverantörens fakturanummer. |
fromdate | YYYY-MM-DD | Från och med datum. Ogiltigt datum ger 400. |
todate | YYYY-MM-DD | Till och med datum. |
filter | Träffar |
|---|---|
unbooked | Utkast. |
unpaid | Bokförda, obetalda. |
unpaidoverdue | Bokförda, obetalda och förfallna. |
fullypaid | Betalda. |
cancelled | Makulerade. |
pendingpayment, authorizepending | Alltid en tom lista. Klirr har varken betalningsfil eller attestflöde. |
Fortnox-parametrarna suppliername, serialnumber, ocr, costcenter, project, ourreference, yourreference, fromfinalpaydate, tofinalpaydate och lastmodified stöds inte ännu och ger 400 i stället för ett tyst ofiltrerat svar.
Fält
Fullständig form (GET /3/supplierinvoices/{GivenNumber}, och svaret på POST, PUT och åtgärderna).
Beloppen (Total, VAT, Balance, CurrencyRate m.fl.) är strängar även i den fullständiga formen, till skillnad från kundfakturan. Det är så Fortnox typar just den här resursen. Det finns inget Net.
| Fält | Typ | Skrivskyddat | Beskrivning |
|---|---|---|---|
@url | string | ja | Resursens URL i Klirr. |
GivenNumber | string | efter skapande | Klirrs löpnummer. Utelämnas det vid POST tilldelas nästa lediga. Måste vara ett positivt heltal. |
SupplierNumber | string | nej | Obligatoriskt vid POST. Leverantören måste redan finnas i /3/suppliers. |
SupplierName | string | ja | Leverantörens namn. |
InvoiceNumber | string | nej | Obligatoriskt. Leverantörens eget fakturanummer. |
InvoiceDate | string | nej | Obligatoriskt. YYYY-MM-DD. |
DueDate | string | nej | Obligatoriskt. YYYY-MM-DD. |
FinalPayDate | string | ja | Betalningsdatum, "" om obetald. |
Comments | string | nej | Anteckning. |
Currency | string | nej | Standard SEK. |
CurrencyRate | string | nej | Kurs per enhet, upp till sex decimaler. "1" för SEK, "0" för ett utkast i utländsk valuta utan fastställd kurs. |
CurrencyUnit | number | nej | Läses vid skrivning (kursen delas med den). Returneras alltid som 1. |
Total | string | ja | Fakturans totalbelopp, härlett ur raderna. |
VAT | string | nej | Momsbelopp. Vid skrivning används det för att härleda momssatsen (25, 12 eller 6 %). |
Balance | string | ja | Utestående belopp, i fakturans valuta. |
VATType | string | nej | NORMAL (standard), EUINTERNAL, REVERSE eller Klirrs preciseringar REVERSECHARGEEUGOODS, REVERSECHARGEEUSERVICES, REVERSECHARGENONEUSERVICES, REVERSECHARGEDOMESTICGOODS, REVERSECHARGEDOMESTICSERVICES, IMPORT. Svaret innehåller alltid det exakta värdet, så REVERSE läses tillbaka som REVERSECHARGEDOMESTICSERVICES. Okänt värde ger 400. |
Booked | boolean | ja | true för bokförd eller betald faktura. |
Cancelled | boolean | ja | true för makulerad faktura. |
Credit | boolean | ja | Alltid false. |
PaymentPending | boolean | ja | Alltid false. |
CreditReference | number | ja | Alltid 0. |
AccountingMethod | ACCRUAL | CASH | ja | Organisationens bokföringsmetod. |
Vouchers | array | ja | Verifikationer som pekar på fakturan: { Number, Year, Series, ReferenceType }. Year är räkenskapsårets id, inte kalenderåret. |
Freight, AdministrationFee, RoundOffValue | string | – | Alltid "0". Ett värde skilt från noll vid skrivning ger 400. Lägg beloppet som en egen rad. |
OCR, OurReference, YourReference, Project, CostCenter, ExternalInvoiceNumber, ExternalInvoiceSeries, SalesType, DisablePaymentFile | – | nej | Bärs vidare oförändrade. SalesType returneras bara som STOCK, SERVICE eller "". |
SupplierInvoiceRows | array | nej | Minst en rad vid POST. Se nedan. |
Rader
| Fält | Typ | Skrivskyddat | Beskrivning |
|---|---|---|---|
Account | number | nej | Kostnadskonto. Utelämnat faller det tillbaka på leverantörens PreDefinedAccount. Kontot måste finnas i kontoplanen. |
ItemDescription | string | nej | Beskrivning. Saknas den används AccountDescription, annars "Rad". |
Quantity | number | nej | Antal. Negativt antal ger 400. |
Price | number | nej | À-pris, exklusive moms. |
Debit | number | nej | Radens nettobelopp i kronor. Används när Quantity/Price saknas. |
DebitCurrency | number | nej | Radens nettobelopp i fakturans valuta. Vinner över Debit. Krävs för fakturor i utländsk valuta om du inte anger Quantity och Price. |
Credit, CreditCurrency | number | nej | Måste vara 0. Kreditrader ger 400. |
Total | number | ja | Radens nettobelopp. |
Unit | string | ja | Enhet. |
Code | string | nej | TOT och VAT ignoreras (summor räknas av Klirr). FRT, AFE och ROV ger 400. Övriga koder bärs vidare. |
AccountDescription, ArticleNumber, CostCenter, Project, TransactionInformation | string | nej | Bärs vidare oförändrade. |
Fortnox-raden har ingen momssats. Klirr härleder den ur fakturans VAT mot radernas netto: den måste landa på 25, 12 eller 6 % (med öresavrundning), annars 400. VAT = 0 ger 0 %. För omvänd skattskyldighet antas 25 %. En faktura med blandade momssatser kan alltså inte registreras via det här API:t.
Listform
GET /3/supplierinvoices returnerar en reducerad rad med fälten @url, AuthorizerName (alltid ""), Balance, Booked, Cancel, CostCenter, Credit, Currency, CurrencyRate, CurrencyUnit, DisablePaymentFile, DueDate, ExternalInvoiceNumber, ExternalInvoiceSeries, FinalPayDate, GivenNumber, InvoiceDate, InvoiceNumber, Project, SupplierName, SupplierNumber, Total och Vouchers. Observera att makuleringsflaggan heter Cancel i listan men Cancelled i den fullständiga formen, precis som hos Fortnox.
Registrera en leverantörsfaktura
curl -X POST https://app.klirr.ai/api/v1/3/supplierinvoices \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"SupplierInvoice":{"SupplierNumber":"1","InvoiceNumber":"F-2026-118","InvoiceDate":"2026-10-01","DueDate":"2026-10-31","VAT":250,"SupplierInvoiceRows":[{"Account":4010,"ItemDescription":"Byggmaterial","Quantity":1,"Price":1000}]}}'Svar (201), förkortat:
{
"SupplierInvoice": {
"@url": "https://app.klirr.ai/api/v1/3/supplierinvoices/42",
"GivenNumber": "42",
"SupplierNumber": "1",
"SupplierName": "Lindqvist Grossist AB",
"InvoiceNumber": "F-2026-118",
"InvoiceDate": "2026-10-01",
"DueDate": "2026-10-31",
"FinalPayDate": "",
"Currency": "SEK",
"CurrencyRate": "1",
"CurrencyUnit": 1,
"Total": "1250",
"VAT": "250",
"Balance": "0",
"VATType": "NORMAL",
"Booked": false,
"Cancelled": false,
"Credit": false,
"PaymentPending": false,
"AccountingMethod": "ACCRUAL",
"Vouchers": [],
"SupplierInvoiceRows": [
{
"Account": 4010,
"ItemDescription": "Byggmaterial",
"Quantity": 1,
"Price": 1000,
"Debit": 1000,
"DebitCurrency": 1000,
"Credit": 0,
"CreditCurrency": 0,
"Total": 1000,
"Unit": "",
"Code": ""
}
]
}
}Lista leverantörsfakturor
curl "https://app.klirr.ai/api/v1/3/supplierinvoices?filter=unpaid&suppliernumber=1" \
-H "Authorization: Bearer <access_token>"{
"SupplierInvoices": [
{
"@url": "https://app.klirr.ai/api/v1/3/supplierinvoices/42",
"AuthorizerName": "",
"Balance": "1250",
"Booked": true,
"Cancel": false,
"CostCenter": "",
"Credit": false,
"Currency": "SEK",
"CurrencyRate": "1",
"CurrencyUnit": 1,
"DisablePaymentFile": false,
"DueDate": "2026-10-31",
"ExternalInvoiceNumber": "",
"ExternalInvoiceSeries": "",
"FinalPayDate": "",
"GivenNumber": "42",
"InvoiceDate": "2026-10-01",
"InvoiceNumber": "F-2026-118",
"Project": "",
"SupplierName": "Lindqvist Grossist AB",
"SupplierNumber": "1",
"Total": "1250",
"Vouchers": [{ "Number": 12, "Year": 1, "Series": "L", "ReferenceType": "SUPPLIERINVOICE" }]
}
],
"MetaInformation": { "@TotalResources": 1, "@TotalPages": 1, "@CurrentPage": 1 }
}Uppdatera ett utkast
PUT ändrar bara de fält du skickar och fungerar bara på utkast. En bokförd eller makulerad faktura ger 409, eftersom bokförd räkenskapsinformation inte får ändras. Skickar du SupplierInvoiceRows ersätts raderna. Se Fortnox-kompatibilitet.
curl -X PUT https://app.klirr.ai/api/v1/3/supplierinvoices/42 \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{"SupplierInvoice":{"DueDate":"2026-11-15"}}'Åtgärder
Alla åtgärder är PUT utan kropp och kräver scope supplierinvoice. Ett okänt GivenNumber ger 404 före allt annat.
Bokför (/bookkeep)
Bokför fakturan med en verifikation i serie L: debet kostnadskonto per rad, ingående moms på 2640 och kredit 2440 leverantörsskuld. Svaret är 200 med fakturan som den ser ut efteråt (Booked: true, Balance och Vouchers ifyllda).
Anropet är idempotent: en redan bokförd eller betald faktura svarar 200 med resursen. En makulerad faktura ger 409, liksom ett stängt räkenskapsår eller en låst period. Kroppen ignoreras, så uppdatera med PUT först och bokför sedan.
curl -X PUT https://app.klirr.ai/api/v1/3/supplierinvoices/42/bookkeep \
-H "Authorization: Bearer <access_token>"Makulera (/cancel)
Vad som händer beror på fakturans läge:
| Läge | Resultat |
|---|---|
| Utkast | Utkastet raderas. Svaret är 200 med fakturans sista kända form och Cancelled: true. |
| Bokförd | Bokföringen återförs med ett rättelseverifikat i serie M. Svaret är 200 med Cancelled: true. |
| Redan makulerad | 200 med resursen oförändrad. |
| Betald | 409. Betalningen måste ångras först. |
Kreditera (/credit)
Stöds inte och svarar alltid 400. Klirr har inget kreditflöde och inga negativa rader på leverantörssidan. Vill du backa bokföringen använder du /cancel.
Attest (/approvalbookkeep, /approvalpayment)
Stöds inte och svarar alltid 400. Klirr har inget attestflöde: en leverantörsfaktura går direkt från utkast till bokförd med /bookkeep. /approvalpayment registrerar ingen betalning, och det externa API:et har ingen betalningsresurs för leverantörsfakturor.
Fel
| Status | Code | När |
|---|---|---|
| 400 | 9000400 | Obligatoriskt fält saknas, inga rader, okänd leverantör eller okänt konto, rad utan konto när leverantören saknar PreDefinedAccount, okänt filter eller VATType, ostödd sökparameter, ogiltigt datum, Freight/AdministrationFee/RoundOffValue skilt från noll, kreditrad eller negativt antal, moms som inte motsvarar 25/12/6 %, /credit, /approvalbookkeep, /approvalpayment. |
| 404 | 9000404 | Kan inte hitta leverantörsfakturan. Även för ett GivenNumber som inte är ett positivt heltal. |
| 409 | 9000409 | GivenNumber är upptaget, samma fakturanummer finns redan på leverantören för räkenskapsåret, PUT på en icke-utkastfaktura, bokföring av en makulerad faktura eller i ett stängt räkenskapsår, makulering av en betald faktura. |
Allmänna fel (401, 403, 429) beskrivs under Felkoder.