Beta Delivery Zone är i privat beta — tar nu emot utvalda finländska e-handlare.
Utvecklardokumentation

Delivery Zone API.

En autentiserad ändpunkt. Skicka postnummer och varukorgens värde — få ett tydligt leveransbeslut, zon, pris och orsakskod tillbaka.

POST/api/v1/delivery/check

Offentligt API-kontrakt för leveranskontroll

Detta API används av externa system (anpassade backend-system, kassor eller affärssystem) för att kontrollera om ett postnummer kan levereras till baserat på dina konfigurerade leveranszoner och regler.

[!WARNING]

Tillåten användning — endast realtidsvalidering.

API-svar får inte sparas, cachas, samlas in i bulk, exporteras, vidareförsäljas eller användas för att skapa, berika, rekonstruera eller ersätta data gällande postnummer, adresser, avstånd, leveranszoner, geografi eller liknande. Automatiserad skrapning, systematisk numrering eller massfrågor mot API:et är förbjudet. Fullständiga villkor: API-användarvillkor och Policy för acceptabel användning.

[!NOTE]

Finlands postnummerdata hanteras centralt av GN-Projects / Delivery Zone.

Kunder laddar inte upp, exporterar eller laddar ner rå postnummerdata.

API:et returnerar leveransbeslut baserat på denna centrala datamängd och dina specifika zonregler.

>

Postnumrets giltighet kontrolleras mot auktoritativ finländsk referensdata för postnummer.

För radiezoner (avståndsbaserade zoner) använder API:et en representativ plats för postnumret och beräknar fågelvägsavstånd från din konfigurerade basplats — se Ansvarsfriskrivning för postnummerdata för detaljer och kända begränsningar.

Ändpunkt

POST /api/v1/delivery/check

Headers

  • X-Api-Key: Din offentliga API-nyckel.
  • Content-Type: application/json

Anropskropp

{
  "destinationPostcode": "00100",
  "basketValueCents": 4500
}

Lyckade svar (200 OK)

Statuskod 200 OK returneras för varje giltig kontroll som slutförs, oavsett om leverans är möjlig eller inte.

Kan levereras

{
  "canDeliver": true,
  "matchedZoneName": "Helsinki Center",
  "priceCents": 590,
  "currency": "EUR",
  "estimatedDeliveryMinutes": 45,
  "reasonCode": "DELIVERABLE",
  "reasonMessage": "Delivery is available."
}

Kan ej levereras

{
  "canDeliver": false,
  "reasonCode": "NOT_DELIVERABLE",
  "reasonMessage": "Delivery is not available for this postcode."
}

Kan ej levereras — Minsta ordervärde ej uppnått

{
  "canDeliver": false,
  "reasonCode": "MINIMUM_ORDER_NOT_MET",
  "reasonMessage": "The location is covered, but the minimum order value was not met.",
  "requiredBasketValueCents": 5000,
  "providedBasketValueCents": 3200,
  "shortfallCents": 1800
}

[!NOTE]

Alla utfall där leverans inte är möjlig på grund av postnummertäckning eller zonkonfiguration returnerar den generella orsakskoden NOT_DELIVERABLE. Detta är avsiktligt.

Interna zonidentifierare, exakta avstånd och information om postnummerdatamängden inkluderas aldrig i det publika API-svaret.

Felsvar

400 Bad Request

Anropet var felaktigt formulerat, postnummerformatet var ogiltigt eller varukorgsvärdet var ogiltigt eller saknades när en matchad regel krävde det.

{
  "canDeliver": false,
  "reasonCode": "INVALID_POSTCODE",
  "reasonMessage": "The postcode must be exactly 5 digits."
}

Andra 400-orsakskoder: INVALID_BASKET_VALUE (negativt varukorgsvärde) och BASKET_VALUE_REQUIRED (den matchade zonen har en regel för minsta ordervärde eller fri frakt och inget varukorgsvärde angavs — canDeliver är null i detta fall, och svaret inkluderar minimumOrderCents/freeDeliveryFromCents).

401 Unauthorized

{
  "error": "A valid API key is required."
}

403 Forbidden

API-nyckeln är giltig men har inte behörighet till denna ändpunkt (omfattning, organisation eller prenumerationsstatus).

{
  "canDeliver": false,
  "reasonCode": "API_ACCESS_DENIED",
  "reasonMessage": "The API key is not permitted to access this endpoint."
}

405 Method Not Allowed

Returneras för alla andra HTTP-metoder än POST på denna ändpunkt.

413 Payload Too Large

{
  "canDeliver": false,
  "reasonCode": "PAYLOAD_TOO_LARGE",
  "reasonMessage": "Request body exceeds the maximum allowed size."
}

429 Too Many Requests

Täcker tre olika gränser, åtskilda med reasonCode. Alla tre bör hanteras med exponentiell back-off och genom att respektera headern Retry-After.

Minutgräns för anrop — temporär; kräver inget planbyte:

{
  "canDeliver": false,
  "reasonCode": "RATE_LIMITED",
  "reasonMessage": "Too many requests. Please try again later."
}

Dygnsgräns (per API-nyckel) — återställs nästa UTC-midnatt; skiljer sig från månadskvoten och förbrukar den inte:

{
  "canDeliver": false,
  "reasonCode": "DAILY_LIMIT_EXCEEDED",
  "reasonMessage": "This API key's daily request limit has been reached. Please wait for it to reset or use a different key.",
  "limitScope": "daily",
  "limit": 10000,
  "currentUsage": 10000,
  "resetAt": "2026-09-01T00:00:00.000Z"
}

Månatlig plankvot — återställs i början av din nästa faktureringsperiod. Försök inte igen automatiskt förrän kvoten återställts eller planen uppgraderats:

{
  "canDeliver": false,
  "reasonCode": "PLAN_LIMIT_EXCEEDED",
  "reasonMessage": "Your plan's monthly API quota has been exhausted. Please upgrade your plan or wait for your quota to reset.",
  "limitScope": "monthly",
  "limit": 10000,
  "currentUsage": 10000,
  "resetAt": "2026-09-15T00:00:00.000Z"
}

503 Service Unavailable

Systemet kan för närvarande inte behandla förfrågningar (t.ex. ingen aktiv central datamängd).

{
  "canDeliver": false,
  "reasonCode": "NO_ACTIVE_DATASET",
  "reasonMessage": "Service temporarily unavailable."
}

Autentisering

Alla anrop kräver en X-Api-Key-header. Hämta din nyckel genom att skapa ett gratiskonto. Nycklar är knutna till organisationen och kan roteras från instrumentpanelen. Det finns ingen separat test-/produktionsmiljö — använd en icke-produktionszon för att testa tryggt med din riktiga API-nyckel.

Anropsgränser

API-nycklar är som standard begränsade till 120 anrop per minut och 10 000 anrop per dygn. Månatliga kvoter beror på din plan — se Priser för exakta gränser; Gratisplanen tillåter 10 kontroller per månad. Om månadskvoten, dygnsgränsen eller minutgränsen överskrids returneras HTTP 429 Too Many Requests, åtskilt med reasonCode (PLAN_LIMIT_EXCEEDED, DAILY_LIMIT_EXCEEDED eller RATE_LIMITED). Vänta och gör ett nytt försök enligt headern Retry-After; för plan- och dygnsgränser väntar du på återställningen som anges i resetAt eller uppgraderar din plan.