REST API

Vägen in när ett annat system både ska läsa och skriva: hämta lagersaldo, skapa en order, uppdatera en artikel.

API och integrationer REST API

Bas-URL

https://api.erp.fluit.cloud/preview

Autentisering

API-nyckel i headern X-Api-Key. Nycklar skapas under Inställningar → API-nycklar.

Adressering

Affärsnycklar i URL:erna: kundnummer, artikelnummer och ordernummer, så integrationen slipper spegla Fluits interna id:n.

Specifikation

Hela ytan som OpenAPI-dokument: swagger.json, eller renderad i API-referensen.

Visa fullständig API-referens

Endpoints i urval

De 61 anropen nedan är exempel på hur API:et ser ut och används, inte hela listan. Den fullständiga specifikationen med alla anrop, parametrar och scheman finns i OpenAPI-dokumentet (swagger.json).

Kunder

Läs och skriv kundregistret. Kunder identifieras med kundnummer, inte interna id:n, så integrationen slipper hålla reda på Fluits nycklar.

Metod Sökväg Gör
GET /customers Lista kunder med filtrering och paginering
GET /customers/{customerNumber} Hämta en kund på kundnummer
GET /customers/{customerNumber}/addresses Lista kundens adresser
GET /customers/{customerNumber}/contacts Lista kundens kontaktpersoner
POST /customers Skapa kund
PATCH /customers/{customerNumber} Uppdatera fält på en kund

Artiklar

Artikelregister, lagertillgänglighet, priser och produktbilder. Tillgänglighet svarar på vad som faktiskt går att lova en kund, inte bara vad som ligger på hyllan, och visar per lager om artikeln kräver serie- eller batchnummer.

Metod Sökväg Gör
GET /items Lista artiklar, eller slå upp en på streckkod, förpackningsstreckkod, tillverkarnummer (MPN) eller OEM-nummer
GET /items/{itemNumber} Hämta en artikel på artikelnummer
GET /items/{itemNumber}/variants Lista varianterna av en variantmall
GET /items/{itemNumber}/availability Tillgängligt att lova (ATP) och spårningskrav per lager
GET /inventory/availability Lagersaldo för många artiklar i ett anrop, med delta-synk
GET /items/{itemNumber}/price Pris för artikeln, inklusive kundspecifika priser
GET /items/{itemNumber}/assets Lista bilder och dokument på artikeln
GET /items/{itemNumber}/assets/{assetId}/download Ladda ned en bild eller ett dokument
POST /items Skapa artikel
PATCH /items/{itemNumber} Uppdatera fält på en artikel

Kundorder

Hela orderflödet: skapa order, redigera rader, lägg ordern och följ leveranserna. Order identifieras med ordernummer.

Metod Sökväg Gör
GET /orders Lista kundordrar
GET /orders/{orderNumber} Hämta en order med rader
GET /orders/{orderNumber}/shipments Lista leveranser på ordern
POST /orders Skapa order, med raderna i samma anrop eller som utkast med createAsDraft
POST /orders/{orderNumber}/lines Lägg till orderrad
PATCH /orders/{orderNumber}/lines/{lineNumber} Ändra orderrad
DELETE /orders/{orderNumber}/lines/{lineNumber} Ta bort orderrad
POST /orders/{orderNumber}/place Lägg ordern, som går vidare till allokering
POST /orders/{orderNumber}/cancel Annullera ordern

Konfigurator

Måttanpassade produkter — gardiner, persienner, markiser och annat som byggs efter kundens mått och val. Hämta artikelns konfigurationsschema, räkna fram pris och validering live medan kunden väljer, spara konfigurationen och gör order av den. Samma prishierarki som vanliga orderrader: kundprislistor, ramavtal, kampanjer och volympriser.

Metod Sökväg Gör
GET /items/{itemNumber}/configuration Konfigurationsschema: valbara egenskaper, mått, gränsvärden och tillval
POST /configurations/calculate Räkna fram pris och validera ett val utan att spara — anropas vid varje ändring
GET /configurations Lista sparade konfigurationer som ännu inte blivit order
GET /configurations/{configurationNumber} Hämta en sparad konfiguration med val och pris
POST /configurations Spara en konfiguration, med eller utan kund
POST /configurations/{configurationNumber}/reconfigure Ändra val, antal eller kund och få tillbaka konfigurationen omprissatt
POST /configurations/{configurationNumber}/order Gör kundorder av konfigurationen
DELETE /configurations/{configurationNumber} Kasta en konfiguration som aldrig blev order

Leverantörer

Leverantörsregistret med kontaktpersoner och leverantörernas priser, minsta orderkvantitet och ledtider. Leverantörer identifieras med leverantörsnummer.

Metod Sökväg Gör
GET /suppliers Lista leverantörer med filtrering och paginering
GET /suppliers/{supplierNumber} Hämta en leverantör på leverantörsnummer
GET /suppliers/{supplierNumber}/items Leverantörens priser, ledtider och minsta orderkvantitet per artikel
GET /suppliers/{supplierNumber}/contacts Lista leverantörens kontaktpersoner
POST /suppliers Skapa leverantör
PATCH /suppliers/{supplierNumber} Uppdatera fält på en leverantör

Inköpsorder

Hela inköpsflödet: skapa order, skicka till leverantören, bekräfta och ta emot godset. Inleveransen bokar lagersaldot direkt. Order identifieras med ordernummer.

