The Refund API enables merchants to issue full or partial refunds linked to SUCCEEDED
payments. Refunds are triggered from the merchant’s backend and are tracked using a merchant-generated reference. To ensure a payment is not refunded multiple times Bancontact Payconiq uses indempotency checks. It is important to:
- Keep the same indempotency key for refund retrys (failure code 4XX or 5XX)
- Change the indempotency key if you are deliberately issuing multiple refunds for a payment.
Refunds can be initiated, monitored, and supported through the set of endpoints defined below.
Succesfull refunds will be deducted from your ongoing settlement payout (bulk payout). If you have insufficient funds the refund will be refused.
Important Note: the
getRefundIban
endpoint should be called unsing an API Key and does not require activation in Bancontact Payconiq's backend. However, thecreateRefund
endpoint requires a JSON Web Signature (JWS) and must be activated by our Support Team in our backend. To activate this endpoint, please reach out to your Account Manager or to our Support Team at devsupport@payconiq.be
For the full endpoint documentation, please refer to the Merchant Payment API. for GET Refund Endpoint and to Refund API for CREATE Refund and GET Refund by ID endpoints.
For more information on Payouts and Remittance Information, please refer to this guide.
Retrieve the IBAN of the consumer who made the original payment. This endpoint is useful for refund processing, validation, or audit logging purposes.
This request dos not handle any money flow, but will simply provide the debtor's data.
Name | Type | Required | Description |
---|---|---|---|
paymentId | string | Yes | The ID of the original Payconiq payment. |
Debtor's IBAN
HTTP Status | Code | Meaning |
---|---|---|
401 | UNAUTHORIZED | API key is invalid or missing. |
403 | ACCESS_DENIED | Access token is invalid. |
422 | REFUND_NOT_FOUND or REFUND_NOT_AVAILABLE | The Payment is P2P or Debtor Details are not Available |
404 | PAYMENT_NOT_FOUND | No payment found for the specified ID. |
500 | TECHNICAL_ERROR | Internal error in the payment service. |
- PREPROD merchant API
https://merchant.api.preprod.bancontact.net/v3/payments/{id}/debtor/refundIban
- PROD merchant API
https://merchant.api.bancontact.net/v3/payments/{id}/debtor/refundIban
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://merchant.api.preprod.bancontact.net/v3/payments/{id}/debtor/refundIban' \
-H 'Authorization: YOUR_API_KEY_HERE'
Use this endpoint to initiate a refund linked to a completed Payconiq payment.
⚠️ The payment must be in
SUCCEEDED
status to be eligible for refund.
Amount in cents
currency code. Only EUR is supported ISO 4217
refund description
refund identifier
payment identifier
Refund status after creation. Always has value 'PENDING', because refund processing is asynchronous. Current status can be checked using GET '/v3/payments/{payment-id}/refunds/{refund-id}' endpoint.
Amount in cents
currency code. Only EUR is supported ISO 4217
refund description
timestamp, when refund was created
Error code
Error message
- PREPROD merchant API
https://merchant.api.preprod.bancontact.net/payments/{payment-id}/refunds
- PROD merchant API
https://merchant.api.bancontact.net/payments/{payment-id}/refunds
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://merchant.api.preprod.bancontact.net/payments/{payment-id}/refunds' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: string' \
-H 'Signature: YOUR_API_KEY_HERE' \
-d '{
"amount": 1,
"currency": "EUR",
"description": "string"
}'