Skip to content

A refund concluded

POST

Sent to your notification URL once a refund you asked for has its verdict: given back, or refused. The refund call answers before it when the PSP has not decided yet.

Media typeapplication/json

The verdict of a refund you asked for.

object
event
required
string
Allowed value: refund
notificationId
required

Stable across retries: deduplicate on it.

string
orderId
required

Your own order reference.

string
extraData

The extraData you gave THIS refund, echoed as given — absent if you gave none.

string
sessionId
required

The session the refunded tranche belongs to.

string format: uuid
attemptId
required

The refunded tranche.

string format: uuid
method
required

The payment method archetype.

string
Allowed values: card applepay wero paypal oney ancv
cardScheme

The card network this tranche ran on — on a co-badged card, the one the cardholder chose. Card tranches only; an absence means the PSP named none we could place, never that there was none.

string
Allowed values: cb visa mastercard amex maestro diners discover jcb china_union_pay
cardCode

The card as the PSP masked it: its first six and last four digits, the rest X. Card tranches only, and only when the PSP gave it — never a full number.

string
cardCountry

The country of the card’s issuer, ISO 3166 alpha-2 — when the PSP gave it.

string
transactionId
required

The refund itself — what the refund call answered.

string format: uuid
status
required

Whether the money went back. failed: nothing was refunded, and the amount is refundable again.

string
Allowed values: succeeded failed
amount
required

The refunded amount.

object
amount
required

Amount in the MINOR unit of the currency — 1000_00 is one thousand euros, never 1000.

integer
currency
required

ISO 4217 code, uppercase. One currency per session.

string
/^[A-Z]{3}$/
provider
required

Which PSP ran it.

string
providerRef

The PSP’s own reference for the refund.

string
statusCode

The PSP’s code for its verdict.

string
statusMessage

The PSP’s words for its verdict.

string
Example
{
"event": "refund",
"notificationId": "019f18f1-cbf4-762f-bd94-776f523c9ffb:019f2b44-0d1e-7c3a-8e5f-6a7b8c9d0e1f",
"orderId": "EP-123456",
"extraData": "avoir-EP-123456-01",
"sessionId": "019f18f1-cbf4-762f-bd94-776f523c9ffb",
"attemptId": "019f18f2-6ceb-729c-98b4-d60271a718e0",
"method": "card",
"cardScheme": "visa",
"cardCode": "497010XXXXXX0007",
"cardCountry": "FR",
"transactionId": "019f2b44-0d1e-7c3a-8e5f-6a7b8c9d0e1f",
"status": "succeeded",
"amount": {
"amount": 2500,
"currency": "EUR"
},
"provider": "dalenys",
"providerRef": "A180711904",
"statusCode": "0000",
"statusMessage": "Successful Operation"
}

Received. Answer 200 with the body OK in text/plain: any other answer — another status, another content type, another body — is retried at t+1 second, t+1 minute, then t+5 minutes.

Media typetext/plain
string
Allowed value: OK