Online Bank Transfers
Online bank transfers enable customers to complete their purchase by securely logging into their online banking environment. This method is secure, trusted, and widely used in many European countries.
This is how online bank transfers work:
- The customer chooses online bank transfer as their payment method during checkout.
- The customer chooses their bank from the list of available banks and is redirected to their bank's website or application, where they are prompted to enter their account credentials.
- The customer confirms their payment and completes the authorization process.
- The customer is notified that the payment is complete.
- The customer returns to your website for payment confirmation.
Unified Checkout supports these online bank transfer payment methods:
- Bancontact
- DragonPay
- iDEAL
- Multibanco
- MyBank
- Przelewy24 (P24)
- Tink Pay By Bank
This table describes the available online bank transfer payment methods:
| Payment Method | Capture Context allowedPaymentTypes | Capture Context completeMandate.type | Separate Capture? | Payment Confirmation | Customer Country (Country Code) | Customer ISO Currency Code |
|---|---|---|---|---|---|---|
| iDEAL | IDEAL | CAPTURE or PREFER_AUTH | No | Immediate | Netherlands (NL) | EUR |
| Multibanco | MULTIBANCO | CAPTURE or PREFER_AUTH | No | Immediate | Portugal (PT) | EUR |
| Przelewy24 | PRZELEWY24 | CAPTURE or PREFER_AUTH | No | Immediate | Poland (PL) | PLN |
| Bancontact | BANCONTACT | CAPTURE or PREFER_AUTH | No | Immediate | Belgium (BE) | EUR |
| MyBank | MYBANK | CAPTURE or PREFER_AUTH | No | Immediate | Italy (IT), Belgium (BE), Portugal (PT), Spain (ES) | EUR |
| DragonPay | DRAGONPAY | CAPTURE or PREFER_AUTH | No | Immediate | Philippines (PH) | PHP |
| Tink Pay By Bank | TINKPAYBYBANK | CAPTURE or PREFER_AUTH | No | Immediate | United Kingdom (GB) | GBP |
Bancontact
Bancontact enables customers to make secure online and in-store purchases directly from their bank accounts. Bancontact is a leading payment method in Belgium.
When the total amount of the order is outside the range of accepted transaction amounts, the Bancontact payment button is not displayed in Unified Checkout. These are the accepted transaction amounts:
- Minimum transaction amount: EUR 0.01
- Maximum transaction amount: Not applicable
Board Merchants with Bancontact
Before you can accept Bancontact payments, your account must be boarded for Bancontact. Portfolio users can board and enable their merchants for Bancontact using the API.
Send a POST request to the Boarding Registration API to board Bancontact:
POST /boarding/v1/registrations
POST /boarding/v1/registrations
If your organization is already boarded, you can add Bancontact as a product using the PECS API instead:
POST /products/v1/product-setups
POST /products/v1/product-setups
Include these required fields in the Boarding Registration API request:
Required Fields for Enabling Bancontact Using the BRS API
organizationInformation.organizationIdorganizationInformation.businessInformation.nameorganizationInformation.businessInformation.websiteUrlorganizationInformation.businessInformation.merchantCategoryCodeproductInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set totrue.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.bancontact.enabled: set totrueto enable Bancontact on Unified Checkout.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
Include these required fields in the PECS API request:
Required Fields for Enabling Bancontact Using the PECS API
organizationIdpayments.unifiedCheckout.subscriptionInformation.enabled: set totrue.payments.unifiedCheckout.subscriptionInformation.features.bancontact.enabled: set totrueto enable Bancontact on Unified Checkout.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
{ "organizationInformation": { "organizationId": "stuartwickedfasteatz01", "parentOrganizationId": "apitester00", "type": "MERCHANT", "configurable": false, "businessInformation": { "name": "StuartWickedFastEatz", "address": { "country": "US", "address1": "123456 SandMarket", "locality": "ORMOND BEACH", "administrativeArea": "FL", "postalCode": "32176" }, "websiteUrl": "https://www.StuartWickedEats.com", "phoneNumber": "6574567813", "businessContact": { "firstName": "Stuart", "lastName": "Stuart", "phoneNumber": "6574567813", "email": "[email protected]" }, "merchantCategoryCode": "5999" } }, "productInformation": { "selectedProducts": { "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "bancontact": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } } } }}{ "organizationId": "stuartwickedfasteatz01", "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "bancontact": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } }}Opt in to Bancontact on Unified Checkout
Follow these steps to opt in to Bancontact on Unified Checkout:
Add Bancontact to your integration by adding
BANCONTACTto theallowedPaymentTypesfield object within the capture context request.Set the
completeMandate.typefield value to CAPTURE orPREFER_AUTH.You can capture the funds immediately if you include the
completeMandate.typefield in the capture context request and set the value to CAPTURE.If you support more than one payment type and must perform an authorization where funds are collected at a later time, set the
completeMandate.typefield toPREFER_AUTH. The funds are captured immediately for the online bank transfer.Include these required fields for online bank transfers in the capture context request:
orderInformation.billTo.countryorderInformation.billTo.firstNameorderInformation.billTo.lastName
Include these optional fields for online bank transfers in the capture context request:
orderInformation.billTo.address1orderInformation.billTo.email
DragonPay
DragonPay provides Filipino customers and businesses with a secure payment channel that does not require customers to be banked or have a credit card. Customers can make purchases online and pay by bank transfer.
When the total amount of the order is outside the range of accepted transaction amounts, the DragonPay payment button is not displayed in Unified Checkout. These are the accepted transaction amounts:
- Minimum transaction amount: PHP 50.01
- Maximum transaction amount: Not applicable
Board Merchants with DragonPay
Before you can accept DragonPay payments, your account must be boarded for DragonPay. Portfolio users can board and enable their merchants for DragonPay using the API.
Send a POST request to the Boarding Registration API to board DragonPay:
POST /boarding/v1/registrations
POST /boarding/v1/registrations
If your organization is already boarded, you can add DragonPay as a product using the PECS API instead:
POST /products/v1/product-setups
POST /products/v1/product-setups
Include these required fields in the Boarding Registration API request:
Required Fields for Enabling DragonPay Using the BRS API
organizationInformation.organizationIdorganizationInformation.businessInformation.nameorganizationInformation.businessInformation.websiteUrlorganizationInformation.businessInformation.merchantCategoryCodeproductInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set totrue.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.dragonPay.enabled: set totrueto enable DragonPay on Unified Checkout.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
Include these required fields in the PECS API request:
Required Fields for Enabling DragonPay Using the PECS API
organizationIdpayments.unifiedCheckout.subscriptionInformation.enabled: set totrue.payments.unifiedCheckout.subscriptionInformation.features.dragonPay.enabled: set totrueto enable DragonPay on Unified Checkout.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
{ "organizationInformation": { "organizationId": "stuartwickedfasteatz01", "parentOrganizationId": "apitester00", "type": "MERCHANT", "configurable": false, "businessInformation": { "name": "StuartWickedFastEatz", "address": { "country": "US", "address1": "123456 SandMarket", "locality": "ORMOND BEACH", "administrativeArea": "FL", "postalCode": "32176" }, "websiteUrl": "https://www.StuartWickedEats.com", "phoneNumber": "6574567813", "businessContact": { "firstName": "Stuart", "lastName": "Stuart", "phoneNumber": "6574567813", "email": "[email protected]" }, "merchantCategoryCode": "5999" } }, "productInformation": { "selectedProducts": { "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "dragonPay": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } } } }}{ "organizationId": "stuartwickedfasteatz01", "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "dragonPay": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } }}Opt in to DragonPay on Unified Checkout
Follow these steps to opt in to DragonPay on Unified Checkout:
Add DragonPay to your integration by adding
DRAGONPAYto theallowedPaymentTypesfield object within the capture context request.Set the
completeMandate.typefield value to CAPTURE orPREFER_AUTH.You can capture the funds immediately if you include the
completeMandate.typefield in the capture context request and set the value to CAPTURE.If you accept more than one payment type and must perform an authorization where funds are collected at a later time, set the
completeMandate.typefield toPREFER_AUTH. The funds are captured immediately for the online bank transfer.Include these required fields for online bank transfers in the capture context request:
orderInformation.billTo.countryorderInformation.billTo.firstNameorderInformation.billTo.lastName
Include these optional fields for online bank transfers in the capture context request:
orderInformation.billTo.address1orderInformation.billTo.email
iDEAL
iDEAL enables customers to pay online through their mobile banking app or online bank account and provides you with a payment guarantee. iDEAL supports these banks:
- ABN AMRO
- ASN Bank
- bunq
- ING
- Knab
- Rabobank
- RegioBank
- Revolut
- SNS
- Svenska Handelsbanken
- Triodos Bank
- Van Lanschot
When the total amount of the order is outside the range of accepted transaction amounts, the iDEAL payment button is not displayed in Unified Checkout. These are the accepted transaction amounts:
- Minimum transaction amount: EUR 0.01
- Maximum transaction amount: subject to transaction approval from the customer's account
Board Merchants with iDEAL
Before you can accept iDEAL payments, your account must be boarded for iDEAL. Portfolio users can board and enable their merchants for iDEAL using the API.
Send a POST request to the Boarding Registration API to board iDEAL:
POST /boarding/v1/registrations
POST /boarding/v1/registrations
If your organization is already boarded, you can add iDEAL as a product using the PECS API instead:
POST /products/v1/product-setups
POST /products/v1/product-setups
Include these required fields in the Boarding Registration API request:
Required Fields for Enabling iDEAL Using the BRS API
organizationInformation.organizationIdorganizationInformation.businessInformation.nameorganizationInformation.businessInformation.websiteUrlorganizationInformation.businessInformation.merchantCategoryCodeproductInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set totrue.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.ideal.enabled: set totrueto enable iDEAL on Unified Checkout.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
Include these required fields in the PECS API request:
Required Fields for Enabling iDEAL Using the PECS API
organizationIdpayments.unifiedCheckout.subscriptionInformation.enabled: set totrue.payments.unifiedCheckout.subscriptionInformation.features.ideal.enabled: set totrueto enable iDEAL on Unified Checkout.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
{ "organizationInformation": { "organizationId": "stuartwickedfasteatz01", "parentOrganizationId": "apitester00", "type": "MERCHANT", "configurable": false, "businessInformation": { "name": "StuartWickedFastEatz", "address": { "country": "US", "address1": "123456 SandMarket", "locality": "ORMOND BEACH", "administrativeArea": "FL", "postalCode": "32176" }, "websiteUrl": "https://www.StuartWickedEats.com", "phoneNumber": "6574567813", "businessContact": { "firstName": "Stuart", "lastName": "Stuart", "phoneNumber": "6574567813", "email": "[email protected]" }, "merchantCategoryCode": "5999" } }, "productInformation": { "selectedProducts": { "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "ideal": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } } } }}{ "organizationId": "stuartwickedfasteatz01", "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "ideal": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } }}Opt in to iDEAL on Unified Checkout
Follow these steps to opt in to iDEAL on Unified Checkout:
Add iDEAL to your integration by adding
IDEALto theallowedPaymentTypesfield object within the capture context request.Set the
completeMandate.typefield value to CAPTURE orPREFER_AUTH.You can capture the funds immediately if you include the
completeMandate.typefield in the capture context request and set the value to CAPTURE.If you accept more than one payment type and must perform an authorization where funds are collected at a later time, set the
completeMandate.typefield toPREFER_AUTH. The funds are captured immediately for the online bank transfer.Include these required fields for online bank transfers in the capture context request:
orderInformation.billTo.countryorderInformation.billTo.firstNameorderInformation.billTo.lastName
Include these optional fields for online bank transfers in the capture context request:
orderInformation.billTo.address1orderInformation.billTo.email
Multibanco
Multibanco enables customers to pay for a range of goods and services by bank transfer, including e-commerce, licenses, and taxes post-purchase. Multibanco is supported by all banks in Portugal.
When the total amount of the order is outside the range of accepted transaction amounts, the Multibanco payment button is not displayed in Unified Checkout. These are the accepted transaction amounts:
- Minimum transaction amount: no minimum
- Maximum transaction amount: EUR 99,999
Board Merchants with Multibanco
Before you can accept Multibanco payments, your account must be boarded for Multibanco. Portfolio users can board and enable their merchants for Multibanco using the API.
Send a POST request to the Boarding Registration API to board Multibanco:
POST /boarding/v1/registrations
POST /boarding/v1/registrations
If your organization is already boarded, you can add Multibanco as a product using the PECS API instead:
POST /products/v1/product-setups
POST /products/v1/product-setups
Include these required fields in the Boarding Registration API request:
Required Fields for Enabling Multibanco Using the BRS API
organizationInformation.organizationIdorganizationInformation.businessInformation.nameorganizationInformation.businessInformation.websiteUrlorganizationInformation.businessInformation.merchantCategoryCodeproductInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set totrue.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.multibanco.enabled: set totrueto enable Multibanco on Unified Checkout.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
Include these required fields in the PECS API request:
Required Fields for Enabling Multibanco Using the PECS API
organizationIdpayments.unifiedCheckout.subscriptionInformation.enabled: set totrue.payments.unifiedCheckout.subscriptionInformation.features.multibanco.enabled: set totrueto enable Multibanco on Unified Checkout.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
{ "organizationInformation": { "organizationId": "stuartwickedfasteatz01", "parentOrganizationId": "apitester00", "type": "MERCHANT", "configurable": false, "businessInformation": { "name": "StuartWickedFastEatz", "address": { "country": "US", "address1": "123456 SandMarket", "locality": "ORMOND BEACH", "administrativeArea": "FL", "postalCode": "32176" }, "websiteUrl": "https://www.StuartWickedEats.com", "phoneNumber": "6574567813", "businessContact": { "firstName": "Stuart", "lastName": "Stuart", "phoneNumber": "6574567813", "email": "[email protected]" }, "merchantCategoryCode": "5999" } }, "productInformation": { "selectedProducts": { "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "multibanco": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } } } }}{ "organizationId": "stuartwickedfasteatz01", "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "multibanco": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } }}Opt in to Multibanco on Unified Checkout
Follow these steps to opt in to Multibanco on Unified Checkout:
Add Multibanco to your integration by adding
MULTIBANCOto theallowedPaymentTypesfield object within the capture context request.Set the
completeMandate.typefield value to CAPTURE orPREFER_AUTH.You can capture the funds immediately if you include the
completeMandate.typefield in the capture context request and set the value to CAPTURE.If you accept more than one payment type and must perform an authorization where funds are collected at a later time, set the
completeMandate.typefield toPREFER_AUTH. The funds are captured immediately for the online bank transfer.Include these required fields for online bank transfers in the capture context request:
orderInformation.billTo.countryorderInformation.billTo.firstNameorderInformation.billTo.lastName
Include these optional fields for online bank transfers in the capture context request:
orderInformation.billTo.address1orderInformation.billTo.email
MyBank
MyBank enables customers to pay for their online purchases in an easy and safe way using real-time bank transfers. MyBank customers complete payments by selecting their bank and logging in with their online banking credentials.
When the total amount of the order is outside the range of accepted transaction amounts, the MyBank payment button is not displayed in Unified Checkout. These are the accepted transaction amounts:
- Minimum transaction amount: EUR 0.01
- Maximum transaction amount: EUR 999,999,999.99
Board Merchants with MyBank
Before you can accept MyBank payments, your account must be boarded for MyBank. Portfolio users can board and enable their merchants for MyBank using the API.
Send a POST request to the Boarding Registration API to board MyBank:
POST /boarding/v1/registrations
POST /boarding/v1/registrations
If your organization is already boarded, you can add MyBank as a product using the PECS API instead:
POST /products/v1/product-setups
POST /products/v1/product-setups
Include these required fields in the Boarding Registration API request:
Required Fields for Enabling MyBank Using the BRS API
organizationInformation.organizationIdorganizationInformation.businessInformation.nameorganizationInformation.businessInformation.websiteUrlorganizationInformation.businessInformation.merchantCategoryCodeproductInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set totrue.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.myBank.enabled: set totrueto enable MyBank on Unified Checkout.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
Include these required fields in the PECS API request:
Required Fields for Enabling MyBank Using the PECS API
organizationIdpayments.unifiedCheckout.subscriptionInformation.enabled: set totrue.payments.unifiedCheckout.subscriptionInformation.features.myBank.enabled: set totrueto enable MyBank on Unified Checkout.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
{ "organizationInformation": { "organizationId": "stuartwickedfasteatz01", "parentOrganizationId": "apitester00", "type": "MERCHANT", "configurable": false, "businessInformation": { "name": "StuartWickedFastEatz", "address": { "country": "US", "address1": "123456 SandMarket", "locality": "ORMOND BEACH", "administrativeArea": "FL", "postalCode": "32176" }, "websiteUrl": "https://www.StuartWickedEats.com", "phoneNumber": "6574567813", "businessContact": { "firstName": "Stuart", "lastName": "Stuart", "phoneNumber": "6574567813", "email": "[email protected]" }, "merchantCategoryCode": "5999" } }, "productInformation": { "selectedProducts": { "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "myBank": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } } } }}{ "organizationId": "stuartwickedfasteatz01", "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "myBank": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } }}Opt in to MyBank on Unified Checkout
Follow these steps to opt in to MyBank on Unified Checkout:
Add MyBank to your integration by adding
MYBANKto theallowedPaymentTypesfield object within the capture context request.Set the
completeMandate.typefield value to CAPTURE orPREFER_AUTH.You can capture the funds immediately if you include the
completeMandate.typefield in the capture context request and set the value to CAPTURE.If you accept more than one payment type and must perform an authorization where funds are collected at a later time, set the
completeMandate.typefield toPREFER_AUTH. The funds are captured immediately for the online bank transfer.Include these required fields for online bank transfers in the capture context request:
orderInformation.billTo.countryorderInformation.billTo.firstNameorderInformation.billTo.lastName
Include these optional fields for online bank transfers in the capture context request:
orderInformation.billTo.address1orderInformation.billTo.email
Przelewy24 (P24)
Przelewy24, or P24, is a Poland-based real-time online bank transfer payment method. P24 is one of the most popular payment methods in Poland, covering all major consumer banks.
When the total amount of the order is outside the range of accepted transaction amounts, the P24 payment button is not displayed in Unified Checkout. These are the accepted transaction amounts:
- Minimum transaction amount: PLN 0.01, EUR 0.01
- Maximum transaction amount: PLN 55,000.00, EUR 12,500.00
Board Merchants with Przelewy24 (P24)
Before you can accept Przelewy24 (P24) payments, your account must be boarded for Przelewy24 (P24). Portfolio users can board and enable their merchants for Przelewy24 (P24) using the API.
Send a POST request to the Boarding Registration API to board Przelewy24 (P24):
POST /boarding/v1/registrations
POST /boarding/v1/registrations
If your organization is already boarded, you can add Przelewy24 (P24) as a product using the PECS API instead:
POST /products/v1/product-setups
POST /products/v1/product-setups
Include these required fields in the Boarding Registration API request:
Required Fields for Enabling Przelewy24 (P24) Using the BRS API
organizationInformation.organizationIdorganizationInformation.businessInformation.nameorganizationInformation.businessInformation.websiteUrlorganizationInformation.businessInformation.merchantCategoryCodeproductInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set totrue.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.p24.enabled: set totrueto enable Przelewy24 (P24) on Unified Checkout.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
Include these required fields in the PECS API request:
Required Fields for Enabling Przelewy24 (P24) Using the PECS API
organizationIdpayments.unifiedCheckout.subscriptionInformation.enabled: set totrue.payments.unifiedCheckout.subscriptionInformation.features.p24.enabled: set totrueto enable Przelewy24 (P24) on Unified Checkout.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
{ "organizationInformation": { "organizationId": "stuartwickedfasteatz01", "parentOrganizationId": "apitester00", "type": "MERCHANT", "configurable": false, "businessInformation": { "name": "StuartWickedFastEatz", "address": { "country": "US", "address1": "123456 SandMarket", "locality": "ORMOND BEACH", "administrativeArea": "FL", "postalCode": "32176" }, "websiteUrl": "https://www.StuartWickedEats.com", "phoneNumber": "6574567813", "businessContact": { "firstName": "Stuart", "lastName": "Stuart", "phoneNumber": "6574567813", "email": "[email protected]" }, "merchantCategoryCode": "5999" } }, "productInformation": { "selectedProducts": { "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "p24": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } } } }}{ "organizationId": "stuartwickedfasteatz01", "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "p24": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } }}Opt in to Przelewy24 (P24) on Unified Checkout
Follow these steps to opt in to Przelewy24 (P24) on Unified Checkout:
Add Przelewy24 (P24) to your integration by adding
PRZELEWY24to theallowedPaymentTypesfield object within the capture context request.Set the
completeMandate.typefield value to CAPTURE orPREFER_AUTH.You can capture the funds immediately if you include the
completeMandate.typefield in the capture context request and set the value to CAPTURE.If you support more than one payment type and must perform an authorization where funds are collected at a later time, set the
completeMandate.typefield toPREFER_AUTH. The funds are captured immediately for the online bank transfer.Include these required fields for online bank transfers in the capture context request:
orderInformation.billTo.countryorderInformation.billTo.emailorderInformation.billTo.firstNameorderInformation.billTo.lastName
Include this optional field for online bank transfers in the capture context request:
orderInformation.billTo.address1
Tink Pay By Bank
Tink is an alternative payment method that uses the pay by bank payment method. Tink Pay By Bank enables customers to make payments directly from their bank account to the seller's account and bypasses traditional payment methods such as credit cards.
When the total amount of the order is outside the range of accepted transaction amounts, Tink Pay By Bank is not displayed in Unified Checkout. These are the accepted transaction amounts:
- Minimum transaction amount: not applicable
- Maximum transaction amount: GBP 8,500
Board Merchants with Tink Pay By Bank
Before you can accept Tink Pay By Bank payments, your account must be boarded for Tink Pay By Bank. Portfolio users can board and enable their merchants for Tink Pay By Bank using the API.
Send a POST request to the Boarding Registration API to board Tink Pay By Bank:
POST /boarding/v1/registrations
POST /boarding/v1/registrations
If your organization is already boarded, you can add Tink Pay By Bank as a product using the PECS API instead:
POST /products/v1/product-setups
POST /products/v1/product-setups
Include these required fields in the Boarding Registration API request:
Required Fields for Enabling Tink Pay By Bank Using the BRS API
organizationInformation.organizationIdorganizationInformation.businessInformation.nameorganizationInformation.businessInformation.websiteUrlorganizationInformation.businessInformation.merchantCategoryCodeproductInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set totrue.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.tinkPayByBank.enabled: set totrueto enable Tink Pay By Bank on Unified Checkout.productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
Include these required fields in the PECS API request:
Required Fields for Enabling Tink Pay By Bank Using the PECS API
organizationIdpayments.unifiedCheckout.subscriptionInformation.enabled: set totrue.payments.unifiedCheckout.subscriptionInformation.features.tinkPayByBank.enabled: set totrueto enable Tink Pay By Bank on Unified Checkout.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set totrueto enable portfolio access to sensitive data.
{ "organizationInformation": { "organizationId": "stuartwickedfasteatz01", "parentOrganizationId": "apitester00", "type": "MERCHANT", "configurable": false, "businessInformation": { "name": "StuartWickedFastEatz", "address": { "country": "US", "address1": "123456 SandMarket", "locality": "ORMOND BEACH", "administrativeArea": "FL", "postalCode": "32176" }, "websiteUrl": "https://www.StuartWickedEats.com", "phoneNumber": "6574567813", "businessContact": { "firstName": "Stuart", "lastName": "Stuart", "phoneNumber": "6574567813", "email": "[email protected]" }, "merchantCategoryCode": "5999" } }, "productInformation": { "selectedProducts": { "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "tinkPayByBank": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } } } }}{ "organizationId": "stuartwickedfasteatz01", "payments": { "unifiedCheckout": { "subscriptionInformation": { "enabled": true, "features": { "tinkPayByBank": { "enabled": true }, "portfolioAccessofSensitiveData": { "enabled": true } } } } }}Opt in to Tink Pay By Bank on Unified Checkout
Follow these steps to opt in to Tink Pay By Bank on Unified Checkout:
Add Tink Pay By Bank to your integration by adding
TINKPAYBYBANKto theallowedPaymentTypesfield object within the capture context request.Set the
completeMandate.typefield value to CAPTURE orPREFER_AUTH.You can capture the funds immediately if you include the
completeMandate.typefield in the capture context request and set the value to CAPTURE.If you accept more than one payment type and must perform an authorization where funds are collected at a later time, set the
completeMandate.typefield toPREFER_AUTH. The funds are captured immediately for the online bank transfer.Include this required field for online bank transfers in the capture context request:
orderInformation.billTo.country
Include these optional fields for online bank transfers in the capture context request:
orderInformation.billTo.firstNameorderInformation.billTo.lastNameorderInformation.shipTo.address1orderInformation.shipTo.address2orderInformation.shipTo.countryorderInformation.shipTo.districtorderInformation.shipTo.firstNameorderInformation.shipTo.lastNameorderInformation.shipTo.localityorderInformation.shipTo.postalCode
Verify Status for Online Bank Transfers
When the status of your payment request is PENDING, you can verify the status by using the URL method and the payload that is included in the transactionStatus.url field in the webhook response:
{ "payload": { "transactionResult": { "id": "7557753337236357904806", "rootId": "7557753337236357904806", "reconciliationId": "XFZ40EJPGL5K", "submitTimeUTC": "2025-08-21T11:22:13Z", "merchantId": "uc_apm_tester004" }, "transactionStatus": { "url": "/tss/v2/transactions/7557753337236357904806", "method": "GET" } }}You can also send a request to this endpoint to verify the status:
GET /tss/v2/transactions/{id}
GET /tss/v2/transactions/{id}
The {id} is the ID that is returned in the webhook response. For more information, see Webhooks.
Verify Status for Tink Pay By Bank
When the status of your payment request is PENDING, you can verify the status by using the URL method and the payload that is included in the transactionStatus.url field in the webhook response:
{ "payload": { "transactionResult": { "submitTimeUtc": "2025-07-22T08:16:24Z", "reconciliationId": "KPUJHD4X2G31", "processorInformation": { "responseCode": "00004" }, "id": "7531173918516064204807", "message": "Request was processed successfully.", "status": "SETTLED" }, "transactionStatus": { "url": "/pts/v2/refresh-payment-status/7531173918516064204807", "method": "POST", "payload": { "clientReferenceInformation": { "applicationName": "unifiedCheckout" }, "processingInformation": {}, "paymentInformation": { "paymentType": { "method": { "name": "tinkPayByBank" }, "name": "bankTransfer" } } } } }}You can also send a request to this endpoint to verify the status:
POST /pts/v2/refresh-payment-status/{id}
POST /pts/v2/refresh-payment-status/{id}
The {id} is the ID that is returned in the webhook response. For more information, see Webhooks.
Handle Responses
When Unified Checkout automatically processes a payment with autoProcessing set to true, or you have set autoProcessing to false and are using checkout.Complete(), you must handle both successful responses and various errors. After the payment is complete, the completeResponse field object contains information about the transaction outcome.
When a payment is processed successfully, you must parse the response to confirm the payment status, update your order records, and trigger any post-payment workflows. Post-payment workflows include sending confirmation emails or updating inventory. See Integration Examples.
Your error handling should account for specific cases such as COMPLETE_TRANSACTION_CANCELED and COMPLETE_TRANSACTION_FAILED. COMPLETE_TRANSACTION_CANCELED occurs when the user cancels the transaction, and COMPLETE_TRANSACTION_FAILED indicates that the consumer's transaction failed.
For PPRO-enabled online bank transfers, only cancellation errors are returned. Tink Pay By Bank returns both failure and cancellation errors. For information about possible errors that can occur when calling the complete API, see Error Handling.
Related Payment Methods
Thanks for your feedback!
Last published: September 29, 2026