Hoppa till innehållet

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 132 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

Offerter

Offert till order. En offertrad kan peka på en artikel eller vara ren fritext, så både prislistevaror och tjänster får plats. Accept och konvertering är två steg: kundens ja kan registreras i samma sekund som hen klickar, och ordern skapas när ert flöde är redo för den.

Metod Sökväg Gör
GET /quotes Lista offerter med filtrering och paginering
GET /quotes/{quoteNumber} Hämta en offert med rader och summor
GET /quotes/{quoteNumber}/lines Lista offertraderna, paginerat
POST /quotes Skapa offert med rader
POST /quotes/{quoteNumber}/send Skicka offerten, eller markera den som skickad
POST /quotes/{quoteNumber}/accept Registrera att kunden accepterat
POST /quotes/{quoteNumber}/decline Registrera att kunden tackat nej
POST /quotes/{quoteNumber}/convert-to-order Gör om accepterad offert till kundorder

Leveranser

Den fysiska halvan av kundordern: frisläpp, plock, packning, fraktbokning och leverans. En leverans kan täcka flera ordrar (samlastning) och en order kan ha flera leveranser (delleverans), så leveranser är en egen resurs snarare än en underresurs till ordern.

Metod Sökväg Gör
GET /shipments Lista leveranser med filtrering och paginering
GET /shipments/{shipmentNumber} Hämta en leverans med rader, kollin och adress
GET /shipments/{shipmentNumber}/lines Lista leveransens rader
GET /shipments/{shipmentNumber}/packages Lista kollin med vikt, mått och kollispårning
POST /shipments Skapa leverans för en eller flera ordrar
POST /shipments/{shipmentNumber}/release Frisläpp en parkerad leverans till lagret
POST /shipments/{shipmentNumber}/pick Plocka raderna, med rapport över vad som hoppades över
POST /shipments/{shipmentNumber}/packages Lägg till ett kolli
POST /shipments/{shipmentNumber}/pack Packa och, som standard, boka frakten
POST /shipments/{shipmentNumber}/book Boka hos transportör och få kolli-id
POST /shipments/{shipmentNumber}/hand-over Registrera att transportören hämtat
POST /shipments/{shipmentNumber}/mark-delivered Registrera att godset kommit fram

Fakturor

Kundfakturorna som lästa dokument: nummer, status, förfallodatum, rader och summor. Läsning bara — fakturan skapas ur ordern eller leveransen i ERP:et, där momsregler, konteringsuppsättning och nummerserie hänger ihop. Det API:et ger är hämtningen, och den räcker för att spegla reskontran, stämma av betalningar eller mata en bokföringsintegration.

Metod Sökväg Gör
GET /invoices Lista fakturor med filtrering och paginering
GET /invoices/{invoiceNumber} Hämta en faktura med rader och summor

Returer

Kundreturer (RMA) mot en kundorder. Utan rader returneras hela ordern med levererade kvantiteter, vilket är normalfallet för en webbutik. Registrering flyttar inget lager — det gör mottagningen, och bara rader i säljbart skick går tillbaka till tillgängligt saldo.

Metod Sökväg Gör
GET /returns Lista returer med filtrering och paginering
GET /returns/{returnNumber} Hämta en retur med rader och skick
GET /returns/{returnNumber}/lines Lista returraderna, paginerat
POST /returns Registrera retur mot en kundorder
POST /returns/{returnNumber}/approve Godkänn returen
POST /returns/{returnNumber}/receive Ta emot godset tillbaka i lager

Lager

Lagerreskontran och det som flyttar den. Transaktionslistan är hela historiken med tecken på kvantiteten och saldo efter varje rörelse — den är det som ett WMS, en 3PL eller ekonomifunktionen faktiskt frågar efter. Justeringar, omplaceringar och inventeringar skriver till samma reskontra.

Metod Sökväg Gör
GET /inventory/transactions Läs lagerreskontran, äldst först
GET /inventory/transactions/{transactionId} Hämta en enskild lagerrörelse
POST /inventory/adjustments Justera saldo på en lagerplats
POST /inventory/movements Flytta lager mellan platser i ett lager
GET /inventory/counts Lista inventeringar
GET /inventory/counts/{countNumber} Hämta en inventering med räkneläge
POST /inventory/counts Skapa inventering (Full, Location, Category, Random, Impulse) och generera rader
POST /inventory/counts/{countNumber}/apply Bokför inventeringens differenser
GET /inventory/batches Lista partier med bäst före-datum, status och saldo, kortast hållbarhet först
GET /inventory/items/{itemNumber}/batches/{batchNumber}/trace Spåra ett parti ett steg bakåt och ett framåt: varifrån det kom och vilka kunder som fått det
POST /inventory/items/{itemNumber}/batches/{batchNumber}/block Spärra ett parti så att det inte kan reserveras eller plockas

