General information
The XS2A interface supports the following 4 payment products.
- sepa-credit-transfers
- instant-sepa-credit-transfers
- target-2-payments
- cross-border-credit-transfers
Please note, not all payment products may be supported by the bank. Please inquire with the bank directly if you have questions regarding the payment products they support.
Important: you must declare the model with the element "@type"
in the payload during payment initiation.
Single payments
You can work with single payments through/payments
endpoints.
sepa-credit-transfers
model = PaymentInitiationSctJson
Data Element | Type | Presence | Comment |
endToEndIdentification | Max35Text | optional | |
debtorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
instructedAmount | Amount | mandatory | |
creditorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted |
creditorAgent | BICFI | optional | |
creditorName | Max70Text | mandatory | |
creditorAddress | Address | optional | |
requestedExecutionDate | ISODate | optional | |
remittanceInformationUnstructured | Max140Text | optional |
Example
{"@type": "PaymentInitiationSctJson",
"endToEndIdentification": "STC20190228001293",
"debtorAccount" : {"iban": "DE54500105173424724776"},
"instructedAmount": {"currency": "EUR", "amount": "100.67"},
"creditorAccount": {"iban": "LU280019400644750000"},
"creditorAgent": "MOEALUL1XXX",
"creditorName": "creditor_name"}
instant-sepa-credit-transfers
model = PaymentInitiationSctInstJson
Data Element | Type | Presence | Comment |
endToEndIdentification | Max35Text | optional | |
debtorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
instructedAmount | Amount | mandatory | |
creditorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
creditorAgent | BICFI | optional | |
creditorName | Max70Text | mandatory | |
creditorAddress | Address | optional | |
remittanceInformationUnstructured | Max140Text | optional |
Example
{"@type": "PaymentInitiationSctInstJson",
"debtorAccount" : {"iban": "DE54500105173424724776"},
"instructedAmount": {"currency": "EUR", "amount": "100.67"},
"creditorAccount": {"iban": "LU280019400644750000"},
"creditorName": "creditor_name"}
target-2-payments
model = PaymentInitiationTarget2Json
Data Element | Type | Presence | Comment |
endToEndIdentification | Max35Text | optional | |
debtorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
instructedAmount | Amount | mandatory | |
creditorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
creditorAgent | BICFI | optional | |
creditorName | Max70Text | mandatory | |
creditorAddress | Address | optional | |
chargeBearer | Charge Bearer | optional | |
remittanceInformationUnstructured | Max140Text | optional |
Example
{"@type": "PaymentInitiationTarget2Json",
"endToEndIdentification": "STC20190228001293",
"debtorAccount" : {"iban": "DE54500105173424724776"},
"instructedAmount": {"currency": "EUR", "amount": "100.67"},
"creditorAccount": {"iban": "LU280019400644750000"},
"creditorAgent": "MOEALUL1XXX",
"creditorName": "creditor_name",
"chargeBearer": "SLEV",
"remittanceInformationUnstructured": "Some specific payment details to be given here"}
cross-border-credit-transfers
model = PaymentInitiationCrossBorderJson
Data Element | Type | Presence | Comment |
debtorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
instructedAmount | Amount | mandatory | |
creditorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
creditorAgent | BICFI | optional | |
creditorName | Max70Text | mandatory | |
creditorAddress | Address | optional | |
chargeBearer | Charge Bearer | optional | |
remittanceInformationUnstructured | Max140Text | optional |
Example
{"@type": "PaymentInitiationCrossBorderJson",
"debtorAccount" : {"iban": "DE54500105173424724776"},
"instructedAmount": {"currency": "EUR", "amount": "100.67"},
"creditorAccount": {"iban": "LU280019400644750000"},
"creditorAgent": "MOEALUL1XXX",
"creditorName": "creditor_name",
"chargeBearer": "SLEV",
"remittanceInformationUnstructured": "Some specific payment details to be given here"}
Recurrent payments
You can work with recurrent payments through /periodic-payments
endpoints.
sepa-credit-transfers
model = PeriodicPaymentInitiationSctJson
Data Element | Type | Presence | Comment |
startDate | ISODate | mandatory | |
executionRule | string | optional |
Permitted values:
|
endDate | ISODate | optional | If not given, it is an infinite standing order. |
frequency | Frequency Code | mandatory |
Permitted values:
|
dayOfExecution | Max2Text | conditional |
This string consists of up two characters. Leading zeroes are not allowed. |
endToEndIdentification | Max35Text | optional | |
debtorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
instructedAmount | Amount | mandatory | |
creditorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
creditorAgent | BICFI | optional | |
creditorName | Max70Text | mandatory | |
creditorAddress | Address | optional | |
remittanceInformationUnstructured | Max140Text | optional |
Example
{"@type": "PeriodicPaymentInitiationSctJson",
"endToEndIdentification": "STC20190228001293",
"debtorAccount" : {"iban": "DE54500105173424724776"},
"instructedAmount": {"currency": "EUR", "amount": "100.67"},
"creditorAccount": {"iban": "LU280019400644750000"},
"creditorAgent": "MOEALUL1XXX",
"creditorName": "creditor_name",
"startDate": "2019-01-31",
"executionRule": "following",
"frequency": "Monthly",
"dayOfExecution": "1"}
instant-sepa-credit-transfers
model = PeriodicPaymentInitiationSctInstJson
Data Element | Type | Presence | Comment |
startDate | ISODate | mandatory | |
executionRule | string | optional |
Permitted values:
|
endDate | ISODate | optional | If not given, it is an infinite standing order. |
frequency | Frequency Code | mandatory |
Permitted values:
|
dayOfExecution | Max2Text | conditional |
This string consists of up two characters. Leading zeroes are not allowed. |
endToEndIdentification | Max35Text | optional | |
debtorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
instructedAmount | Amount | mandatory | |
creditorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
creditorAgent | BICFI | optional | |
creditorName | Max70Text | mandatory | |
creditorAddress | Address | optional | |
remittanceInformationUnstructured | Max140Text | optional |
Example
{"@type": "PeriodicPaymentInitiationSctInstJson",
"debtorAccount" : {"iban": "DE54500105173424724776"},
"instructedAmount": {"currency": "EUR", "amount": "100.67"},
"creditorAccount": {"iban": "LU280019400644750000"},
"creditorName": "creditor_name",
"startDate": "2019-01-31",
"endDate": "2019-12-31",
"executionRule": "following",
"frequency": "Monthly",
"dayOfExecution": "1"}
target-2-payments
model = PaymentInitiationTarget2Json
Data Element | Type | Presence | Comment |
startDate | ISODate | mandatory | |
executionRule | string | optional |
Permitted values:
|
endDate | ISODate | optional | If not given, it is an infinite standing order. |
frequency | Frequency Code | mandatory |
Permitted values:
|
dayOfExecution | Max2Text | conditional |
This string consists of up two characters. Leading zeroes are not allowed. |
endToEndIdentification | Max35Text | optional | |
debtorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
instructedAmount | Amount | mandatory | |
creditorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
creditorAgent | BICFI | optional | |
creditorName | Max70Text | mandatory | |
creditorAddress | Address | optional | |
chargeBearer | Charge Bearer | optional | |
remittanceInformationUnstructured | Max140Text | optional |
Example
{"@type": "PeriodicPaymentInitiationTarget2Json",
"endToEndIdentification": "STC20190228001293",
"debtorAccount" : {"iban": "DE54500105173424724776"},
"instructedAmount": {"currency": "EUR", "amount": "100.67"},
"creditorAccount": {"iban": "LU280019400644750000"},
"creditorAgent": "MOEALUL1XXX",
"creditorName": "creditor_name",
"chargeBearer": "SLEV",
"remittanceInformationUnstructured": "Some specific payment details to be given here",
"startDate": "2019-01-31",
"endDate": "2019-12-31",
"executionRule": "preceeding",
"frequency": "EveryTwoWeeks",
"dayOfExecution": "1"}
cross-border-credit-transfers
model = PaymentInitiationCrossBorderJson
Data Element | Type | Presence | Comment |
startDate | ISODate | mandatory | |
executionRule | string | optional |
Permitted values:
|
endDate | ISODate | optional | If not given, it is an infinite standing order. |
frequency | Frequency Code | mandatory |
Permitted values:
|
dayOfExecution | Max2Text | conditional |
This string consists of up two characters. Leading zeroes are not allowed. |
endToEndIdentification | Max35Text | optional | |
debtorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
instructedAmount | Amount | mandatory | |
creditorAccount | Account Reference | mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
creditorAgent | BICFI | optional | |
creditorName | Max70Text | mandatory | |
creditorAddress | Address | optional | |
chargeBearer | Charge Bearer | optional | |
remittanceInformationUnstructured | Max140Text | optional |
Example
{"@type": "PeriodicPaymentInitiationCrossBorderJson",
"debtorAccount" : {"iban": "DE54500105173424724776"},
"instructedAmount": {"currency": "EUR", "amount": "100.67"},
"creditorAccount": {"iban": "LU280019400644750000"},
"creditorAgent": "MOEALUL1XXX",
"creditorName": "creditor_name",
"chargeBearer": "SLEV",
"remittanceInformationUnstructured": "Some specific payment details to be given here",
"startDate": "2019-01-31",
"executionRule": "preceeding",
"frequency": "Monthly",
"dayOfExecution": "31"}
Bulk payments
You can work with bulk payments through /bulk-payments endpoints.
Data Element |
Type |
Presence |
Comment |
batchBookingPreferred |
boolean |
Optional |
|
debtorAccount |
Account Reference |
mandatory |
XS2A Sandbox requires "iban" element from Account Reference. Other elements - e.g. "bban", "maskedPan", etc - are not accepted. |
requestedExecutionDate |
ISODate |
Optional |
|
requestedExecutionTime |
ISODateTime |
Optional |
|
payments |
Bulk Entry |
mandatory |
The Bulk Entry Type is a type which follows Singlepayments, excluding the data elements · debtorAccount, · requestedExecutionDate, · requestedExecutionTime. These three data elements are not allowed in any bulk entry. |
sepa-credit-transfers
model = BulkPaymentInitiationSctJson
Example |
insant-sepa-credit-transfers
model = BulkPaymentInitiationSctInstJson
Example |
target-2-payments
model = BulkPaymentInitiationTarget2Json
Example |
cross-border-credit-transfers
model = BulkPaymentInitiationCrossBorderJson
Example |