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