- METHOD TYPEReal-Time Bank Transfer
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
This guide provides steps to integrate Open Banking as a Nuvei APM (alternative payment method) into your payment flows, and how to accept payments (deposits) from your customers.
Nuvei Environments
You can process Open Banking APM payment (deposit) transactions using Nuvei server-to-server REST APIs or Nuvei Web SDK calls.
Prerequisites and Notes
- This guide assumes you have completed all account setup prerequisites, and are ready to integrate Open Banking into your payment flow.
- Nuvei handles Open Banking transactions in “redirection mode”.
- The system sends Direct Merchant Notifications (DMNs) to ensure that you receive the results of transaction processing. You need to include a destination DMN
notificationUrl
in all/payment
requests. You can either set the notification URL hard coded on the Control Panel, or send it in each request. - The scope of this guide describes accepting customer payments using customer payment methods that are not initially stored as UPOs in our system. (A UPO (user payment option) is an encrypted customer payment method record stored in the Nuvei system, representing a customer bank account or other payment method.)
- Test credentials and testing scenarios can be provided by Nuvei if necessary. You can contact Nuvei support for assistance.
Supported Countries
- Austria
- Belgium
- Estonia
- France
- Germany
- Hungary
- Italy
- Latvia
- Lithuania
- Netherlands
- Poland
- Portugal
- Spain
- United Kingdom
Supported Currencies
- EUR
- GBP
- PLN
Collecting Payment Details
- Follow the instructions in these steps:
Press tab to open…Retrieve a dynamic list of banks and APMs linked to your merchant account for that country:- The payment flow begins when your customer enters the amount they wish to pay on your payment page, selects “Open Banking” and presses Pay (or equivalent).
- Send a
/getSessionToken
request, which generates asessionToken
. - Call the
/getMerchantPaymentMethods
method and include the relevantcountryCode
parameter to narrow down results returned.
Example
/getMerchantPaymentMethods
Request{ "sessionToken": "<sessionToken from getSessionToken>", "merchantId":"<your merchantId>", "merchantSiteId":"<your merchantSiteId>", "clientRequestId": "<unique request ID in merchant system>", "currencyCode":"USD", "countryCode":"BE", "type":"DEPOSIT", "languageCode":"eng", "timeStamp":"<YYYYMMDDHHmmss>", "checksum":"<calculated checksum>" }
Retrieve a dynamic list of banks and APMs linked to your merchant account for that country:- The payment flow begins when your customer enters the amount they wish to pay on your payment page, selects “Open Banking”, and presses Pay (or equivalent).
- Send an
/openOrder
request, which generates asessionToken
. - Instantiate a Web SDK session by sending a
SafeCharge()
request and include thesessionToken
. - Now you can call the
getAPMs()
Web SDK method, and include the relevantcountryCode
to narrow down the results returned.
Example
getApms()
Requestsfc.getApms({ "currencyCode": "USD", "countryCode": "BE", "languageCode": "en" }, function (res) { console.log(res) })
The response returns all the APMs linked to your merchant account, for that
countryCode
.
- Initiate a Session – This authenticates and sets up an order in the Nuvei system, by sending an
/openOrder
request, and returns asessionToken
. - Create an HTML Placeholder – This instantiates the Web SDK with the
sessionToken
received from the server call to/openOrder
. - Collect the bank and transaction details by displaying a pop-up for the customer to select a bank, enter the IBAN (if mandatory for the bank), accept the Terms and Conditions, and enter the amount.
- Use an IFrame to redirect the customer to their selected bank, so they can enter their credentials and complete the payment transaction.
(END OF SIMPLY CONNECT FLOW)
- REST API
-
Retrieve a dynamic list of banks and APMs linked to your merchant account for that country:
- The payment flow begins when your customer enters the amount they wish to pay on your payment page, selects “Open Banking” and presses Pay (or equivalent).
- Send a
/getSessionToken
request, which generates asessionToken
. - Call the
/getMerchantPaymentMethods
method and include the relevantcountryCode
parameter to narrow down results returned.
Example
/getMerchantPaymentMethods
Request{ "sessionToken": "<sessionToken from getSessionToken>", "merchantId":"<your merchantId>", "merchantSiteId":"<your merchantSiteId>", "clientRequestId": "<unique request ID in merchant system>", "currencyCode":"USD", "countryCode":"BE", "type":"DEPOSIT", "languageCode":"eng", "timeStamp":"<YYYYMMDDHHmmss>", "checksum":"<calculated checksum>" }
- Web SDK
-
Retrieve a dynamic list of banks and APMs linked to your merchant account for that country:
- The payment flow begins when your customer enters the amount they wish to pay on your payment page, selects “Open Banking”, and presses Pay (or equivalent).
- Send an
/openOrder
request, which generates asessionToken
. - Instantiate a Web SDK session by sending a
SafeCharge()
request and include thesessionToken
. - Now you can call the
getAPMs()
Web SDK method, and include the relevantcountryCode
to narrow down the results returned.
Example
getApms()
Requestsfc.getApms({ "currencyCode": "USD", "countryCode": "BE", "languageCode": "en" }, function (res) { console.log(res) })
The response returns all the APMs linked to your merchant account, for that
countryCode
.
- Simply Connect
-
- Initiate a Session – This authenticates and sets up an order in the Nuvei system, by sending an
/openOrder
request, and returns asessionToken
. - Create an HTML Placeholder – This instantiates the Web SDK with the
sessionToken
received from the server call to/openOrder
. - Collect the bank and transaction details by displaying a pop-up for the customer to select a bank, enter the IBAN (if mandatory for the bank), accept the Terms and Conditions, and enter the amount.
- Use an IFrame to redirect the customer to their selected bank, so they can enter their credentials and complete the payment transaction.
(END OF SIMPLY CONNECT FLOW)
- Initiate a Session – This authenticates and sets up an order in the Nuvei system, by sending an
fields.listValues.caption
value) for you to display to the customer:Example
/getMerchantPaymentMethods
(orgetApms()
) Response{ "paymentMethod":"apmgw_Instant_Open_Banking", "paymentMethodDisplayName":[ ], "isDirect":"false", "countries":[ "BE" ], "currencies":[ "USD" ], "fields":[ { "name":"ob_account_number", "type":"text", "caption":[ { "language":"eng", "message":"Account Number" } ] }, { "name":"ob_sort_code", "type":"text", "caption":[ { "language":"eng", "message":"Sort Code" } ] }, { "name":"ob_iban", "type":"text", "caption":[ { "language":"en", "message":"IBAN" } ] }, { "name":"instantOb_bankId", "type":"text", "caption":[ { "language":"eng", "message":"Bank ID" } ], "listValues":[ { "code":"ngp-bbru", "caption":"NextGenPSD2", "mandatoryFields":[ "ob_iban" ] }, { "code":"ngp-ingba", "caption":"ING Austria", "mandatoryFields":[ ] } ] } ] }
- Extract a list of all the banks returned for these APMs:
apmgw_Open_Banking
andapmgw_Instant_Open_Banking
./getMerchantPaymentMethods
(orgetApms()
) Output ParametersParameter Description Examples paymentMethod Identifier of a Payment Method. apmgw_Online_Bank_Transfer
fields A list of possible input fields required by a payment method provider for this Payment Method, as well as a list of mandatory input fields per fields.listValues
value (in the form of a key-value pairs to be used to populate a dropdown input field).- fields.name Identifier of the field. ob_account_number
ob_sort_code
ob_iban
ob_bank_id
fields.listValues A list of values of the fields.name
(to be used to populate a dropdown input field).- fields.listValues
.codeBank code used for sending the payment request.
Note:For the "apmgw_online_bank_transfer" APM, the bank id parameter must be: "ob_bank_id"ngp-bbru
ngp-ingbafields.listValues
.captionBank name for display on the UI. NextGenPSD2
ING Austriafields.listValues
.mandatoryFieldsA list of fields.names
, which are mandatory for thisfields.listValues
value (to be used to populate a dropdown input field).ob_account_number
ob_sort_code
ob_iban - Display this list of banks, for the customer to choose the bank that holds the account they wish to pay from. The names of the banks are contained in the
fields.listValues.caption
value, contained in thefields.listValues
array output parameter. - After the customer selects a bank, retrieve the list of mandatory fields that customer must enter. The mandatory fields required for the selected bank are contained in the
fields.listValues.mandatoryFields
value of this array. The values in this array correspond to the values in thefields.name
output parameter.
fields
array structure withmandatoryFields
from the/getMerchantPaymentMethods
(orgetApms()
) Response"fields"[ "name" (String, 45), "type" (String, 45), "validationMessage" ["language" (String, 2), "message" (String, 400)], "caption" ["language" (String, 2), "message" (String, 400)], "listValues" [ "code" (String, 255), "caption" (String), "mandatoryFields" [(String, 45)] ] ]
- After the customer enters the information required by their bank, display the amount, currency, and the following important checkbox for the customer to approve before allowing them to continue:
“By continuing, you agree to the Privacy Policy and the Terms of Nuvei’s bank connectivity provider. You will be asked by your bank to share your account details, these will only be used when necessary such as processing a refund.“
Sending the Payment Request
Press a tab to open…
- Use the data entered by the customer to send a
/payment
request, and include thealternativePaymentMethod
block containing the relevant additional Open Banking parameters.Example
/payment
Request forapmgw_Instant_Open_Banking
– With Mandatory Parameters{ "sessionToken": "<sessionToken from getSessionToken>", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "userTokenId": "<unique customer identifier in merchant system>", "clientRequestId": "<unique request ID in merchant system>", "clientUniqueId": "<unique transaction ID in merchant system>", "currency": "USD", "amount": "1", "paymentOption": { "alternativePaymentMethod": { "paymentMethod": "apmgw_Instant_Open_Banking", "instantOb_bankId": "ngp-bbru", "ob_iban": "BE96315678901234" } }, "deviceDetails": { "ipAddress": "<customer's IP address>" }, "billingAddress": { "firstName": "John", "lastName": "Smith", "email": "john.smith@email.com", "country": "BE" }, "userDetails": { "firstName": "John", "lastName": "Smith", "email": "john.smith@email.com", "country": "BE" }, "timeStamp": "<YYYYMMDDHHmmss>", "checksum": "<calculated checksum>" }
A successful request returns a
paymentOption.redirectUrl
for the particular bank.Example
/payment
Response{ "reason": "", "orderId": "36298881", "transactionStatus": "REDIRECT", "clientRequestId": "GF1XTXTBM", "internalRequestId": 17817111, "version": "1.0", "merchantSiteId": "126006", "merchantId": "2502136204546424962", "clientUniqueId": "695701003", "errCode": 0, "paymentOption": { "redirectUrl": "https://cdn-int.safecharge.com/safecharge_resources/v1/get_to_post/index.html?eyJhengciOiJSUzI1NiJ9.eyJkZXRhaWxzIjoiNzRDQkZEODMyOUI1RDMwMjNDM0YwNUJERThGRkFEMDRGQUNEMURCQUZFMEYxM0QwMzhFQkU5RjRCMzhFMTY2RTY5NEI0QzhDMDg2RjYzMDM2RTdCMkIyREVBRjRENTIyNkM2RDg1RUE5NkI2QjIzNjEzMUVBREI0NDBGRjU0QzE0RThGM0ZCODg2QzUwQzcyMTYxMURBMkNBQzg1NzI2NjRCOEE4ODE0MThEMkJCMjBFNTAzRDE4MTRBMkJBM0M1NjM3RDBCNkFFRDU5MUVFQzk2NEQwMUE2OEFFRUQyMDBBMUJBRUQ4RUIxNDBGNEEwQkQ2OTE3MzYxMEM4Rjg1MTAwMjMxREEzQkRDNUZGMkNGOUNGRURCQkZFMTQ2REEwMDdCQUY4QUUzN0Q1Q0JEQTYzOTQyNDhGMkFEQzhFMzMyODU4NzQ5MzUyNTI2NDFFREREM0Q4ODEwQTE3RkVCNTlBMjY4ODBCMkI2NjYzRkVENjk3RjRBMDhERTFBNzVDRDdBMzk2MzBGRjJBREU1Mjk0N0FERjFFQUVFMDA4Nzg4Q0REN0RCNjM5M0QwRTNEOTFBQkVERTY3MDFBMUQ0RkU3M0M3RTQwNUQ5RjlCNzZDMUYxRjQ5QzIxMjU4RERENDVDQUFDNTNERDg4MEVBNTk2Mzk1QzBDRDQ4NUY0OTQ4M0VERURGNDJFRkQzMUJBNkIwMUYwMTFGMTVGNzAyMUI2OTRBOUQ1NTU0OEEyQ0FDNUQ3MzVBNTgyMkJCMEFDOUFCQjhBQzc1Q0UxNzc1NjI0QzY1QUQ1MDU4NTVCRDI5RjFCMjJCMDlCREExM0I1QkFFQ0ZEMTA1MUI2NTQ4QTUxQkJDNDlEOTlCQUI4MUZERjAwNzAyQTBDQ0IyQTk3MDVENzE2MkZFRUQ5RjEzN0ZGN0FGMDUwNUIyMUIwOTY2RDA2NTFFQkRDRDA1MkY0RTE4MDY5ODlCOEFBQjJDMTIxNkIzNzJDREQ5RDQ0RDQ2N0EwOEUwQjI4MkUzOTkwNjAwOTcyQ0NDNEYwQjZEMDdERDg1ODk2MDYzM0UwNkExQ0VGRTY0OEExNzBDOTA3RjA3Qzg4NDA4NDI0MzQzRjNGQjM1MDZFN0EzRkEwNkQ0MDY5M0QyQkE3MzBGQTdCNzc3NDFFQUU2NDg2NEI2NjE3MDdGMzY0MDNCMTQyOTJDMTM1NzI5NDUwQ0YxRDk3NTcxQUE5NzJDQzg1MTVGQSIsIm1lcmNoYW50X2lkIjoiU2ZDaGFyZ2UiLCJpdiI6Ijk5RTM0MEMyNzg0MkNBOTlCQkIxQzUyNzVFQUFFNURBIiwidXJsIjoiaHR0cHM6Ly9zdGFnaW5nLnZlcmlmaWVkYWNoLmNvbS9jb25zdW1lci9BY3F1aXJlSW5mb0dhdGV3YXkuZG8ifQ.EF3K5UsPQYdua_YcRd9Yefl-KemNwEMq5-EXV7QWAZUbCQglncAaAHzzlW-sxq2XcVZcZ2qbxLkQqjzkB3tItTGUDmqysL-opqOdaaz54EKeHKC5hzQIp77DucIGYQhPxfOB_eAxTOPLvZ85c3woJ37m8BH8kuJPSoAjYrZ12geEQJQx4R2VxNT3QsxxryEWZvU1yKc8mjCl011nWz6cp4LZpHIMwUwvdCMJWUeJtAxC-Q6Ec4NqP93AFki9Ln0OOvenbOEBn3UpK_BncxKu7RFOzM8w4kSf0eopKC44awlROwZaO0k0htJAUikA_W-fgeLISuMpHmWMZz6X3Ju2Bg", "userPaymentOptionId": "8061731", "card": {} }, "sessionToken": "6fa38ea2-6f1a-4620-85ae-7deaf0d5f8f1", "userTokenId": "2J6QZH3UF9E2", "status": "SUCCESS" }
- Redirect the customer to that
redirectUrl
for the customer to enter their credential and complete the payment. - Open Banking processes the request.
- After processing the transaction, you receive a DMN (sent to the
urlDetails.notificationUrl
parameter that you can provide in the request), which includes the result of the transaction.
- Use the data entered by the customer to send a
createPayment()
request, and include thealternativePaymentMethod
block containing the relevant additional Open Banking parameters, as shown below:
Example
createPayment()
Request forapmgw_Instant_Open_Banking
– With Mandatory Parametersfc.createPayment({ sessionToken: "<sessiontoken>", paymentOption: { alternativePaymentMethod: { paymentMethod: "apmgw_Instant_Open_Banking", instantOb_bankId: "ngp-bbru", ob_iban: "BE96315678901234" } }, deviceDetails: { ipAddress: "<customer's IP address>" }, billingAddress: { firstName: "John", lastName: "Smith", email: "john.smith@email.com", country: "BE" }, userDetails: { firstName: "John", lastName: "Smith", email: "john.smith@email.com", country: "BE" }, }, function(res) { console.log(res); });
Example
createPayment()
Request forapmgw_Open_Banking
– No Mandatory Parametersfc.createPayment({ sessionToken: "<sessiontoken>", paymentOption : { alternativePaymentMethod: { paymentMethod: "apmgw_Open_Banking", ob_bank_id: "ngp-ingba" }}, deviceDetails: { ipAddress: "<customer's IP address>" }, billingAddress: { firstName "John", lastName: "Smith", email: "john.smith@email.com", country: "BE" }, userDetails: { firstName: "John", lastName: "Smith", email: "john.smith@email.com", country: "BE" }, }, function(res) { console.log(res); })
- If the
createPayment()
request is successful, then the system automatically opens a new tab or an IFrame, redirecting the customer to their APM provider (the selected bank) site to enter their credentials and complete the payment. - To verify the response, see the Web SDK Response Verification topic.
- REST API
-
- Use the data entered by the customer to send a
/payment
request, and include thealternativePaymentMethod
block containing the relevant additional Open Banking parameters.Example
/payment
Request forapmgw_Instant_Open_Banking
– With Mandatory Parameters{ "sessionToken": "<sessionToken from getSessionToken>", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "userTokenId": "<unique customer identifier in merchant system>", "clientRequestId": "<unique request ID in merchant system>", "clientUniqueId": "<unique transaction ID in merchant system>", "currency": "USD", "amount": "1", "paymentOption": { "alternativePaymentMethod": { "paymentMethod": "apmgw_Instant_Open_Banking", "instantOb_bankId": "ngp-bbru", "ob_iban": "BE96315678901234" } }, "deviceDetails": { "ipAddress": "<customer's IP address>" }, "billingAddress": { "firstName": "John", "lastName": "Smith", "email": "john.smith@email.com", "country": "BE" }, "userDetails": { "firstName": "John", "lastName": "Smith", "email": "john.smith@email.com", "country": "BE" }, "timeStamp": "<YYYYMMDDHHmmss>", "checksum": "<calculated checksum>" }
A successful request returns a
paymentOption.redirectUrl
for the particular bank.Example
/payment
Response{ "reason": "", "orderId": "36298881", "transactionStatus": "REDIRECT", "clientRequestId": "GF1XTXTBM", "internalRequestId": 17817111, "version": "1.0", "merchantSiteId": "126006", "merchantId": "2502136204546424962", "clientUniqueId": "695701003", "errCode": 0, "paymentOption": { "redirectUrl": "https://cdn-int.safecharge.com/safecharge_resources/v1/get_to_post/index.html?eyJhengciOiJSUzI1NiJ9.eyJkZXRhaWxzIjoiNzRDQkZEODMyOUI1RDMwMjNDM0YwNUJERThGRkFEMDRGQUNEMURCQUZFMEYxM0QwMzhFQkU5RjRCMzhFMTY2RTY5NEI0QzhDMDg2RjYzMDM2RTdCMkIyREVBRjRENTIyNkM2RDg1RUE5NkI2QjIzNjEzMUVBREI0NDBGRjU0QzE0RThGM0ZCODg2QzUwQzcyMTYxMURBMkNBQzg1NzI2NjRCOEE4ODE0MThEMkJCMjBFNTAzRDE4MTRBMkJBM0M1NjM3RDBCNkFFRDU5MUVFQzk2NEQwMUE2OEFFRUQyMDBBMUJBRUQ4RUIxNDBGNEEwQkQ2OTE3MzYxMEM4Rjg1MTAwMjMxREEzQkRDNUZGMkNGOUNGRURCQkZFMTQ2REEwMDdCQUY4QUUzN0Q1Q0JEQTYzOTQyNDhGMkFEQzhFMzMyODU4NzQ5MzUyNTI2NDFFREREM0Q4ODEwQTE3RkVCNTlBMjY4ODBCMkI2NjYzRkVENjk3RjRBMDhERTFBNzVDRDdBMzk2MzBGRjJBREU1Mjk0N0FERjFFQUVFMDA4Nzg4Q0REN0RCNjM5M0QwRTNEOTFBQkVERTY3MDFBMUQ0RkU3M0M3RTQwNUQ5RjlCNzZDMUYxRjQ5QzIxMjU4RERENDVDQUFDNTNERDg4MEVBNTk2Mzk1QzBDRDQ4NUY0OTQ4M0VERURGNDJFRkQzMUJBNkIwMUYwMTFGMTVGNzAyMUI2OTRBOUQ1NTU0OEEyQ0FDNUQ3MzVBNTgyMkJCMEFDOUFCQjhBQzc1Q0UxNzc1NjI0QzY1QUQ1MDU4NTVCRDI5RjFCMjJCMDlCREExM0I1QkFFQ0ZEMTA1MUI2NTQ4QTUxQkJDNDlEOTlCQUI4MUZERjAwNzAyQTBDQ0IyQTk3MDVENzE2MkZFRUQ5RjEzN0ZGN0FGMDUwNUIyMUIwOTY2RDA2NTFFQkRDRDA1MkY0RTE4MDY5ODlCOEFBQjJDMTIxNkIzNzJDREQ5RDQ0RDQ2N0EwOEUwQjI4MkUzOTkwNjAwOTcyQ0NDNEYwQjZEMDdERDg1ODk2MDYzM0UwNkExQ0VGRTY0OEExNzBDOTA3RjA3Qzg4NDA4NDI0MzQzRjNGQjM1MDZFN0EzRkEwNkQ0MDY5M0QyQkE3MzBGQTdCNzc3NDFFQUU2NDg2NEI2NjE3MDdGMzY0MDNCMTQyOTJDMTM1NzI5NDUwQ0YxRDk3NTcxQUE5NzJDQzg1MTVGQSIsIm1lcmNoYW50X2lkIjoiU2ZDaGFyZ2UiLCJpdiI6Ijk5RTM0MEMyNzg0MkNBOTlCQkIxQzUyNzVFQUFFNURBIiwidXJsIjoiaHR0cHM6Ly9zdGFnaW5nLnZlcmlmaWVkYWNoLmNvbS9jb25zdW1lci9BY3F1aXJlSW5mb0dhdGV3YXkuZG8ifQ.EF3K5UsPQYdua_YcRd9Yefl-KemNwEMq5-EXV7QWAZUbCQglncAaAHzzlW-sxq2XcVZcZ2qbxLkQqjzkB3tItTGUDmqysL-opqOdaaz54EKeHKC5hzQIp77DucIGYQhPxfOB_eAxTOPLvZ85c3woJ37m8BH8kuJPSoAjYrZ12geEQJQx4R2VxNT3QsxxryEWZvU1yKc8mjCl011nWz6cp4LZpHIMwUwvdCMJWUeJtAxC-Q6Ec4NqP93AFki9Ln0OOvenbOEBn3UpK_BncxKu7RFOzM8w4kSf0eopKC44awlROwZaO0k0htJAUikA_W-fgeLISuMpHmWMZz6X3Ju2Bg", "userPaymentOptionId": "8061731", "card": {} }, "sessionToken": "6fa38ea2-6f1a-4620-85ae-7deaf0d5f8f1", "userTokenId": "2J6QZH3UF9E2", "status": "SUCCESS" }
- Redirect the customer to that
redirectUrl
for the customer to enter their credential and complete the payment. - Open Banking processes the request.
- After processing the transaction, you receive a DMN (sent to the
urlDetails.notificationUrl
parameter that you can provide in the request), which includes the result of the transaction.
- Use the data entered by the customer to send a
- Web SDK
-
- Use the data entered by the customer to send a
createPayment()
request, and include thealternativePaymentMethod
block containing the relevant additional Open Banking parameters, as shown below:
Example
createPayment()
Request forapmgw_Instant_Open_Banking
– With Mandatory Parametersfc.createPayment({ sessionToken: "<sessiontoken>", paymentOption: { alternativePaymentMethod: { paymentMethod: "apmgw_Instant_Open_Banking", instantOb_bankId: "ngp-bbru", ob_iban: "BE96315678901234" } }, deviceDetails: { ipAddress: "<customer's IP address>" }, billingAddress: { firstName: "John", lastName: "Smith", email: "john.smith@email.com", country: "BE" }, userDetails: { firstName: "John", lastName: "Smith", email: "john.smith@email.com", country: "BE" }, }, function(res) { console.log(res); });
Example
createPayment()
Request forapmgw_Open_Banking
– No Mandatory Parametersfc.createPayment({ sessionToken: "<sessiontoken>", paymentOption : { alternativePaymentMethod: { paymentMethod: "apmgw_Open_Banking", ob_bank_id: "ngp-ingba" }}, deviceDetails: { ipAddress: "<customer's IP address>" }, billingAddress: { firstName "John", lastName: "Smith", email: "john.smith@email.com", country: "BE" }, userDetails: { firstName: "John", lastName: "Smith", email: "john.smith@email.com", country: "BE" }, }, function(res) { console.log(res); })
- If the
createPayment()
request is successful, then the system automatically opens a new tab or an IFrame, redirecting the customer to their APM provider (the selected bank) site to enter their credentials and complete the payment. - To verify the response, see the Web SDK Response Verification topic.
- Use the data entered by the customer to send a
Sending the Payout Request
You have two options to perform a payout:
- Use the apmgw_Open_Banking UPO for processing the payouts as described below.
- Collect account details from the deposit and use your logic to use them via another payment method such as SEPA Payouts, e.g., take the IBAN from the DMN and create a SEPA Payouts
/payout
request.
Send a /payout request and include the userPaymentOptionId
, which contains the user’s previously stored APM account details. Press here for an example.
After the transaction is processed, the user receives a DMN (sent to the notificationUrl
parameter you can provide in the request) that includes the result of the transaction
Testing
Input Parameters
Data | Description | Example |
---|---|---|
First Name | Enter any name. | John |
Last Name | Enter any name. | Doe |
Email Address | Enter any valid email address. | person@test.com |
Address | Enter any value. | 22 Main Street |
ZIP Code | Enter any value. | 123456 |
City | Enter any value. | Paris |
For Redirect Page
Data | Value |
---|---|
Test Bank | Nuapay ASPSP |
User Name | psu |
Password | psu |