- METHOD TYPEBank Transfer
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
Single Euro Payments Area (SEPA) Payouts is used throughout Europe for withdrawals. The Verified SEPA Payouts APM provider uses an algorithm to compare the name provided by the user with the real name provided by the bank and generates a match score.
Supported Countries
- Austria
- Belgium
- Finland
- France
- Germany
- Italy
- Lithuania
- Netherlands
- Spain
- Sweden
Supported Currencies
- EUR
Payout (Withdrawal) Flow
To perform a Verified SEPA Payout, you need to send an /accountCapture API request before sending the /payout request. You can submit an /accountCapture request with or without apmData class containing vs_iban.
/accountCapture Request Without apmData Class
- Generate a
sessionToken. Press here for details. - Send an
/accountCapturerequest with all of its mandatory parameters, including:userTokenId– Unique customer identifier in merchant system.paymentMethod: “apmgw_Verified_SEPA_Payouts“currencyCode: “EUR“countryCode
Example
/accountCaptureRequest{ "sessionToken": "<sessionToken from /getSessionToken>", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "userTokenId": "<unique customer identifier in merchant system>", "paymentMethod": "apmgw_Verified_SEPA_Payouts", "currencyCode": "EUR", "countryCode": "<2-letter ISO country code>" }The request returns a
redirectUrl.Example
/accountCaptureResponse{ "internalRequestId": 44511921, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "1102398682906145682", "merchantSiteId": "228311", "version": "1.0", "sessionToken": "46bedbc9-4cfa-4e0e-8e83-4d63acec6df2", "redirectUrl": "https://auth.truelayer-sandbox.com/[email protected]&scope=accounts%20info%20verification&response_type=code&redirect_uri=https://jumpbox.safecharge.com/dmz/ApmConnectorNotify/ConnectorBankCapture/711/540&state=018246908B03252D1292C89B21630999&client_id=sandbox-nuvei12345-aceeb4&providers=uk-cs-mock&tracking_id=2610000000061351", "userTokenId": "99asdffw" }
- Redirect the customer to
redirectUrl. - The customer enters account details.
If Nuvei does not have any other bank accounts saved for the customer, Nuvei stores the data as a new user payment option (UPO). If Nuvei has one or more other bank accounts saved for the customer, Nuvei creates a UPO using the first bank account in the account list. - Nuvei sends a Direct Merchant Notification (DMN) with the newly created
userPaymentOptionIdtourlDetails.notificationUrl, which we recommend including in the/accountCapturerequest.
If Nuvei has more than one bank accounts saved for the customer, the DMN includes information for all accounts in theapmPayerInfo.Example
/accountCaptureDMN withapmPayerInfo...'ppp_status=OK&ExErrCode=&ErrCode=&errApmCode=0&errApmDescription=&errScCode=0&errScDescription=&Reason=&ReasonCode=&PPP_TransactionID=&userid=140061921&merchant_unique_id=&customData=&productId=&first_name=&last_name=&email=¤cy=EUR&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=&address2=&country=DE&state=&city=&zip=&phone1=&phone2=&phone3=&client_ip=&nameOnCard=&cardNumber=&bin=&noCVV=&acquirerId=&expMonth=&expYear=&Token=&tokenId=&AuthCode=&AvsCode=&Cvv2Reply=&shippingCountry=&shippingState=&shippingCity=&shippingAddress=&shippingZip=&shippingFirstName=&shippingLastName=&shippingPhone=&shippingCell=&shippingMail=&total_discount=&total_handling=&total_shipping=&total_tax=&buyButtonProductBundleId=&merchant_site_id=228311&merchant_status=&action=&requestVersion=&message=&merchantLocale=&unknownParameters=&payment_method=apmgw_Verified_SEPA_Payouts&ID=&merchant_id=1102398682906145682&responseTimeStamp=2024-07-10.12%3A54%3A49&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=&externalEmail=&cardCompany=&eci=&user_token_id=99999455&userPaymentOptionId=2153285031&TransactionID=&totalAmount=&dynamicDescriptor=&feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&type=ACCOUNT_CAPTURE&clientRequestId=&relatedTransactionId=&apmPayerInfo=%5B%7B%22verifiable%22%3A%22true%22%2C%22currency%22%3A%22GBP%22%2C%22iban%22%3A%22GB08CLRB04066800003435%22%2C%22provider_id%22%3A%22mock%22%2C%22account_type%22%3A%22CURRENT%22%2C%22display_name%22%3A%22John+Doe%22%2C%22swift_bic%22%3A%22CPBKGB00%22%2C%22account_number%22%3A%2210000000%22%2C%22sort_code%22%3A%2201-21-31%22%2C%22account_holders%22%3A%5B%7B%22name%22%3A%22John+Doe%22%2C%22verified%22%3A%22true%22%2C%22match_score%22%3A%22100%22%7D%5D%7D%2C%7B%22verifiable%22%3A%22true%22%2C%22currency%22%3A%22GBP%22%2C%22iban%22%3A%22GB08CLRB04066800003435%22%2C%22provider_id%22%3A%22mock%22%2C%22account_type%22%3A%22CURRENT%22%2C%22display_name%22%3A%22Joint+Account%22%2C%22swift_bic%22%3A%22CPBKGB00%22%2C%22account_number%22%3A%2250000000%22%2C%22sort_code%22%3A%2201-21-31%22%2C%22account_holders%22%3A%5B%7B%22name%22%3A%22John+Doe%22%2C%22verified%22%3A%22true%22%2C%22match_score%22%3A%22100%22%7D%2C%7B%22name%22%3A%22Mary+Poppins%22%2C%22verified%22%3A%22false%22%2C%22match_score%22%3A%2230%22%7D%5D%7D%5D&responsechecksum=eb3501a6e6f06b8ee3cd6982839d378c&advanceResponseChecksum=e7c555a66af3fc7fc109f3a767f2e165,'Using the
apmPayerInfoinformation in the DMN, create an account selection page. If the customer selects an account different than the account associated with the UPO, change the account associated with the UPO by sending an/editUPOAPMrequest. - Send the
/payoutrequest.
/accountCapture Request With apmData Class
- In your UI, collect the IBAN from the customer.
- Generate a
sessionToken. Press here for details. - Send an
/accountCapturerequest with all of its mandatory parameters and include:userTokenId– Unique customer identifier in merchant system.paymentMethod: “apmgw_Verified_SEPA_Payouts“currencyCode: “EUR“countryCodeapmDataclass containingvs_iban.
Example
/accountCaptureRequest withapmDataClass{ "sessionToken": "<sessionToken from /getSessionToken>", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "userTokenId": "<unique customer identifier in merchant system>", "paymentMethod": "apmgw_Verified_SEPA_Payouts", "currencyCode": "EUR", "countryCode": "<2-letter ISO country code>", "apmData": { "vs_iban": "03367219" } }The request returns a
redirectUrl.Example
/accountCaptureResponse{ "internalRequestId": 44511321, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "1102398682906145682", "merchantSiteId": "228311", "version": "1.0", "sessionToken": "46bedbc9-4cfa-4e0e-8e83-4d63acec6df2", "redirectUrl": "https://auth.truelayer-sandbox.com/[email protected]&scope=accounts%20info%20verification&response_type=code&redirect_uri=https://jumpbox.safecharge.com/dmz/ApmConnectorNotify/ConnectorBankCapture/710/540&state=B31325A1B02E9ECE9216F79815027EBD&client_id=sandbox-nuvei12345-aceeb4&providers=uk-cs-mock&tracking_id=2610000000097219", "userTokenId": "99asdffw" }
- Redirect the customer to the
redirectUrl. - The customer grants one-time access to the bank account.
- Nuvei stores the data in a
userPaymentOptionId(UPO) identifier, and sends a Direct Merchant Notification (DMN) with the newly createduserPaymentOptionIdtourlDetails.notificationUrl, which Nuvei recommends including in the/accountCapturerequest.
Example
/accountCaptureDMN...'ppp_status=OK&ExErrCode=&ErrCode=&errApmCode=0&errApmDescription=&errScCode=0&errScDescription=&Reason=&ReasonCode=&PPP_TransactionID=&userid=140061791&merchant_unique_id=&customData=&productId=&first_name=&last_name=&email=¤cy=GBP&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=&address2=&country=&state=&city=&zip=&phone1=&phone2=&phone3=&client_ip=&nameOnCard=&cardNumber=&bin=&noCVV=&acquirerId=&expMonth=&expYear=&Token=&tokenId=&AuthCode=&AvsCode=&Cvv2Reply=&shippingCountry=&shippingState=&shippingCity=&shippingAddress=&shippingZip=&shippingFirstName=&shippingLastName=&shippingPhone=&shippingCell=&shippingMail=&total_discount=&total_handling=&total_shipping=&total_tax=&buyButtonProductBundleId=&merchant_site_id=228311&merchant_status=&action=&requestVersion=&message=&merchantLocale=&unknownParameters=&payment_method=apmgw_Verified_Faster_Payments&ID=&merchant_id=1102398682906145682&responseTimeStamp=2024-07-10.12%3A12%3A20&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=&externalEmail=&cardCompany=&eci=&user_token_id=martina1995586&userPaymentOptionId=2153284871&TransactionID=&totalAmount=&dynamicDescriptor=&feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&type=ACCOUNT_CAPTURE&clientRequestId=&relatedTransactionId=&apmPayerInfo=%5B%7B%22verifiable%22%3A%22true%22%2C%22currency%22%3A%22GBP%22%2C%22iban%22%3A%22GB08CLRB04066800003435%22%2C%22provider_id%22%3A%22mock%22%2C%22account_type%22%3A%22CURRENT%22%2C%22display_name%22%3A%22John+Doe%22%2C%22swift_bic%22%3A%22CPBKGB00%22%2C%22account_number%22%3A%2210000000%22%2C%22sort_code%22%3A%2201-21-31%22%7D%2C%7B%22verifiable%22%3A%22true%22%2C%22currency%22%3A%22GBP%22%2C%22iban%22%3A%22GB08CLRB04066800003435%22%2C%22provider_id%22%3A%22mock%22%2C%22account_type%22%3A%22CURRENT%22%2C%22display_name%22%3A%22Joint+Account%22%2C%22swift_bic%22%3A%22CPBKGB00%22%2C%22account_number%22%3A%2250000000%22%2C%22sort_code%22%3A%2201-21-31%22%7D%5D&responsechecksum=eb3501a6e6f06b8ee3cd6982839d378c&advanceResponseChecksum=ed714c39c7cb1f8c479cb30a30a7ec42,' - Send the
/payoutrequest.
Send the /payout Request
Send a /payout request with its mandatory parameters, including:
userPaymentOptionIduserDetailsclass containing:firstNamelastNameemail
In addition, to minimize transactions held by the RFI process, the following parameters are mandatory:
birthdateaddress(for example: 1 Hardwick Street)cityzip
Press here for an example.
After the transaction is processed, Nuvei sends a DMN that includes the result of the transaction to urlDetails.notificationUrl, which Nuvei recommends including in the /payout request.
Example Payout (Withdrawal) Request DMN
...'wdOrderId=5420321&wdRequestId=6803011&gwTrxId=2610000000000040085¬ificationType=WITHDRAW_REQUEST_NOTIFICATION&merchantSiteId=228311&merchantGwId=1102398682906145682&merchantLocale=en_US&wdRequestState=Closed&wdRequestStatus=Approved&wdOrderStatus=Settled&settlementType=WITHDRAWAL&gwErrCode=0&gwExtendedErrorCode=0&apmTrxId=2610000000060613&apmReferenceId=806AD87B3C11407BE5E903DE026DAF8A&apmErrorCode=0&firstName=John&lastName=Doe&userTokenId=martina1vspb011110000&zip=30328&city=Atlanta&country=DE&phone1=8434811326&email=john.doe%40gmail.com&address=Test+Address&amount=11.00&approvedAmount=11.00¤cy=EUR&userId=UID&userPMId=2153283341&paymentMethod=apmgw_Verified_SEPA_Payouts&version=1.0&pmDisplayName=GB08CLRB04066800003435&customField1=meccabingo.com&customField3=333&client_ip=127.0.0.1&wdOrderAmount=11.00&wdOrderCurrency=EUR&responseTimeStamp=2024-07-09.11%3A48%3A51&ExternalaccountID=GB08CLRB04066800003435&feeAmount=0.0&transactionAmount=11.0&merchantUniqueId=merchant_unique_id&upoRegistrationDate=20240709&acquirerBank=TrueLayer-PI&checksum=c8cfddc3092585686a411df6cf3b181b',
Example Payout (Withdrawal) Order DMN
...'wdOrderId=5420321&wdRequestId=6803011&gwTrxId=2610000000000040085¬ificationType=WITHDRAW_ORDER_NOTIFICATION&merchantSiteId=228311&merchantGwId=1102398682906145682&merchantLocale=en_US&wdRequestState=Closed&wdRequestStatus=Approved&wdOrderStatus=Settled&settlementType=WITHDRAWAL&gwErrCode=0&gwExtendedErrorCode=0&apmTrxId=2610000000060613&apmReferenceId=806AD87B3C11407BE5E903DE026DAF8A&apmErrorCode=0&firstName=John&lastName=Doe&userTokenId=martina1vspb011110000&zip=30328&city=Atlanta&country=DE&phone1=8434811326&email=john.doe%40gmail.com&address=Test+Address&amount=11.00&approvedAmount=11.00¤cy=EUR&userId=UID&userPMId=2153283341&paymentMethod=apmgw_Verified_SEPA_Payouts&version=1.0&pmDisplayName=GB08CLRB04066800003435&customField1=meccabingo.com&customField3=333&client_ip=127.0.0.1&wdOrderAmount=11.00&wdOrderCurrency=EUR&responseTimeStamp=2024-07-09.11%3A48%3A51&ExternalaccountID=GB08CLRB04066800003435&feeAmount=0.0&transactionAmount=11.0&merchantUniqueId=merchant_unique_id&upoRegistrationDate=20240709&apmPayerInfo=scheme_id%3Dinternal_transfer&acquirerBank=TrueLayer-PI&checksum=de98d5c468fa81cf2e415dbffc3d6a15',
User Experience
- The user is redirected and selects a country.

- The user selects a bank.

- In some cases, the user selects a bank branch.

- The user connects the bank account by granting one-time access.

- The user is redirected to the bank’s website, logs in, and approves permission. For example, Sparkasse:

- The payout request is submitted and processed.
Testing
Test credentials and testing scenarios can be provided by Nuvei if necessary. You can contact Nuvei support for assistance.