Payment Service API Documentation
text/plain
if encrypted or application/json
if no encryption is activated.ngrok
to forward the requests to your local development server.
When you receive an event, your endpoint should return an HTTP 2xx status code indicating that the event has been successfully received. Webhooks are automatically retried for up to 24 hours if no HTTP 200 status code is returned. The call will also be considered failed if your endpoint doesn’t respond within 10 seconds.
When a webhook call fails, we’ll retry the call 6 more times. By default, we wait:
End-user completes purchase
Handling UI Interactions
Initiating Payment
/payments/initiate
).Redirecting to Hosted Payment Page
redirectUrl
for the Hosted Payment Page is returned.User completes payment
Handling Redirect
returnUrl
specified in the request.Checking Payment Status
/payments/status
) to check the payment status.Pending Status
Displaying Results
Authorization
header as follows:/payments/initiate
Header | Value |
---|---|
Content-Type | application/json |
Authorization | Bearer yourAccessToken |
Request Body Parameters
Field | Type | Required | Description | Format / Allowed Values |
---|---|---|---|---|
referenceId | string | Yes | Unique identifier for the transaction generated by your system. | Alphanumeric |
transactionDescription | string | Yes | Description of the transaction. | Free text |
returnUrl | string | Yes | URL to redirect after payment completion - back to the calling app or website. | URL |
IBAN | string | Yes | Recipient’s IBAN for direct payment. | IBAN format |
storedBIC | string | No | Pre-stored BIC code. | BIC format |
language | string | No | Language code | ISO 639-1 (e.g., “DE”) |
currency | string | Yes | Currency code | ISO 4217 (e.g., “EUR”) |
amount | string | Yes | Payment amount formatted as a decimal string. | Decimal (e.g., “12.50”) |
country | string | No | Country code | ISO 3166-1 alpha-2 (e.g., “DE”) |
Response Structure
Field | Type | Description |
---|---|---|
requestId | string | Unique identifier for the request. Will be used to query the transfer status in the Retrieve Transaction Status api call below. |
redirectUrl | string | URL to redirect the user to the hosted payment page. |
/payments/status
Request Body Parameters
Field | Required | Type | Description |
---|---|---|---|
referenceId | Yes | string | Unique identifier for the transaction generated from the Initiate Payment API call. |
Response Structure
Field | Type | Description |
---|---|---|
status | string | Transaction status (PENDING , COMPLETED , FAILED ). |
statusReasonInformation | string | Additional details about the status. |
Status Response Fields
Status | Description |
---|---|
PROCESSING | The transaction is in process; the final status has not yet been received from the bank. |
SUCCESS | Successful payment initiation has been received from the bank. Settlement might not be complete. |
INITIATED | The transaction was initiated but the result is unknown. This status will not be updated further. |
PENDING | Authorization process at the bank is complete; transfer is pending redemption. Relevant for 2-step payment flows. |
PENDING_EXTERNAL_AUTHORIZATION | The user is sent to the bank to complete the authorization process. If not completed, it transitions to FAILURE_EXPIRED. |
FAILURE_GENERIC | Indicates a technical failure with no further details from the bank. |
FAILURE_PERMISSION_DENIED | The user has been denied authorization at the bank. Relevant for 2-step payment flows. |
FAILURE_CANCELED | Payment initiation was canceled before execution. |
FAILURE_EXPIRED | Authorization process was not completed within the allowed timeframe and the payment expired. |
FAILURE_INSUFFICIENT_FUNDS | Payment initiation request was rejected due to insufficient funds. |
FAILURE_DECLINED | Payment initiation was rejected by the bank. |
SETTLEMENT_IN_PROGRESS | Waiting for payment to reach the payee bank. |
SETTLEMENT_COMPLETED | Payment has reached the payee bank and reconciliation is complete. |
SETTLEMENT_INCOMPLETE | Reconciliation failed; corresponding transaction not found in the settlement account. |
language
field in the payment initiation request. Supported languages include:
Error Code | Description |
---|---|
400 | Invalid Request: Missing required fields. |
401 | Unauthorized: Authentication failed. |
403 | Permission to access this endpoint is denied. |
404 | Not Found: Reference ID not recognized. |
429 | Too many requests. |
500 | Internal Server Error: Unexpected server issue. |
501 | The operation was not implemented. |
503 | Service is unavailable. |
504 | Gateway has timed out. |
/payments/challenge-deposit
Header | Value |
---|---|
Content-Type | application/json |
Authorization | Bearer yourAccessToken |
Request Body Parameters
Field | Type | Required | Description | Format / Allowed Values |
---|---|---|---|---|
amount | string | Yes | Small amount sent for verification. | Decimal (e.g., "0.10" ) |
currency | string | Yes | Currency code. | ISO 4217 (e.g., "EUR" ) |
description | string | Yes | Description is mandatory and cannot be blank. It must not contain spaces or special characters, but hyphens (-) are allowed as separators. | Alphanumeric |
firstName | string | Yes | First name for identity verification. | Free text |
lastName | string | Yes | Last name for identity verification. | Free text |
piiToggle | integer | Yes | Determines if PII details should be returned. | 0 (no PII) / 1 (PII) |
nameMatchLogic | string | Yes | Name matching logic type. | "exact" or "fuzzy" |
Response Structure
Field | Type | Description |
---|---|---|
description | string | The description sent in the request. |
status | string | Status of the challenge deposit ("OK" , "FAIL" ). |
globalResult | object | Contains verification score and assessment result. |
globalResult.overall | string | Overall assessment ("review" , "pass" , "fail" ). |
globalResult.totalScore | integer | Score (0-100) indicating verification quality. |
nameMatchScore | integer | Score (0-100) indicating how well names matched. |
iban | string | Verified IBAN. |
returnedFirstName | string | First name returned from verification, if piiToggle = 1 , otherwise omitted. |
returnedLastName | string | Last name returned from verification, if piiToggle = 1 , otherwise omitted. |