Skip to content

🕒 4 minute read

Payment Refunds — API Guide v2.1

The Payment Refunds endpoint lets the API Hub retrieve the debtor's payment account details from your LFI after a payment has been made. The TPP uses those details to initiate a refund back to the original payer. This endpoint does not execute the refund itself — it only returns the account details needed to initiate one.

API Sequence Flow

Click to expand

GET /payment-consents/{consentId}/refund

Request headers

HeaderRequiredDescription
o3-provider-idYesIdentifier for your LFI registered in the Hub
o3-aspsp-idYes (deprecated)Deprecated alias for o3-provider-id. Will be removed in a future version — use o3-provider-id
o3-caller-org-idYesOrganisation ID of the TPP making the underlying request
o3-caller-client-idYesOIDC client ID of the TPP application
o3-caller-software-statement-idYesSoftware statement ID of the TPP application
o3-api-uriYesThe parameterised URL of the API being called by the TPP
o3-api-operationYesThe HTTP method of the operation carried out by the TPP (e.g. GET)
o3-ozone-interaction-idYesHub-generated interaction ID. Equals o3-caller-interaction-id if the TPP provided one
o3-caller-interaction-idNoInteraction ID passed in by the TPP, if present
o3-psu-identifierYesBase64-encoded representation of the PSU identifier JSON object

Path parameters

ParameterRequiredDescription
consentIdYesThe consent ID of the original payment consent

Response

Content-Type: application/json

Return 200 with the debtor's refund account details. The Hub wraps the response in a signed JWS before returning it to the TPP — your LFI returns plain JSON.

200 — Refund account found

Return the debtor's account details under data.refundAccount. The refundAccount object is required and must contain the debtor's IBAN and name.

json
{
  "data": {
    "consentId": "con-7f4a9b2c-1d3e-4f5a-b6c7-8d9e0f1a2b3c",
    "refundAccount": {
      "schemeName": "IBAN",
      "identification": "AE070331234567890123456",
      "name": {
        "en": "Ibrahim Al Suwaidi"
      }
    }
  },
  "meta": {}
}
data.refundAccount
FieldTypeRequiredDescription
schemeNamestringYesAccount identifier scheme — always IBAN
identificationstringYesThe debtor's IBAN
nameobjectYesThe account holder name
name.enstringYesAccount holder name in English (max 70 characters)
name.arstringNoAccount holder name in Arabic (max 70 characters)

Error responses

All error bodies must include errorCode and errorMessage.

403 — Forbidden
errorCodeerrorMessageWhen to use
Consent.AccountTemporarilyBlockedThe debtor account is blocked from receiving payments.The account is blocked from receiving payments for a temporary reason — e.g. account status is Suspended, or the account is otherwise unable to receive a credit transaction refund on a transient basis
Consent.PermanentAccountAccessFailureThe debtor account is blocked from receiving payments.The account is blocked from receiving payments permanently — e.g. account status is Closed, Deceased, or Unclaimed

API Reference

See the GET /payment-consents/{consentId}/refund API Reference for the full request and response schema.