Cost+Docs

Statusforespørsler

Sjekk ordre- og transaksjonsstatuser

Hver betaling i Cost+ representeres av en ordre som inneholder én eller flere transaksjoner. Du kan sjekke gjeldende status for enhver ordre ved å spørre API-et, enten ved polling eller ved å stole på webhooks.

Hente ordrestatus

Send en GET-forespørsel til /v1/orders/\{id\}/ for å hente det fullstendige ordreobjektet inkludert gjeldende status og alle tilknyttede transaksjoner.

GET /v1/orders/b9ae6.../

Selv om polling fungerer for å sjekke ordrestatus, er webhooks den anbefalte tilnærmingen for produksjonsintegrasjoner. De gir sanntidsvarsler uten belastningen av gjentatte API-kall.

Ordrestatuser

En ordre går gjennom følgende statuser:

StatusEndeligBeskrivelse
newNeiOrdren er nettopp opprettet. Ingen betalingsforsøk er gjort ennå.
processingNeiEt betalingsforsøk pågår. Kunden kan være i ferd med å fullføre 3D Secure eller et annet verifikasjonstrinn.
errorNeiBetalingsforsøket mislyktes. Kunden kan forsøke på nytt med samme eller en annen betalingsmetode.
completedJaBetalingen var vellykket. Du kan fullføre ordren.
cancelledJaOrdren ble avbrutt, enten av kunden eller via API-et.
expiredJaOrdren utløp før en vellykket betaling ble gjennomført. Standard utløpsperiode er 30 minutter.

Kun statuser merket med Endelig = Ja er terminale. Ordrer med status new, processing eller error kan fortsatt gå over til completed.

Eksempel: Ordre under behandling

Når en kunde har startet betaling, men den ennå ikke er fullført:

{
  "id": "b9ae6...",
  "project_id": "proj_abc123",
  "merchant_order_id": "my-order-id-1",
  "created": "2024-01-01T12:00:00.000000+00:00",
  "modified": "2024-01-01T12:01:30.000000+00:00",
  "completed": null,
  "expiration_period": "PT30M",
  "status": "processing",
  "currency": "EUR",
  "amount": 1295,
  "description": "My amazing order",
  "return_url": "https://www.example.com",
  "payment_url": "https://pay.costplus.com/...",
  "webhook_url": "https://www.example.com/webhook",
  "transactions": [
    {
      "id": "txn_001...",
      "payment_method": "credit-card",
      "payment_method_brand": "visa",
      "status": "processing",
      "amount": 1295,
      "currency": "EUR"
    }
  ],
  "flags": ["is-test"]
}

Eksempel: Fullført ordre

Når betalingen er vellykket, når ordren statusen completed:

{
  "id": "b9ae6...",
  "project_id": "proj_abc123",
  "merchant_order_id": "my-order-id-1",
  "created": "2024-01-01T12:00:00.000000+00:00",
  "modified": "2024-01-01T12:02:15.000000+00:00",
  "completed": "2024-01-01T12:02:15.000000+00:00",
  "expiration_period": "PT30M",
  "status": "completed",
  "currency": "EUR",
  "amount": 1295,
  "description": "My amazing order",
  "return_url": "https://www.example.com",
  "payment_url": "https://pay.costplus.com/...",
  "webhook_url": "https://www.example.com/webhook",
  "transactions": [
    {
      "id": "txn_001...",
      "payment_method": "credit-card",
      "payment_method_brand": "visa",
      "payment_method_details": {
        "card_last_four": "4242",
        "card_expiry_month": 12,
        "card_expiry_year": 2026,
        "card_holder_name": "J. Smith"
      },
      "status": "completed",
      "amount": 1295,
      "currency": "EUR"
    }
  ],
  "flags": ["is-test"]
}

Transaksjonsdetaljer

Hver transaksjon i en ordre inneholder følgende nøkkelfelt:

FeltBeskrivelse
payment_methodBetalingsmetoden som ble brukt (f.eks. credit-card, ideal, apple-pay)
payment_method_brandMerket eller utstederen (f.eks. visa, mastercard, amex)
payment_method_detailsEt objekt med metodespesifikke detaljer som kortets fire siste siffer, utløpsdato og kortholders navn
statusStatusen for denne spesifikke transaksjonen
amountTransaksjonsbeløpet i øre/cent
currencyTransaksjonsvalutaen

Ikke stol utelukkende på at kunden videresendes til din return_url som bekreftelse på betaling. Verifiser alltid ordrestatusen via API-et eller gjennom en webhook før du fullfører en ordre.

Relaterte endepunkter

  • Hent ordre — hent det fullstendige ordreobjektet og gjeldende status
  • List ordrer — list ordrer med datofiltrering

On this page