Til udviklere

Et REST-API,
du kan bygge på.

Endpoints med Bearer-nøgler og scope til returneringer, sporing, returlabels og en returagent, du spørger på almindeligt dansk, med rate limits per nøgle. Den bredere programmerbare platform ligger på roadmappen.

Live i dag

Prøv et kald.

Vælg et endpoint. Request og response opdateres ved siden af.

Hent en returnering

Henter én returnering som JSON. {id} tager enten returnummeret (RET-####) eller det interne id. Kræver returns:read.

GET /api/v1/returns/{id} · scope: returns:read
curl https://app.returner.me/api/v1/returns/RET-9284 \
  -H "Authorization: Bearer $RETURNER_API_KEY"
200 OK
{
  "return_id": "RET-9284",
  "order": "#1042",
  "status": "in_transit",
  "type": "refund",
  "created_at": "2026-03-14T09:12:00Z",
  "customer": { "name": "Maria Holm", "email": "[email protected]" },
  "refund": { "amount": 49.00, "currency": "EUR" },
  "carrier": "postnord",
  "tracking_number": "SE392847561",
  "items": [
    { "sku": "TEE-BLK-L", "name": "Cotton Tee",
      "quantity": 1, "reason": "too_small", "condition": null }
  ]
}
Reference

Alle endpoints.

GET /api/v1/returns/{id} Hent en returnering (JSON) · returns:read live
GET /api/v1/returns/{id}/tracking Aktuel sporingsstatus · returns:read live
GET /api/v1/returns/{id}/label Returlabel som PDF (302-redirect) · labels:read live
POST /api/v1/agent Returagent, du spørger på almindeligt dansk · returns:read live
GET /api/v1/openapi.json OpenAPI 3.1-spec · public live
OUT return.* Signerede webhooks: created · approved · received · refunded · exchanged · cancelled live
Autentificering og grænser

Sådan godkendes kaldene.

Bearer-nøgler

Send Authorization: Bearer ret_live_<key> på hvert /api/v1/*-kald. Nøglen vises kun én gang, når den oprettes, og vi gemmer udelukkende en hash. Opret og tilbagekald nøgler under Settings → API Keys.

Fejl

  • 401 ukendt eller tilbagekaldt nøgle
  • 403 nøglen mangler det scope, der kræves
  • 404 ingen sådan returnering i din butik
  • 429 grænsen er nået (se Retry-After)

Hver fejl svarer med JSON { error, message, code }: error og message er den samme tekst til mennesker, code er en stabil maskinlæsbar slug (unauthorized, forbidden, not_found, rate_limited, …) du trygt kan forgrene på.

Rate limits

120 kald i minuttet per nøgle. Hvert svar bærer X-RateLimit-Limit, X-RateLimit-Remaining, og X-RateLimit-Reset, og 429-svar lægger Retry-After.

Muligheder

Det, du kan bygge med.

v1
Versioneret REST-API
live
Bearer
Autentificering med API-nøgle, server til server
live
JSON
Almindelig JSON i request og response
live
Scopes
returns:read · returns:write · labels:read
live
Limits
120 kald/min./nøgle med X-RateLimit-*-headere
live
OpenAPI
OpenAPI 3.1-spec: generér en klient på ethvert sprog
live
Webhooks
Signerede udgående hændelser (returneringens livsforløb)
live
SDK
TypeScript-SDK: @returner/sdk
roadmap
OAuth 2.0
Tokens med scope til tredjepartsapps
roadmap
Kobl din stak på

Roadmap for integrationer.

Shopify er live i dag. Fortæl os, hvad der står for tur i din stak, så prioriterer vi det.

Shopify Installation med ét klik, automatisk ordresync, indlejret portal live
WooCommerce WordPress-plugin mod dine WooCommerce-ordrer planlagt
Egne platforme Bredere REST-dækning, så ordrer kan hentes hvor som helst fra planlagt
WMS / ERP Udgående webhooks, der giver dit lagersystem besked live
Betalingsudbydere Refusion direkte gennem Stripe, Klarna og Adyen planlagt
Kundeservice Returdata inde i Zendesk, Gorgias, Help Scout og Intercom planlagt
E-mail og marketing Klaviyo-hændelser fra returneringens livsforløb live

Byg videre med Returner.

Opret en nøgle under Settings → API Keys, og læs så specifikationen eller generér en klient.