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:
| Modus | Oppførsel |
|---|---|
manual | Du 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. |
delayed | Midler innløses automatisk i det expiration_period utløper. |
{
"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 må 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:
| Type | Beskrivelse |
|---|---|
physical | Fysisk produkt |
discount | Rabattbeløp |
shipping_fee | Fraktkostnad |
sales_tax | Merverdiavgift |
digital | Digitalt produkt |
gift_card | Gavekort |
store_credit | Butikkreditt |
surcharge | Tilleggsavgift |
Innløse betalinger
Innløsning per ordrelinje
POST /v1/orders/{id}/transactions/{transaction_id}/captures/orderlines{
"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{
"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{
"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{
"description": "Partial void",
"amount": 1500
}Spørringsparametere
Legg til spørringsparametere for å inkludere ekstra detaljer i svaret:
| Parameter | Beskrivelse |
|---|---|
?fields[]=order_line_details | Inkluder ordrelinjeoversikt |
?fields[]=amount_details | Inkluder 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.
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
- Innløs per beløp — innløs et spesifikt beløp fra en autorisert ordre
- Innløs per ordrelinje — innløs spesifikke ordrelinjer
- Annuller per beløp — annuller et spesifikt beløp fra en autorisert ordre
- Annuller per ordrelinje — annuller spesifikke ordrelinjer