Developer Docs
English
English
Open Banking PSD2 payments, create a flow, get a URL per operation and deliver it to the payer.
ZertiPay is Zertiban's product for collecting payments via Open Banking PSD2. It lets you create payment flows with one or several operations and obtain a URL per operation to deliver to the payer.
Zertiban handles the entire payment experience, from bank selection to SCA authorization, while your system receives real-time notifications via webhooks when the operation completes.
For the shared concepts of flows and operations, structure, states and transitions, see Flows and operations.
| Feature | Description |
|---|---|
| Open Banking PSD2 payment | SEPA transfer initiated from the payer's bank, no card, no traditional payment gateway |
| Multiple operations per flow | A single POST/flow/v1/flows can create several operations with independent URLs |
| Multiple recipients | Each operation can be linked to a recipient with name, email and phone number |
| Hosted payment page | Zertiban provides a fully managed and customizable payment UI |
| Bank-grade SCA | The payer authorizes directly in their usual online banking |
| Real-time webhooks | OPERATION_OPENED, OPERATION_COMPLETED, OPERATION_REJECTED, OPERATION_EXPIRED events |
| Reconciliation by externalId | Business identifiers travel through the entire flow and appear in every webhook |
Before any operation, the backend obtains an access_token via OAuth2 Client Credentials.
POST /idp/oauth2/tokenThe backend creates a flow by sending a multipart/form-data with a JSON payload.
POST /flow/v1/flowsZertiban synchronously returns:
flowUuidoperations[].urlAlways store each operation's uuid
Your system must persist operations[].uuid, since it is the internal identifier used for:
The URL from operations[].url redirects the payer to Zertiban's hosted payment page. The customer's system is responsible for delivering it via:
When the URL is opened, the operation transitions to OPENED.
CREATED → OPENEDThe payer:
No additional apps or hardware required.
When the bank confirms the operation, Zertiban updates the status to COMPLETED and sends a webhook to your endpoint.
OPENED → COMPLETED
POST https://yourapp.com/webhooks/zertiban{
"eventType": "OPERATION_COMPLETED",
"resource": {
"externalId": "OP-2026-001",
"status": "COMPLETED"
}
}The backend uses resource.externalId to:
operations[].uuid must always be stored for full traceabilityZertiban does not send communications to the payer. The customer is responsible for:
externalId and operationUuid) for reconciliation,businessUuid and credentials