API Reference (v3)
Download OpenAPI specification:Download
The CyberPay API allows merchants to accept payments using popular payment methods in countries around the world.
This API is designed using REST, and supports Hosted and Direct integrations:
- Hosted Cashier: Our quick-to-integrate approach provides you with a hosted cashier UI. An easy solution for the merchant’s customers to initiate and complete payments using their preferred payment options from different countries.
- Direct integration using API only: Use our API and your own UI.
- Webhook: Information about the webhook system.
| Error Code | Status | Error Reason | Description |
|---|---|---|---|
| 1000 | DECLINED | Validation error. | Default validation error. |
| 1001 | DECLINED | Missing phone number. | Customer phone number is missing. |
| 1002 | DECLINED | Invalid document id. | Document ID is not accepted by the provider. |
| 1003 | DECLINED | Invalid document type. | Document type is not accepted by the provider. |
| 1004 | DECLINED | Invalid phone number. | Phone number is incorrect. |
| 1005 | DECLINED | Invalid bank account format. | Bank account format is invalid. |
| 1006 | DECLINED | Invalid zip code. | Zip code format is invalid or missing. |
| 1007 | DECLINED | Payment amount is too low. | Payment amount is too low. |
| 1008 | DECLINED | Payment amount is too high. | High amount received. |
| 1009 | DECLINED | Invalid amount. | Invalid payment amount, wrong format perhaps? |
| 1010 | DECLINED | Payment option is not allowed. | The selected payment option is not enabled for the brand. |
| 1011 | DECLINED | Selected payment option is not allowed in this country. | |
| 1012 | DECLINED | Selected payment option is not allowed for this currency. | |
| 1013 | DECLINED | Payment amount is too low for this payment option. | |
| 1014 | DECLINED | Payment amount is too high for this payment option. | |
| 1100 | ERROR | Contact support to confirm payment. | Contact support to confirm payment. |
| 3000 | DECLINED | Insufficient card funds. | Card doesn't have enough funds to complete the transaction. |
| 3001 | DECLINED | Do not honour. | |
| 3002 | DECLINED | Untrusted transaction. | Risk decline. |
| 3003 | DECLINED | Abandoned 3DS. | |
| 3004 | DECLINED | Invalid CVV2/CVC2. | |
| 3005 | DECLINED | Invalid cardholder name. | Cardholder name wasn't accepted. |
| 3006 | DECLINED | Exceeded amount limit. | |
| 3007 | DECLINED | Card expired. | An expired card was used. |
| 3008 | DECLINED | Transaction already in progress. | A transaction is already in progress. |
| 3009 | DECLINED | Invalid card number. | |
| 3010 | DECLINED | Customer has failed 3DS. | 3DS was abandoned by customer. |
| 3011 | DECLINED | No card record. | |
| 3012 | DECLINED | Pickup card. | |
| 3013 | DECLINED | Charge count limit reached for this card. | |
| 3014 | DECLINED | Exceeded amount limit. | |
| 3015 | DECLINED | Transaction not permitted to cardholder. | |
| 3016 | DECLINED | Visa decline. | The transaction was declined by the card scheme (Visa). |
| 3017 | DECLINED | Duplicate transaction. | |
| 3018 | DECLINED | Payment was not received. | |
| 3019 | DECLINED | Recalculation. | |
| 3020 | DECLINED | Transaction amount less than allowed. | |
| 3021 | DECLINED | Country is blocked. | |
| 3022 | DECLINED | Transaction blocked. | Generic blocked transaction. |
| 3023 | DECLINED | Declined by card Issuer. | VSIFC |
| 3024 | DECLINED | Card type declined. | This type of card is blocked. |
| 3025 | DECLINED | Transaction not allowed in country. | Only a local card can be used. |
| 3026 | DECLINED | Mastercard Decline. | The transaction was declined by the card scheme (Mastercard). |
| 3027 | DECLINED | Acquirer side error. | Acquirer side error. |
| 3028 | DECLINED | Card not enrolled to 3D. | Card not enrolled to 3D. |
| 3029 | DECLINED | Authentication Rejected | Card Authentication Rejected |
| 3030 | DECLINED | Previous Transaction already in progress. | Previous Transaction already in progress |
| 3031 | DECLINED | Restricted card. | |
| 3032 | DECLINED | Suspected fraud. | |
| 3033 | DECLINED | This Transaction was Declined by Scheme (Visa) | Card-scheme decline. |
| 3034 | DECLINED | Previous Transaction already in progress | A previous transaction is still in progress. |
| 3035 | DECLINED | Invalid card expiry date | The card expiry date is invalid. |
| 3045 | DECLINED | Risk Engine Decline | Declined by the risk engine. |
| 991 | DECLINED | Acquirer timeout. | The acquirer did not respond within the allowed time. |
| 992 | DECLINED | Blacklisted IP. | |
| 993 | DECLINED | Customer blacklisted. | |
| 994 | DECLINED | Unidentified subject. | Blacklisted card. |
| 995 | DECLINED | No payment options were found. | No payment options were found for the payment. |
| 996 | DECLINED | Currency conversion error. | Could not convert currency. |
| 997 | DECLINED | No route was found. | Couldn't route payment to any provider. |
| 998 | DECLINED | Adapter timeout. | Communication error with our adapter. |
| 999 | DECLINED | Miscellaneous error. | Default error for unmapped errors. |
Get Hosted Cashier link
Initiate a payment session and receive a link to the Hosted Cashier UI.
Session lifetime depends on the environment's configuration. Contact CyberPay for the timeout used by your integration. Only one payment is allowed per session. Redirect the customer to the exact cashierUrl returned; do not construct this URL yourself.
Send X-Signature when body-signature enforcement is enabled for your brand. Successful responses include X-Signature. See Signatures.
Authorizations:
header Parameters
| X-Signature | string Required when body-signature enforcement is enabled for the brand. Base64 HMAC-SHA256 of the JSON-serialized request body using the brand signature key. |
Request Body schema: application/jsonrequired
This endpoint will generate a payment session. The Hosted Cashier will display available payment options based on the given country/currency/amount parameters.
Supply the customer details available to your integration. Additional information may be collected in the cashier.
| country required | string ISO alpha-2 country code |
| currency required | string ISO currency code |
| amount | number Optional payment amount. Fiat currencies allow at most two decimal places; supported cryptocurrencies allow at most eight. |
| redirectUrl required | string Merchant redirect page after payment. |
| notificationUrl | string Merchant notification webhook URL. This value overrides the notification URL configured in the merchant portal. |
| language | string ISO alpha-2 language code |
required | object non-empty A non-empty customer object is required. Individual fields are optional at request validation; the selected method may require additional details in the cashier. Use name for the full name, rather than the split-name fields used by v3. |
| merchantReference | string <= 255 characters Your unique payment reference. Generated when omitted. |
| merchantDomain | string <= 255 characters Required for payment-facilitator brands. Must exactly match a domain configured for the brand. |
| paymentReference | string Reference to be used for the payment. |
| userId | string User identifier on the merchant system. |
| extra1 | string Optional merchant metadata for tracking the payment. |
| extra2 | string Optional merchant metadata for tracking the payment. |
| extra3 | string Optional merchant metadata for tracking the payment. |
| storedToken | string Stored payment credential. |
| tax | string Tax percentage. |
object Shipping address object. | |
Array of objects Array of product details. |
Responses
Request samples
- Payload
{- "country": "BR",
- "currency": "BRL",
- "amount": 130,
- "language": "ES",
- "customer": {
- "name": "John Doe",
- "phone": "+34666999666",
- "userDevice": "MOBILE",
- "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
- "ip": "84.232.140.77",
- "address": {
- "street": "32 Windsor Gardens",
- "streetNumber": "24",
- "country": "GB",
- "zipCode": "W9 3RG",
- "city": "London",
- "state": "Great London."
}, - "identify": {
- "number": "76486883X",
- "type": "DNI"
}
}, - "paymentReference": "Invoice ABC123",
- "userId": "Merch_User_123",
- "extra1": "extraData001",
- "extra2": "extraData002",
- "extra3": "extraData003",
- "storedToken": "index-stored",
- "tax": "21%",
- "shippingAddress": {
- "street": "32 Windsor Gardens",
- "streetNumber": "24",
- "country": "GB",
- "zipCode": "W9 3RG",
- "city": "London",
- "state": "Great London."
}, - "orderDetails": [
- {
- "productName": "shirt-1233474",
- "quantity": 1,
- "dimensions": "85x51",
- "description": "Blue sports t-shirt "
}
]
}Response samples
- 201
- 401
{- "transactionId": "54ed4d33-9c24-4ef0-a7f8-242920a657e5"
}Get Hosted Cashier link
Initiate a payout session and receive a link to the Hosted Cashier UI.
Session lifetime depends on the environment's configuration. Contact CyberPay for the timeout used by your integration. Only one payout is allowed per session. Redirect the customer to the exact cashierUrl returned; do not construct this URL yourself.
Send X-Signature when body-signature enforcement is enabled for your brand. Successful responses include X-Signature. See Signatures.
Authorizations:
header Parameters
| X-Signature | string Required when body-signature enforcement is enabled for the brand. Base64 HMAC-SHA256 of the JSON-serialized request body using the brand signature key. |
Request Body schema: application/jsonrequired
This endpoint will generate a payout session. The Hosted Cashier will display available payout options based on the given country/currency/amount parameters.
| country required | string ISO alpha-2 country code. |
| currency required | string ISO alpha-3 currency code. |
| amount required | number decimal places <= 2 Required payout amount, with at most two decimal places for every currency. |
| redirectUrl required | string Merchant page to redirect the customer to after the payout. |
| notificationUrl | string Merchant notification webhook URL. This value overrides the notification URL configured in the merchant portal. |
required | object Recipient details used to prepare the payout. |
| merchantReference | string Your unique payout reference. Generated when omitted. |
| merchantDomain | string Required for payment-facilitator brands. Must exactly match a domain configured for the brand. |
| userId | string User ID generated by the merchant system. |
| language | string ISO alpha-2 language code. Values: ‘EN’, ‘ES’, ‘PT’, ‘IN’. |
| extra1 | string Optional payload to help the merchant track this payout. |
| extra2 | string Optional payload to help the merchant track this payout. |
| extra3 | string Optional payload to help the merchant track this payout. |
Responses
Request samples
- Payload
{- "country": "BR",
- "currency": "BRL",
- "amount": 150,
- "customer": {
- "name": "John Doe",
- "phone": "+34666999666",
- "userDevice": "MOBILE",
- "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
- "ip": "84.232.140.77"
}, - "userId": "merchant_user123",
- "language": "PT",
- "extra1": "merchant extra value 1",
- "extra2": "merchant extra value 2",
- "extra3": "merchant extra value 3"
}Response samples
- 201
- 401
{- "transactionId": "54ed4d33-9c24-4ef0-a7f8-242920a657e5"
}Get Payment Options (Optional)
Get available payment options enabled for your merchant. The request can be filtered by country and currency. This optional call does not create a session. See the v3 pay-in guide.
Authorizations:
query Parameters
| country | string^[A-Za-z]{2}$ Example: country=DE Optional two-letter country code. |
| currency | string Example: currency=EUR Optional ISO 4217 currency code. |
| excludeCountries | boolean Default: false Set to true to return empty availableCountries arrays. |
Responses
Response samples
- 200
- 400
[- {
- "id": "4864ab16-2fa4-464a-b692-a74cab45aaf8",
- "name": "Card",
- "logo": "",
- "type": "CARD",
- "suboptions": [ ],
- "availableCountries": [
- {
- "code": "WORLDWIDE",
- "currencies": [
- "ANY"
]
}
]
}
]Submit Payment
Create a pay-in. See the complete v3 integration guide for card and APM examples, required fields, customer actions, and webhook handling.
Requests must first pass validation. Card payments require a non-empty paymentData object with valid card details or a saved card token. Missing or invalid card data can return HTTP 400 before a transaction is created. After validation, missing country, customer, or method-specific information can trigger a Hosted Cashier redirect.
Note: 3D Secure authentication for card payments uses a redirect URL. The destination page may contain an iframe, so opening it inside another iframe may cause issues.
Authorizations:
header Parameters
| X-API-KEY required | string Example: 52495b8782698e9d0309897795aa24ad20a63710f54d9d244d7523a6e17bdeba0da13c72a282fd88e545f502b2fae9ae Your merchant API key. |
| Idempotency-Key | string Example: 7ad6249c-b1eb-434f-83db-e42676ea3e28 Card payments only. A key of up to 64 characters can replay a stored response for the same merchant and brand. Records expire after 48 hours. Early cashier redirects and in-flight requests may not have a stored response; reconcile before retrying. See the retry guidance. |
| Signature | string Example: QGrW5AgToyf6wytINIdNVHiNwIHP9PvHIirGwgr88Jc= Card payments only. Base64-encoded HMAC-SHA256 signature, required when signature enforcement is enabled for the brand. The string to sign must match this format Note: Signature enforcement can be enabled for your brand. |
Request Body schema: application/json
| paymentOptionId required | string <uuid> Selected payment option ID. For example, |
| country | string = 2 characters ISO alpha-2 country code. Set this if possible; otherwise, the customer will be redirected to the cashier to choose from a dropdown. |
| currency required | string = 3 characters ISO 4217 currency code supported by the selected method. |
| amount required | number >= 0 Decimal value allowing at most two digits after the decimal point. |
| redirectUrl | string <= 500 characters Merchant page to redirect the customer to after the payment. |
| notificationUrl | string <= 500 characters Merchant notification webhook URL. This value overrides the notification URL configured in the merchant portal. |
| language | string = 2 characters ISO alpha-2 language code. Values: |
object Required and non-empty for cards; send valid card details or a saved token as described in the pay-in guide. Optional at request validation for non-card methods. Field names and processing requirements depend on the selected method. | |
object Customer object with end-user details. Some user data is needed in almost all cases. Provide as much data as possible; otherwise, the customer will be redirected to the cashier to fill in the missing details. | |
| merchantDomain | string <= 255 characters Required for payment-facilitator brands. Must exactly match a domain configured for the brand. |
| merchantReference | string [ 1 .. 255 ] characters Merchant reference. Must be unique. If omitted, CyberPay generates one. |
| paymentReference | string [ 1 .. 255 ] characters Reference to be used for the payment. If omitted, CyberPay generates one. |
| userId | string [ 1 .. 255 ] characters User ID in the merchant system. |
| extra1 | string [ 1 .. 255 ] characters Optional parameter to track this payment. |
| extra2 | string [ 1 .. 255 ] characters Optional parameter to track this payment. |
| extra3 | string [ 1 .. 255 ] characters Optional parameter to track this payment. |
object Shipping address data. | |
Array of objects Optional product details, such as quantity, dimensions, and description. Refer to the Useful Data section for more information. |
Responses
Request samples
- Payload
Full data object
{- "paymentOptionId": "4864ab16-2fa4-464a-b692-a74cab45aaf8",
- "country": "GB",
- "currency": "GBP",
- "amount": 50.32,
- "paymentData": {
- "cardNumber": "4111111111111111",
- "expiryYear": "2033",
- "expiryMonth": "12",
- "cardCvv": "111",
- "cardHolder": "cardholder name"
}, - "customer": {
- "firstName": "John",
- "lastName": "Bonham",
- "phone": "+25412340000",
- "userDevice": "MOBILE",
- "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
- "ip": "84.232.140.77",
- "address": {
- "street": "32 Windsor Gardens",
- "streetNumber": "24",
- "country": "NG",
- "zipCode": "W9 3RG",
- "city": "London",
- "state": "Great London."
}, - "document": {
- "number": "1891232542168",
- "type": "ID"
}
}, - "language": "EN",
- "paymentReference": "Invoice ABC123",
- "merchantReference": "mr-439238347213",
- "userId": "Merch_User_123",
- "extra1": "extraData001",
- "extra2": "extraData002",
- "extra3": "extraData003",
- "shippingAddress": {
- "street": "32 Windsor Gardens",
- "streetNumber": "24",
- "country": "GB",
- "zipCode": "W9 3RG",
- "city": "London",
- "state": "Great London."
}, - "orderDetails": [
- {
- "productName": "shirt-1233474",
- "quantity": 1,
- "dimensions": "85x51",
- "description": "Blue sports t-shirt"
}
]
}Response samples
- 201
- 400
- 401
- 403
Payment was completed. No further action is needed.
{- "statusCode": 200,
- "resultType": "success",
- "result": {
- "status": "COMPLETED",
- "currency": "EUR",
- "amount": 50.32,
- "merchantReference": "mr-pg06utyrbql037r",
- "transactionId": "00e34a0d-4f3d-474a-9ea8-e05f1414e57b",
- "sessionId": "dfa27e08-e6e4-4d87-8ca3-216445f11864"
}
}Confirm Payment When Required
Submit a receipt or additional confirmation for a supported payment method. Use the sessionId returned by the payment response. This is not a general approval step for pay-ins.
The required confirmation values depend on the method. Send JSON for text-only confirmation, or multipart/form-data when uploading a receipt. A receipt image or PDF must be smaller than 2 MB.
When body-signature enforcement is enabled for the brand, send X-Signature using the JSON-serialized body fields. For multipart requests, exclude the uploaded file bytes. Responses include X-Signature using the JSON-serialized response body.
A successful confirmation submission does not prove the payment completed. Follow the pay-in integration guide and await the final transaction status.
Authorizations:
header Parameters
| X-Signature | string Required when body-signature enforcement is enabled. Base64 HMAC-SHA256 of the JSON-serialized body fields using the signature key. |
Request Body schema: required
| sessionId required | string <uuid> Session ID returned by the payment response. |
| essentialKey | string [ 1 .. 255 ] characters Confirmation value required by the selected method. |
| additionalEssentialKey | string [ 1 .. 255 ] characters Additional reference required by the method. Supported UPI confirmation without a receipt requires a 12-digit UTR/RRN. |
Responses
Request samples
- Payload
{- "sessionId": "dfa27e08-e6e4-4d87-8ca3-216445f11864",
- "essentialKey": "+201001234565"
}Response samples
- 201
{- "message": "Your payment has been sent."
}1. List Payout Options
List payout methods enabled for your brand. This optional discovery call does not create a transaction or session.
Use an option's id as paymentOptionId when creating a payout. To select a specific bank or other suboption, use its suboptions[].id instead.
The response is an array, which can be empty. It does not include payout form fields or amount limits. Availability for the requested amount and required recipient details are checked when you submit the payout.
See the v3 payout integration guide.
Authorizations:
query Parameters
| country | string^[A-Za-z]{2}$ Example: country=BR Optional two-letter country code. Case-insensitive. |
| currency | string Example: currency=BRL Optional ISO 4217 currency code. |
| excludeCountries | boolean Default: false Set to true to return an empty availableCountries array for each option. |
Responses
Response samples
- 200
- 400
[- {
- "id": "4864ab16-2fa4-464a-b692-a74cab45aaf8",
- "name": "Bank Transfer",
- "type": "BANK",
- "suboptions": [
- {
- "id": "aeb6bc68-5b2f-4f80-8c43-9e660874ed3b",
- "name": "Example Bank",
- "country": "BR"
}
], - "availableCountries": [
- {
- "code": "BR",
- "currencies": [
- "BRL"
]
}
]
}
]2. Create Payout
Create a payout in one request using a payout option or suboption ID. No preceding session-creation call is required.
paymentOptionId, currency, and amount are required. Provide country, customer, and the selected method's paymentData to avoid unnecessary data-collection steps. Required recipient fields depend on the method, country, provider, and brand configuration.
If country, bank selection, or required data is missing, the response can contain a cashier redirectUrl. Redirect the customer to that URL and follow the existing transaction through webhooks or transaction queries.
HTTP 201 means the request returned a business result. Inspect the numeric body statusCode, resultType, and result.status:
| statusCode | resultType | result.status | Next step |
|---|---|---|---|
| 200 | success | PENDING | Approve or decline in the merchant portal or with POST /settle-payout. |
| 200 | success | PROCESSING | Auto-approval submitted the payout. Await the final status. |
| 300 | redirect | PROCESSING | Redirect the customer to result.redirectUrl. |
| 900 | declined | DECLINED | Inspect result.errorCode and result.errorReason. |
| 999 | error | DECLINED | Submission failed during auto-approval; inspect the error and transaction status. |
success does not confirm that funds have reached the recipient. Use webhooks or query the transaction for its final status.
Use a unique merchantReference per payout. This endpoint does not implement Idempotency-Key replay: after a timeout, reconcile the existing transaction before submitting again.
Authorizations:
Request Body schema: application/jsonrequired
| paymentOptionId required | string <uuid> An option ID or suboptions[].id returned by GET /v3/payout-options. |
| country | string^[A-Za-z]{2}$ Two-letter country code. Omission can trigger a cashier country-selection redirect. |
| currency required | string ISO 4217 currency code supported by the selected payout method. |
| amount required | number >= 0 Payout amount in the requested currency. Fiat amounts allow at most two decimal places. The method's minimum and maximum limits also apply. |
object Method-specific recipient or bank details. Field names and requirements depend on the configured payout method and provider; the options endpoint does not return a form schema. Missing required data can trigger a cashier redirect. | |
object (V3PayoutCustomer) Customer details are optional at request validation, but the selected method or brand can require them to process the payout. | |
| redirectUrl | string <= 500 characters Merchant return URL after the customer finishes the cashier flow. A browser return does not confirm payout completion. |
| notificationUrl | string <= 500 characters HTTPS webhook endpoint. Overrides the brand's configured notification URL for this payout. |
| merchantReference | string <= 255 characters Your unique payout reference, recommended for reconciliation. Generated when omitted. A duplicate reference for the same merchant and country is rejected; this is not an idempotency replay mechanism. |
| paymentReference | string <= 255 characters Payment reference. Generated when omitted. |
| userId | string <= 255 characters Your stable customer ID. Generated when omitted. Existing customer profile data may be used to fill missing details. |
| language | string^[A-Za-z]{2}$ Two-letter cashier language code. |
| merchantDomain | string Required for payment-facilitator brands. Must exactly match a domain configured for the brand. |
| extra1 | string <= 255 characters Additional merchant information. |
| extra2 | string <= 255 characters Additional merchant information. |
| extra3 | string <= 255 characters Additional merchant information. |
Responses
Request samples
- Payload
{- "paymentOptionId": "4864ab16-2fa4-464a-b692-a74cab45aaf8",
- "currency": "BRL",
- "amount": 100
}Response samples
- 201
- 400
{- "statusCode": 200,
- "resultType": "success",
- "result": {
- "status": "PENDING",
- "currency": "BRL",
- "amount": 100,
- "merchantReference": "withdrawal-2026-0001",
- "transactionId": "f6ab9d53-db1e-4cd9-bafa-a8e31247054d",
- "sessionId": "8a37d25f-bf46-4f58-920e-ed7c2a27c9fb"
}
}3. Approve or Decline Payout
Approve or decline an existing payout in PENDING status. You can also do this in the merchant portal. This step is needed when automatic payout approval is disabled for the brand.
APPROVE submits the payout to the provider, subject to provider availability and sufficient merchant balance. It can still be declined. DECLINE marks the transaction as declined without sending funds.
This unversioned endpoint retains its legacy response format: string statusCode, top-level status, and string result. It does not return the v3 resultType envelope.
The current response to an intentional DECLINE uses statusCode: "999", status: "DECLINED", and result: "Could not process payout.". This also represents a successful merchant rejection; inspect the transaction status rather than retrying the request.
Send X-Signature when body-signature enforcement is enabled for your brand. The response includes X-Signature. See signatures.
Authorizations:
header Parameters
| X-Signature | string Required when body-signature enforcement is enabled. Base64 HMAC-SHA256 of the JSON-serialized body using the signature key. |
Request Body schema: application/jsonrequired
| action required | string Enum: "APPROVE" "DECLINE" |
| transactionId required | string <uuid> The result.transactionId returned by POST /v3/payout. |
Responses
Request samples
- Payload
{- "action": "APPROVE",
- "transactionId": "f6ab9d53-db1e-4cd9-bafa-a8e31247054d"
}Response samples
- 201
- 400
{- "statusCode": "000",
- "status": "PROCESSING",
- "transactionId": "f6ab9d53-db1e-4cd9-bafa-a8e31247054d",
- "merchantReference": "withdrawal-2026-0001",
- "result": "Payout settle was submitted successfully."
}Refund by Reference
Refund a completed payment to its original account using your merchantReference. The transaction must have status COMPLETED, its provider must support refunds, and its payment method must allow them. This endpoint requests a full refund; an authorization alone is not sufficient.
Send X-Signature when body-signature enforcement is enabled for your brand. Successful responses include X-Signature. See Signatures.
Authorizations:
header Parameters
| X-Signature | string Required when body-signature enforcement is enabled for the brand. Base64 HMAC-SHA256 of the JSON-serialized request body using the brand signature key. |
Request Body schema: application/jsonrequired
| merchantReference required | string Reference submitted for the original payment. |
Responses
Request samples
- Payload
{- "merchantReference": "order-2026-0001"
}Response samples
- 201
- 400
{- "transactionId": "feb6a715-9f7c-49d4-b6f7-10c59d18a194",
- "status": "REFUNDED",
- "partialRefund": false,
- "paymentAmount": 50.32,
- "currency": "EUR",
- "country": "DE",
- "type": "CARD",
- "merchantReference": "order-2026-0001",
- "createdAt": "2026-09-01T10:00:00.000Z",
- "updatedAt": "2026-09-01T10:05:00.000Z"
}Get Transaction Status
Get transaction details
Return all details about the transaction by a given transaction ID.
Authorizations:
path Parameters
| transactionId required | string |
Responses
Response samples
- 200
- 404
{- "id": "099cdc76-45d1-49e1-8985-e1c82dcfadb3",
- "sessionId": "90545ca3-fe0d-457c-a9da-283ee2561d82",
- "country": "GB",
- "currency": "GBP",
- "paymentAmount": 10,
- "originalCurrency": "GBP",
- "originalAmount": 10,
- "method": "Bank Transfer",
- "status": "COMPLETED",
- "paymentReference": "invoice-4726",
- "merchantReference": "Merchant Unique Value",
- "customer": {
- "name": "John Doe",
- "phone": "+34666999666",
- "userDevice": "MOBILE",
- "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
- "ip": "84.232.140.77",
- "address": {
- "street": "32 Windsor Gardens",
- "streetNumber": "24",
- "country": "GB",
- "zipCode": "W9 3RG",
- "city": "London",
- "state": "Great London."
}, - "identify": {
- "number": "76486883X",
- "type": "DNI"
}
}, - "shippingAddress": {
- "street": "32 Windsor Gardens",
- "streetNumber": "24",
- "country": "GB",
- "zipCode": "W9 3RG",
- "city": "London",
- "state": "Great London."
}, - "orderDetails": [
- {
- "productName": "shirt-328471",
- "dimensions": "85x51",
- "description": "Blue sports t-shirt "
}
], - "errors": null,
- "createdAt": "2022-08-04T08:23:50.738Z",
- "updatedAt": "2022-08-05T08:23:50.738Z"
}