Överföringar

Lagerflytt mellan lager, från frisläpp via utleverans till mottagning. Varje rad bär begärd, plockad, skickad och mottagen kvantitet — de fyra talen säger tillsammans var godset befinner sig.

Metod Sökväg Gör
GET /transfer-orders Lista överföringsordrar
GET /transfer-orders/{orderNumber} Hämta en överföringsorder med rader
GET /transfer-orders/{orderNumber}/lines Lista överföringsraderna, paginerat
POST /transfer-orders Skapa överföringsorder med rader
POST /transfer-orders/{orderNumber}/release Frisläpp för plockning
POST /transfer-orders/{orderNumber}/ship Skicka från avsändande lager
POST /transfer-orders/{orderNumber}/lines/{lineNumber}/receive Ta emot en rad på mottagande lager

Inleveranser

Vad som fysiskt kommit in, från inköpsordrar och interna överföringar. Varje rad pekar tillbaka på den orderrad den levererade mot, så en inleverans går att matcha mot dokumentet som beställde den.

Metod Sökväg Gör
GET /receipts Lista inleveranser
GET /receipts/{receiptNumber} Hämta en inleverans med rader och kostnader
GET /receipts/{receiptNumber}/lines Lista inleveransraderna, paginerat

Arbetsordrar

Tillverkning och service som läsbar status: vad som är planerat, vad som pågår och hur mycket som rapporterats färdigt. Läsning bara — planering och rapportering sker i ERP:et och i mobilappen, där operatören står vid maskinen. Räcker för att visa leveransbesked i en kundportal eller följa beläggningen i ett eget dashboard.

Metod Sökväg Gör
GET /work-orders Lista arbetsordrar med filtrering och paginering
GET /work-orders/{workOrderNumber} Hämta en arbetsorder

Ärenden

Supportärenden hela vägen: ett kontaktformulär eller en kundportal lämnar in ärendet, följer status, svarar i tråden och ser när det är löst — och ett externt helpdesksystem kan driva handläggningen härifrån, från triagering till stängning. Ärenden som skapas här hamnar i samma kö som de som skapas inne i ERP:et och de som kommer in via supportmejlen — ingen separat inkorg att bevaka. Tilldelning sker till ärendekö, inte till namngiven handläggare: handläggarna är ERP-användare, och dem exponerar inte det publika API:et.

Metod Sökväg Gör
POST /tickets Skapa ett supportärende
GET /tickets Lista ärenden med filter på status, typ, kund och kö
GET /tickets/{ticketNumber} Hämta ett ärende med status och SLA-tider
PATCH /tickets/{ticketNumber} Uppdatera ärendets uppgifter
GET /tickets/{ticketNumber}/comments Läsa ärendets meddelandetråd
POST /tickets/{ticketNumber}/comments Svara i ärendet
POST /tickets/{ticketNumber}/triage Triagera och sätt prioritet
POST /tickets/{ticketNumber}/queue Lägg ärendet i en ärendekö
POST /tickets/{ticketNumber}/start Påbörja arbetet
POST /tickets/{ticketNumber}/wait-customer Vänta på kundsvar
POST /tickets/{ticketNumber}/wait-internal Vänta internt
POST /tickets/{ticketNumber}/hold Pausa ärendet
POST /tickets/{ticketNumber}/resolve Lös ärendet med lösningstyp
POST /tickets/{ticketNumber}/close Stäng ärendet
POST /tickets/{ticketNumber}/reopen Återöppna ärendet
POST /tickets/{ticketNumber}/cancel Avbryt ärendet
POST /tickets/{ticketNumber}/tags Tagga ärendet
DELETE /tickets/{ticketNumber}/tags/{tag} Ta bort en tagg

Synkronisering

Stöd för inkrementell synk. Nyheter och ändringar hämtas med ?modifiedSince= på list-endpointerna — en ändring var som helst inuti posten räknas, så en ändrad orderrad flyttar orderns modifiedDate. Raderingar syns inte där, eftersom en raderad post inte finns kvar att returnera, utan hämtas separat härifrån.

Metod Sökväg Gör
GET /deletions Lista raderade poster att städa bort lokalt

Referensdata

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

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
GET /reference/ticket-queues Lista ärendeköer att adressera ärenden till

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.