PaidBy (Open Banking)
- 1 Overview
- 2 Integration flow
- 3 Create an API request
- 4 API endpoints
- 5 Request headers
- 6 Request objects
- 7 EUR request example
- 8 GBP request example
- 9 Request-field reference
- 10 Receive the API response
- 11 Response example
- 12 Response-field reference
- 13 Open the PaidBy transaction page
- 14 Backend integration
- 15 Frontend integration
- 16 Changing language
- 17 Payment notifications
- 18 Transaction events & states
- 19 Error handling
- 20 HTTP response codes
Overview
The merchant backend submits a PaidBy authorization request. A successful API response includes a redirect_url that the merchant frontend uses to open the hosted transaction page. Final payment status must be confirmed through notifications and transaction states.
Integration flow
The PaidBy Open Banking flow consists of 4 steps:
Create an API request.
Receive the API response.
Open the ISX transaction page.
Display the result page.
The merchant backend should create the API request because the request contains merchant credentials and configuration that must not be exposed in frontend code.
Merchant frontend |
Create an API request
POST /v1/authorization/The API request consists of the HTTP method, URL, headers and JSON body. Different data may be included in the request, but the required objects and fields must be supplied for a successful transaction flow.
API endpoints
Environment | Method | API URL |
|---|---|---|
stage | POST | |
production | POST |
Use the stage URL while developing and testing the integration. Use the production URL only after the merchant account and production configuration have been approved.
Request headers
The API header values are provided by the ISX relationship management team.
From: YOUR_API_CLIENT_NAME
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/jsonHeader | Value | Required | Description |
|---|---|---|---|
|
| Yes | Identifies the API client. |
|
| Yes | Bearer token used to authenticate the request. |
|
| Yes | Indicates that the request body contains JSON. |
The word Bearer must be included before the API token. Omitting it will cause an authentication error. Do not expose the From value or bearer token in frontend code.
Request objects
Object | Description | Required |
|---|---|---|
| Workflow name supplied by the ISX relationship management team. | Yes |
| Information and configuration relating to the merchant. | Yes |
| Information about the payment transaction. | Yes |
| Information about the client making the payment. | Yes |
| Information identifying the client account. | Yes |
| Information about the bank account to debit. Used for applicable EUR payments. | Conditional |
Replace the example workflow and merchant values with those supplied for the merchant integration.
EUR request example
GBP request example
Request-field reference
Workflow
Field | Type | Required | Description |
|---|---|---|---|
| String | Yes | Workflow name supplied by the ISX relationship management team. |
Merchant object
Field | Type | Required | Description |
|---|---|---|---|
| String | Yes | Merchant identifier supplied by the ISX relationship management team. |
| String | Yes | Merchant endpoint that receives transaction notifications. |
| String | Yes | URL to which the customer is returned after the hosted transaction flow. |
Transaction object
Field | Type | Required | Description |
|---|---|---|---|
| String | Yes | Unique merchant transaction identifier. |
| String | Yes | Transaction amount expressed in the lowest currency unit. |
| String | Yes | Transaction currency. EUR and GBP are documented, depending on the merchant contract. |
| String | Yes | Unique merchant transaction reference. |
Both transaction.id and transaction.reference must be unique.
Payment amount | API value |
|---|---|
EUR 1.00 | 100 |
EUR 10.00 | 1000 |
GBP 25.50 | 2550 |
Client object
Field | Type | Required |
|---|---|---|
| String | Yes |
| String | Yes |
| String | Yes |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
| String | No |
Account object
Field | Type | Required | Description |
|---|---|---|---|
| String | Yes | Customer identifier assigned by the merchant. Each identifier must be unique and paired with the customer for future transactions. |
Account-holder object
The account_holder object contains information about the bank account to debit and applies to relevant EUR payment flows.
Field | Type | Required | Description |
|---|---|---|---|
| String | No | Name on the account. |
| String | No | Type of account. |
| String | Conditional | IBAN of the account. Required when account_holder is included. |
| String | Conditional | Bank identifier code. |
When the account_holder object is supplied, iban becomes mandatory. Providing the customer IBAN may simplify the EUR customer experience by allowing the bank-selection screen to be skipped.
Receive the API response
After the POST request is sent, the PaidBy API returns information about the created transaction, including the hosted redirect_url. The merchant backend should validate the HTTP response and required response fields before returning the redirect URL to the frontend.
Response example
Following redirect_url opens the hosted transaction page.
Response-field reference
Field | Type | Description |
|---|---|---|
| String | Unique response identification code. |
| String | Unique response identification code. |
| String | Transaction secret that can be used to validate ISX notifications. |
| String | Context identifier associated with the transaction. |
| String | Transaction mode detected by ISX. |
| Object | Information from the original transaction request. |
| String or collection | Transaction data returned by the API. |
| String | Current state of the transaction. |
| String | Meaningful combined ISX transaction state. |
| String | Hosted URL used to continue the transaction flow. |
Original-message fields
Field | Type | Description |
|---|---|---|
| String | Merchant identifier from the request. |
| String | Merchant transaction ID from |
| String | Merchant transaction reference. |
Open the PaidBy transaction page
Use the redirect_url returned by the API response. Do not construct or hardcode a hosted transaction URL when a valid redirect_url has been returned.
Browser redirect.
New browser window.
Hosted iframe or dialog, where supported by the merchant integration.
Backend integration
Use the correct environment endpoint.
Add the assigned
Fromheader.Add the assigned bearer token using
Authorisation.Send the documented request objects.
Ensure
transaction.idandtransaction.referenceare unique.Store the returned transaction identifiers and secret securely.
Return
redirect_urlto the frontend.Receive and validate transaction notifications.
Confirm the final transaction state before fulfilling goods or services.
Frontend integration
Send the transaction information to the merchant backend.