Cost+Docs

Webhooks

Modtag betalingsstatusnotifikationer i realtid

Webhooks giver Cost+ mulighed for at underrette din server i realtid, når en ordres status ændres. I stedet for at polle API'et angiver du en URL, og Cost+ sender en HTTP POST-anmodning til den, når der er en opdatering.

Sådan fungerer webhooks

  1. Du angiver en webhook_url, når du opretter en ordre, eller konfigurerer en standard webhook-URL på projektniveau.
  2. Når ordrestatus ændres (f.eks. fra new til completed), sender Cost+ en POST-anmodning til din webhook-URL.
  3. Din server modtager webhooken og kalder derefter Cost+ API'et for at hente de fulde ordredetaljer.
  4. Du opdaterer dit system baseret på den verificerede ordrestatus.

Stol aldrig på webhook-payloaden alene til at opfylde en ordre. Bekræft altid ordrestatus ved at foretage en GET /v1/orders/{id}/-anmodning efter modtagelse af en webhook. Webhooken er en notifikationsmekanisme, ikke en kilde til sandhed.

Webhook-payload

Webhook-kroppen er et JSON-objekt, der indeholder hændelsestypen og ordre-ID'et:

{
  "event": "status_changed",
  "order_id": "b9ae6...",
  "project_id": "proj_abc123"
}
FeltBeskrivelse
eventHændelsestypen. I øjeblikket status_changed for ordreopdateringer.
order_idDen unikke identifikator for ordren, hvis status ændrede sig.
project_idProjektet, som ordren tilhører.

Indstilling af webhook-URL

Du kan angive webhook-URL'en på to måder:

Per ordre

Inkluder feltet webhook_url, når du opretter en ordre:

{
  "currency": "EUR",
  "amount": 1295,
  "webhook_url": "https://www.example.com/webhook"
}

Projektstandard

Konfigurer en standard webhook-URL i dit Cost+-dashboard under projektindstillinger. Denne URL bruges til alle ordrer, der ikke angiver deres egen webhook_url.

Selvom du har en projektstandard, kan du overskrive den per ordre ved at inkludere webhook_url i ordreoprettelsesanmodningen.

Genforsøgslogik

Hvis din server ikke svarer med en 2xx-statuskode, forsøger Cost+ webhook-leveringen igen:

  • Maksimalt antal genforsøg: 10 forsøg
  • Genforsøgsinterval: 2 minutter mellem hvert forsøg
  • Timeout for første forsøg: 4 sekunder
  • Timeout for efterfølgende forsøg: 10 sekunder

Hvis alle 10 genforsøg fejler, markeres webhooken som fejlet. Du kan stadig hente ordrestatus når som helst ved at polle API'et.

Sørg for, at dit webhook-endpoint svarer hurtigt (inden for 4 sekunder for det første forsøg). Udfør eventuel langvarig behandling asynkront efter at have returneret et 200 OK-svar.

Best practices

  • Bekræft altid via API'et. Ved modtagelse af en webhook skal du kalde GET /v1/orders/\{order_id\}/ for at bekræfte den aktuelle status, inden du foretager handlinger som at sende varer eller give adgang.
  • Returner 200 hurtigt. Bekræft webhooken med et 200-svar med det samme og behandl ordren asynkront for at undgå timeouts.
  • Håndter duplikater. Dit webhook-endpoint kan modtage den samme hændelse mere end én gang. Sørg for, at din behandlingslogik er idempotent.
  • Brug HTTPS. Brug altid en HTTPS-URL til dit webhook-endpoint for at sikre, at payloaden transmitteres sikkert.
  • Log webhook-payloads. Gem indkommende webhook-data til fejlfinding og revisionsformål.

Relaterede endpoints

On this page