- 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
/payment
request with the mandatory parameters, including:
-
userTokenId
amount
currency
paymentOption.alternativePaymentMethod
class containing:paymentMethod
: “apmgw_Pay_by_bank_app“
userDetails
class 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.alternativePaymentMethod
block containing:paymentMethod
: “apmgw_Pay_by_bank_app“
userDetails
block containing:firstName
,lastName
,email
or 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
sessionToken
Press here for details.
To send a
/payment
request:- Perform the payment by sending a
/payment
request with the mandatory parameters, including:
-
userTokenId
amount
currency
paymentOption.alternativePaymentMethod
class containing:paymentMethod
: “apmgw_Pay_by_bank_app“
userDetails
class 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" }
- 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
/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.alternativePaymentMethod
block containing:paymentMethod
: “apmgw_Pay_by_bank_app“
userDetails
block containing:firstName
,lastName
,email
or 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
/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" }
- 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.