Cost+Docs

Autoriseringer, innløsninger og annulleringer

Administrer flyten for betalingsautorisering, innløsning og annullering

Noen betalingsmetoder støtter en to-trinns flyt: først autorisere (reservere midler), deretter innløse (hente midlene) eller annullere (frigjøre reservasjonen).

Innløsningsmoduser

Sett capture_mode på ordren for å kontrollere når midler innløses:

ModusOppførsel
manualDu innløser eksplisitt når du er klar (f.eks. etter forsendelse). Hvis du ikke innløser før ordren utløper, er autorisasjonen tapt og kan ikke innløses.
delayedMidler innløses automatisk i det expiration_period utløper.
POST /v1/orders/ (manual capture)
{
  "currency": "EUR",
  "amount": 5000,
  "capture_mode": "manual",
  "return_url": "https://www.example.com",
  "webhook_url": "https://www.example.com/webhook",
  "transactions": [
    {
      "payment_method": "credit-card"
    }
  ]
}

Med manual innløsning du innløse før ordrens utløpsperiode ender. Når den utløper, frigjøres autorisasjonen og midlene kan ikke innløses. Sett en passende expiration_period for din leveringstidslinje.

Du kan sette capture_mode på ordrenivå uten å angi transactions. Den hostede betalingssiden vil da kun vise betalingsmetoder som støtter den angitte innløsningsmodusen.

Sjekke innløsbart beløp

Før innløsning kan du sjekke hvor mye som er tilgjengelig for innløsning ved å be om amount_details:

curl -u YOUR_API_KEY: \
  "https://api.costplus.online/v1/orders/{order_id}/?fields[]=amount_details"

Svaret inkluderer et amount_details-objekt:

{
  "amount": 5000,
  "amount_details": {
    "capturable": 5000,
    "captured": 0,
    "refundable": 0,
    "refunded": 0,
    "voidable": 5000,
    "voided": 0
  }
}

Ordrelinjer

Når du bruker innløsninger og annulleringer per ordrelinje, bruk disse typene:

TypeBeskrivelse
physicalFysisk produkt
discountRabattbeløp
shipping_feeFraktkostnad
sales_taxMerverdiavgift
digitalDigitalt produkt
gift_cardGavekort
store_creditButikkreditt
surchargeTilleggsavgift

Innløse betalinger

Innløsning per ordrelinje

POST /v1/orders/{id}/transactions/{transaction_id}/captures/orderlines
Request body
{
  "description": "Shipping item #1",
  "order_line": {
    "merchant_order_line_id": "item-001",
    "quantity": 1
  }
}

Innløsning per beløp

POST /v1/orders/{id}/transactions/{transaction_id}/captures/amount
Request body
{
  "description": "Partial capture",
  "amount": 2500
}

Annullere betalinger

Annullering frigjør de autoriserte midlene tilbake til kunden.

Annullering per ordrelinje

POST /v1/orders/{id}/transactions/{transaction_id}/voids/orderlines
Request body
{
  "description": "Voiding item #2",
  "order_line": {
    "merchant_order_line_id": "item-002",
    "quantity": 1
  }
}

Annullering per beløp

POST /v1/orders/{id}/transactions/{transaction_id}/voids/amount
Request body
{
  "description": "Partial void",
  "amount": 1500
}

Spørringsparametere

Legg til spørringsparametere for å inkludere ekstra detaljer i svaret:

ParameterBeskrivelse
?fields[]=order_line_detailsInkluder ordrelinjeoversikt
?fields[]=amount_detailsInkluder beløpsoversikt

Optimistisk låsing

Innløsnings- og annulleringsendepunktene støtter ETag-basert optimistisk låsing via if-match-headeren. Dette forhindrer kappløpssituasjoner når flere systemer forsøker å innløse samme transaksjon.

Capture with optimistic locking
curl -X POST https://api.costplus.online/v1/orders/{id}/transactions/{tid}/captures/amount \
  -u {api_key}: \
  -H "Content-Type: application/json" \
  -H "if-match: \"etag-value\"" \
  -d '{"description": "Capture", "amount": 2500}'

Hvis ETag-en ikke samsvarer (ordren ble endret siden du sist hentet den), mottar du et 412 Precondition Failed-svar.

Cost+ støtter én innløsning per autorisasjon, og annulleringer kan kun behandles før enhver innløsning. Planlegg innløsningsstrategien din deretter.

Relaterte endepunkter

On this page