- METHOD TYPEReal-Time Bank Transfer
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
The Pay by Bank and Pay by Bank Instant APMs enable customers of participating banks in the European Union and in certain other European countries to make payments using their bank accounts.
Supported Countries
- UK
- France
- Germany
- Belgium
- Finland
- Ireland
Supported Currencies
- EUR
- GBP
Payment (Deposit) Flow
Press tab to open…
Follow these steps to perform a payment using Nuvei REST API integration:
1. Generate a sessionToken
Press here for details.
To send a /payment request:
- Perform the payment by sending a
/paymentrequest with the mandatory parameters, including:
-
userTokenIdamountcurrencypaymentOption.alternativePaymentMethodclass containing:paymentMethod: “apmgw_Pay_by_bank_app“
userDetailsclass containing:firstName,lastName,email or phone,country,address,city,zip,state,dateOfBirth
Example /payment Request
{
"sessionToken": "<sessionTokenId>",
"merchantId": "<merchantId>",
"merchantSiteId": "<merchantSiteId>",
"userTokenId": "TESTTL11",
"clientRequestId": "<clientRequestId>",
"paymentOption": {
"alternativePaymentMethod": {
"paymentMethod": "apmgw_Pay_by_bank_app"
}
},
"currency": "GBP",
"amount": "10",
"userDetails": {
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]",
"phone": "1231234567",
"address": "1 Two Road",
"city": "London",
"zip": "WC2E 7HQ",
"state": "KTT",
"country": "GB",
"dateOfBbirth": "<YYYY-MM-DD>"
},
"deviceDetails": {
"ipAddress": "09.176.154.172"
},
"timeStamp": "{{timestamp}}",
"checksum": "{{checksum}}"
}
Example /payment Response
{
"internalRequestId": 1752643779446,
"status": "SUCCESS",
"errCode": 0,
"reason": "",
"merchantId": "4972436454212160565",
"merchantSiteId": "3111",
"version": "1.0",
"clientRequestId": "20250716082939",
"sessionToken": "85e9358c1aed4d3dac8936b8092d03400111",
"orderId": "137235111",
"userTokenId": "testpis3",
"paymentOption": {
"redirectUrl": "",
"userPaymentOptionId": "2153698001",
"card": {}
},
"transactionStatus": "REDIRECT"
}
Follow these steps to perform a payment using Nuvei Web SDK integration.
1. Initiate a Session
Before you can submit payment using the client-side Nuvei Web SDK, you need to send the /openOrder API call.
2. Initialize the Web SDK
Instantiate the Web SDK with the sessionToken received from the server call to /openOrder.
3. Create an APM Payment
Send a createPayment() request with its mandatory parameters including:
paymentOption.alternativePaymentMethodblock containing:paymentMethod: “apmgw_Pay_by_bank_app“
userDetailsblock containing:firstName,lastName,emailor phone, country,address,city,zip,state,dateOfBirth
Example createPayment() Request
sfc.createPayment({
sessionToken: "<sessiontoken>",
paymentOption: {
alternativePaymentMethod: {
paymentMethod: "apmgw_Pay_by_bank_app",
},
deviceDetails:{
ipAddress:"<customer's IP address>"
},
billingAddress: {
firstName: "John",
lastName: "Smith",
country: "VN",
email: "[email protected]"
},
userDetails: {
"firstName": "John",
"lastName": "Smith",
"email": "[email protected]",
"phone": "1231234567",
"address": "1 Two Road",
"city": "London",
"zip": "WC2E 7HQ",
"state": "KTT",
"country": "GB",
"dateOfBirth": "<YYYY-MM-DD>"
},
}, function (res) {
console.log(res);
});
Example /createPayment Response
{
"internalRequestId": 46800351,
"status": "SUCCESS",
"errCode": 0,
"reason": "",
"merchantId": "1102398682906145682",
"merchantSiteId": "228311",
"version": "1.0",
"sessionToken": "1169bd59-12e5-4fbf-a814-e795c826ab08",
"orderId": "44498931",
"userTokenId": "TESTTL11",
"paymentOption": {
"redirectUrl": "https://payment.truelayer-sandbox.com/payments#country_code=DE&return_uri=https%3A%2F%2Fjumpbox.safecharge.com%2Fdmz%2FApmConnector%2FpreResponse%2F741%2F540&payment_id=64db74ea-2f24-4b42-b5ee-25bd1978b794&resource_token=eyJhbGciOiJSUzUxMiIsImtpZCI6IkRCejExcEFuUGNXVndqaFBNWERuckNyQ0ZrT1p0Y2FqYWtjU21GNmJiVk0iLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJodHRwczovL2FwaS50cnVlbGF5ZXItc2FuZGJveC5jb20iLCJpc3MiOiJodHRwczovL2FwaS50cnVlbGF5ZXItc2FuZGJveC5jb20vcGF5bWVudHMtZ2F0ZXdheSIsImV4cCI6MTczNDcwMTc5MiwiaWF0IjoxNzM0NzAwODkyLCJuYmYiOjE3MzQ3MDA4OTIsInNjb3BlIjoicGF5bWVudCIsImNsaWVudF9pZCI6InNhbmRib3gtbnV2ZWlpbnRlcm5hdGlvbmFscWFkZS0wNzQ4MmUiLCJqdGkiOiI2NGRiNzRlYS0yZjI0LTRiNDItYjVlZS0yNWJkMTk3OGI3OTQifQ.JNozvSpgwk6-OCG-BLqB2VoU0SF7DTvoBjNE8vYQOwqA2aZKVOdGF7I5KyKZtpGfnZ_olQ06OWQqFhp0qNAfIPST4y8DQmFuV0dRgrqwXXtmlamxgRwZo5PA4Es7pgvzOE_JxnymkwKBBpr5ulDUGmgi8JSCWclau14NvKnDhmDgpvXrbYXSDSyOE7egnuj6BqcJfOyMZz4QzlvNZYaqESpMAuVeW6M5MsjKElk0OIzowDkfCeCVG-226JByOwmM_MgixV6KXq3qNflLUWanC_9AUgXRJwVBUryJWUoQ6TZHhxOWM6HU_rV7ASP7oL0MzQBQsRHt9LDb2SbbMd_b6w",
"userPaymentOptionId": "2153588411",
"card": {}
},
"transactionStatus": "REDIRECT"
}
- REST API
-
Follow these steps to perform a payment using Nuvei REST API integration:
1. Generate a
sessionTokenPress here for details.
To send a
/paymentrequest:- Perform the payment by sending a
/paymentrequest with the mandatory parameters, including:
-
userTokenIdamountcurrencypaymentOption.alternativePaymentMethodclass containing:paymentMethod: “apmgw_Pay_by_bank_app“
userDetailsclass containing:firstName,lastName,email or phone,country,address,city,zip,state,dateOfBirth
Example
/paymentRequest{ "sessionToken": "<sessionTokenId>", "merchantId": "<merchantId>", "merchantSiteId": "<merchantSiteId>", "userTokenId": "TESTTL11", "clientRequestId": "<clientRequestId>", "paymentOption": { "alternativePaymentMethod": { "paymentMethod": "apmgw_Pay_by_bank_app" } }, "currency": "GBP", "amount": "10", "userDetails": { "firstName": "John", "lastName": "Smith", "email": "[email protected]", "phone": "1231234567", "address": "1 Two Road", "city": "London", "zip": "WC2E 7HQ", "state": "KTT", "country": "GB", "dateOfBbirth": "<YYYY-MM-DD>" }, "deviceDetails": { "ipAddress": "09.176.154.172" }, "timeStamp": "{{timestamp}}", "checksum": "{{checksum}}" }Example
/paymentResponse{ "internalRequestId": 1752643779446, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "4972436454212160565", "merchantSiteId": "3111", "version": "1.0", "clientRequestId": "20250716082939", "sessionToken": "85e9358c1aed4d3dac8936b8092d03400111", "orderId": "137235111", "userTokenId": "testpis3", "paymentOption": { "redirectUrl": "", "userPaymentOptionId": "2153698001", "card": {} }, "transactionStatus": "REDIRECT" } - Perform the payment by sending a
- Web SDK
-
Follow these steps to perform a payment using Nuvei Web SDK integration.
1. Initiate a Session
Before you can submit payment using the client-side Nuvei Web SDK, you need to send the
/openOrderAPI call.2. Initialize the Web SDK
Instantiate the Web SDK with the
sessionTokenreceived from the server call to/openOrder.3. Create an APM Payment
Send a
createPayment()request with its mandatory parameters including:paymentOption.alternativePaymentMethodblock containing:paymentMethod: “apmgw_Pay_by_bank_app“
userDetailsblock containing:firstName,lastName,emailor phone, country,address,city,zip,state,dateOfBirth
Example
createPayment()Requestsfc.createPayment({ sessionToken: "<sessiontoken>", paymentOption: { alternativePaymentMethod: { paymentMethod: "apmgw_Pay_by_bank_app", }, deviceDetails:{ ipAddress:"<customer's IP address>" }, billingAddress: { firstName: "John", lastName: "Smith", country: "VN", email: "[email protected]" }, userDetails: { "firstName": "John", "lastName": "Smith", "email": "[email protected]", "phone": "1231234567", "address": "1 Two Road", "city": "London", "zip": "WC2E 7HQ", "state": "KTT", "country": "GB", "dateOfBirth": "<YYYY-MM-DD>" }, }, function (res) { console.log(res); });Example
/createPaymentResponse{ "internalRequestId": 46800351, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "1102398682906145682", "merchantSiteId": "228311", "version": "1.0", "sessionToken": "1169bd59-12e5-4fbf-a814-e795c826ab08", "orderId": "44498931", "userTokenId": "TESTTL11", "paymentOption": { "redirectUrl": "https://payment.truelayer-sandbox.com/payments#country_code=DE&return_uri=https%3A%2F%2Fjumpbox.safecharge.com%2Fdmz%2FApmConnector%2FpreResponse%2F741%2F540&payment_id=64db74ea-2f24-4b42-b5ee-25bd1978b794&resource_token=eyJhbGciOiJSUzUxMiIsImtpZCI6IkRCejExcEFuUGNXVndqaFBNWERuckNyQ0ZrT1p0Y2FqYWtjU21GNmJiVk0iLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJodHRwczovL2FwaS50cnVlbGF5ZXItc2FuZGJveC5jb20iLCJpc3MiOiJodHRwczovL2FwaS50cnVlbGF5ZXItc2FuZGJveC5jb20vcGF5bWVudHMtZ2F0ZXdheSIsImV4cCI6MTczNDcwMTc5MiwiaWF0IjoxNzM0NzAwODkyLCJuYmYiOjE3MzQ3MDA4OTIsInNjb3BlIjoicGF5bWVudCIsImNsaWVudF9pZCI6InNhbmRib3gtbnV2ZWlpbnRlcm5hdGlvbmFscWFkZS0wNzQ4MmUiLCJqdGkiOiI2NGRiNzRlYS0yZjI0LTRiNDItYjVlZS0yNWJkMTk3OGI3OTQifQ.JNozvSpgwk6-OCG-BLqB2VoU0SF7DTvoBjNE8vYQOwqA2aZKVOdGF7I5KyKZtpGfnZ_olQ06OWQqFhp0qNAfIPST4y8DQmFuV0dRgrqwXXtmlamxgRwZo5PA4Es7pgvzOE_JxnymkwKBBpr5ulDUGmgi8JSCWclau14NvKnDhmDgpvXrbYXSDSyOE7egnuj6BqcJfOyMZz4QzlvNZYaqESpMAuVeW6M5MsjKElk0OIzowDkfCeCVG-226JByOwmM_MgixV6KXq3qNflLUWanC_9AUgXRJwVBUryJWUoQ6TZHhxOWM6HU_rV7ASP7oL0MzQBQsRHt9LDb2SbbMd_b6w", "userPaymentOptionId": "2153588411", "card": {} }, "transactionStatus": "REDIRECT" } - Payment Page
Example Payment DMN with Status=APPROVED
...'ppp_status=OK&Status=APPROVED&ExErrCode=0&ErrCode=0&errApmCode=0&errApmDescription=&errScCode=0&errScDescription=&Reason=&ReasonCode=0&PPP_TransactionID=44498931&userid=TESTTL11&merchant_unique_id=&customData=&productId=&first_name=Ronald&last_name=Fielding&email=martina.krasteva%40nuvei.com¤cy=EUR&pmDisplayName=GB75CLRB04066800000871&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=Peachtree%C2%A0Dunwoody%C2%A0Rd&address2=&country=Germany&state=&city=Atlanta&zip=30328&phone1=3126122250&phone2=&phone3=&client_ip=93.146.254.172&nameOnCard=&cardNumber=&bin=&noCVV=&acquirerId=&acquirerBank=TrueLayer-PI&expMonth=&expYear=&Token=&tokenId=&AuthCode=GB75CLRB04066800000871&AvsCode=&Cvv2Reply=&shippingCountry=&shippingState=&shippingCity=&shippingAddress=&shippingZip=&shippingFirstName=&shippingLastName=&shippingPhone=&shippingCell=&shippingMail=&total_discount=0.00&total_handling=0.00&total_shipping=0.00&total_tax=0.00&buyButtonProductBundleId=&merchant_site_id=228311&merchant_status=&action=&requestVersion=&message=APPROVED&merchantLocale=&unknownParameters=&payment_method=apmgw_Pay_by_bank_app&ID=&merchant_id=1102398682906145682&responseTimeStamp=2024-12-20.13%3A22%3A20&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=Sale&externalEmail=&cardCompany=&eci=&user_token_id=TESTTL11&userPaymentOptionId=2153588411&TransactionID=2610000000000108826&externalTransactionId=64db74ea-2f24-4b42-b5ee-25bd1978b794&APMReferenceID=95437C75EC6723AD76670120560BAF9A&orderTransactionId=25630091&totalAmount=10.00&dynamicDescriptor=Rank+Descriptor&item_name_1=NA&item_number_1=&item_amount_1=10.00&item_quantity_1=1&item_discount_1=0.00&item_handling_1=0.00&item_shipping_1=0.00&feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&upoRegistrationDate=20241220&type=DEPOSIT&clientRequestId=&relatedTransactionId=&apmPayerInfo=%7B%22payment_method%22%3A%7B%22type%22%3A%22bank_transfer%22%2C%22provider_id%22%3A%22mock-payments-de-redirect%22%2C%22scheme_id%22%3A%22sepa_credit_transfer%22%7D%2C%22payment_source%22%3A%7B%22account_identifiers%22%3A%5B%7B%22type%22%3A%22iban%22%2C%22iban%22%3A%22GB75CLRB04066800000871%22%7D%5D%2C%22account_holder_name%22%3A%22JOHN+SANDBRIDGE%22%7D%7D&sessionId=43af7fb2cb290d2f12032a9e5b6e&responsechecksum=73908ab46abf5ab5c904eba21040ca35&advanceResponseChecksum=ebb1fe01061bd2a346b4f2b1c474a632',
Example Payment DMN with Status=PENDING
...'ppp_status=PENDING&Status=PENDING&ExErrCode=0&ErrCode=0&errApmCode=0&errApmDescription=&errScCode=0&errScDescription=&Reason=&ReasonCode=0&PPP_TransactionID=44498931&userid=TESTTL11&merchant_unique_id=&customData=&productId=&first_name=Ronald&last_name=Fielding&email=martina.krasteva%40nuvei.com¤cy=EUR&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=Peachtree%C2%A0Dunwoody%C2%A0Rd&address2=&country=Germany&state=&city=Atlanta&zip=30328&phone1=3126122250&phone2=&phone3=&client_ip=93.146.254.172&nameOnCard=&cardNumber=&bin=&noCVV=&acquirerId=&acquirerBank=TrueLayer-PI&expMonth=&expYear=&Token=&tokenId=&AuthCode=&AvsCode=&Cvv2Reply=&shippingCountry=&shippingState=&shippingCity=&shippingAddress=&shippingZip=&shippingFirstName=&shippingLastName=&shippingPhone=&shippingCell=&shippingMail=&total_discount=0.00&total_handling=0.00&total_shipping=0.00&total_tax=0.00&buyButtonProductBundleId=&merchant_site_id=228311&merchant_status=&action=&requestVersion=&message=PENDING&merchantLocale=&unknownParameters=&payment_method=apmgw_Pay_by_bank_app&ID=&merchant_id=1102398682906145682&responseTimeStamp=2024-12-20.13%3A22%3A18&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=Sale&externalEmail=&cardCompany=&eci=&user_token_id=TESTTL11&userPaymentOptionId=2153588411&TransactionID=2610000000000108826&externalTransactionId=64db74ea-2f24-4b42-b5ee-25bd1978b794&APMReferenceID=95437C75EC6723AD76670120560BAF9A&orderTransactionId=25630091&totalAmount=10.00&dynamicDescriptor=Rank+Descriptor&item_name_1=NA&item_number_1=&item_amount_1=10.00&item_quantity_1=1&item_discount_1=0.00&item_handling_1=0.00&item_shipping_1=0.00&feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&upoRegistrationDate=20241220&type=DEPOSIT&clientRequestId=&relatedTransactionId=&sessionId=43af7fb2cb290d2f12032a9e5b6e&responsechecksum=f982d3040699e66d7fb57433bb7de1a0&advanceResponseChecksum=cb7a03462aab7418089f6b01ead93ff6',
Payout – UPO Closed Loop
For Payout, the user does the following:
- On the Cashier screen, in ‘My Payment Methods’, selects the existing UPO.
- Enters the amount to withdraw.
- Presses ‘Withdraw’.
If the request is completed, a ‘Successful Operation’ message is displayed.
Example /payout Request with UPO
{
"merchantId": "<your merchantId>",
"merchantSiteId": "<your merchantSiteId>",
"userTokenId": "<unique user identifier in merchant system>",
"clientUniqueId": "<unique transaction ID in merchant system>",
"clientRequestId": "<unique request ID in merchant system>",
"amount": "200",
"currency": "EUR",
"userPaymentOption": {
"userPaymentOptionId": "<UPO received from a previous request>"
},
"deviceDetails": {
"ipAddress": "<customer's IP address>"
},
"timeStamp": "<YYYYMMDDHHmmss>",
"checksum": "<calculated checksum>"
}
Example /payout Response with UPO
{
"internalRequestId": 1751316614320,
"status": "SUCCESS",
"errCode": 0,
"reason": "",
"merchantId": "4972436454212160565",
"merchantSiteId": "3111",
"version": "1.0",
"clientRequestId": "20250630235015",
"userTokenId": "testuserth00005",
"clientUniqueId": "{{clientUniqueId}}",
"transactionStatus": "PENDING",
"paymentMethodErrorCode": "0",
"userPaymentOptionId": "2302916111",
"externalTransactionId": "2610000000480816",
"transactionId": "2610000000000304854",
"customData": "My Test GGG",
"orderId": "124329111"
}
User Experience
Deposit
To deposit, the user does the following:
- Selects the payment method.
- Enters the deposit amount.
- Presses ‘DEPOSIT’.
The user is redirected to a bank selection page. - If the selected bank supports app-to-app authentication, a QR code is displayed providing an option to continue the payment using the banking app on the mobile phone or to continue on the desktop.
The user is redirected by the Hosted Payment Page (HPP) to the bank website or bank app. - User authorizes the payment.
If the transaction is authorized, the bank redirects the user to the Cashier using a return URL.
If the deposit is successful, a confirmation message is displayed in the Cashier.
Testing
Contact Nuvei support if test credentials and testing scenarios are required.