Klirr Docs

Artiklar

Artikelregistret – lista, skapa, hämta, uppdatera och arkivera artiklar via /3/articles.

Artikelresursen speglar Fortnox /3/articles. Artikeln adresseras på sitt artikelnummer (ArticleNumber), och numret kan inte ändras när det väl är satt.

Scope: article · Kräver AI Pro

Endpoints

Metod och sökvägBeskrivning
GET/api/v1/3/articlesLista artiklar (reducerad listform)
POST/api/v1/3/articlesSkapa en artikel. Svarar 201.
GET/api/v1/3/articles/{ArticleNumber}Hämta en artikel (fullständig form)
PUT/api/v1/3/articles/{ArticleNumber}Uppdatera en artikel (partiellt)
DELETE/api/v1/3/articles/{ArticleNumber}Arkivera en artikel. Svarar 204.

Bas-URL: https://app.klirr.ai/api/v1. Skrivningar kuverteras i Article.

Listparametrar

Utöver paginering (page, limit, offset):

ParameterVärdenBeskrivning
filteractive, inactiveactive utesluter arkiverade, inactive visar bara arkiverade. Utan filter (eller med okänt värde) returneras alla.

Listrutten läser inga andra parametrar – sortby, sortorder och sökparametrar stöds inte på artiklar.

Fält

Fullständig form (GET /3/articles/{ArticleNumber}, och svaret på POST/PUT).

FältTypSkrivskyddatBeskrivning
@urlstringjaResursens URL.
ArticleNumberstringefter skapandeUtelämnas det vid POST tilldelas ett nummer. Max 50 tecken: A–Z, siffror och . _ - /.
DescriptionstringnejBenämning, max 1000 tecken. Kan inte vara tom eller nollas.
TypeSTOCK | SERVICEnejStandard SERVICE. Okänt värde tolkas som SERVICE.
Activebooleannejfalse för arkiverad artikel.
ExpiredbooleannejAlltid !Active. Kan skrivas som alias; vid konflikt vinner Active.
SalesPricenumbernejFörsäljningspris exklusive moms.
PurchasePricenumbernejInköpspris.
VATnumbernejMomssats: 25, 12, 6 eller 0. Annan sats sätts till 25.
UnitstringnejEnhet, returneras som den skickades.
SalesAccountnumbernejFörsäljningskonto. 0 när inget satts.
EUAccount, EUVATAccount, ExportAccount, ConstructionAccountnumbernejKonton per momsbehandling.
PurchaseAccountnumbernejInköpskonto.
EANstringnejStreckkod.
ManufacturerstringnejTillverkare.
ManufacturerArticleNumberstringnejTillverkarens artikelnummer.
NotestringnejAnteckning.
SupplierNumberstringnejLeverantörsnummer. Kopplas till en befintlig leverantör om den finns; annars sparas värdet som text.
SupplierNamestringnejLeverantörsnamn, används för koppling om numret saknas.
HouseworkbooleannejOmfattas av husavdrag.
HouseworkTypestringnejTyp av husarbete. Okänt värde ignoreras. Sätts en typ blir Housework true.
StockGoodsbooleanjatrue när Type är STOCK.
QuantityInStock, DisposableQuantity, ReservedQuantity, StockValuenumbernejKlirr har ingen lagerhantering. Värden du skickar bärs vidare oförändrade, annars 0.
WebshopArticlebooleannejWebbshopsartikel.

Använd "API_BLANK" för att tömma EAN, Manufacturer, ManufacturerArticleNumber, Note, Unit och kontofälten. API_BLANK på ArticleNumber, Description, Active eller Expired ger 400. Fält som Klirr inte modellerar sparas och returneras oförändrade.

Listform

GET /3/articles returnerar en reducerad rad: @url, ArticleNumber, Description, EAN, Housework, SalesPrice, PurchasePrice, Unit, VAT, WebshopArticle, QuantityInStock, DisposableQuantity, ReservedQuantity, StockValue. Talen är strängar i listformen.

Skapa en artikel

curl -X POST https://app.klirr.ai/api/v1/3/articles \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{"Article":{"ArticleNumber":"KONS-01","Description":"Konsulttimme","Type":"SERVICE","SalesPrice":950,"VAT":25,"Unit":"h"}}'

Svar (201):

{
  "Article": {
    "@url": "https://app.klirr.ai/api/v1/3/articles/KONS-01",
    "ArticleNumber": "KONS-01",
    "Description": "Konsulttimme",
    "Type": "SERVICE",
    "Active": true,
    "Expired": false,
    "SalesPrice": 950,
    "PurchasePrice": 0,
    "VAT": 25,
    "Unit": "h",
    "SalesAccount": 0,
    "EUAccount": 0,
    "EUVATAccount": 0,
    "ExportAccount": 0,
    "ConstructionAccount": 0,
    "PurchaseAccount": 0,
    "EAN": "",
    "Manufacturer": "",
    "ManufacturerArticleNumber": "",
    "Note": "",
    "SupplierNumber": "",
    "SupplierName": "",
    "Housework": false,
    "HouseworkType": "",
    "StockGoods": false,
    "QuantityInStock": 0,
    "DisposableQuantity": 0,
    "ReservedQuantity": 0,
    "StockValue": 0,
    "WebshopArticle": false
  }
}

Lista artiklar

curl "https://app.klirr.ai/api/v1/3/articles?filter=active&limit=100" \
  -H "Authorization: Bearer <access_token>"
{
  "Articles": [
    {
      "@url": "https://app.klirr.ai/api/v1/3/articles/KONS-01",
      "ArticleNumber": "KONS-01",
      "Description": "Konsulttimme",
      "EAN": "",
      "Housework": false,
      "SalesPrice": "950",
      "PurchasePrice": "0",
      "Unit": "h",
      "VAT": "25",
      "WebshopArticle": false,
      "QuantityInStock": "0",
      "DisposableQuantity": "0",
      "ReservedQuantity": "0",
      "StockValue": "0"
    }
  ],
  "MetaInformation": { "@TotalResources": 1, "@TotalPages": 1, "@CurrentPage": 1 }
}

Uppdatera en artikel

PUT ändrar bara de fält du skickar. Ändrar du VAT utan Type (eller tvärtom) räknas momskoden om mot artikelns sparade typ. Se Fortnox-kompatibilitet.

curl -X PUT https://app.klirr.ai/api/v1/3/articles/KONS-01 \
  -H "Authorization: Bearer <access_token>" \
  -H "Content-Type: application/json" \
  -d '{"Article":{"SalesPrice":1050}}'

Arkivera en artikel

DELETE raderar inte artikeln. Den arkiveras, eftersom bokförda fakturarader kan referera till den. Svaret är 204; artikeln försvinner ur ?filter=active men finns kvar på sin URL med Active: false.

Fel

StatusCodeNär
4009000400Ogiltigt artikelnummer (tomt, över 50 tecken, otillåtna tecken), tom eller för lång Description, ogiltigt pris, API_BLANK på ett fält som inte kan nollas, otolkbart Active/Expired.
4049000404Kan inte hitta artikeln.
4099000409Artikelnumret används redan.

Allmänna fel (401, 403, 429) beskrivs under Felkoder.

On this page