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