Payment initiation
NextGenPSD2 XS2A FrameworkSEPA credit transfer with decoupled SCA
A single SEPA payment initiated by a PISP, authorised in the bank app rather than a browser redirect. The status endpoint is the only source of truth.
Why read this
Decoupled SCA is growing because it survives mobile browsers. The cost is polling and a much longer worst-case wait.
Try editor — open message samples →
Samples in this flow
Try in live showcase
Technical view of SEPA Credit Transfer, PISP A2A
Messages · pacs.008
Transaction flow
Initiate the payment
API layerPOST/v1/payments/sepa-credit-transfers→ 201
TPP-Explicit-Authorisation-Preferred=true asks for a separate authorisation sub-resource, which you want if you plan to offer SCA method selection.
Headers that matter
X-Request-IDPSU-IDTPP-Explicit-Authorisation-PreferredCodes you can see here
tppaspsp
API payload· XML
SEPA credit transfer initiation
The sepa-credit-transfers product. instructedAmount.amount is a string — sending a JSON number is a spec violation even though many sandboxes accept it.
Try it
Mock ASPSP
Substitute your own ids in the path — the mock resolves any UUID-shaped consentId and advances the SCA state machine on each call, so polling behaves the way a real ASPSP does.