Klirr Docs

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ägBeskrivning
GET/api/v1/3/supplierinvoicesLista leverantörsfakturor (reducerad listform)
POST/api/v1/3/supplierinvoicesRegistrera 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}/bookkeepBokför fakturan
PUT/api/v1/3/supplierinvoices/{GivenNumber}/cancelMakulera fakturan
PUT/api/v1/3/supplierinvoices/{GivenNumber}/creditStöds inte – svarar 400
PUT/api/v1/3/supplierinvoices/{GivenNumber}/approvalbookkeepStöds inte – svarar 400
PUT/api/v1/3/supplierinvoices/{GivenNumber}/approvalpaymentStö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.

ParameterVärdenBeskrivning
filterse nedanOkänt värde ger 400.
suppliernumbertextLeverantörens nummer. Okänd leverantör ger en tom lista, inte 404.
invoicenumbertextLeverantörens fakturanummer.
fromdateYYYY-MM-DDFrån och med datum. Ogiltigt datum ger 400.
todateYYYY-MM-DDTill och med datum.
filterTräffar
unbookedUtkast.
unpaidBokförda, obetalda.
unpaidoverdueBokförda, obetalda och förfallna.
fullypaidBetalda.
cancelledMakulerade.
pendingpayment, authorizependingAlltid 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ältTypSkrivskyddatBeskrivning
@urlstringjaResursens URL i Klirr.
GivenNumberstringefter skapandeKlirrs löpnummer. Utelämnas det vid POST tilldelas nästa lediga. Måste vara ett positivt heltal.
SupplierNumberstringnejObligatoriskt vid POST. Leverantören måste redan finnas i /3/suppliers.
SupplierNamestringjaLeverantörens namn.
InvoiceNumberstringnejObligatoriskt. Leverantörens eget fakturanummer.
InvoiceDatestringnejObligatoriskt. YYYY-MM-DD.
DueDatestringnejObligatoriskt. YYYY-MM-DD.
FinalPayDatestringjaBetalningsdatum, "" om obetald.
CommentsstringnejAnteckning.
CurrencystringnejStandard SEK.
CurrencyRatestringnejKurs per enhet, upp till sex decimaler. "1" för SEK, "0" för ett utkast i utländsk valuta utan fastställd kurs.
CurrencyUnitnumbernejLäses vid skrivning (kursen delas med den). Returneras alltid som 1.
TotalstringjaFakturans totalbelopp, härlett ur raderna.
VATstringnejMomsbelopp. Vid skrivning används det för att härleda momssatsen (25, 12 eller 6 %).
BalancestringjaUtestående belopp, i fakturans valuta.
VATTypestringnejNORMAL (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.
Bookedbooleanjatrue för bokförd eller betald faktura.
Cancelledbooleanjatrue för makulerad faktura.
CreditbooleanjaAlltid false.
PaymentPendingbooleanjaAlltid false.
CreditReferencenumberjaAlltid 0.
AccountingMethodACCRUAL | CASHjaOrganisationens bokföringsmetod.
VouchersarrayjaVerifikationer som pekar på fakturan: { Number, Year, Series, ReferenceType }. Year är räkenskapsårets id, inte kalenderåret.
Freight, AdministrationFee, RoundOffValuestring–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–nejBärs vidare oförändrade. SalesType returneras bara som STOCK, SERVICE eller "".
SupplierInvoiceRowsarraynejMinst en rad vid POST. Se nedan.

Rader

FältTypSkrivskyddatBeskrivning
AccountnumbernejKostnadskonto. Utelämnat faller det tillbaka på leverantörens PreDefinedAccount. Kontot måste finnas i kontoplanen.
ItemDescriptionstringnejBeskrivning. Saknas den används AccountDescription, annars "Rad".
QuantitynumbernejAntal. Negativt antal ger 400.
PricenumbernejÀ-pris, exklusive moms.
DebitnumbernejRadens nettobelopp i kronor. Används när Quantity/Price saknas.
DebitCurrencynumbernejRadens nettobelopp i fakturans valuta. Vinner över Debit. Krävs för fakturor i utländsk valuta om du inte anger Quantity och Price.
Credit, CreditCurrencynumbernejMåste vara 0. Kreditrader ger 400.
TotalnumberjaRadens nettobelopp.
UnitstringjaEnhet.
CodestringnejTOT och VAT ignoreras (summor räknas av Klirr). FRT, AFE och ROV ger 400. Övriga koder bärs vidare.
AccountDescription, ArticleNumber, CostCenter, Project, TransactionInformationstringnejBä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ägeResultat
UtkastUtkastet raderas. Svaret är 200 med fakturans sista kända form och Cancelled: true.
BokfördBokföringen återförs med ett rättelseverifikat i serie M. Svaret är 200 med Cancelled: true.
Redan makulerad200 med resursen oförändrad.
Betald409. 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

StatusCodeNär
4009000400Obligatoriskt 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.
4049000404Kan inte hitta leverantörsfakturan. Även för ett GivenNumber som inte är ett positivt heltal.
4099000409GivenNumber ä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.

On this page