Metod Sökväg Gör
GET /purchase-orders Lista inköpsordrar
GET /purchase-orders/{orderNumber} Hämta en inköpsorder med rader
GET /purchase-orders/{orderNumber}/lines Lista raderna på inköpsordern
POST /purchase-orders Skapa inköpsorder, med raderna i samma anrop
PATCH /purchase-orders/{orderNumber} Ändra inköpsorderns huvud
POST /purchase-orders/{orderNumber}/lines Lägg till inköpsorderrad
PATCH /purchase-orders/{orderNumber}/lines/{lineNumber} Ändra inköpsorderrad
DELETE /purchase-orders/{orderNumber}/lines/{lineNumber} Ta bort inköpsorderrad
POST /purchase-orders/{orderNumber}/send Skicka ordern till leverantören, med eller utan mejl
POST /purchase-orders/{orderNumber}/confirm Registrera leverantörens orderbekräftelse
POST /purchase-orders/{orderNumber}/lines/{lineNumber}/receive Ta emot gods på raden och boka lagersaldot
POST /purchase-orders/{orderNumber}/cancel Annullera inköpsordern
POST /purchase-orders/{orderNumber}/close Avsluta ordern utan att invänta resterande kvantitet

Referensdata

Uppslagsdata som integrationen behöver för att skicka rätt värden: lager, enheter, momsklasser, valutor, leverans- och betalningsvillkor, leveranssätt och ordertyper.

Metod Sökväg Gör
GET /reference/tenant-info Företagsuppgifter och basvaluta
GET /reference/warehouses Lista lager
GET /reference/units Lista enheter som går att använda på orderrader
GET /reference/tax-classes Lista momsklasser med den momssats som gäller idag
GET /reference/currencies Lista valutor
GET /reference/delivery-terms Lista leveransvillkor (Incoterms)
GET /reference/payment-terms Lista betalningsvillkor
GET /reference/shipping-methods Lista leveranssätt
GET /reference/order-types Lista ordertyper

Fullständiga request- och response-scheman finns i API-referensen: vill du veta hur API:et förhåller sig till resten av systemet, läs om headless ERP, där står vilka klienter som redan hänger på samma kärna.

Bygger du integrationen med en AI-assistent: hela API:et finns som en textfil på api.erp.fluit.cloud/llms.txt: den följer llms.txt-formatet, genereras ur API:ets OpenAPI-dokument och kräver ingen API-nyckel för att läsas.

Ska integrationen bara läsa?

Då behöver du inte bygga något. OData-flödet kopplar Power BI och Excel direkt mot samma data med samma API-nyckel, read-only och utan kod.

Vanliga frågor om REST-API:et

Hur autentiserar jag mot Fluits REST API?
Med en API-nyckel i headern X-Api-Key. Nycklar skapas i Fluit under Inställningar → API-nycklar, visas bara en gång och kan återkallas när som helst. Bas-URL är https://api.erp.fluit.cloud/preview, och nyckeln når bara det egna företagets data.
Kan jag skapa kundordrar via API:et?
Ja, på två sätt. Enklast är att skicka orderraderna direkt i POST /orders, då skapas hela ordern i ett anrop. Vill du bygga upp ordern stegvis skickar du createAsDraft=true, lägger till rader med POST /orders/{orderNumber}/lines och lägger ordern med POST /orders/{orderNumber}/place. En order utan rader och utan createAsDraft avvisas, eftersom den varken kan läggas eller syns i orderlistan.
Kan jag läsa lagersaldo via API:et?
Ja. GET /items/{itemNumber}/availability svarar med tillgängligt att lova (ATP) per lager, alltså vad som faktiskt går att lova en kund efter att reservationer räknats bort, inte bara vad som ligger på hyllan.
Använder API:et interna id:n?
Huvudresurserna adresseras med affärsnycklar: kundnummer, artikelnummer och ordernummer. Integrationen behöver alltså inte spegla Fluits interna id:n för kunder, artiklar och order. Enstaka fält och underresurser använder ändå id, till exempel customerContactId när en order skapas och assetId i nedladdningsrutten för artikelbilagor. De hämtas från motsvarande list-endpoint.
Är endpointsen på den här sidan hela API:et?
Nej. Listan är ett urval, tänkt som exempel på hur API:et ser ut och används. Hela specifikationen med samtliga anrop, parametrar och scheman finns som OpenAPI-dokument på https://api.erp.fluit.cloud/swagger/public-preview/swagger.json och kan läsas in direkt i Postman, Insomnia eller en kodgenerator.
Finns API:et dokumenterat för AI-assistenter?
Ja. https://api.erp.fluit.cloud/llms.txt är hela det publika API:et som en textfil i llms.txt-format: autentisering, konventioner, felkoder och samtliga endpoints med parametrar och exempel. Filen genereras ur API:ets OpenAPI-dokument, så den kan inte hamna ur synk med koden, och den kräver ingen API-nyckel för att läsas.
Kan API:et bara läsa data, eller går det att skriva?
Båda. REST-ytan har både GET-anrop för att läsa och POST- och PATCH-anrop för att skapa och uppdatera kunder, artiklar, kundorder och inköpsorder. Ska integrationen bara läsa till en rapport är OData-flödet för Power BI och Excel en enklare väg. Det är read-only och kräver ingen kod.
Levererad order: effektiv order- och frakthantering

Behöver ni hjälp att komma igång?

Berätta vad integrationen ska göra så går vi igenom endpoints, nycklar och vad som krävs på er sida.