general
Overview
Salt Edge Partners Payment Initiation API aims to make payment initiation as simple as a cURL for any company that does not need to get a PSD2 Payment Initiation Service Provider license.
If you have any questions regarding how Salt Edge Partners Payment Initiation API works and how it can be used, feel free to contact us.
If you have any questions regarding your company’s eligibility for using the Partners API, please contact our Sales team.
Integrations
The Salt Edge platform is easy to integrate. However, if you think that your application could benefit more from the native look and feel, you can always contact us, and we can discuss what would be the best solution for your app.
Formats
We use JSON for all the requests and responses, including the errors.
Glossary
Most of the API revolves around several important concepts:
- Country - the country where providers are located;
- Provider - a bank or an online payments system;
- Customer - a customer of the client who is consuming Salt Edge Partners API;
- Lead - a verified end-user email associated with customer record;
- Payment - a payment that was made using Payment Initiation API;
- Payment template - a set of required and optional fields that need to be filled in order to successfully execute a payment;
- Payment field - an attribute of the payment template. Could be required or optional;
Following the guides
You can start with Authentication and follow the links in the sidebar. If you have any questions, contact us anytime using our contact form.
Quick start
This quick start guide will show the easiest path of integrating with Partners Payment Initiation API: creating a lead, initiating a payment, granting consent, authenticating in the bank interface.
Get invitation
Request an invitation through contact us or our sales team. In your request please mention which service is intended to be used: Partner Account Information, Partner Payment Initiation or both of them.
Create api keys
Any request to Salt Edge Partners API is authenticated, so before you are able to fetch any data you need to create Service API keys. To do that, visit https://www.saltedge.com/clients/api_keys and create a Service API key. You can leave Public key field blank as when you will go LIVE, signing the requests will become mandatory.
Salt Edge Partners API is supporting only Service API keys use. All communication should be done from a centralized Web Service to grant control over the data flows, security and privacy.
Each request to Partners API is authenticated with an App-id, and a Secret. Let’s store them as environment variables so that all the later requests are authenticated.
$ export APP_ID=YOUR_APP_ID
$ export SECRET=YOUR_APP_SECRET
We can provide examples in various programming languages. Start testing different connection types by using Fake and Sandbox providers to make sure that the application can handle any scenario that might happen with a real data provider (e.g. bank or standard).
Create lead
Before we can initiate any payment using Salt Edge Partners API, we need to create a Lead. A Lead in Salt Edge Partners API is the verified end-user email of your application.
The result of this request will be a Customer id
and Email.
We need to save the Customer id
(in this case “222222222222222222”), because we will use it later to create payments.
$ export CUSTOMER_ID=222222222222222222
See lead reference and customers reference for related API endpoints.
URL
https://www.saltedge.com/api/partners/v1/leads
https://www.saltedge.com/api/partners/v1/leads
Method
POST
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X POST \
-d "{ \
\"data\": { \
\"email\": \"test@email.com\" \
} \
}" \
https://www.saltedge.com/api/partners/v1/leads
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X POST \
-d "{ \
\"data\": { \
\"email\": \"test@email.com\" \
} \
}" \
https://www.saltedge.com/api/partners/v1/leads
Sample response
{
"data": {
"email": "test+123@email.com",
"customer_id": "222222222222222222"
}
}
Choose provider
In order to choose a provider that supports payments we need to execute a request.
The response will be a list of providers that support payments.
Each payment provider can support multiple ways of initiating a payment. Each of this method is called a payment template.
For instance, we can see from the response that provider fake_client_xf
supports payment templates SEPA
, FPS
, and SWIFT
.
URL
https://www.saltedge.com/api/partners/v1/providers
https://www.saltedge.com/api/partners/v1/providers
Method
GET
Sample Request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/providers
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/providers
Sample Response
{
"data": [
{
"id": "3100",
"code": "fake_client_xf",
"name": "Fake Bank with Client Keys",
"mode": "api",
"status": "active",
"interactive": true,
"instruction": "Valid credentials for this provider are:\nlogin - any string which starts with \"username\",\npassword - \"secret\"\n",
"home_url": "https://example.com",
"forum_url": "https://www.saltedge.com/support_requests/new?provider_code=fake_client_xf",
"logo_url": "https://test.cloudfront.net/logos/providers/xf/fake_client_xf.svg",
"country_code": "XF",
"created_at": "2018-07-02T11:53:11Z",
"updated_at": "2018-07-02T11:53:11Z",
"identification_mode": "client"
"payment_templates": [
"SEPA",
"FPS",
"SWIFT"
]
},
...
],
"meta": {
"next_id": null,
"next_page": null
}
}
Choose payment template
Since the provider fake_client_xf
supports the following payment templates SEPA
, FPS
, and SWIFT
, we can execute payments using only one of them.
For the purposes of this guide, let’s stick with SEPA
. We need to save the payment template identifier (in this case SEPA
), because we will use it later.
$ export PAYMENT_TEMPLATE=SEPA
To get the payment templates fields, we need to execute the following request.
The response will be a payment template object with payment fields.
From the response, we can see that payment template SEPA
requires the following fields (none of them have optional
flag set to true
, thus all are mandatory):
end_to_end_id
customer_last_logged_at
customer_ip_address
creditor_name
creditor_country_code
currency_code
amount
description
creditor_iban
The data type for each of these fields is represented by the nature
field.
Please note, that within the same payment template the set of required
and optional
payment fields for one provider can vary from the set for other providers.
For example, the below providers have the following required_payment_fields
for SEPA
template:
1) Erste Bank and Sparkassen (erste_bank_sparkassen_oauth_client_at
)
debtor_iban
creditor_iban
amount
currency_code
description
2) Intesa Sanpaolo (intesa_sanpaolo_oauth_client_it
)
debtor_iban
creditor_iban
creditor_name
amount
currency_code
description
creditor_country_code
Note: According to the SEPA
template, the following fields are supposed to be optional debtor_iban
, creditor_name
and creditor_country_code
. However, they became required for those specific implementations from the above.
Thus, we recommend inspecting the provider to see its specific set of required_payment_fields
and make sure to pass them during the payment creation.
URL
https://www.saltedge.com/api/partners/v1/templates/{payment_template}
https://www.saltedge.com/api/partners/v1/templates/{payment_template}
Method
GET
Sample Request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/templates/$PAYMENT_TEMPLATE
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/templates/$PAYMENT_TEMPLATE
Sample Response
{
"data": {
"id": "29",
"identifier": "SEPA",
"description": "SEPA Payment",
"deprecated": false,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-10-30T12:03:00Z",
"payment_fields": [
{
"id": "234",
"payment_template_id": "29",
"name": "amount",
"english_name": "Amount",
"localized_name": "Amount",
"nature": "number",
"position": 29,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": false,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "235",
"payment_template_id": "29",
"name": "debtor_iban",
"english_name": "Debtor IBAN",
"localized_name": "Debtor IBAN",
"nature": "text",
"position": 30,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "236",
"payment_template_id": "29",
"name": "creditor_iban",
"english_name": "Creditor IBAN",
"localized_name": "Creditor IBAN",
"nature": "text",
"position": 31,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": false,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "238",
"payment_template_id": "29",
"name": "mode",
"english_name": "Mode",
"localized_name": "Mode",
"nature": "select",
"position": 33,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z",
"field_options": [
{
"name": "NORMAL",
"english_name": "NORMAL",
"localized_name": "NORMAL",
"option_value": "NORMAL",
"selected": true
},
{
"name": "INSTANT",
"english_name": "INSTANT",
"localized_name": "INSTANT",
"option_value": "INSTANT",
"selected": false
}
]
},
{
"id": "219",
"payment_template_id": "29",
"name": "debtor_region",
"english_name": "Debtor Region",
"localized_name": "Debtor Region",
"nature": "text",
"position": 14,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "222",
"payment_template_id": "29",
"name": "creditor_agent",
"english_name": "Creditor Agent ID",
"localized_name": "Creditor Agent ID",
"nature": "text",
"position": 17,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "207",
"payment_template_id": "29",
"name": "customer_ip_address",
"english_name": "Customer IP Address",
"localized_name": "Customer IP Address",
"nature": "text",
"position": 2,
"extra": {
"validation_regexp": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"
},
"optional": false,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "213",
"payment_template_id": "29",
"name": "debtor_name",
"english_name": "Debtor Name",
"localized_name": "Debtor Name",
"nature": "text",
"position": 8,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "221",
"payment_template_id": "29",
"name": "creditor_name",
"english_name": "Creditor Name",
"localized_name": "Creditor Name",
"nature": "text",
"position": 16,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "224",
"payment_template_id": "29",
"name": "creditor_address",
"english_name": "Creditor Address",
"localized_name": "Creditor Address",
"nature": "text",
"position": 19,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "216",
"payment_template_id": "29",
"name": "debtor_building_number",
"english_name": "Debtor Building Number",
"localized_name": "Debtor Building Number",
"nature": "text",
"position": 11,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "212",
"payment_template_id": "29",
"name": "customer_longitude",
"english_name": "Customer Longitude",
"localized_name": "Customer Longitude",
"nature": "number",
"position": 7,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "218",
"payment_template_id": "29",
"name": "debtor_town",
"english_name": "Debtor Town",
"localized_name": "Debtor Town",
"nature": "text",
"position": 13,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "223",
"payment_template_id": "29",
"name": "creditor_agent_name",
"english_name": "Creditor Agent Name",
"localized_name": "Creditor Agent Name",
"nature": "text",
"position": 18,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "225",
"payment_template_id": "29",
"name": "creditor_street_name",
"english_name": "Creditor Street Name",
"localized_name": "Creditor Street Name",
"nature": "text",
"position": 20,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "226",
"payment_template_id": "29",
"name": "creditor_building_number",
"english_name": "Creditor Building Number",
"localized_name": "Creditor Building Number",
"nature": "text",
"position": 21,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "227",
"payment_template_id": "29",
"name": "creditor_post_code",
"english_name": "Creditor Post Code",
"localized_name": "Creditor Post Code",
"nature": "text",
"position": 22,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "228",
"payment_template_id": "29",
"name": "creditor_town",
"english_name": "Creditor Town",
"localized_name": "Creditor Town",
"nature": "text",
"position": 23,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "229",
"payment_template_id": "29",
"name": "creditor_region",
"english_name": "Creditor Region",
"localized_name": "Creditor Region",
"nature": "text",
"position": 24,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "230",
"payment_template_id": "29",
"name": "creditor_country_code",
"english_name": "Creditor Country Code",
"localized_name": "Creditor Country Code",
"nature": "text",
"position": 25,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "231",
"payment_template_id": "29",
"name": "date",
"english_name": "Payment Date",
"localized_name": "Payment Date",
"nature": "text",
"position": 26,
"extra": {
"validation_regexp": "^\\d{4}-\\d{2}-\\d{2}$"
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "232",
"payment_template_id": "29",
"name": "time",
"english_name": "Payment Time",
"localized_name": "Payment Time",
"nature": "text",
"position": 27,
"extra": {
"validation_regexp": "^\\d{2}:\\d{2}(:\\d{2})?$"
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "208",
"payment_template_id": "29",
"name": "customer_ip_port",
"english_name": "Customer IP Port",
"localized_name": "Customer IP Port",
"nature": "number",
"position": 3,
"extra": {
"validation_regexp": "^\\d{1,5}$"
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "209",
"payment_template_id": "29",
"name": "customer_device_os",
"english_name": "Customer Device OS",
"localized_name": "Customer Device OS",
"nature": "text",
"position": 4,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "211",
"payment_template_id": "29",
"name": "customer_latitude",
"english_name": "Customer Latitude",
"localized_name": "Customer Latitude",
"nature": "number",
"position": 6,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "233",
"payment_template_id": "29",
"name": "description",
"english_name": "Description",
"localized_name": "Description",
"nature": "text",
"position": 28,
"extra": {
"validation_regexp": "^.{2,1000}$"
},
"optional": false,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-21T16:27:16Z"
},
{
"id": "205",
"payment_template_id": "29",
"name": "end_to_end_id",
"english_name": "End to End Identification",
"localized_name": "End to End Identification",
"nature": "text",
"position": 0,
"extra": {
"validation_regexp": "^.{1,35}$"
},
"optional": false,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-21T16:59:14Z"
},
{
"id": "239",
"payment_template_id": "29",
"name": "reference",
"english_name": "Payment Reference",
"localized_name": "Payment Reference",
"nature": "text",
"position": 0,
"extra": {
"validation_regexp": "^.{1,35}$"
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-21T16:59:14Z"
},
{
"id": "214",
"payment_template_id": "29",
"name": "debtor_address",
"english_name": "Debtor Address",
"localized_name": "Debtor Address",
"nature": "text",
"position": 9,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "215",
"payment_template_id": "29",
"name": "debtor_street_name",
"english_name": "Debtor Street Name",
"localized_name": "Debtor Street Name",
"nature": "text",
"position": 10,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "217",
"payment_template_id": "29",
"name": "debtor_post_code",
"english_name": "Debtor Post Code",
"localized_name": "Debtor Post Code",
"nature": "text",
"position": 12,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "220",
"payment_template_id": "29",
"name": "debtor_country_code",
"english_name": "Debtor Country Code",
"localized_name": "Debtor Country Code",
"nature": "text",
"position": 15,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "237",
"payment_template_id": "29",
"name": "currency_code",
"english_name": "Currency",
"localized_name": "Currency",
"nature": "select",
"position": 32,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z",
"field_options": [
{
"name": "EUR",
"english_name": "EUR",
"localized_name": "EUR",
"option_value": "EUR",
"selected": true
}
]
},
{
"id": "210",
"payment_template_id": "29",
"name": "customer_user_agent",
"english_name": "Customer User Agent",
"localized_name": "Customer User Agent",
"nature": "text",
"position": 5,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
},
{
"id": "206",
"payment_template_id": "29",
"name": "customer_last_logged_at",
"english_name": "Customer Last Logged At",
"localized_name": "Customer Last Logged At",
"nature": "text",
"position": 1,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2018-11-27T17:07:23Z",
"updated_at": "2019-01-15T14:49:17Z"
}
]
}
}
Initiate payment
To initiate a payment via Salt Edge Widget, we need to execute a request to create a payment.
The response will contain the connect_url
. This is the URL we will visit to authorize the user and initiate the payment.
If you intend to collect payment consent on your side and the user will select the provider in your application, please make sure that your users are acknowledged by the related Terms and Conditions and Privacy Policy by integration of the following text in your application: “By clicking Proceed you agree to be bound by fino run GmbH Terms and Conditions and Privacy Policy.”
A payment can be generated from your Dashboard, by pressing the Invite
button on the Leads page.
Select the Payment Initiation
- the purpose of the lead creation step and fill in the mail of your user.
After the button Invite
is pressed, a page to select the provider is opened.
Fill in the payment fields (if they are not pre filled as in the case of fake providers).
Copy the connect URL and visit it for the next steps.
URL
https://www.saltedge.com/api/partners/v1/payments/sessions
https://www.saltedge.com/api/partners/v1/payments/sessions
Method
POST
Sample Request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X POST \
-d "{ \
\"data\": { \
\"customer_id\": \"222222222222222222\", \
\"provider_code\": \"fake_client_xf\", \
\"show_consent_confirmation\": true, \
\"template_identifier\": \"SEPA\", \
\"return_to\": \"http://example.com/\", \
\"payment_attributes\": { \
\"end_to_end_id\": \"#123123123\", \
\"customer_last_logged_at\": \"2020-06-06T13:48:40Z\", \
\"customer_ip_address\": \"255.255.255.255\", \
\"customer_device_os\": \"iOS 11\", \
\"creditor_name\": \"Jay Dawson\", \
\"creditor_street_name\": \"One Canada Square\", \
\"creditor_building_number\": \"One\", \
\"creditor_post_code\": \"E14 5AB\", \
\"creditor_town\": \"London\", \
\"creditor_country_code\": \"UK\", \
\"currency_code\": \"EUR\", \
\"amount\": \"199000.00\", \
\"description\": \"Stocks purchase\", \
\"creditor_iban\": \"GB33BUKB20201555555555\", \
\"mode\": \"normal\" \
} \
} \
}" \
https://www.saltedge.com/api/partners/v1/payments/sessions
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X POST \
-d "{ \
\"data\": { \
\"customer_id\": \"222222222222222222\", \
\"provider_code\": \"fake_client_xf\", \
\"show_consent_confirmation\": true, \
\"template_identifier\": \"SEPA\", \
\"return_to\": \"http://example.com/\", \
\"payment_attributes\": { \
\"end_to_end_id\": \"#123123123\", \
\"customer_last_logged_at\": \"2020-06-06T13:48:40Z\", \
\"customer_ip_address\": \"255.255.255.255\", \
\"customer_device_os\": \"iOS 11\", \
\"creditor_name\": \"Jay Dawson\", \
\"creditor_street_name\": \"One Canada Square\", \
\"creditor_building_number\": \"One\", \
\"creditor_post_code\": \"E14 5AB\", \
\"creditor_town\": \"London\", \
\"creditor_country_code\": \"UK\", \
\"currency_code\": \"EUR\", \
\"amount\": \"199000.00\", \
\"description\": \"Stocks purchase\", \
\"creditor_iban\": \"GB33BUKB20201555555555\", \
\"mode\": \"normal\" \
} \
} \
}" \
https://www.saltedge.com/api/partners/v1/payments/sessions
Sample Response
{
"data": {
"token": "GENERATED_TOKEN",
"expires_at": "2020-07-03T07:23:58Z",
"connect_url": "https://www.saltedge.com/payments/connect?token=GENERATED_TOKEN"
}
}
Visit Payment Widget URL
Visit the connect_url
from the previous API response. You will be presented with a form for user credentials input. Input username
and secret
as per the on-screen instructions and press Proceed
.
After that, you will see the consent window.
In case the provider has interactive fields, a form will be presented for filling these fields.
After confirming, it will start to initiate the payment.
After that, we will have to wait for the payment process to finish.
Next steps
- Request Test status to connect real banking institutions.
- Switch to Live status to bring value to your customers globally.
- Since new Salt Edge partners are in pending mode and have access only to fake and sandbox providers, the request signature is not required. However, you will need to implement request signing before you are going live. For more information see our signature guide.
- All responses with arrays (like accounts or transactions) are paginated by default. See how to implement it on our pagination guide.
- The recommended way of synchronizing data with Salt Edge Partners API is via callbacks. That way you won’t have to poll the servers to see whether there is new data available. See our callbacks guide for more information.
Salt Edge Payment Widget supports only the 2 last versions of modern browsers.
Try in Postman
Step 1
Install Postman. You can get it on https://www.getpostman.com/apps.
Step 2
Import the postman collection, click the button below to do that.
Step 3
Salt Edge Partners API requires APP_ID and SECRET headers in order to authenticate as partner. If you don’t have an API key created yet, you can you use our quick start guide to help you create one. Once you have the API key created, you can add its secrets to postman.
Click on the eye on the top right corner and press on “Add” next to “Environments”.
Define variables APP_ID and SECRET with values from the key that you generated on https://www.saltedge.com/clients/profile/secrets, then add the environment.
Once added, you can select it in the top right corner, and all the requests to Salt Edge API will be authenticated using your API key.
Before going LIVE
In order to upgrade your Partner account status to LIVE mode, the following steps should be followed:
- Be sure to provide the signature in accordance with the instructions.
- Your application should handle correctly a few fake banks (
fake_oauth_client_xf
,fake_client_xf
are mandatory). - The Two-factor authentication must be enabled for your account and all your teammates;
- Be sure to indicate
Incident reporting Email
in the dashboard settings on the Company page. - Perform at least one successful payment initiation test with each provider from your key market.
After your Account Manager at Salt Edge has reviewed the app’s integration with Partners Payment Initiation API and made sure that payment initiation tests were successfully performed, the account’s status will be upgraded to live.
Payment Widget
Payment Widget handles all the user interaction during a payment initiation process:
- user credentials input
- interactive confirmation
- progress reporting
- error reporting
After your application has received an URL for executing a payment using Salt Edge Payment Widget, you can redirect your end-user to it. There, they will see a screen that lets them pick a provider to execute a payment.
Your user will also be asked to input credentials and, if needed, any of the interactive credentials.
After the process is done, the user will be redirected back to your application URL, or to the URL
specified as return_to
argument to create payment endpoint.
Embed widget in your app
At the moment, the only way to embed Salt Edge Widget in your application is to open it in a pop-up.
When opening it in a pop-up using window.open
, it will post notifications during the payment process.
To enable these notifications when you request an URL for executing payments, you can pass an optional argument javascript_callback_type
with the value post_message
.
This tells Salt Edge Widget to use postMessage for sending messages to a parent window.
You can then subscribe to those messages by calling window.addEventListener("message", callback)
in the parent window.
Sample Request
window.addEventListener("message", function(event) {
console.log(JSON.parse(event.data))
}
)
Sample Response
{
data: {
payment_id: "131313131313131313",
custom_fields: {},
stage: "start",
status: "processing"
}
}
Callbacks
The most important parts of Partners Payment Initiation API (e.g. Payment initiation) are asynchronous.
Every Web application has to provide a set of valid URLs which will be used to notify about the payment progress. Other applications can poll Salt Edge Partners Payment Initiation API in order to retrieve the current payment status.
There are several common points about the request we send to the callback URLs provided by the client:
- The
Content-Type
header isapplication/json
; - There is a
Signature
header that identifies the request was signed by Payment Initiation API; - The request method is always
POST
; - The JSON object sent will always have a
data
field; - The
meta
field will display the version of the callbacks API.
You can set the callback URLs for your application by accessing your callbacks page.
Due to security reasons, the callbacks can be sent to port 80/HTTP (in test and pending modes) and 443/HTTPS (in test, pending and live modes) only!
Also, the callbacks do not follow redirects!
Signature
In order for the client to identify that the request is coming from Payment Initiation API, there is a Signature
header in the request.
Signature
- base64
encoded SHA256
signature of the string represented in the
form callback_url|post_body
- 2 parameters concatenated
with a vertical bar |
, signed with a Payment Initiation API’s private key. You can find the version of the signature key used to sign the callback in the Signature-key-version
header. The current version is 4.0
which corresponds to the following public key:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzi1XL1b0XwUYVHj7/AR6
Hr0YN34wH/bDOIub0nwt0s/s3tD+DPxNB85xpMEZrLikPW5PAKkQ/oC3OyPYxKOb
8TNhzGmQhEfyCkbdRwxNZqRMRwuOc+N4sdBtQKPN8+XF3RIcRZAk25JGROtb1M2o
d/Nb9QqdQwMjdk6W+Vdq5Sj25Tj2efJc8zmBJkNXR4WtW45p4XSdjSEjuVCSZjOy
+N8/Od8MGixC99jYbiKm3RrVDJCgDi4YYnNRI0QgxZRpJKbQX/WeZiYOrbctG3m8
l1/Hpkv3w1QHz/YFIshCOKwUL+xg1hLMaW4IH7XFHenE+JlUKdCqhcWyi7oIDkyr
7wIDAQAB
-----END PUBLIC KEY-----
An example of the string that is to be used to generate the signature looks as follows:
https://www.client.com/api/payments/callbacks/success|{"data":{"payment_id":"131313131313131313","customer_id":"222222222222222222","custom_fields":{},"status": "processing"},"meta":{"version":"1","time":"2021-01-03T13:00:28Z"}}
The pseudocode that we use to generate the signature looks like this:
base64(sha256_signature(private_key, "callback_url|post_body"))
Success
We send a callback to your application’s success
URL whenever an operation has caused a change in the data we store for a particular payment.
For instance, after you’ve redirected your users to the Payment Widget page and they have selected a provider, gave consent and pressed Proceed, we’ll send you a success
callback.
This callback will contain the customer identifier, the id
of the newly created payment and its status
.
Afterwards, your application will be able to use the show payment route and query the information about this payment.
Whenever there is more information about the payment, we will send another success
callback.
A success
callback marks a change in the data
and you can generally expect from one to three success callbacks with the same payload within several minutes.
We recommend that your application fetch the full payment data at each callback, as some information might change during the fetching process.
For instance, when your user has initiated a payment using Salt Edge Payment Widget, we will send the following success callback:
{
"data": {
"payment_id": "131313131313131313",
"customer_id": "222222222222222222",
"custom_fields": { "key": "value" },
"status": "processing"
},
"meta": {
"version": "1",
"time": "2024-10-08T14:41:07.838Z"
}
}
You can now use the show payment route and obtain the provider and some other attributes of the new payment.
Failure
Sometimes, a payment might fail to go through.
This might happen because for some reason it could not be performed.
In this case, you will receive a fail
callback, containing a JSON similar to the following:
{
"data": {
"payment_id": "131313131313131313",
"customer_id": "222222222222222222",
"custom_fields": { "key": "value" },
"status": "rejected",
"error_class": "PaymentFailed",
"error_message": "Payment cancelled"
},
"meta": {
"version": "1",
"time": "2024-10-08T14:41:07.846Z"
}
}
After you get this callback, you need to request the payment to check for its updates.
Please note that even if there’s an error, the payment_id
will still be stored.
Notify
After a new payment was created via Partners Payment Initiation, Salt Edge can inform you about the payment’s progress via a notify
callback.
Your app can expect the notify callback several times, but you can use this information to inform your end-user about the payment’s progress.
The possible stages sent in a notify callback are described here.
Here’s an example callback sent to the /notify
route of your app:
{
"data": {
"payment_id": "131313131313131313",
"customer_id": "222222222222222222",
"custom_fields": { "key": "value" },
"stage": "submission",
"stage_id": "242424242424242424",
"status": "processing"
},
"meta": {
"version": "1",
"time": "2024-10-07T14:41:07Z"
}
}
For some of the payments you might not receive all the stages.
Errors
The Partner Payment Initiation API can return multiple errors for any operation, each having its meaning and usage.
Attributes
error_class
string
The class of the error, one of the listed below
error_message
string
A message describing the error
request
object
The body of the request that caused the error
error_class
string
The class of the error, one of the listed below
error_message
string
A message describing the error
request
object
The body of the request that caused the error
Payment status
- failed - the payment failed due to an error on the bank’s side.
- unknown - the payment didn’t reach the
end
status on the bank’s side. The status can beunknown
until we get an updated status from the bank (eitherrejected
oraccepted
). - rejected - the payment was rejected either by the user or by the bank. It can be rejected explicitly or due to different errors on the bank’s side.
- no payment object created - an error happened before the payment was created.
Error codes
[400] Bad Request
[404] Not Found
[406] Not Acceptable
[409] Duplicated
Sample response
{
"error_class": "PaymentNotFound",
"error_message": "Payment with id: '131313131313131313' was not found.",
"request": {
"id": "131313131313131313"
}
}
Bank integration layer
- Errors could take place either between Salt Edge Partner Payment Initiation API and the bank, or on the bank’s end.
- Some of the errors are displayed to the end-users, while others are hidden.
- There are multiple reasons which cause the errors, for example, bank issues, incorrect user actions, invalid PSD2 access, etc.
ProviderError
andExecutionTimeout
errors should be reported to Salt Edge.- The rest of the errors from the below table are caused by incorrect actions of end-users.
Error class | HTTP code | Description | Payment status |
---|---|---|---|
ExecutionTimeout | 406 | It took too long to execute the payment | unknown |
InteractiveAdapterTimeout | 406 | The customer hasn’t completed the interactive step of the payment in time | rejected |
InvalidCredentials | 406 | The customer tried to initiate a payment with invalid credentials | rejected |
InvalidInteractiveCredentials | 406 | The interactive credentials that were sent are wrong | rejected |
PaymentFailed | 406 | Failed to create the payment for some reason | rejected |
PaymentStatusUnknown | 200 | Payment status has not yet changed on the bank side. The status can be | unknown |
PaymentValidationError | 406 | Failed to validate the payment for some reason | failed |
ProviderError | 406 | There’s an error on the provider’s side which obstructs us from initiating the payment | failed |
Payments API Reference
- Errors can occur if the client configures API requests incorrectly.
- These errors are not displayed to end-users.
Error class | HTTP code | Description | Payment status |
---|---|---|---|
ActionNotSupported | 406 | The regulated entity has no necessary roles | no payment object created |
CertificateNotFound | 400 | The regulated entity has no necessary permissions | no payment object created |
CustomFieldsFormatInvalid | 406 | The | no payment object created |
CustomFieldsSizeTooBig | 406 | The | no payment object created |
CustomerLocked | 406 | The customer is blocked. | no payment object created |
CustomerNotFound | 404 | A customer with such a | no payment object created |
DateFormatInvalid | 400 | We have received an invalid Date format | no payment object created |
DateOutOfRange | 400 | Sending a date value that does not fit in admissible range | no payment object created |
IdentifierInvalid | 406 | Invalid identifier sent for identifying the customer | no payment object created |
InvalidPaymentAttributes | 406 | Some of the passed payment attributes are invalid | no payment object created |
PaymentAlreadyAuthorized | 406 | Request for authorizing the current payment has been already processed | does not change status |
PaymentAlreadyFinished | 406 | The payment is already executed | does not change status |
PaymentAlreadyStarted | 406 | The payment is in progress | does not change status |
PaymentAttributeNotSet | 406 | There are missing payment attributes in client settings | no payment object created |
PaymentInitiationTimeout | 406 | The payment execution expired | unknown, will be overridden by ExecutionTimeout error |
PaymentNotFinished | 406 | The payment has not finished yet | processing |
PaymentNotFound | 404 | A payment with such attributes cannot be found | no payment object to check status |
PaymentTemplateNotFound | 404 | The payment template does not exist | no payment object created |
PaymentTemplateNotSupported | 406 | The chosen provider does not support the desired payment template | no payment object created |
ProviderDisabled | 406 | The accessed provider is disabled | no payment object created |
ProviderInactive | 406 | The accessed provider is temporarily inactive due to maintenance, or other temporary issue on the provider’s side | no payment object created |
ProviderKeyNotFound | 406 | The regulated entity has no rights for this provider | no payment object created |
ProviderNotFound | 404 | Sending a | no payment object created |
ProviderUnavailable | 406 | Unable to contact the provider in order to generate an | no payment object created |
ReturnURLInvalid | 406 | Either | no payment object created |
ReturnURLTooLong | 406 | The | no payment object created |
ValueOutOfRange | 400 | Sending a value (e.g. | no payment object created |
WrongProviderMode | 406 | The requested provider’s mode is neither | no payment object created |
WrongRequestFormat | 400 | The | no payment object created |
Partners Configuration
- Errors can happen if the partners’s account isn’t configured properly.
- They will not affect payments as none of these errors will allow initiating a payment.
- These errors should be reported to Salt Edge.
Error class | HTTP code | Description | Payment status |
---|---|---|---|
ActionNotAllowed | 406 | The client has no access to the required route or direct API access is not permitted. Please contact us | no payment object created |
ApiKeyNotFound | 400 | The API key with the provided | no payment object created |
AppIdNotProvided | 400 | The | no payment object created |
ClientDisabled | 406 | The client’s account has been disabled | no payment object created |
ClientNotFound | 404 | The API key used in the request does not belong to an existing client | no payment object created |
ClientPending | 406 | The client’s account is in pending state | no payment object created |
ClientRestricted | 406 | The client’s account is in restricted state | no payment object created |
ConnectionFailed | 406 | Some network errors appear while fetching data | network issue, depends on the stage/status |
ConnectionLost | N/A | Internet connection was lost in the process | no payment object created |
ExpiresAtInvalid | 400 | The | no payment object created |
InternalServerError | 500 | An internal error has occured | no payment object created |
InvalidEncoding | 400 | Invalid JSON encoded values | no payment object created |
JsonParseError | 400 | It was passed some other request format instead of JSON, or the body could not be parsed | no payment object created |
MissingExpiresAt | 400 | The | no payment object created |
MissingSignature | 400 | The | no payment object created |
PaymentLimitReached | 406 | The client exceeded the number of payments allowed in | no payment object created |
PaymentSettingsExceeded | 400 | The payment settings limits of account were reached. The limits modification can be requested from Dashboard or contacting Salt Edge Account Manager. | no payment object created |
PublicKeyNotProvided | 400 | The public key was not specified on Keys & secrets page | no payment object created |
RateLimitExceeded | 406 | Too many payments are being processed at the same time from one application (the same client account) | no payment object created |
RequestExpired | 400 | The request has expired, took longer than mentioned in the | no payment object created |
SecretNotProvided | 400 | The | no payment object created |
SignatureNotMatch | 400 | The | no payment object created |
TooManyRequests | 400 | Excessive number of requests have occured for initiating payments from one IP address in a small period of time | rate limit, depends on the stage/status |
FAQ
Can you set up scheduled payments for varied or fixed amounts?
Scheduled Payments support only fixed amounts under existing Payment Initiation API.
Can I issue cross border payments via Partner Payment Initiation API?
Yes, depending on the ASPSP (Provider) API payment product availability.
Can a merchant be added as a trusted beneficiary?
Beneficiary APIs are currently available as premium APIs, with only a small number of banks supporting such functionality. Salt Edge plans to add support for Beneficiary APIs in the future.
Which banks can I use to make payments from a Business Account?
Providers with an supported_account_types
array that includes business
accounts.
How long will payments take to settle?
This strongly depends on the Payment Product, payment scheme and the ASPSP’s (Provider) internal process.
How can I reconcile a payment?
Using end_to_end_id
and/or reference
that you can receive via AISP APIs on the creditor account.
How and when do I get a payment_id?
When creating a Payment Order, you need to populate Payment attributes which include a mandatory field as the end_to_end_id
, which will be sent to the ASPSP Payment Initiation endpoints. Once the Payment Order is accepted by the Debtor ASPSP for execution, the same end_to_end_id
will be sent to the Creditor ASPSP as a part of remittance information. Each Payment Order is also associated with a Salt Edge payment_id
to allow listing payments with all associated payment attributes.
Do I have to send the provider_code for each payment request?
Payment Initiation API is not linked to existing connected banks of the Customer.
You need to provide the provider_code
if you are trying to execute a payment from a Bank or connection known by the Customer.
What is the difference between optional and required payment fields?
Required fields are mandatory
for a payment to be initiated, while optional fields are supported by the provider for additional information. However, if optional fields are passed but aren’t present in the optionalpaymentfields, they will be logged on Salt Edge side and not used for the payment initiation process.
Why the very same payment template can have different sets of required and optional payment fields for different providers?
Depending on the standard, the bank implemented PISP and decided to expose functionality so the set of required and optional fields for a payment template can vary for different providers. Some optional fields
from a template may become required for a specific bank.
What are the recommendations for the description field?
Most ASPSPs have certain limitations in place when it comes to the formatting of the unstructured payment remittance information (description
). Using alphanumeric characters along with ., ,, -, /, ?, (, ), +, '
and spaces as well as keeping the length of the description under 1000 characters should be a safe approach for most ASPSPs (RegExp: /[A-Za-z0-9.-,()+'? ]{2,1000}/
). ASPSPs may extend these constraints depending on their core banking system, payment schema and other relevant factors.
How cross-border payments work in Fiducia hub?
At this moment there is no possibility to do a full check prior to the payment initiation whether the payment goes under SEPA or cross-border payment schemes with Fiducia hub providers.
This is how SEPA and cross-border payments are handled on Fiducia’s end:
In principle, a distinction must be made between a normal SEPA credit transfer and a foreign credit transfer. This distinction is to be made on the part of the third party provider and not on the part of the third party provider interface.
The following specifications apply to a SEPA credit transfer:
- Payment in Euro
- IBAN of the beneficiary is available
- The beneficiary’s bank is located in the SEPA area and can be reached via SEPA.
- Fee regulation: Shared (SHA), i.e. the fees are shared
If one of the criteria is not met, a SEPA credit transfer is no longer possible, only a cross-border transfer.
Example: A payment is to be made to a beneficiary in France, but in US dollars or with a special fee regulation/instruction, or only one account number is known for the beneficiary, etc.
On Salt Edge’s end SEPA and cross-border payments are handled under SEPA and SWIFT payment templates correspondingly.
Considering there are payment conditions and criteria which can’t be controlled or influenced by TPPs, if the criteria are not met according to the response received from the bank during payment initiation, Salt Edge will return the following errors:
1) PaymentFailed with the message Cross Border Payment is not supported. Please retry using SEPA payment scheme.
2) PaymentFailed with the message Please retry using the cross-border (SWIFT) payment scheme.
api
Countries
The country is represented just as a string. We’re using ISO 3166-1 alpha-2 country codes. Thus, all the country codes will have exactly two uppercase letters. There are two special cases:
- “Other”, encoded as
XO
- “Fake”, encoded as
XF
Note that the Fake country is only available for clients in Test and Pending statuses.
List
Returns a list of countries supported by Salt Edge Partners API.
Parameters
include_fake_providers
boolean, optional
Whether you wish to fetch the fake countries, defaults to false
include_fake_providers
boolean, optional
Whether you wish to fetch the fake countries, defaults to false
Response
name
string
Name of the country
code
string
Country code as dated in ISO 3166-1 alpha-2
refresh_start_time
integer
Local country time when connections will be automatically refreshed. Possible values: 0
to 23
name
string
Name of the country
code
string
Country code as dated in ISO 3166-1 alpha-2
refresh_start_time
integer
Local country time when connections will be automatically refreshed. Possible values: 0
to 23
Possible Errors
URL
https://www.saltedge.com/api/partners/v1/countries
https://www.saltedge.com/api/partners/v1/countries
Method
GET
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/countries
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/countries
Sample response
{
"data": [
{
"code": "CZ",
"name": "Czech Republic",
"refresh_start_time": 2
},
{
"code": "IL",
"name": "Israel",
"refresh_start_time": 2
},
{
"code": "MD",
"name": "Moldova",
"refresh_start_time": 2
},
{
"code": "RO",
"name": "Romania",
"refresh_start_time": 2
},
{
"code": "RU",
"name": "Russia",
"refresh_start_time": 2
},
{
"code": "UA",
"name": "Ukraine",
"refresh_start_time": 2
},
{
"code": "XF",
"name": "Fake",
"refresh_start_time": 2
},
{
"code": "XO",
"name": "Other",
"refresh_start_time": 2
},
...
]
}
Providers
A provider is a Financial Institution which can execute payments. We recommend you update all of the providers’ fields at least daily.
Attributes
id
string
Provider’s id
code
string
Provider’s code
name
string
Provider’s name
modes
string
Possible values are:
oauth
- access through the bank’s dedicated API (regulated: true
). The user is redirected to the bank’s page for authorization.api
- access through a dedicated (regulated: true
) or non-dedicated (regulated: false
) bank’s API. Some required credentials fields might be present which the user should complete (IBAN, username, etc.). In case of a dedicated API, an interactive redirect might be present, but there are required credentials fields which the user should complete (IBAN, username, etc.). Using these credentials, we authorize the user on the bank’s side.
status
string
Possible values are: active
, inactive
, disabled
- The providers with the
inactive
status are returned on the providers list endpoint, but are not visible on the Connect widget for the end-users. - The providers with
disabled
status are neither returned on the providers list endpoint, nor visible on the Connect widget for the end-users.
automatic_fetch
boolean
Whether the provider’s connections can be automatically fetched. However, its performance also depends on optional_interactivity
flag
customer_notified_on_sign_in
boolean
Whether the provider will notify the customer on log in attempt
interactive
boolean
Whether the provider requires interactive input
instruction
string
Instructions on how to connect the bank, in English
home_url
string
The URL of the main page of the provider
login_url
string
Point of entrance to provider’s login web interface
logo_url
string
The URL for the provider logo, may have a placeholder for providers with missing logos
country_code
string
Code of the provider’s country
refresh_timeout
integer
Amount of time (in minutes) after which the provider’s connections are allowed to be refreshed
holder_info
array
Contains information on the account holder details that can be fetched from this provider
max_consent_days
integer
Maximum allowed consent duration. If it is null
then there are no limits
created_at
datetime
Time and date when the provider was integrated
updated_at
datetime
The last time when any of provider’s attributes were changed
timezone
string
Time zone data of capital/major city in a region corresponding to a provider.
max_interactive_delay
integer
Delay in seconds before InteractiveAdapterTimeout
will happen
optional_interactivity
boolean
Provider which supports flipping of interactive
and automatic_fetch
flags after connect
regulated
boolean
Whether the provider is integrated via a regulated channel under Open Banking/PSD2
max_fetch_interval
integer
Max period in days that can be fetched form from the provider’s interface
supported_fetch_scopes
array
Array of strings with supported fetch_scopes
supported_account_natures
array
Array of possible account natures to be fetched. Non-payment natures: bonus
, credit
, insurance
, investment
supported_account_types
array
Possible values are: personal
, business
identification_codes
array
List of codes identifying supported branches of a specific provider. It may include BLZ(Germany), ABI+CAB(Italy), Branch Codes(France) etc.
bic_codes
array
List of BIC codes identifying supported branches of a specific provider.
supported_iframe_embedding
boolean
Possible values are: true
, false
payment_templates
array of strings
Identifiers of the payment templates that are supported by this provider
supported_payment_fields
object
If these fields are passed, they will be used by the provider. Otherwise, the payment will we processed even without them
required_payment_fields
object
Mandatory payment attributes. If any of these fields are not passed, the payment will not be initiated successfully.
no_funds_rejection_supported
boolean
A flag which indicates whether the bank supports explicit handling of payment rejection due to insufficient funds.
For example, it can be a header in the request (TPP-Rejection-NoFunds-Preferred
) which set to true
will automatically reject the payment in case of insufficient funds. Note that many banks handle this behaviour by default, but some of them offer the possibility to choose the outcome of insufficient funds.
id
string
Provider’s id
code
string
Provider’s code
name
string
Provider’s name
modes
string
Possible values are:
oauth
- access through the bank’s dedicated API (regulated: true
). The user is redirected to the bank’s page for authorization.api
- access through a dedicated (regulated: true
) or non-dedicated (regulated: false
) bank’s API. Some required credentials fields might be present which the user should complete (IBAN, username, etc.). In case of a dedicated API, an interactive redirect might be present, but there are required credentials fields which the user should complete (IBAN, username, etc.). Using these credentials, we authorize the user on the bank’s side.
status
string
Possible values are: active
, inactive
, disabled
- The providers with the
inactive
status are returned on the providers list endpoint, but are not visible on the Connect widget for the end-users. - The providers with
disabled
status are neither returned on the providers list endpoint, nor visible on the Connect widget for the end-users.
automatic_fetch
boolean
Whether the provider’s connections can be automatically fetched. However, its performance also depends on optional_interactivity
flag
customer_notified_on_sign_in
boolean
Whether the provider will notify the customer on log in attempt
interactive
boolean
Whether the provider requires interactive input
instruction
string
Instructions on how to connect the bank, in English
home_url
string
The URL of the main page of the provider
login_url
string
Point of entrance to provider’s login web interface
logo_url
string
The URL for the provider logo, may have a placeholder for providers with missing logos
country_code
string
Code of the provider’s country
refresh_timeout
integer
Amount of time (in minutes) after which the provider’s connections are allowed to be refreshed
holder_info
array
Contains information on the account holder details that can be fetched from this provider
max_consent_days
integer
Maximum allowed consent duration. If it is null
then there are no limits
created_at
datetime
Time and date when the provider was integrated
updated_at
datetime
The last time when any of provider’s attributes were changed
timezone
string
Time zone data of capital/major city in a region corresponding to a provider.
max_interactive_delay
integer
Delay in seconds before InteractiveAdapterTimeout
will happen
optional_interactivity
boolean
Provider which supports flipping of interactive
and automatic_fetch
flags after connect
regulated
boolean
Whether the provider is integrated via a regulated channel under Open Banking/PSD2
max_fetch_interval
integer
Max period in days that can be fetched form from the provider’s interface
supported_fetch_scopes
array
Array of strings with supported fetch_scopes
supported_account_natures
array
Array of possible account natures to be fetched. Non-payment natures: bonus
, credit
, insurance
, investment
supported_account_types
array
Possible values are: personal
, business
identification_codes
array
List of codes identifying supported branches of a specific provider. It may include BLZ(Germany), ABI+CAB(Italy), Branch Codes(France) etc.
bic_codes
array
List of BIC codes identifying supported branches of a specific provider.
supported_iframe_embedding
boolean
Possible values are: true
, false
payment_templates
array of strings
Identifiers of the payment templates that are supported by this provider
supported_payment_fields
object
If these fields are passed, they will be used by the provider. Otherwise, the payment will we processed even without them
required_payment_fields
object
Mandatory payment attributes. If any of these fields are not passed, the payment will not be initiated successfully.
no_funds_rejection_supported
boolean
A flag which indicates whether the bank supports explicit handling of payment rejection due to insufficient funds.
For example, it can be a header in the request (TPP-Rejection-NoFunds-Preferred
) which set to true
will automatically reject the payment in case of insufficient funds. Note that many banks handle this behaviour by default, but some of them offer the possibility to choose the outcome of insufficient funds.
Sample object
{
"id": "111111111111111111",
"code": "fakebank_simple_xf",
"name": "Fake Bank",
"mode": "web",
"status": "active",
"automatic_fetch": true,
"customer_notified_on_sign_in": false,
"interactive": false,
"identification_mode": "saltedge",
"instruction": "Please fill in all the fields.",
"home_url": "http://example.com",
"login_url": "http://example.com/login",
"logo_url": "https://cdn.com/logos/providers/xf/fake.svg",
"country_code": "XF",
"refresh_timeout": 60,
"holder_info": ["names", "emails", "phone_numbers"],
"max_consent_days": 10,
"created_at": "2024-09-28T14:41:07Z",
"updated_at": "2024-10-03T14:41:07Z",
"timezone": "Europe/London",
"max_interactive_delay": 480,
"optional_interactivity": true,
"regulated": false,
"max_fetch_interval": 60,
"supported_fetch_scopes": ["accounts", "transactions"],
"supported_account_extra_fields": [],
"supported_transaction_extra_fields": [],
"supported_account_natures": ["account", "card"],
"supported_account_types": ["personal"]
"identification_codes": ["123123"],
"bic_codes": ["ABCDEFGH"],
"supported_iframe_embedding": true
}
Show
Provider show allows you to inspect a single provider in order to give
your users a proper interface to input their credentials.
The response will have an array of required_fields
and interactive_fields
.
Parameters
provider_code
string
Provider’s code
include_payments_fields
boolean, optional
Whether you wish to include supported_payment_fields
and required_payment_fields
, default to false
provider_code
string
Provider’s code
include_payments_fields
boolean, optional
Whether you wish to include supported_payment_fields
and required_payment_fields
, default to false
Possible Errors
URL
https://www.saltedge.com/api/partners/v1/providers/{provider.code}
https://www.saltedge.com/api/partners/v1/providers/{provider.code}
Method
GET
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/providers/fakebank_interactive_xf
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/providers/fakebank_interactive_xf
Sample response
{
"data": {
"id": "111111111111111111",
"code": "fakebank_interactive_xf",
"name": "Fake Bank with SMS",
"mode": "web",
"status": "active",
"automatic_fetch": false,
"interactive": true,
"instruction": "Valid credentials for this provider are:\nlogin - any string which starts with \"username\",\npassword - \"secret\",\nsms - \"123456\"\n",
"refresh_timeout": 5,
"customer_notified_on_sign_in": false,
"home_url": "http://example.com",
"login_url": "http://example.com/login",
"forum_url": "https://www.saltedge.com/support_requests/new?provider_code=fakebank_interactive_xf",
"logo_url": "https://d1uuj3mi6rzwpm.cloudfront.net/logos/providers/xf/fakebank_interactive_xf.svg",
"country_code": "XF",
"created_at": "2020-03-19T17:55:44Z",
"updated_at": "2020-03-07T09:57:26Z",
"timezone": "UTC",
"holder_info": [],
"max_consent_days": null,
"identification_mode": "saltedge",
"max_interactive_delay": 180,
"optional_interactivity": false,
"regulated": false,
"max_fetch_interval": 60,
"supported_fetch_scopes": ["accounts", "transactions"],
"supported_account_natures": ["account", "card"],
"supported_account_types": ["personal"],
"supported_payment_fields": {
"SEPA": [
"amount",
"creditor_iban",
"creditor_name",
"currency_code",
"customer_ip_address",
"description",
"end_to_end_id"
]
},
"required_payment_fields": {
"SEPA": [
"amount",
"creditor_iban",
"creditor_name",
"currency_code",
"customer_ip_address",
"description",
"end_to_end_id"
]
}
"identification_codes": ["123123"],
"bic_codes": ["ABCDEFGH"],
"supported_iframe_embedding": true,
"supported_account_extra_fields": [
"account_name",
"account_number",
"card_type",
"cards",
"client_name",
"iban",
"sort_code",
"status",
"swift"
],
"supported_transaction_extra_fields": [
"convert",
"original_amount",
"original_currency_code",
"payee",
"posting_date",
"transfer_account_name"
],
"required_fields": [{
"name": "login",
"english_name": "Login",
"localized_name": "Login",
"nature": "text",
"position": 1,
"optional": false,
"extra": {}
},
{
"name": "password",
"english_name": "Password",
"localized_name": "Password",
"nature": "password",
"position": 2,
"optional": false,
"extra": {}
}
],
"interactive_fields": [{
"name": "sms",
"english_name": "SMS code",
"localized_name": "SMS code",
"nature": "number",
"position": 1,
"optional": false,
"extra": {}
}]
}
}
List
Returns all the providers we operate with.
If a provider becomes disabled
, it is not included in the list.
You can read more about the next_id
field, in the pagination section of the reference.
Parameters
from_id
string, optional
The id
of the record starting the next page, defaults to null
from_date
date, optional
Filtering providers created or updated starting from this date, defaults to null
country_code
string, optional
Filtering providers by country, defaults to null
mode
string, optional
Filtering providers by mode, possible values are: oauth
, web
, api
, file
include_fake_providers
boolean, optional
Whether you wish to fetch the fake providers, defaults to false
include_payments_fields
boolean, optional
Whether you wish to includesupported_payment_fields
and required_payment_fields
, default to false
from_id
string, optional
The id
of the record starting the next page, defaults to null
from_date
date, optional
Filtering providers created or updated starting from this date, defaults to null
country_code
string, optional
Filtering providers by country, defaults to null
mode
string, optional
Filtering providers by mode, possible values are: oauth
, web
, api
, file
include_fake_providers
boolean, optional
Whether you wish to fetch the fake providers, defaults to false
include_payments_fields
boolean, optional
Whether you wish to includesupported_payment_fields
and required_payment_fields
, default to false
Possible Errors
URL
https://www.saltedge.com/api/partners/v1/providers
https://www.saltedge.com/api/partners/v1/providers
Method
GET
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/providers
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/providers
Sample Response
{
"data": [
{
"id": "111111111111111111",
"code": "fakebank_image_xf",
"name": "Fake Bank with Image",
"mode": "web",
"status": "active",
"automatic_fetch": false,
"customer_notified_on_sign_in": true,
"interactive": true,
"identification_mode": "saltedge",
"instruction": "Please fill in all the fields.",
"home_url": "http://example.com",
"login_url": "http://example.com/login",
"logo_url": "https://cdn.com/logos/providers/xf/fake.svg",
"country_code": "XF",
"refresh_timeout": 60,
"holder_info": ["names", "emails", "phone_numbers"],
"max_consent_days": 10,
"created_at": "2024-09-28T14:41:08Z",
"updated_at": "2024-10-03T14:41:08Z",
"timezone": "Europe/London",
"max_interactive_delay": 480,
"optional_interactivity": true,
"regulated": false,
"max_fetch_interval": 60,
"supported_fetch_scopes": ["accounts", "transactions"],
"supported_account_extra_fields": [],
"supported_transaction_extra_fields": [],
"supported_account_natures": ["account", "card"],
"supported_account_types": ["personal"],
"identification_codes": ["123123"],
"bic_codes": ["ABCDEFGH"],
"supported_iframe_embedding": true
}
],
"meta": {
"next_id": null,
"next_page": null
}
}
Fake
In order to help with testing, we provide a fake country (having the country code XF
) and a set of fake providers.
If your application is in the Test or Pending status,
the Payment Widget page will let you select the fake country and its providers.
Only regulated: true
providers support payments via supported payment_templates
configuration. It means that it is possible to make a payment only via such regulated providers that have any payment templates listed in payment_templates
array.
The API supplies a number of fake providers:
- Fake Interactive Bank with Client Keys (CAPTCHA) (
fake_interactive_client_xf
) - asks to enter a fake captcha code in addition to a username and a password (embedded); - Fake Interactive Bank with Client Keys (decoupled) (
fake_interactive_decoupled_client_xf
) - decoupled interactive flow (e.g. push notification), asks to wait 10 seconds in Connect widget and then click Proceed to continue in addition to a username and a password (embedded). - Fake OAuth Bank with Client Keys (
fake_oauth_client_xf
) - asks for authorization (OAuth redirect); - Fake Bank with Client Keys (
fake_client_xf
) - requires a username and a password (embedded); - Fake OAuth Interactive Redirect with Client Keys (
fake_oauth_interactive_client_xf
); - Fake Bank with Delayed Payment Authorization (
fake_delayed_oauth_client_xf
); - Fake Bank with Invalid Interactive Redirection (
fake_invalid_interactive_redirect_xf
); - Fake OAuth Bank with Invalid Authorize URL (
fake_with_invalid_authorize_xf
); - Fake Bank with Error (
fake_with_error_client_xf
).
Fake Bank with Error (fake_with_error_client_xf
) allows selecting the error you would like to test. The choices are as follows:
Invalid SCA redirect URL
- no error. The user will be redirected to an invalid URL. As a result, the connection will fail an error because the PSU (the user) couldn’t complete the authorization step.Token Expired
- Error class: InvalidCredentials. Error message: Invalid token.Consent Invalid
- Error class: InvalidCredentials. Error message: Consent is not valid.Access declined
- Error class: InvalidCredentials. Error message: Access declined. Please contact your bank’s customer service.ExecutionTimeout
- Error class: ExecutionTimeout. Error message: ExecutionTimeout error.InteractiveAdapterTimeout
- Error class: InteractiveAdapterTimeout. Error message: Interactive timeout.InvalidInteractiveCredentials
- Error class: InvalidInteractiveCredentials. Error message: Interactive action failed.Payment rejected
- Error class: PaymentFailed. Error message: Payment cancelled.Payment cancelled
- Error class: PaymentFailed. Error message: Payment cancelled.Insufficient funds
- Error class: PaymentFailed. Error message: Insufficient funds.Invalid attribute
- Error class: PaymentFailed. Error message: Invalid value for currency_code.Payment failed
- Error class: PaymentFailed. Error message: Payment failed.Payment failed with delay
- The payment will fail after 20 to 25 second from the moment of initialization. Error class: PaymentFailed. Error message: Payment failed.
Fake OAuth Bank with Client Keys (fake_oauth_client_xf
), Fake OAuth Interactive Redirect with Client Keys (fake_oauth_interactive_client_xf
) and Fake Bank with Delayed Payment Authorization (fake_delayed_oauth_client_xf
) allows selecting the successful scenario you would like to test. The choices are as follows:
Grant access
- The payment will be accepted.Accepted payment with delay
- The payment will be accepted after 20 to 25 second from the moment of initialization.
Note: Check the provider’s instructions in the Payment Widget page for the appropriate credentials.
Sandbox
Sandbox is a live-testing environment of a regulated provider that allows Partners and Clients to test providers under Salt Edge’s supervision.
In order to help with testing regulated providers, Salt Edge offers the sandbox environment of each PSD2 bank. A sandbox is identified by the word Sandbox in the provider_name
(eg. Lloyds Bank (Sandbox)) with a designated provider_code
containing XF
as country code (eg.lloyds_oauth_client_gb_xf
).
Just as with the fake providers, sandbox providers can be tested if your application is in Test or Pending status. In the Payment Widget page, we will let you select the fake country (having the country code XF
), and its sandbox providers.
The authorization instructions are mentioned under the Instructions
field on the Payment Widget page.
Note: Some Sandboxes may not be available for an indefinite period of time due to the limited support sources of a provider.
Leads
The leads are the end-users (PSUs) of the Partner’s application.
Create
Allows to create or return an existing lead. The response contains the email of the lead and the associated customer_id
which can be used for creating a payment session.
It also allows to send Know Your Customer (KYC) information about the lead, both personal and/or legal information. If some of the KYC information is not sent via API, the lead (i.e. customer) may be asked to manually input the details during the payment session. This depends on the partner configuration, as part of Anti-Money Laundering verifications. If some of the KYC information is not known, the corresponding keys should not be sent.
Parameters
string, required
Email address
identifier
string, optional
An optional field that can be used for additional information about the lead, e.g IBAN, phone, reference_number, etc. Returned in response only if it was present in payload.
kyc
object, optional
Additional information about the lead
string, required
Email address
identifier
string, optional
An optional field that can be used for additional information about the lead, e.g IBAN, phone, reference_number, etc. Returned in response only if it was present in payload.
kyc
object, optional
Additional information about the lead
Possible Errors
URL
https://www.saltedge.com/api/partners/v1/leads
https://www.saltedge.com/api/partners/v1/leads
Method
POST
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X POST \
-d "{ \
\"data\": { \
\"email\": \"test@email.com\", \
\"identifier\": \"example-identifier\", \
\"kyc\": { \
\"full_name\": \"John Smith\", \
\"type_of_account\": \"own\", \
\"date_of_birth\": \"2020-01-01\", \
\"place_of_birth\": \"London\", \
\"gender\": \"male\", \
\"citizenship_code\": \"GB\", \
\"residence_address\": \"London, Independence str, block 5\", \
\"legal_name\": \"My Company Limited\", \
\"registered_office_code\": \"GB\", \
\"registered_office_address\": \"London, Independence str, block 5\", \
\"registration_number\": \"12345\" \
} \
} \
}" \
https://www.saltedge.com/api/partners/v1/leads
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X POST \
-d "{ \
\"data\": { \
\"email\": \"test@email.com\", \
\"identifier\": \"example-identifier\", \
\"kyc\": { \
\"full_name\": \"John Smith\", \
\"type_of_account\": \"own\", \
\"date_of_birth\": \"2020-01-01\", \
\"place_of_birth\": \"London\", \
\"gender\": \"male\", \
\"citizenship_code\": \"GB\", \
\"residence_address\": \"London, Independence str, block 5\", \
\"legal_name\": \"My Company Limited\", \
\"registered_office_code\": \"GB\", \
\"registered_office_address\": \"London, Independence str, block 5\", \
\"registration_number\": \"12345\" \
} \
} \
}" \
https://www.saltedge.com/api/partners/v1/leads
Sample response
{
"data": {
"email": "test@email.com",
"customer_id": "222222222222222222",
"identifier": "example-identifier"
}
}
Remove
Deletes partner association with a lead.
Parameters
customer_id
string, required
The id
of the customer.
customer_id
string, required
The id
of the customer.
Possible Errors
URL
https://www.saltedge.com/api/partners/v1/leads?customer_id={customer.id}
https://www.saltedge.com/api/partners/v1/leads
Method
DELETE
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X DELETE \
https://www.saltedge.com/api/partners/v1/leads?customer_id=123
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X DELETE \
https://www.saltedge.com/api/partners/v1/leads?customer_id=123
Sample response
{
"data": {
"deleted": true,
"lead_email": "lead@email.com"
}
}
Payment session
The easiest way to initiate payments using Payment Initiation API is to use Payment Widget, which handles all the authentication interaction with the user.
After the request is executed, you will receive a connect_url
field, which the user should be redirected to in order to process with the payment flow.
If you intend to collect payment consent on your side and the user will select the provider in your application, please make sure that your users are acknowledged by the related Terms and Conditions and Privacy Policy by integration of the following text in your application: “By clicking Proceed you agree to be bound by fino run GmbH Terms and Conditions and Privacy Policy.”
Parameters
provider_code
string, optional
The code of the desired provider. To access the list of providers that support payments, see providers list. If passed, make sure the chosen provider supports the desired payment template.
Even though the provider_code
is an optional
field, its absence during payment initiation may lead to the following outcomes:
- The end-user may choose a provider that does not support the payment template the client has passed to Salt Edge Partner API. This will result in an error.
- The end-user may choose a provider that has additional
required_payment_fields
.
skip_provider_select
boolean, optional
Whether the provider selection page should be skipped. In order for this to work, besides passing skip_provider_select
as true
, an OAuth provider’s provider_code
should be passed. Default to false
.
payment_attributes
object
All the attributes (required and optional) that are needed for a successful payment initiation received in show templates
return_to
string, optional
The URL the user will be redirected to. Defaults to the client's home URL
show_consent_confirmation
boolean, optional
If sent as false
, upon submitting the form, the end-user will not be asked to give consent. Defaults to true
.
disable_provider_search
boolean, optional
If sent as true
, together with provider_code
, does not allow the end-user to change the preselected provider. Defaults to false
.
javascript_callback_type
string, optional
Allows you to specify what kind of callback type you are expecting. Possible values: post_message
. Defaults to null
.
return_payment_id
boolean, optional
Whether to append payment_id
to return_to
URL. Defaults to false
.
return_error_class
boolean, optional
Whether to append error_class
to return_to
URL. Defaults to false
.
locale
string, optional
The language of the Payments Connect widget and of the returned error message(s) in the ISO 639-1 format. Possible values are: bg
, cz
, de
, en
, es-MX
, es
, fi
, fr
, he
, hr
, hu
, it
, nl
, pl
, pt-BR
, pt
, ro
, ru
, si
, sk
, sv
, tr
, uk
, zh-HK
(Traditional), zh
(Simplified). Defaults to en
.
country_code
string, optional
Returns the list of providers only from given country. Possible values: any country code from ISO 3166-1 alpha-2, e.g.: 'DE'
. Defaults to null
.
kyc
object, optional
Additional information about the lead.
custom_fields
object, optional
A JSON object, which will be sent back on any of your callbacks
provider_code
string, optional
The code of the desired provider. To access the list of providers that support payments, see providers list. If passed, make sure the chosen provider supports the desired payment template.
Even though the provider_code
is an optional
field, its absence during payment initiation may lead to the following outcomes:
- The end-user may choose a provider that does not support the payment template the client has passed to Salt Edge Partner API. This will result in an error.
- The end-user may choose a provider that has additional
required_payment_fields
.
skip_provider_select
boolean, optional
Whether the provider selection page should be skipped. In order for this to work, besides passing skip_provider_select
as true
, an OAuth provider’s provider_code
should be passed. Default to false
.
payment_attributes
object
All the attributes (required and optional) that are needed for a successful payment initiation received in show templates
return_to
string, optional
The URL the user will be redirected to. Defaults to the client's home URL
show_consent_confirmation
boolean, optional
If sent as false
, upon submitting the form, the end-user will not be asked to give consent. Defaults to true
.
disable_provider_search
boolean, optional
If sent as true
, together with provider_code
, does not allow the end-user to change the preselected provider. Defaults to false
.
javascript_callback_type
string, optional
Allows you to specify what kind of callback type you are expecting. Possible values: post_message
. Defaults to null
.
return_payment_id
boolean, optional
Whether to append payment_id
to return_to
URL. Defaults to false
.
return_error_class
boolean, optional
Whether to append error_class
to return_to
URL. Defaults to false
.
locale
string, optional
The language of the Payments Connect widget and of the returned error message(s) in the ISO 639-1 format. Possible values are: bg
, cz
, de
, en
, es-MX
, es
, fi
, fr
, he
, hr
, hu
, it
, nl
, pl
, pt-BR
, pt
, ro
, ru
, si
, sk
, sv
, tr
, uk
, zh-HK
(Traditional), zh
(Simplified). Defaults to en
.
country_code
string, optional
Returns the list of providers only from given country. Possible values: any country code from ISO 3166-1 alpha-2, e.g.: 'DE'
. Defaults to null
.
kyc
object, optional
Additional information about the lead.
custom_fields
object, optional
A JSON object, which will be sent back on any of your callbacks
Possible Errors
Error class | HTTP code | Description |
---|---|---|
ActionNotAllowed | 406 Not Acceptable | The client has no access to the required route or direct API access is not permitted. Please contact us |
ActionNotSupported | 406 Not Acceptable | The regulated entity has no necessary roles |
CertificateNotFound | 400 Bad Request | The regulated entity has no necessary permissions |
CustomerLocked | 406 Not Acceptable | The customer is blocked |
InvalidPaymentAttributes | 406 Not Acceptable | Some of the |
PaymentAttributeNotSet | 406 Not Acceptable | There are missing payment attributes in client settings |
PaymentTemplateNotSupported | 406 Not Acceptable | The |
WrongRequestFormat | 400 Bad Request | The |
URL
https://www.saltedge.com/api/partners/v1/payments/sessions
https://www.saltedge.com/api/partners/v1/payments/sessions
Method
POST
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X POST \
-d "{ \
\"data\": { \
\"customer_id\": \"222222222222222222\", \
\"provider_code\": \"fake_client_xf\", \
\"show_consent_confirmation\": true, \
\"template_identifier\": \"SEPA\", \
\"return_to\": \"http://example.com/\", \
\"payment_attributes\": { \
\"end_to_end_id\": \"#123123123\", \
\"reference\": \"p:131313131313131313\", \
\"customer_last_logged_at\": \"2020-07-12T13:48:40Z\", \
\"customer_ip_address\": \"255.255.255.255\", \
\"customer_device_os\": \"iOS 11\", \
\"creditor_name\": \"Jay Dawson\", \
\"creditor_street_name\": \"One Canada Square\", \
\"creditor_building_number\": \"One\", \
\"creditor_post_code\": \"E14 5AB\", \
\"creditor_town\": \"London\", \
\"creditor_country_code\": \"UK\", \
\"currency_code\": \"EUR\", \
\"amount\": \"199000.00\", \
\"description\": \"Stocks purchase\", \
\"creditor_iban\": \"GB33BUKB20201555555555\", \
\"mode\": \"normal\" \
} \
} \
}" \
https://www.saltedge.com/api/partners/v1/payments/sessions
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X POST \
-d "{ \
\"data\": { \
\"customer_id\": \"222222222222222222\", \
\"provider_code\": \"fake_client_xf\", \
\"show_consent_confirmation\": true, \
\"template_identifier\": \"SEPA\", \
\"return_to\": \"http://example.com/\", \
\"payment_attributes\": { \
\"end_to_end_id\": \"#123123123\", \
\"reference\": \"p:131313131313131313\", \
\"customer_last_logged_at\": \"2020-07-12T13:48:40Z\", \
\"customer_ip_address\": \"255.255.255.255\", \
\"customer_device_os\": \"iOS 11\", \
\"creditor_name\": \"Jay Dawson\", \
\"creditor_street_name\": \"One Canada Square\", \
\"creditor_building_number\": \"One\", \
\"creditor_post_code\": \"E14 5AB\", \
\"creditor_town\": \"London\", \
\"creditor_country_code\": \"UK\", \
\"currency_code\": \"EUR\", \
\"amount\": \"199000.00\", \
\"description\": \"Stocks purchase\", \
\"creditor_iban\": \"GB33BUKB20201555555555\", \
\"mode\": \"normal\" \
} \
} \
}" \
https://www.saltedge.com/api/partners/v1/payments/sessions
Sample response
{
"data": {
"expires_at": "2024-10-08T15:41:08Z",
"connect_url": "https://www.saltedge.com/payments/connect?token=GENERATED_TOKEN"
}
}
{
"data": {
"expires_at": "2024-10-08T15:41:08Z",
"connect_url": "https://www.saltedge.com/payments/connect?token=GENERATED_TOKEN"
}
}
Customers
A customer represents a single end-user of the Salt Edge Partners API.
You need to store the id
returned in the callbacks, which is necessary when listing Payments.
We give you the following customer API actions so that the customer will be successfully identified within Salt Edge Partner API.
Show
Returns the customer object.
Parameters
id
string, required
The id
of the customer
id
string, required
The id
of the customer
Possible Errors
URL
https://www.saltedge.com/api/partners/v1/customers/{customer.id}
https://www.saltedge.com/api/partners/v1/customers/{customer.id}
Method
GET
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/customers/222222222222222222
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/customers/222222222222222222
Sample Response
{
"data": {
"id": "222222222222222222",
"identifier": "12rv1212f1efxchsdhbgv",
"created_at": "2020-03-12T09:20:01Z",
"updated_at": "2020-03-12T09:20:01Z"
}
}
List
List all of your app customers. This route is available only for web applications, not mobile ones.
Possible Errors
URL
https://www.saltedge.com/api/partners/v1/customers
https://www.saltedge.com/api/partners/v1/customers
Method
GET
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/customers
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/customers
Sample Response
{
"data": [
{
"id": "222222222222222222",
"identifier": "unique_customer_identifier",
"created_at": "2020-03-12T09:20:01Z",
"updated_at": "2020-03-12T09:20:01Z"
},
{
"id": "222222222222222223",
"identifier": "unique_customer_identifier_2",
"created_at": "2020-03-12T09:20:01Z",
"updated_at": "2020-03-12T09:20:01Z"
}
],
"meta": {
"next_id": "222222222222222224",
"next_page": "/api/partners/v1/customers?from_id=222222222222222224"
}
}
Payments
A payment resource represents a detailed description of a particular payment.
They are meant to provide you with more information about the executed payments for further usage in technical and statistical purposes.
Attributes
id
string
The id
of the payment
status
string
Possible values are:
processing
– the payment order execution is in progress, more detailed information about its status can be found in the currentstage
. Possiblestages
- all except forfinish
.accepted
– the payment order was accepted by the provider. Possiblestages
-finish
.rejected
– the payment order was rejected by the provider, and a reason is provided. Possiblestages
-finish
.failed
– either the payment order execution failed due to an unknown reason, or the service provider returned a generic error, or the provider was down, or the provider returned an unexpected response. Possiblestages
-finish
.unknown
– the payment order could not be confirmed to be either successful orfailed
/rejected
within the allocated time. Possiblestages
-finish
.deleted
– the payment was deleted. Possiblestages
-finish
.
created_at
string (date-time)
Time and date when the payment was made
updated_at
string (date-time)
The last time when any of the payment’s attributes were changed
id
string
The id
of the payment
status
string
Possible values are:
processing
– the payment order execution is in progress, more detailed information about its status can be found in the currentstage
. Possiblestages
- all except forfinish
.accepted
– the payment order was accepted by the provider. Possiblestages
-finish
.rejected
– the payment order was rejected by the provider, and a reason is provided. Possiblestages
-finish
.failed
– either the payment order execution failed due to an unknown reason, or the service provider returned a generic error, or the provider was down, or the provider returned an unexpected response. Possiblestages
-finish
.unknown
– the payment order could not be confirmed to be either successful orfailed
/rejected
within the allocated time. Possiblestages
-finish
.deleted
– the payment was deleted. Possiblestages
-finish
.
created_at
string (date-time)
Time and date when the payment was made
updated_at
string (date-time)
The last time when any of the payment’s attributes were changed
Sample object
{
"data": {
"id": "131313131313131313",
"payment_attributes": {
"amount": "120",
"iban_to": "DE12345678123456781231",
"description": "test",
"currency_code": "EUR"
},
"status": "processing",
"stages": [
{
"name": "initialize",
"created_at": "2024-10-08T14:16:08Z"
},
{
"name": "start",
"created_at": "2024-10-08T14:17:08Z"
},
{
"name": "interactive",
"created_at": "2024-10-08T14:18:08Z",
"interactive_html": "<div id='saltedge-interactive' data-saltedge-type='radio' data-saltedge-name='iban'>\n<span>Choose and input account iban:</span>\n<ol>\n<li value='XF123456789012345678'>XF123456789012345678 (800.0 EUR)</li><li value='XF876543210987654321'>XF876543210987654321 (800.0 USD)</li>\n</ol>\n</div>\n",
"interactive_fields_names": [
"iban"
]
}
],
"created_at": "2024-10-08T14:16:08Z",
"updated_at": "2024-10-08T14:18:08Z"
}
}
{
"data": {
"id": "131313131313131313",
"payment_attributes": {
"amount": "120",
"iban_to": "DE12345678123456781231",
"description": "test",
"currency_code": "EUR"
},
"status": "processing",
"stages": [
{
"name": "initialize",
"created_at": "2024-10-08T14:16:08Z"
},
{
"name": "start",
"created_at": "2024-10-08T14:17:08Z"
},
{
"name": "interactive",
"created_at": "2024-10-08T14:18:08Z",
"interactive_html": "<div id='saltedge-interactive' data-saltedge-type='radio' data-saltedge-name='iban'>\n<span>Choose and input account iban:</span>\n<ol>\n<li value='XF123456789012345678'>XF123456789012345678 (800.0 EUR)</li><li value='XF876543210987654321'>XF876543210987654321 (800.0 USD)</li>\n</ol>\n</div>\n",
"interactive_fields_names": [
"iban"
]
}
],
"created_at": "2024-10-08T14:16:08Z",
"updated_at": "2024-10-08T14:18:08Z"
}
}
Show
Returns a single payment object.
Parameters
payment_id
string
The id
of the payment
payment_id
string
The id
of the payment
Possible Errors
Error class | HTTP code | Description |
---|---|---|
PaymentNotFound | 404 Not Found | The |
URL
https://www.saltedge.com/api/partners/v1/payments/{payment.id}
https://www.saltedge.com/api/partners/v1/payments/{payment.id}
Method
GET
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/payments/131313131313131313
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/payments/131313131313131313
Sample response
{
"data": {
"id": "131313131313131313",
"provider_code": "fake_client_xf",
"provider_name": "Fake Bank with Client Keys",
"customer_id": "222222222222222222",
"created_at": "2024-10-08T14:16:08Z",
"updated_at": "2024-10-08T14:22:08Z",
"status": "accepted",
"template_identifier": "SEPA",
"payment_attributes": {
"end_to_end_id": "#123123123",
"reference": "p:474747474747474747",
"customer_last_logged_at": "2024-10-06T14:41:08Z",
"customer_ip_address": "255.255.255.255",
"customer_device_os": "iOS 11",
"creditor_name": "Jay Dawson",
"creditor_street_name": "One Canada Square",
"creditor_building_number": "One",
"creditor_country_code": "UK",
"currency_code": "GBP",
"amount": "199000.00",
"description": "Stocks purchase",
"creditor_iban": "GB33BUKB20201555555555"
},
"custom_fields": {
},
"stages": [
{
"id": "242424242424242420",
"name": "initialize",
"created_at": "2024-10-08T14:16:08Z"
},
{
"id": "242424242424242421",
"name": "start",
"created_at": "2024-10-08T14:17:08Z"
},
{
"id": "242424242424242422",
"name": "submission",
"created_at": "2024-10-08T14:18:08Z"
},
{
"id": "242424242424242423",
"name": "interactive",
"created_at": "2024-10-08T14:19:08Z",
"interactive_html": "<div id='saltedge-interactive' data-saltedge-type='radio' data-saltedge-name='type_index'><span>Please authorize payment for total of 100.35 EUR.</span><ol> <li value=''>Payment fee.: 0.1 EUR</li><li value=''>Bank fee.: 0.25 EUR</li></ol></div>",
"interactive_fields_names": [
"confirmation_code"
],
"interactive_fields_options": null
},
{
"id": "242424242424242424",
"name": "submission",
"created_at": "2024-10-08T14:19:08Z",
"interactive_fields": {
"iban": "XF123456789012345678",
"confirmation_code": 123456
}
},
{
"id": "242424242424242425",
"name": "settlement",
"created_at": "2024-10-08T14:20:08Z"
},
{
"id": "242424242424242426",
"name": "completed",
"created_at": "2024-10-08T14:21:08Z"
},
{
"id": "242424242424242427",
"name": "finish",
"created_at": "2024-10-08T14:22:08Z"
}
]
}
}
{
"data": {
"id": "131313131313131313",
"provider_code": "fake_client_xf",
"provider_name": "Fake Bank with Client Keys",
"customer_id": "222222222222222222",
"created_at": "2024-10-08T14:16:08Z",
"updated_at": "2024-10-08T14:22:08Z",
"status": "accepted",
"template_identifier": "SEPA",
"payment_attributes": {
"end_to_end_id": "#123123123",
"reference": "p:474747474747474747",
"customer_last_logged_at": "2024-10-06T14:41:08Z",
"customer_ip_address": "255.255.255.255",
"customer_device_os": "iOS 11",
"creditor_name": "Jay Dawson",
"creditor_street_name": "One Canada Square",
"creditor_building_number": "One",
"creditor_country_code": "UK",
"currency_code": "GBP",
"amount": "199000.00",
"description": "Stocks purchase",
"creditor_iban": "GB33BUKB20201555555555"
},
"custom_fields": {
},
"stages": [
{
"id": "242424242424242420",
"name": "initialize",
"created_at": "2024-10-08T14:16:08Z"
},
{
"id": "242424242424242421",
"name": "start",
"created_at": "2024-10-08T14:17:08Z"
},
{
"id": "242424242424242422",
"name": "submission",
"created_at": "2024-10-08T14:18:08Z"
},
{
"id": "242424242424242423",
"name": "interactive",
"created_at": "2024-10-08T14:19:08Z",
"interactive_html": "<div id='saltedge-interactive' data-saltedge-type='radio' data-saltedge-name='type_index'><span>Please authorize payment for total of 100.35 EUR.</span><ol> <li value=''>Payment fee.: 0.1 EUR</li><li value=''>Bank fee.: 0.25 EUR</li></ol></div>",
"interactive_fields_names": [
"confirmation_code"
],
"interactive_fields_options": null
},
{
"id": "242424242424242424",
"name": "submission",
"created_at": "2024-10-08T14:19:08Z",
"interactive_fields": {
"iban": "XF123456789012345678",
"confirmation_code": 123456
}
},
{
"id": "242424242424242425",
"name": "settlement",
"created_at": "2024-10-08T14:20:08Z"
},
{
"id": "242424242424242426",
"name": "completed",
"created_at": "2024-10-08T14:21:08Z"
},
{
"id": "242424242424242427",
"name": "finish",
"created_at": "2024-10-08T14:22:08Z"
}
]
}
}
List
Returns all the payments accessible to your application. The payments are sorted in ascending order of their ids
, so the newest payments will come last. We recommend you fetch the whole list of payments to check whether any of the properties have changed. You can read more about next_id
field in the pagination section of the reference.
Parameters
from_id
string, optional
The id
of the record starting the next page. Defaults to null
.
customer_id
string
The id
of the customer containing the payments
from_id
string, optional
The id
of the record starting the next page. Defaults to null
.
customer_id
string
The id
of the customer containing the payments
Possible Errors
Error class | HTTP code | Description |
---|---|---|
ValueOutOfRange | 400 Bad Request | Either |
URL
https://www.saltedge.com/api/partners/v1/payments?customer_id={customer.id}
https://www.saltedge.com/api/partners/v1/payments?customer_id={customer.id}
Method
GET
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/payments?customer_id=222222222222222222
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/payments?customer_id=222222222222222222
Sample response
{
"data": [
{
"id": "131313131313131313",
"provider_code": "fake_client_xf",
"provider_name": "Fake Bank with Client Keys",
"customer_id": "222222222222222222",
"created_at": "2024-09-23T14:41:08Z",
"updated_at": "2024-10-06T14:41:08Z",
"status": "processing",
"template_identifier": "SEPA",
"payment_attributes": {
"end_to_end_id": "#123123123",
"reference": "p:474747474747474747",
"customer_last_logged_at": "2024-10-06T14:41:08Z",
"customer_ip_address": "255.255.255.255",
"customer_device_os": "iOS 11",
"creditor_name": "Jay Dawson",
"creditor_street_name": "One Canada Square",
"creditor_building_number": "One",
"creditor_country_code": "UK",
"currency_code": "GBP",
"amount": "199000.00",
"description": "Stocks purchase",
"creditor_iban": "GB33BUKB20201555555555"
},
"stages": [
{
"id": "242424242424242420",
"name": "initialize",
"created_at": "2024-10-06T14:41:08Z"
},
{
"id": "242424242424242421",
"name": "start",
"created_at": "2024-10-06T14:41:08Z"
},
{
"id": "242424242424242422",
"name": "interactive",
"created_at": "2024-10-06T14:41:08Z",
"interactive_html": "<div id='saltedge-interactive' data-saltedge-type='radio' data-saltedge-name='iban'><span>Choose and input account iban:</span><ol><li value='XF123456789012345678'>XF123456789012345678 (800.0 EUR)</li><li value='XF876543210987654321'>XF876543210987654321 (800.0 USD)</li></ol></div>",
"interactive_fields_names": [
"iban"
]
}
]
}
],
"meta": {
"next_id": "131313131313131314",
"next_page": "/api/payments/v1/payments?customer_id=5122311&from_id=131313131313131314"
}
}
{
"data": [
{
"id": "131313131313131313",
"provider_code": "fake_client_xf",
"provider_name": "Fake Bank with Client Keys",
"customer_id": "222222222222222222",
"created_at": "2024-09-23T14:41:08Z",
"updated_at": "2024-10-06T14:41:08Z",
"status": "processing",
"template_identifier": "SEPA",
"payment_attributes": {
"end_to_end_id": "#123123123",
"reference": "p:474747474747474747",
"customer_last_logged_at": "2024-10-06T14:41:08Z",
"customer_ip_address": "255.255.255.255",
"customer_device_os": "iOS 11",
"creditor_name": "Jay Dawson",
"creditor_street_name": "One Canada Square",
"creditor_building_number": "One",
"creditor_country_code": "UK",
"currency_code": "GBP",
"amount": "199000.00",
"description": "Stocks purchase",
"creditor_iban": "GB33BUKB20201555555555"
},
"stages": [
{
"id": "242424242424242420",
"name": "initialize",
"created_at": "2024-10-06T14:41:08Z"
},
{
"id": "242424242424242421",
"name": "start",
"created_at": "2024-10-06T14:41:08Z"
},
{
"id": "242424242424242422",
"name": "interactive",
"created_at": "2024-10-06T14:41:08Z",
"interactive_html": "<div id='saltedge-interactive' data-saltedge-type='radio' data-saltedge-name='iban'><span>Choose and input account iban:</span><ol><li value='XF123456789012345678'>XF123456789012345678 (800.0 EUR)</li><li value='XF876543210987654321'>XF876543210987654321 (800.0 USD)</li></ol></div>",
"interactive_fields_names": [
"iban"
]
}
]
}
],
"meta": {
"next_id": "131313131313131314",
"next_page": "/api/payments/v1/payments?customer_id=5122311&from_id=131313131313131314"
}
}
Stages
The following represents the objects you get in the stages
field of the payment object.
id
string
The id
of the stage
name
string
The name of the stage. Possible values:
initialize
- the payment object was createdstart
- the payment process has just beguninteractive
- waiting for the interactive inputsubmission
- preparing a payment initiation request for submission to the financial institutionsettlement
- payment initiation request accepted by the financial institution, waiting for settlement to completecompleted
- payment initiation settlement has been completed, funds have been sentfinish
- wrapping up the payment process.
interactive_html
string, optional
HTML code that shows the current interactive state of the payment. Appears only for the interactive providers.
interactive_fields_names
array of strings
The interactive fields that are currently required by the provider of the payment. Appears only for the interactive providers.
error_class
string, optional
Error class name. Appears only when an error occurs.
message
string, optional
Brief error description. Appears only when an error occurs.
created_at
string (date-time)
Time and date when the stage was created
id
string
The id
of the stage
name
string
The name of the stage. Possible values:
initialize
- the payment object was createdstart
- the payment process has just beguninteractive
- waiting for the interactive inputsubmission
- preparing a payment initiation request for submission to the financial institutionsettlement
- payment initiation request accepted by the financial institution, waiting for settlement to completecompleted
- payment initiation settlement has been completed, funds have been sentfinish
- wrapping up the payment process.
interactive_html
string, optional
HTML code that shows the current interactive state of the payment. Appears only for the interactive providers.
interactive_fields_names
array of strings
The interactive fields that are currently required by the provider of the payment. Appears only for the interactive providers.
error_class
string, optional
Error class name. Appears only when an error occurs.
message
string, optional
Brief error description. Appears only when an error occurs.
created_at
string (date-time)
Time and date when the stage was created
Possible Service Errors
During the finish
stage the following errors might occur.
Error class | HTTP code | Description |
---|---|---|
ConnectionFailed | 406 Not Acceptable | Some network errors appeared while fetching data |
ExecutionTimeout | 406 Not Acceptable | It took too long to execute the payment |
InteractiveAdapterTimeout | 406 Not Acceptable | The customer hasn’t completed the interactive step of the payment in time |
InvalidCredentials | 406 Not Acceptable | The customer tried to initiate a payment with the wrong credentials |
InvalidInteractiveCredentials | 406 Not Acceptable | The customer entered wrong credentials during the interactive step of the payment |
PaymentFailed | 406 Not Acceptable | Failed to create the payment |
ProviderUnavailable | 406 Not Acceptable | At the moment, the provider is unavailable for some reason |
Refresh
Allows you to trigger a refresh of the payment status.
Parameters
payment_id
string
The id
of the payment
payment_id
string
The id
of the payment
Possible Errors
Error class | HTTP code | Description |
---|---|---|
PaymentAlreadyStarted | 406 Not Acceptable | The payment is already processing i.e. |
PaymentNotFound | 404 Not Found | The |
PaymentStatusUnknown | Payment status has not yet changed on the bank side. The status can be |
URL
https://www.saltedge.com/api/partners/v1/payments/{payment.id}/refresh
https://www.saltedge.com/api/partners/v1/payments/{payment.id}/refresh
Method
PUT
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X PUT \
https://www.saltedge.com/api/partners/v1/payments/131313131313131313/refresh
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X PUT \
https://www.saltedge.com/api/partners/v1/payments/131313131313131313/refresh
Sample response
{
"data": {
"id": "131313131313131313",
"provider_code": "fake_client_xf",
"provider_name": "Fake Bank with Client Keys",
"customer_id": "222222222222222222",
"created_at": "2024-10-08T14:16:08Z",
"updated_at": "2024-10-08T14:22:08Z",
"status": "unknown",
"template_identifier": "SEPA",
"payment_attributes": {
"end_to_end_id": "#123123123",
"reference": "p:474747474747474747",
"customer_last_logged_at": "2024-10-06T14:41:08Z",
"customer_ip_address": "255.255.255.255",
"customer_device_os": "iOS 11",
"creditor_name": "Jay Dawson",
"creditor_street_name": "One Canada Square",
"creditor_building_number": "One",
"creditor_country_code": "UK",
"currency_code": "GBP",
"amount": "199000.00",
"description": "Stocks purchase",
"creditor_iban": "GB33BUKB20201555555555"
},
"custom_fields": {
},
"stages": [
{
"id": "242424242424242420",
"name": "initialize",
"created_at": "2024-10-08T14:16:08Z"
},
{
"id": "242424242424242421",
"name": "start",
"created_at": "2024-10-08T14:17:08Z"
},
{
"id": "242424242424242422",
"name": "submission",
"created_at": "2024-10-08T14:18:08Z"
},
{
"id": "242424242424242423",
"name": "interactive",
"created_at": "2024-10-08T14:19:08Z",
"interactive_html": "<div id='saltedge-interactive' data-saltedge-type='radio' data-saltedge-name='type_index'><span>Please authorize payment for total of 100.35 EUR.</span><ol> <li value=''>Payment fee.: 0.1 EUR</li><li value=''>Bank fee.: 0.25 EUR</li></ol></div>",
"interactive_fields_names": [
"confirmation_code"
],
"interactive_fields_options": null
},
{
"id": "242424242424242424",
"name": "submission",
"created_at": "2024-10-08T14:19:08Z",
"interactive_fields": {
"iban": "XF123456789012345678",
"confirmation_code": 123456
}
},
{
"id": "242424242424242425",
"name": "settlement",
"created_at": "2024-10-08T14:20:08Z"
},
{
"id": "242424242424242426",
"name": "completed",
"created_at": "2024-10-08T14:21:08Z"
},
{
"id": "242424242424242427",
"name": "finish",
"created_at": "2024-10-08T14:22:08Z"
}
]
}
}
{
"data": {
"id": "131313131313131313",
"provider_code": "fake_client_xf",
"provider_name": "Fake Bank with Client Keys",
"customer_id": "222222222222222222",
"created_at": "2024-10-08T14:16:08Z",
"updated_at": "2024-10-08T14:22:08Z",
"status": "unknown",
"template_identifier": "SEPA",
"payment_attributes": {
"end_to_end_id": "#123123123",
"reference": "p:474747474747474747",
"customer_last_logged_at": "2024-10-06T14:41:08Z",
"customer_ip_address": "255.255.255.255",
"customer_device_os": "iOS 11",
"creditor_name": "Jay Dawson",
"creditor_street_name": "One Canada Square",
"creditor_building_number": "One",
"creditor_country_code": "UK",
"currency_code": "GBP",
"amount": "199000.00",
"description": "Stocks purchase",
"creditor_iban": "GB33BUKB20201555555555"
},
"custom_fields": {
},
"stages": [
{
"id": "242424242424242420",
"name": "initialize",
"created_at": "2024-10-08T14:16:08Z"
},
{
"id": "242424242424242421",
"name": "start",
"created_at": "2024-10-08T14:17:08Z"
},
{
"id": "242424242424242422",
"name": "submission",
"created_at": "2024-10-08T14:18:08Z"
},
{
"id": "242424242424242423",
"name": "interactive",
"created_at": "2024-10-08T14:19:08Z",
"interactive_html": "<div id='saltedge-interactive' data-saltedge-type='radio' data-saltedge-name='type_index'><span>Please authorize payment for total of 100.35 EUR.</span><ol> <li value=''>Payment fee.: 0.1 EUR</li><li value=''>Bank fee.: 0.25 EUR</li></ol></div>",
"interactive_fields_names": [
"confirmation_code"
],
"interactive_fields_options": null
},
{
"id": "242424242424242424",
"name": "submission",
"created_at": "2024-10-08T14:19:08Z",
"interactive_fields": {
"iban": "XF123456789012345678",
"confirmation_code": 123456
}
},
{
"id": "242424242424242425",
"name": "settlement",
"created_at": "2024-10-08T14:20:08Z"
},
{
"id": "242424242424242426",
"name": "completed",
"created_at": "2024-10-08T14:21:08Z"
},
{
"id": "242424242424242427",
"name": "finish",
"created_at": "2024-10-08T14:22:08Z"
}
]
}
}
Payment templates
A payment template resource contains a set of required and optional fields that need to be filled in order to successfully execute a payment. Different payment templates serve different purposes.
Attributes
id
string
The id
of the payment template
identifier
string
Unique identifier of the payment template
description
string
Additional information related to the template
deprecated
boolean
Whether the payment template is deprecated or not. Deprecated payment templates will be removed in the next API version.
created_at
string (date-time)
Time and date when the payment template was added
updated_at
string (date-time)
The last time when any of the template’s attributes were changed
id
string
The id
of the payment template
identifier
string
Unique identifier of the payment template
description
string
Additional information related to the template
deprecated
boolean
Whether the payment template is deprecated or not. Deprecated payment templates will be removed in the next API version.
created_at
string (date-time)
Time and date when the payment template was added
updated_at
string (date-time)
The last time when any of the template’s attributes were changed
Sample object
{
"data": {
"id": "131313131313131313",
"identifier": "SEPA",
"description": "SEPA Payment",
"deprecated": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"payment_fields": [
{
"id": "363636363636363630",
"payment_template_id": "29",
"name": "amount",
"english_name": "Amount",
"localized_name": "Amount",
"nature": "number",
"position": 29,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363631",
"payment_template_id": "29",
"name": "debtor_iban",
"english_name": "Debtor IBAN",
"localized_name": "Debtor IBAN",
"nature": "text",
"position": 30,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363632",
"payment_template_id": "29",
"name": "creditor_iban",
"english_name": "Creditor IBAN",
"localized_name": "Creditor IBAN",
"nature": "text",
"position": 31,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363633",
"payment_template_id": "29",
"name": "mode",
"english_name": "Mode",
"localized_name": "Mode",
"nature": "select",
"position": 33,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "NORMAL",
"english_name": "NORMAL",
"localized_name": "NORMAL",
"option_value": "NORMAL",
"selected": true
},
{
"name": "INSTANT",
"english_name": "INSTANT",
"localized_name": "INSTANT",
"option_value": "INSTANT",
"selected": false
}
]
},
{
"id": "363636363636363633",
"payment_template_id": "29",
"name": "debtor_region",
"english_name": "Debtor Region",
"localized_name": "Debtor Region",
"nature": "text",
"position": 14,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363635",
"payment_template_id": "29",
"name": "creditor_agent",
"english_name": "Creditor Agent ID",
"localized_name": "Creditor Agent ID",
"nature": "text",
"position": 17,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363636",
"payment_template_id": "29",
"name": "customer_ip_address",
"english_name": "Customer IP Address",
"localized_name": "Customer IP Address",
"nature": "text",
"position": 2,
"extra": {
"validation_regexp": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363637",
"payment_template_id": "29",
"name": "debtor_name",
"english_name": "Debtor Name",
"localized_name": "Debtor Name",
"nature": "text",
"position": 8,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363638",
"payment_template_id": "29",
"name": "creditor_name",
"english_name": "Creditor Name",
"localized_name": "Creditor Name",
"nature": "text",
"position": 16,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363639",
"payment_template_id": "29",
"name": "creditor_address",
"english_name": "Creditor Address",
"localized_name": "Creditor Address",
"nature": "text",
"position": 19,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363640",
"payment_template_id": "29",
"name": "debtor_building_number",
"english_name": "Debtor Building Number",
"localized_name": "Debtor Building Number",
"nature": "text",
"position": 11,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363641",
"payment_template_id": "29",
"name": "customer_longitude",
"english_name": "Customer Longitude",
"localized_name": "Customer Longitude",
"nature": "number",
"position": 7,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363642",
"payment_template_id": "29",
"name": "debtor_town",
"english_name": "Debtor Town",
"localized_name": "Debtor Town",
"nature": "text",
"position": 13,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363643",
"payment_template_id": "29",
"name": "creditor_agent_name",
"english_name": "Creditor Agent Name",
"localized_name": "Creditor Agent Name",
"nature": "text",
"position": 18,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363644",
"payment_template_id": "29",
"name": "creditor_street_name",
"english_name": "Creditor Street Name",
"localized_name": "Creditor Street Name",
"nature": "text",
"position": 20,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363645",
"payment_template_id": "29",
"name": "creditor_building_number",
"english_name": "Creditor Building Number",
"localized_name": "Creditor Building Number",
"nature": "text",
"position": 21,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363646",
"payment_template_id": "29",
"name": "creditor_post_code",
"english_name": "Creditor Post Code",
"localized_name": "Creditor Post Code",
"nature": "text",
"position": 22,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363647",
"payment_template_id": "29",
"name": "creditor_town",
"english_name": "Creditor Town",
"localized_name": "Creditor Town",
"nature": "text",
"position": 23,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363648",
"payment_template_id": "29",
"name": "creditor_region",
"english_name": "Creditor Region",
"localized_name": "Creditor Region",
"nature": "text",
"position": 24,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363649",
"payment_template_id": "29",
"name": "creditor_country_code",
"english_name": "Creditor Country Code",
"localized_name": "Creditor Country Code",
"nature": "text",
"position": 25,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363650",
"payment_template_id": "29",
"name": "date",
"english_name": "Payment Date",
"localized_name": "Payment Date",
"nature": "text",
"position": 26,
"extra": {
"validation_regexp": "^\\d{4}-\\d{2}-\\d{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363651",
"payment_template_id": "29",
"name": "time",
"english_name": "Payment Time",
"localized_name": "Payment Time",
"nature": "text",
"position": 27,
"extra": {
"validation_regexp": "^\\d{2}:\\d{2}(:\\d{2})?$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363652",
"payment_template_id": "29",
"name": "customer_ip_port",
"english_name": "Customer IP Port",
"localized_name": "Customer IP Port",
"nature": "number",
"position": 3,
"extra": {
"validation_regexp": "^\\d{1,5}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363653",
"payment_template_id": "29",
"name": "customer_device_os",
"english_name": "Customer Device OS",
"localized_name": "Customer Device OS",
"nature": "text",
"position": 4,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363654",
"payment_template_id": "29",
"name": "customer_latitude",
"english_name": "Customer Latitude",
"localized_name": "Customer Latitude",
"nature": "number",
"position": 6,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363655",
"payment_template_id": "29",
"name": "description",
"english_name": "Description",
"localized_name": "Description",
"nature": "text",
"position": 28,
"extra": {
"validation_regexp": "^.{2,1000}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363656",
"payment_template_id": "29",
"name": "end_to_end_id",
"english_name": "End to End Identification",
"localized_name": "End to End Identification",
"nature": "text",
"position": 0,
"extra": {
"validation_regexp": "^.{1,35}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363657",
"payment_template_id": "29",
"name": "debtor_address",
"english_name": "Debtor Address",
"localized_name": "Debtor Address",
"nature": "text",
"position": 9,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363658",
"payment_template_id": "29",
"name": "debtor_street_name",
"english_name": "Debtor Street Name",
"localized_name": "Debtor Street Name",
"nature": "text",
"position": 10,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363659",
"payment_template_id": "29",
"name": "debtor_post_code",
"english_name": "Debtor Post Code",
"localized_name": "Debtor Post Code",
"nature": "text",
"position": 12,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363660",
"payment_template_id": "29",
"name": "debtor_country_code",
"english_name": "Debtor Country Code",
"localized_name": "Debtor Country Code",
"nature": "text",
"position": 15,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363661",
"payment_template_id": "29",
"name": "currency_code",
"english_name": "Currency",
"localized_name": "Currency",
"nature": "select",
"position": 32,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "EUR",
"english_name": "EUR",
"localized_name": "EUR",
"option_value": "EUR",
"selected": true
}
]
},
{
"id": "36363636363636363662",
"payment_template_id": "29",
"name": "customer_user_agent",
"english_name": "Customer User Agent",
"localized_name": "Customer User Agent",
"nature": "text",
"position": 5,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363663",
"payment_template_id": "29",
"name": "customer_last_logged_at",
"english_name": "Customer Last Logged At",
"localized_name": "Customer Last Logged At",
"nature": "text",
"position": 1,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
}
]
}
}
{
"data": {
"id": "131313131313131313",
"identifier": "SEPA",
"description": "SEPA Payment",
"deprecated": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"payment_fields": [
{
"id": "363636363636363630",
"payment_template_id": "29",
"name": "amount",
"english_name": "Amount",
"localized_name": "Amount",
"nature": "number",
"position": 29,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363631",
"payment_template_id": "29",
"name": "debtor_iban",
"english_name": "Debtor IBAN",
"localized_name": "Debtor IBAN",
"nature": "text",
"position": 30,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363632",
"payment_template_id": "29",
"name": "creditor_iban",
"english_name": "Creditor IBAN",
"localized_name": "Creditor IBAN",
"nature": "text",
"position": 31,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363633",
"payment_template_id": "29",
"name": "mode",
"english_name": "Mode",
"localized_name": "Mode",
"nature": "select",
"position": 33,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "NORMAL",
"english_name": "NORMAL",
"localized_name": "NORMAL",
"option_value": "NORMAL",
"selected": true
},
{
"name": "INSTANT",
"english_name": "INSTANT",
"localized_name": "INSTANT",
"option_value": "INSTANT",
"selected": false
}
]
},
{
"id": "363636363636363633",
"payment_template_id": "29",
"name": "debtor_region",
"english_name": "Debtor Region",
"localized_name": "Debtor Region",
"nature": "text",
"position": 14,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363635",
"payment_template_id": "29",
"name": "creditor_agent",
"english_name": "Creditor Agent ID",
"localized_name": "Creditor Agent ID",
"nature": "text",
"position": 17,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363636",
"payment_template_id": "29",
"name": "customer_ip_address",
"english_name": "Customer IP Address",
"localized_name": "Customer IP Address",
"nature": "text",
"position": 2,
"extra": {
"validation_regexp": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363637",
"payment_template_id": "29",
"name": "debtor_name",
"english_name": "Debtor Name",
"localized_name": "Debtor Name",
"nature": "text",
"position": 8,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363638",
"payment_template_id": "29",
"name": "creditor_name",
"english_name": "Creditor Name",
"localized_name": "Creditor Name",
"nature": "text",
"position": 16,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363639",
"payment_template_id": "29",
"name": "creditor_address",
"english_name": "Creditor Address",
"localized_name": "Creditor Address",
"nature": "text",
"position": 19,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363640",
"payment_template_id": "29",
"name": "debtor_building_number",
"english_name": "Debtor Building Number",
"localized_name": "Debtor Building Number",
"nature": "text",
"position": 11,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363641",
"payment_template_id": "29",
"name": "customer_longitude",
"english_name": "Customer Longitude",
"localized_name": "Customer Longitude",
"nature": "number",
"position": 7,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363642",
"payment_template_id": "29",
"name": "debtor_town",
"english_name": "Debtor Town",
"localized_name": "Debtor Town",
"nature": "text",
"position": 13,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363643",
"payment_template_id": "29",
"name": "creditor_agent_name",
"english_name": "Creditor Agent Name",
"localized_name": "Creditor Agent Name",
"nature": "text",
"position": 18,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363644",
"payment_template_id": "29",
"name": "creditor_street_name",
"english_name": "Creditor Street Name",
"localized_name": "Creditor Street Name",
"nature": "text",
"position": 20,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363645",
"payment_template_id": "29",
"name": "creditor_building_number",
"english_name": "Creditor Building Number",
"localized_name": "Creditor Building Number",
"nature": "text",
"position": 21,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363646",
"payment_template_id": "29",
"name": "creditor_post_code",
"english_name": "Creditor Post Code",
"localized_name": "Creditor Post Code",
"nature": "text",
"position": 22,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363647",
"payment_template_id": "29",
"name": "creditor_town",
"english_name": "Creditor Town",
"localized_name": "Creditor Town",
"nature": "text",
"position": 23,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363648",
"payment_template_id": "29",
"name": "creditor_region",
"english_name": "Creditor Region",
"localized_name": "Creditor Region",
"nature": "text",
"position": 24,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363649",
"payment_template_id": "29",
"name": "creditor_country_code",
"english_name": "Creditor Country Code",
"localized_name": "Creditor Country Code",
"nature": "text",
"position": 25,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363650",
"payment_template_id": "29",
"name": "date",
"english_name": "Payment Date",
"localized_name": "Payment Date",
"nature": "text",
"position": 26,
"extra": {
"validation_regexp": "^\\d{4}-\\d{2}-\\d{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363651",
"payment_template_id": "29",
"name": "time",
"english_name": "Payment Time",
"localized_name": "Payment Time",
"nature": "text",
"position": 27,
"extra": {
"validation_regexp": "^\\d{2}:\\d{2}(:\\d{2})?$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363652",
"payment_template_id": "29",
"name": "customer_ip_port",
"english_name": "Customer IP Port",
"localized_name": "Customer IP Port",
"nature": "number",
"position": 3,
"extra": {
"validation_regexp": "^\\d{1,5}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363653",
"payment_template_id": "29",
"name": "customer_device_os",
"english_name": "Customer Device OS",
"localized_name": "Customer Device OS",
"nature": "text",
"position": 4,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363654",
"payment_template_id": "29",
"name": "customer_latitude",
"english_name": "Customer Latitude",
"localized_name": "Customer Latitude",
"nature": "number",
"position": 6,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363655",
"payment_template_id": "29",
"name": "description",
"english_name": "Description",
"localized_name": "Description",
"nature": "text",
"position": 28,
"extra": {
"validation_regexp": "^.{2,1000}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363656",
"payment_template_id": "29",
"name": "end_to_end_id",
"english_name": "End to End Identification",
"localized_name": "End to End Identification",
"nature": "text",
"position": 0,
"extra": {
"validation_regexp": "^.{1,35}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363657",
"payment_template_id": "29",
"name": "debtor_address",
"english_name": "Debtor Address",
"localized_name": "Debtor Address",
"nature": "text",
"position": 9,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363658",
"payment_template_id": "29",
"name": "debtor_street_name",
"english_name": "Debtor Street Name",
"localized_name": "Debtor Street Name",
"nature": "text",
"position": 10,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363659",
"payment_template_id": "29",
"name": "debtor_post_code",
"english_name": "Debtor Post Code",
"localized_name": "Debtor Post Code",
"nature": "text",
"position": 12,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363660",
"payment_template_id": "29",
"name": "debtor_country_code",
"english_name": "Debtor Country Code",
"localized_name": "Debtor Country Code",
"nature": "text",
"position": 15,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363661",
"payment_template_id": "29",
"name": "currency_code",
"english_name": "Currency",
"localized_name": "Currency",
"nature": "select",
"position": 32,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "EUR",
"english_name": "EUR",
"localized_name": "EUR",
"option_value": "EUR",
"selected": true
}
]
},
{
"id": "36363636363636363662",
"payment_template_id": "29",
"name": "customer_user_agent",
"english_name": "Customer User Agent",
"localized_name": "Customer User Agent",
"nature": "text",
"position": 5,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "36363636363636363663",
"payment_template_id": "29",
"name": "customer_last_logged_at",
"english_name": "Customer Last Logged At",
"localized_name": "Customer Last Logged At",
"nature": "text",
"position": 1,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
}
]
}
}
Show
Returns a single payment template object.
Parameters
template_identifier
string
The requested template identifier
template_identifier
string
The requested template identifier
Possible Errors
Error class | HTTP code | Description |
---|---|---|
PaymentTemplateNotFound | 404 Not Found | No payment template was found by the passed template |
URL
https://www.saltedge.com/api/partners/v1/payments/templates/{template.identifier}
https://www.saltedge.com/api/partners/v1/payments/templates/{template.identifier}
Method
GET
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/templates/SEPA
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/templates/SEPA
Sample response
{
"data": {
"id": "131313131313131313",
"identifier": "SEPA",
"description": "SEPA Payment",
"deprecated": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"payment_fields": [
{
"id": "363636363636363630",
"payment_template_id": "29",
"name": "amount",
"english_name": "Amount",
"localized_name": "Amount",
"nature": "number",
"position": 29,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363631",
"payment_template_id": "29",
"name": "debtor_iban",
"english_name": "Debtor IBAN",
"localized_name": "Debtor IBAN",
"nature": "text",
"position": 30,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363632",
"payment_template_id": "29",
"name": "creditor_iban",
"english_name": "Creditor IBAN",
"localized_name": "Creditor IBAN",
"nature": "text",
"position": 31,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363633",
"payment_template_id": "29",
"name": "mode",
"english_name": "Mode",
"localized_name": "Mode",
"nature": "select",
"position": 33,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "NORMAL",
"english_name": "NORMAL",
"localized_name": "NORMAL",
"option_value": "NORMAL",
"selected": true
},
{
"name": "INSTANT",
"english_name": "INSTANT",
"localized_name": "INSTANT",
"option_value": "INSTANT",
"selected": false
}
]
},
{
"id": "363636363636363634",
"payment_template_id": "29",
"name": "debtor_region",
"english_name": "Debtor Region",
"localized_name": "Debtor Region",
"nature": "text",
"position": 14,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363635",
"payment_template_id": "29",
"name": "creditor_agent",
"english_name": "Creditor Agent ID",
"localized_name": "Creditor Agent ID",
"nature": "text",
"position": 17,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363636",
"payment_template_id": "29",
"name": "customer_ip_address",
"english_name": "Customer IP Address",
"localized_name": "Customer IP Address",
"nature": "text",
"position": 2,
"extra": {
"validation_regexp": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363637",
"payment_template_id": "29",
"name": "debtor_name",
"english_name": "Debtor Name",
"localized_name": "Debtor Name",
"nature": "text",
"position": 8,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363638",
"payment_template_id": "29",
"name": "creditor_name",
"english_name": "Creditor Name",
"localized_name": "Creditor Name",
"nature": "text",
"position": 16,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "3636363636363636339",
"payment_template_id": "29",
"name": "creditor_address",
"english_name": "Creditor Address",
"localized_name": "Creditor Address",
"nature": "text",
"position": 19,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363640",
"payment_template_id": "29",
"name": "debtor_building_number",
"english_name": "Debtor Building Number",
"localized_name": "Debtor Building Number",
"nature": "text",
"position": 11,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363641",
"payment_template_id": "29",
"name": "customer_longitude",
"english_name": "Customer Longitude",
"localized_name": "Customer Longitude",
"nature": "number",
"position": 7,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363642",
"payment_template_id": "29",
"name": "debtor_town",
"english_name": "Debtor Town",
"localized_name": "Debtor Town",
"nature": "text",
"position": 13,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363643",
"payment_template_id": "29",
"name": "creditor_agent_name",
"english_name": "Creditor Agent Name",
"localized_name": "Creditor Agent Name",
"nature": "text",
"position": 18,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363644",
"payment_template_id": "29",
"name": "creditor_street_name",
"english_name": "Creditor Street Name",
"localized_name": "Creditor Street Name",
"nature": "text",
"position": 20,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363645",
"payment_template_id": "29",
"name": "creditor_building_number",
"english_name": "Creditor Building Number",
"localized_name": "Creditor Building Number",
"nature": "text",
"position": 21,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363646",
"payment_template_id": "29",
"name": "creditor_post_code",
"english_name": "Creditor Post Code",
"localized_name": "Creditor Post Code",
"nature": "text",
"position": 22,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363647",
"payment_template_id": "29",
"name": "creditor_town",
"english_name": "Creditor Town",
"localized_name": "Creditor Town",
"nature": "text",
"position": 23,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363648",
"payment_template_id": "29",
"name": "creditor_region",
"english_name": "Creditor Region",
"localized_name": "Creditor Region",
"nature": "text",
"position": 24,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363649",
"payment_template_id": "29",
"name": "creditor_country_code",
"english_name": "Creditor Country Code",
"localized_name": "Creditor Country Code",
"nature": "text",
"position": 25,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363650",
"payment_template_id": "29",
"name": "date",
"english_name": "Payment Date",
"localized_name": "Payment Date",
"nature": "text",
"position": 26,
"extra": {
"validation_regexp": "^\\d{4}-\\d{2}-\\d{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363651",
"payment_template_id": "29",
"name": "time",
"english_name": "Payment Time",
"localized_name": "Payment Time",
"nature": "text",
"position": 27,
"extra": {
"validation_regexp": "^\\d{2}:\\d{2}(:\\d{2})?$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363652",
"payment_template_id": "29",
"name": "customer_ip_port",
"english_name": "Customer IP Port",
"localized_name": "Customer IP Port",
"nature": "number",
"position": 3,
"extra": {
"validation_regexp": "^\\d{1,5}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363653",
"payment_template_id": "29",
"name": "customer_device_os",
"english_name": "Customer Device OS",
"localized_name": "Customer Device OS",
"nature": "text",
"position": 4,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363654",
"payment_template_id": "29",
"name": "customer_latitude",
"english_name": "Customer Latitude",
"localized_name": "Customer Latitude",
"nature": "number",
"position": 6,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363655",
"payment_template_id": "29",
"name": "description",
"english_name": "Description",
"localized_name": "Description",
"nature": "text",
"position": 28,
"extra": {
"validation_regexp": "^.{2,1000}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363656",
"payment_template_id": "29",
"name": "end_to_end_id",
"reference": "p:1928384756",
"english_name": "End to End Identification",
"localized_name": "End to End Identification",
"nature": "text",
"position": 0,
"extra": {
"validation_regexp": "^.{1,35}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363657",
"payment_template_id": "29",
"name": "debtor_address",
"english_name": "Debtor Address",
"localized_name": "Debtor Address",
"nature": "text",
"position": 9,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363658",
"payment_template_id": "29",
"name": "debtor_street_name",
"english_name": "Debtor Street Name",
"localized_name": "Debtor Street Name",
"nature": "text",
"position": 10,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363659",
"payment_template_id": "29",
"name": "debtor_post_code",
"english_name": "Debtor Post Code",
"localized_name": "Debtor Post Code",
"nature": "text",
"position": 12,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363660",
"payment_template_id": "29",
"name": "debtor_country_code",
"english_name": "Debtor Country Code",
"localized_name": "Debtor Country Code",
"nature": "text",
"position": 15,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363661",
"payment_template_id": "29",
"name": "currency_code",
"english_name": "Currency",
"localized_name": "Currency",
"nature": "select",
"position": 32,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "EUR",
"english_name": "EUR",
"localized_name": "EUR",
"option_value": "EUR",
"selected": true
}
]
},
{
"id": "363636363636363662",
"payment_template_id": "29",
"name": "customer_user_agent",
"english_name": "Customer User Agent",
"localized_name": "Customer User Agent",
"nature": "text",
"position": 5,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363663",
"payment_template_id": "29",
"name": "customer_last_logged_at",
"english_name": "Customer Last Logged At",
"localized_name": "Customer Last Logged At",
"nature": "text",
"position": 1,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
}
]
}
}
{
"data": {
"id": "131313131313131313",
"identifier": "SEPA",
"description": "SEPA Payment",
"deprecated": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"payment_fields": [
{
"id": "363636363636363630",
"payment_template_id": "29",
"name": "amount",
"english_name": "Amount",
"localized_name": "Amount",
"nature": "number",
"position": 29,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363631",
"payment_template_id": "29",
"name": "debtor_iban",
"english_name": "Debtor IBAN",
"localized_name": "Debtor IBAN",
"nature": "text",
"position": 30,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363632",
"payment_template_id": "29",
"name": "creditor_iban",
"english_name": "Creditor IBAN",
"localized_name": "Creditor IBAN",
"nature": "text",
"position": 31,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363633",
"payment_template_id": "29",
"name": "mode",
"english_name": "Mode",
"localized_name": "Mode",
"nature": "select",
"position": 33,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "NORMAL",
"english_name": "NORMAL",
"localized_name": "NORMAL",
"option_value": "NORMAL",
"selected": true
},
{
"name": "INSTANT",
"english_name": "INSTANT",
"localized_name": "INSTANT",
"option_value": "INSTANT",
"selected": false
}
]
},
{
"id": "363636363636363634",
"payment_template_id": "29",
"name": "debtor_region",
"english_name": "Debtor Region",
"localized_name": "Debtor Region",
"nature": "text",
"position": 14,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363635",
"payment_template_id": "29",
"name": "creditor_agent",
"english_name": "Creditor Agent ID",
"localized_name": "Creditor Agent ID",
"nature": "text",
"position": 17,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363636",
"payment_template_id": "29",
"name": "customer_ip_address",
"english_name": "Customer IP Address",
"localized_name": "Customer IP Address",
"nature": "text",
"position": 2,
"extra": {
"validation_regexp": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363637",
"payment_template_id": "29",
"name": "debtor_name",
"english_name": "Debtor Name",
"localized_name": "Debtor Name",
"nature": "text",
"position": 8,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363638",
"payment_template_id": "29",
"name": "creditor_name",
"english_name": "Creditor Name",
"localized_name": "Creditor Name",
"nature": "text",
"position": 16,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "3636363636363636339",
"payment_template_id": "29",
"name": "creditor_address",
"english_name": "Creditor Address",
"localized_name": "Creditor Address",
"nature": "text",
"position": 19,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363640",
"payment_template_id": "29",
"name": "debtor_building_number",
"english_name": "Debtor Building Number",
"localized_name": "Debtor Building Number",
"nature": "text",
"position": 11,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363641",
"payment_template_id": "29",
"name": "customer_longitude",
"english_name": "Customer Longitude",
"localized_name": "Customer Longitude",
"nature": "number",
"position": 7,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363642",
"payment_template_id": "29",
"name": "debtor_town",
"english_name": "Debtor Town",
"localized_name": "Debtor Town",
"nature": "text",
"position": 13,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363643",
"payment_template_id": "29",
"name": "creditor_agent_name",
"english_name": "Creditor Agent Name",
"localized_name": "Creditor Agent Name",
"nature": "text",
"position": 18,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363644",
"payment_template_id": "29",
"name": "creditor_street_name",
"english_name": "Creditor Street Name",
"localized_name": "Creditor Street Name",
"nature": "text",
"position": 20,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363645",
"payment_template_id": "29",
"name": "creditor_building_number",
"english_name": "Creditor Building Number",
"localized_name": "Creditor Building Number",
"nature": "text",
"position": 21,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363646",
"payment_template_id": "29",
"name": "creditor_post_code",
"english_name": "Creditor Post Code",
"localized_name": "Creditor Post Code",
"nature": "text",
"position": 22,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363647",
"payment_template_id": "29",
"name": "creditor_town",
"english_name": "Creditor Town",
"localized_name": "Creditor Town",
"nature": "text",
"position": 23,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363648",
"payment_template_id": "29",
"name": "creditor_region",
"english_name": "Creditor Region",
"localized_name": "Creditor Region",
"nature": "text",
"position": 24,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363649",
"payment_template_id": "29",
"name": "creditor_country_code",
"english_name": "Creditor Country Code",
"localized_name": "Creditor Country Code",
"nature": "text",
"position": 25,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363650",
"payment_template_id": "29",
"name": "date",
"english_name": "Payment Date",
"localized_name": "Payment Date",
"nature": "text",
"position": 26,
"extra": {
"validation_regexp": "^\\d{4}-\\d{2}-\\d{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363651",
"payment_template_id": "29",
"name": "time",
"english_name": "Payment Time",
"localized_name": "Payment Time",
"nature": "text",
"position": 27,
"extra": {
"validation_regexp": "^\\d{2}:\\d{2}(:\\d{2})?$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363652",
"payment_template_id": "29",
"name": "customer_ip_port",
"english_name": "Customer IP Port",
"localized_name": "Customer IP Port",
"nature": "number",
"position": 3,
"extra": {
"validation_regexp": "^\\d{1,5}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363653",
"payment_template_id": "29",
"name": "customer_device_os",
"english_name": "Customer Device OS",
"localized_name": "Customer Device OS",
"nature": "text",
"position": 4,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363654",
"payment_template_id": "29",
"name": "customer_latitude",
"english_name": "Customer Latitude",
"localized_name": "Customer Latitude",
"nature": "number",
"position": 6,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363655",
"payment_template_id": "29",
"name": "description",
"english_name": "Description",
"localized_name": "Description",
"nature": "text",
"position": 28,
"extra": {
"validation_regexp": "^.{2,1000}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363656",
"payment_template_id": "29",
"name": "end_to_end_id",
"reference": "p:1928384756",
"english_name": "End to End Identification",
"localized_name": "End to End Identification",
"nature": "text",
"position": 0,
"extra": {
"validation_regexp": "^.{1,35}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363657",
"payment_template_id": "29",
"name": "debtor_address",
"english_name": "Debtor Address",
"localized_name": "Debtor Address",
"nature": "text",
"position": 9,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363658",
"payment_template_id": "29",
"name": "debtor_street_name",
"english_name": "Debtor Street Name",
"localized_name": "Debtor Street Name",
"nature": "text",
"position": 10,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363659",
"payment_template_id": "29",
"name": "debtor_post_code",
"english_name": "Debtor Post Code",
"localized_name": "Debtor Post Code",
"nature": "text",
"position": 12,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363660",
"payment_template_id": "29",
"name": "debtor_country_code",
"english_name": "Debtor Country Code",
"localized_name": "Debtor Country Code",
"nature": "text",
"position": 15,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363661",
"payment_template_id": "29",
"name": "currency_code",
"english_name": "Currency",
"localized_name": "Currency",
"nature": "select",
"position": 32,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "EUR",
"english_name": "EUR",
"localized_name": "EUR",
"option_value": "EUR",
"selected": true
}
]
},
{
"id": "363636363636363662",
"payment_template_id": "29",
"name": "customer_user_agent",
"english_name": "Customer User Agent",
"localized_name": "Customer User Agent",
"nature": "text",
"position": 5,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363663",
"payment_template_id": "29",
"name": "customer_last_logged_at",
"english_name": "Customer Last Logged At",
"localized_name": "Customer Last Logged At",
"nature": "text",
"position": 1,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
}
]
}
}
List
Returns all the available payment templates.
Parameters
from_id
string, optional
The id
of the record starting the next page. Defaults to null
.
deprecated
boolean, optional
Filtering payment templates by deprecation. All the supported payment templates will be returned if no value was set.
from_id
string, optional
The id
of the record starting the next page. Defaults to null
.
deprecated
boolean, optional
Filtering payment templates by deprecation. All the supported payment templates will be returned if no value was set.
Possible Errors
No specific errors
URL
https://www.saltedge.com/api/partners/v1/payments/templates
https://www.saltedge.com/api/partners/v1/payments/templates
Method
GET
Sample request
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/templates
curl -v -H "Accept: application/json" \
-H "Content-type: application/json" \
-H "App-id: $APP_ID" \
-H "Secret: $SECRET" \
-X GET \
https://www.saltedge.com/api/partners/v1/templates
Sample response
{
"data": {
"id": "131313131313131313",
"identifier": "SEPA",
"description": "SEPA Payment",
"deprecated": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"payment_fields": [
{
"id": "363636363636363630",
"payment_template_id": "29",
"name": "amount",
"english_name": "Amount",
"localized_name": "Amount",
"nature": "number",
"position": 29,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363631",
"payment_template_id": "29",
"name": "debtor_iban",
"english_name": "Debtor IBAN",
"localized_name": "Debtor IBAN",
"nature": "text",
"position": 30,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363632",
"payment_template_id": "29",
"name": "creditor_iban",
"english_name": "Creditor IBAN",
"localized_name": "Creditor IBAN",
"nature": "text",
"position": 31,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363633",
"payment_template_id": "29",
"name": "mode",
"english_name": "Mode",
"localized_name": "Mode",
"nature": "select",
"position": 33,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "NORMAL",
"english_name": "NORMAL",
"localized_name": "NORMAL",
"option_value": "NORMAL",
"selected": true
},
{
"name": "INSTANT",
"english_name": "INSTANT",
"localized_name": "INSTANT",
"option_value": "INSTANT",
"selected": false
}
]
},
{
"id": "363636363636363634",
"payment_template_id": "29",
"name": "debtor_region",
"english_name": "Debtor Region",
"localized_name": "Debtor Region",
"nature": "text",
"position": 14,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363635",
"payment_template_id": "29",
"name": "creditor_agent",
"english_name": "Creditor Agent ID",
"localized_name": "Creditor Agent ID",
"nature": "text",
"position": 17,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363636",
"payment_template_id": "29",
"name": "customer_ip_address",
"english_name": "Customer IP Address",
"localized_name": "Customer IP Address",
"nature": "text",
"position": 2,
"extra": {
"validation_regexp": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363637",
"payment_template_id": "29",
"name": "debtor_name",
"english_name": "Debtor Name",
"localized_name": "Debtor Name",
"nature": "text",
"position": 8,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363638",
"payment_template_id": "29",
"name": "creditor_name",
"english_name": "Creditor Name",
"localized_name": "Creditor Name",
"nature": "text",
"position": 16,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363639",
"payment_template_id": "29",
"name": "creditor_address",
"english_name": "Creditor Address",
"localized_name": "Creditor Address",
"nature": "text",
"position": 19,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363640",
"payment_template_id": "29",
"name": "debtor_building_number",
"english_name": "Debtor Building Number",
"localized_name": "Debtor Building Number",
"nature": "text",
"position": 11,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363641",
"payment_template_id": "29",
"name": "customer_longitude",
"english_name": "Customer Longitude",
"localized_name": "Customer Longitude",
"nature": "number",
"position": 7,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363642",
"payment_template_id": "29",
"name": "debtor_town",
"english_name": "Debtor Town",
"localized_name": "Debtor Town",
"nature": "text",
"position": 13,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363643",
"payment_template_id": "29",
"name": "creditor_agent_name",
"english_name": "Creditor Agent Name",
"localized_name": "Creditor Agent Name",
"nature": "text",
"position": 18,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363644",
"payment_template_id": "29",
"name": "creditor_street_name",
"english_name": "Creditor Street Name",
"localized_name": "Creditor Street Name",
"nature": "text",
"position": 20,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363645",
"payment_template_id": "29",
"name": "creditor_building_number",
"english_name": "Creditor Building Number",
"localized_name": "Creditor Building Number",
"nature": "text",
"position": 21,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363646",
"payment_template_id": "29",
"name": "creditor_post_code",
"english_name": "Creditor Post Code",
"localized_name": "Creditor Post Code",
"nature": "text",
"position": 22,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363647",
"payment_template_id": "29",
"name": "creditor_town",
"english_name": "Creditor Town",
"localized_name": "Creditor Town",
"nature": "text",
"position": 23,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363648",
"payment_template_id": "29",
"name": "creditor_region",
"english_name": "Creditor Region",
"localized_name": "Creditor Region",
"nature": "text",
"position": 24,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363649",
"payment_template_id": "29",
"name": "creditor_country_code",
"english_name": "Creditor Country Code",
"localized_name": "Creditor Country Code",
"nature": "text",
"position": 25,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363650",
"payment_template_id": "29",
"name": "date",
"english_name": "Payment Date",
"localized_name": "Payment Date",
"nature": "text",
"position": 26,
"extra": {
"validation_regexp": "^\\d{4}-\\d{2}-\\d{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363651",
"payment_template_id": "29",
"name": "time",
"english_name": "Payment Time",
"localized_name": "Payment Time",
"nature": "text",
"position": 27,
"extra": {
"validation_regexp": "^\\d{2}:\\d{2}(:\\d{2})?$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363652",
"payment_template_id": "29",
"name": "customer_ip_port",
"english_name": "Customer IP Port",
"localized_name": "Customer IP Port",
"nature": "number",
"position": 3,
"extra": {
"validation_regexp": "^\\d{1,5}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363653",
"payment_template_id": "29",
"name": "customer_device_os",
"english_name": "Customer Device OS",
"localized_name": "Customer Device OS",
"nature": "text",
"position": 4,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363654",
"payment_template_id": "29",
"name": "customer_latitude",
"english_name": "Customer Latitude",
"localized_name": "Customer Latitude",
"nature": "number",
"position": 6,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363655",
"payment_template_id": "29",
"name": "description",
"english_name": "Description",
"localized_name": "Description",
"nature": "text",
"position": 28,
"extra": {
"validation_regexp": "^.{2,1000}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363656",
"payment_template_id": "29",
"name": "end_to_end_id",
"english_name": "End to End Identification",
"localized_name": "End to End Identification",
"nature": "text",
"position": 0,
"extra": {
"validation_regexp": "^.{1,35}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363657",
"payment_template_id": "29",
"name": "reference",
"english_name": "Payment Reference",
"localized_name": "Payment Reference",
"nature": "text",
"position": 0,
"extra": {
"validation_regexp": "^.{1,35}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363658",
"payment_template_id": "29",
"name": "debtor_address",
"english_name": "Debtor Address",
"localized_name": "Debtor Address",
"nature": "text",
"position": 9,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363659",
"payment_template_id": "29",
"name": "debtor_street_name",
"english_name": "Debtor Street Name",
"localized_name": "Debtor Street Name",
"nature": "text",
"position": 10,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363660",
"payment_template_id": "29",
"name": "debtor_post_code",
"english_name": "Debtor Post Code",
"localized_name": "Debtor Post Code",
"nature": "text",
"position": 12,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363661",
"payment_template_id": "29",
"name": "debtor_country_code",
"english_name": "Debtor Country Code",
"localized_name": "Debtor Country Code",
"nature": "text",
"position": 15,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363662",
"payment_template_id": "29",
"name": "currency_code",
"english_name": "Currency",
"localized_name": "Currency",
"nature": "select",
"position": 32,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "EUR",
"english_name": "EUR",
"localized_name": "EUR",
"option_value": "EUR",
"selected": true
}
]
},
{
"id": "363636363636363663",
"payment_template_id": "29",
"name": "customer_user_agent",
"english_name": "Customer User Agent",
"localized_name": "Customer User Agent",
"nature": "text",
"position": 5,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363664",
"payment_template_id": "29",
"name": "customer_last_logged_at",
"english_name": "Customer Last Logged At",
"localized_name": "Customer Last Logged At",
"nature": "text",
"position": 1,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
}
]
}
}
{
"data": {
"id": "131313131313131313",
"identifier": "SEPA",
"description": "SEPA Payment",
"deprecated": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"payment_fields": [
{
"id": "363636363636363630",
"payment_template_id": "29",
"name": "amount",
"english_name": "Amount",
"localized_name": "Amount",
"nature": "number",
"position": 29,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363631",
"payment_template_id": "29",
"name": "debtor_iban",
"english_name": "Debtor IBAN",
"localized_name": "Debtor IBAN",
"nature": "text",
"position": 30,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363632",
"payment_template_id": "29",
"name": "creditor_iban",
"english_name": "Creditor IBAN",
"localized_name": "Creditor IBAN",
"nature": "text",
"position": 31,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363633",
"payment_template_id": "29",
"name": "mode",
"english_name": "Mode",
"localized_name": "Mode",
"nature": "select",
"position": 33,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "NORMAL",
"english_name": "NORMAL",
"localized_name": "NORMAL",
"option_value": "NORMAL",
"selected": true
},
{
"name": "INSTANT",
"english_name": "INSTANT",
"localized_name": "INSTANT",
"option_value": "INSTANT",
"selected": false
}
]
},
{
"id": "363636363636363634",
"payment_template_id": "29",
"name": "debtor_region",
"english_name": "Debtor Region",
"localized_name": "Debtor Region",
"nature": "text",
"position": 14,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363635",
"payment_template_id": "29",
"name": "creditor_agent",
"english_name": "Creditor Agent ID",
"localized_name": "Creditor Agent ID",
"nature": "text",
"position": 17,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363636",
"payment_template_id": "29",
"name": "customer_ip_address",
"english_name": "Customer IP Address",
"localized_name": "Customer IP Address",
"nature": "text",
"position": 2,
"extra": {
"validation_regexp": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363637",
"payment_template_id": "29",
"name": "debtor_name",
"english_name": "Debtor Name",
"localized_name": "Debtor Name",
"nature": "text",
"position": 8,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363638",
"payment_template_id": "29",
"name": "creditor_name",
"english_name": "Creditor Name",
"localized_name": "Creditor Name",
"nature": "text",
"position": 16,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363639",
"payment_template_id": "29",
"name": "creditor_address",
"english_name": "Creditor Address",
"localized_name": "Creditor Address",
"nature": "text",
"position": 19,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363640",
"payment_template_id": "29",
"name": "debtor_building_number",
"english_name": "Debtor Building Number",
"localized_name": "Debtor Building Number",
"nature": "text",
"position": 11,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363641",
"payment_template_id": "29",
"name": "customer_longitude",
"english_name": "Customer Longitude",
"localized_name": "Customer Longitude",
"nature": "number",
"position": 7,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363642",
"payment_template_id": "29",
"name": "debtor_town",
"english_name": "Debtor Town",
"localized_name": "Debtor Town",
"nature": "text",
"position": 13,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363643",
"payment_template_id": "29",
"name": "creditor_agent_name",
"english_name": "Creditor Agent Name",
"localized_name": "Creditor Agent Name",
"nature": "text",
"position": 18,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363644",
"payment_template_id": "29",
"name": "creditor_street_name",
"english_name": "Creditor Street Name",
"localized_name": "Creditor Street Name",
"nature": "text",
"position": 20,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363645",
"payment_template_id": "29",
"name": "creditor_building_number",
"english_name": "Creditor Building Number",
"localized_name": "Creditor Building Number",
"nature": "text",
"position": 21,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363646",
"payment_template_id": "29",
"name": "creditor_post_code",
"english_name": "Creditor Post Code",
"localized_name": "Creditor Post Code",
"nature": "text",
"position": 22,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363647",
"payment_template_id": "29",
"name": "creditor_town",
"english_name": "Creditor Town",
"localized_name": "Creditor Town",
"nature": "text",
"position": 23,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363648",
"payment_template_id": "29",
"name": "creditor_region",
"english_name": "Creditor Region",
"localized_name": "Creditor Region",
"nature": "text",
"position": 24,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363649",
"payment_template_id": "29",
"name": "creditor_country_code",
"english_name": "Creditor Country Code",
"localized_name": "Creditor Country Code",
"nature": "text",
"position": 25,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363650",
"payment_template_id": "29",
"name": "date",
"english_name": "Payment Date",
"localized_name": "Payment Date",
"nature": "text",
"position": 26,
"extra": {
"validation_regexp": "^\\d{4}-\\d{2}-\\d{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363651",
"payment_template_id": "29",
"name": "time",
"english_name": "Payment Time",
"localized_name": "Payment Time",
"nature": "text",
"position": 27,
"extra": {
"validation_regexp": "^\\d{2}:\\d{2}(:\\d{2})?$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363652",
"payment_template_id": "29",
"name": "customer_ip_port",
"english_name": "Customer IP Port",
"localized_name": "Customer IP Port",
"nature": "number",
"position": 3,
"extra": {
"validation_regexp": "^\\d{1,5}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363653",
"payment_template_id": "29",
"name": "customer_device_os",
"english_name": "Customer Device OS",
"localized_name": "Customer Device OS",
"nature": "text",
"position": 4,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363654",
"payment_template_id": "29",
"name": "customer_latitude",
"english_name": "Customer Latitude",
"localized_name": "Customer Latitude",
"nature": "number",
"position": 6,
"extra": {
"validation_regexp": "^[-+]?[0-9]*\\.?[0-9]+$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363655",
"payment_template_id": "29",
"name": "description",
"english_name": "Description",
"localized_name": "Description",
"nature": "text",
"position": 28,
"extra": {
"validation_regexp": "^.{2,1000}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363656",
"payment_template_id": "29",
"name": "end_to_end_id",
"english_name": "End to End Identification",
"localized_name": "End to End Identification",
"nature": "text",
"position": 0,
"extra": {
"validation_regexp": "^.{1,35}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363657",
"payment_template_id": "29",
"name": "reference",
"english_name": "Payment Reference",
"localized_name": "Payment Reference",
"nature": "text",
"position": 0,
"extra": {
"validation_regexp": "^.{1,35}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363658",
"payment_template_id": "29",
"name": "debtor_address",
"english_name": "Debtor Address",
"localized_name": "Debtor Address",
"nature": "text",
"position": 9,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363659",
"payment_template_id": "29",
"name": "debtor_street_name",
"english_name": "Debtor Street Name",
"localized_name": "Debtor Street Name",
"nature": "text",
"position": 10,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363660",
"payment_template_id": "29",
"name": "debtor_post_code",
"english_name": "Debtor Post Code",
"localized_name": "Debtor Post Code",
"nature": "text",
"position": 12,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363661",
"payment_template_id": "29",
"name": "debtor_country_code",
"english_name": "Debtor Country Code",
"localized_name": "Debtor Country Code",
"nature": "text",
"position": 15,
"extra": {
"validation_regexp": "^[A-Z]{2}$"
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363662",
"payment_template_id": "29",
"name": "currency_code",
"english_name": "Currency",
"localized_name": "Currency",
"nature": "select",
"position": 32,
"extra": {
"validation_regexp": ""
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z",
"field_options": [
{
"name": "EUR",
"english_name": "EUR",
"localized_name": "EUR",
"option_value": "EUR",
"selected": true
}
]
},
{
"id": "363636363636363663",
"payment_template_id": "29",
"name": "customer_user_agent",
"english_name": "Customer User Agent",
"localized_name": "Customer User Agent",
"nature": "text",
"position": 5,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
},
{
"id": "363636363636363664",
"payment_template_id": "29",
"name": "customer_last_logged_at",
"english_name": "Customer Last Logged At",
"localized_name": "Customer Last Logged At",
"nature": "text",
"position": 1,
"extra": {
"validation_regexp": ""
},
"optional": true,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
}
]
}
}
Payment fields
There are several types of fields as marked by their nature
attribute.
id
string
The id
of the payment field
name
string, optional
The field’s name that should be used as a key in the credentials object
english_name
string, optional
The field’s name in US English
localized_name
string, optional
The field’s name in the provider’s main language
nature
string, optional
Nature Possible values: text
, password
, select
, file
, number
, dynamic_select
.
position
integer, optional
The field’s position in the public user interface
optional
boolean, optional
Whether the input for this field is optional or not
field_options
object, optional
Only for the select
field type. Contains the options for the select.
created_at
string (date-time)
Time and date when the payment field was added
updated_at
string (date-time)
The last time when any of the payment field’s attributes were changed
id
string
The id
of the payment field
name
string, optional
The field’s name that should be used as a key in the credentials object
english_name
string, optional
The field’s name in US English
localized_name
string, optional
The field’s name in the provider’s main language
nature
string, optional
Nature Possible values: text
, password
, select
, file
, number
, dynamic_select
.
position
integer, optional
The field’s position in the public user interface
optional
boolean, optional
Whether the input for this field is optional or not
field_options
object, optional
Only for the select
field type. Contains the options for the select.
created_at
string (date-time)
Time and date when the payment field was added
updated_at
string (date-time)
The last time when any of the payment field’s attributes were changed
Sample object
{
"id": "131313131313131313",
"payment_template_id": "2",
"name": "iban_from",
"english_name": "IBAN from",
"localized_name": "IBAN from",
"nature": "text",
"position": 1,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
}
{
"id": "131313131313131313",
"payment_template_id": "2",
"name": "iban_from",
"english_name": "IBAN from",
"localized_name": "IBAN from",
"nature": "text",
"position": 1,
"extra": {
"validation_regexp": "^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[A-Z0-9]{7}([a-zA-Z0-9]?){0,16}$"
},
"optional": false,
"created_at": "2024-10-05T14:41:08Z",
"updated_at": "2024-10-05T14:41:08Z"
}
Extra
The following represents the object you get in the extra
field of the payment field object.
Note: You may or may not have all of the fields listed below.
validation_regexp
string, optional
The regexp used for the payment field validation
validation_regexp
string, optional
The regexp used for the payment field validation
Common attributes
Required fields
are mandatory for a payment to be processed, while optional fields are supported by the provider for additional information. If optional fields are not supported by the provider, they will be logged on our side, but not sent to the provider.
The set of required and optional fields for a payment template could vary for different providers. Some optional fields
from a template may become required for a specific provider.
end_to_end_id
string
An internal identifier used by the merchants and not accesible/visible to the end-user
reference
string, optional
An external identifier which is visible to the end-user (e.g. tracking number, order number, bill number, etc)
customer_last_logged_at
string (date-time), optional
Time when the customer was last logged in
customer_ip_address
string
IP address of the customer
customer_ip_port
string, optional
IP port of the customer
customer_device_os
string, optional
The operating system of the customer
customer_user_agent
string, optional
The user-agent of the customer
customer_latitude
string, optional
Defines the customer’s location
customer_longitude
string, optional
Defines the customer’s location
debtor_name
string, optional
The full name of the debtor (payer)
debtor_address
string, optional
The full address of the debtor
debtor_street_name
string, optional
The street name of the debtor
debtor_building_number
string, optional
The building number of the debtor
debtor_post_code
string, optional
The post code of the debtor
debtor_town
string, optional
The name of the town/city of the debtor
debtor_region
string, optional
The name of the country/region of the debtor
debtor_country_code
string, optional
The ISO code of the debtor’s country
creditor_name
string
The full name of the creditor (payee)
creditor_agent
string, optional
The id
of the creditor’s agent
creditor_agent_name
string, optional
The name of the creditor’s agent
creditor_address
string, optional
The full address of the creditor
creditor_street_name
string, optional
The street name of the creditor
creditor_building_number
string, optional
The building number of the creditor
creditor_post_code
string, optional
The post code of the creditor
creditor_town
string, optional
The name of the town/city of the creditor
creditor_region
string, optional
The name of the country/region of the creditor
creditor_country_code
string
The ISO code of the creditor’s country
amount
string
Payment amount in the specified currency
description
string
The unstructured description of the payment:
- Most ASPSPs have certain limitations in place when it comes to the formatting of the unstructured payment remittance information (
description
). - Using alphanumeric characters along with
., ,, -, /, ?, (, ), +, '
and spaces as well as keeping the length of the description under 1000 characters should be a safe approach for most ASPSPs (RegExp/[A-Za-z0-9.-,()+'? ]{2,1000}/
). - ASPSPs may extend these constraints depending on their core banking system, payment schema and other relevant factors.
purpose_code
string, optional
ISO 18245 purpose code
date
string (date), optional
The date when to execute the payment. Defaults to the current date
.
time
string (time), optional
The precise time when to execute the payment. Defaults to the current time
.
end_to_end_id
string
An internal identifier used by the merchants and not accesible/visible to the end-user
reference
string, optional
An external identifier which is visible to the end-user (e.g. tracking number, order number, bill number, etc)
customer_last_logged_at
string (date-time), optional
Time when the customer was last logged in
customer_ip_address
string
IP address of the customer
customer_ip_port
string, optional
IP port of the customer
customer_device_os
string, optional
The operating system of the customer
customer_user_agent
string, optional
The user-agent of the customer
customer_latitude
string, optional
Defines the customer’s location
customer_longitude
string, optional
Defines the customer’s location
debtor_name
string, optional
The full name of the debtor (payer)
debtor_address
string, optional
The full address of the debtor
debtor_street_name
string, optional
The street name of the debtor
debtor_building_number
string, optional
The building number of the debtor
debtor_post_code
string, optional
The post code of the debtor
debtor_town
string, optional
The name of the town/city of the debtor
debtor_region
string, optional
The name of the country/region of the debtor
debtor_country_code
string, optional
The ISO code of the debtor’s country
creditor_name
string
The full name of the creditor (payee)
creditor_agent
string, optional
The id
of the creditor’s agent
creditor_agent_name
string, optional
The name of the creditor’s agent
creditor_address
string, optional
The full address of the creditor
creditor_street_name
string, optional
The street name of the creditor
creditor_building_number
string, optional
The building number of the creditor
creditor_post_code
string, optional
The post code of the creditor
creditor_town
string, optional
The name of the town/city of the creditor
creditor_region
string, optional
The name of the country/region of the creditor
creditor_country_code
string
The ISO code of the creditor’s country
amount
string
Payment amount in the specified currency
description
string
The unstructured description of the payment:
- Most ASPSPs have certain limitations in place when it comes to the formatting of the unstructured payment remittance information (
description
). - Using alphanumeric characters along with
., ,, -, /, ?, (, ), +, '
and spaces as well as keeping the length of the description under 1000 characters should be a safe approach for most ASPSPs (RegExp/[A-Za-z0-9.-,()+'? ]{2,1000}/
). - ASPSPs may extend these constraints depending on their core banking system, payment schema and other relevant factors.
purpose_code
string, optional
ISO 18245 purpose code
date
string (date), optional
The date when to execute the payment. Defaults to the current date
.
time
string (time), optional
The precise time when to execute the payment. Defaults to the current time
.
Sample payment attributes
{
"end_to_end_id": "#123123123",
"reference": "p:474747474747474747",
"customer_last_logged_at": "2024-10-06T14:41:08Z",
"customer_ip_address": "255.255.255.255",
"customer_ip_port": "3456",
"customer_device_os": "iOS 11",
"customer_user_agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36",
"customer_latitude": "51.5074",
"customer_longitude": "0.1278",
"debtor_name": "Lucas Hahn",
"debtor_address": "Fehrbelliner Str. 95, 10119 Berlin, Germany",
"debtor_street_name": "Fehrbelliner Str.",
"debtor_building_number": "95",
"debtor_post_code": "10119",
"debtor_town": "Berlin",
"debtor_region": "Germany",
"debtor_country_code": "DE",
"creditor_name": "Jay Dawson",
"creditor_agent": "123456",
"creditor_agent_name": "Treasury Devision",
"creditor_address": "Level 39, One Canada Square, Canary Wharf, London E14 5AB, UK",
"creditor_street_name": "One Canada Square",
"creditor_building_number": "One",
"creditor_post_code": "E14 5AB",
"creditor_town": "London",
"creditor_region": "England",
"creditor_country_code": "UK",
"amount": "199000.00",
"description": "Stocks purchase",
"purpose_code": "3456",
"date": "2020-07-27",
"time": "10:20:30"
}
{
"end_to_end_id": "#123123123",
"reference": "p:474747474747474747",
"customer_last_logged_at": "2024-10-06T14:41:08Z",
"customer_ip_address