Skip to main content

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:

Online Bank Transfers
  1. The customer chooses online bank transfer as their payment method during checkout.
  2. 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.
  3. The customer confirms their payment and completes the authorization process.
  4. The customer is notified that the payment is complete.
  5. 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 MethodCapture Context allowedPaymentTypesCapture Context completeMandate.typeSeparate Capture?Payment ConfirmationCustomer Country (Country Code)Customer ISO Currency Code
iDEALIDEALCAPTURE or PREFER_AUTHNoImmediateNetherlands (NL)EUR
MultibancoMULTIBANCOCAPTURE or PREFER_AUTHNoImmediatePortugal (PT)EUR
Przelewy24PRZELEWY24CAPTURE or PREFER_AUTHNoImmediatePoland (PL)PLN
BancontactBANCONTACTCAPTURE or PREFER_AUTHNoImmediateBelgium (BE)EUR
MyBankMYBANKCAPTURE or PREFER_AUTHNoImmediateItaly (IT), Belgium (BE), Portugal (PT), Spain (ES)EUR
DragonPayDRAGONPAYCAPTURE or PREFER_AUTHNoImmediatePhilippines (PH)PHP
Tink Pay By BankTINKPAYBYBANKCAPTURE or PREFER_AUTHNoImmediateUnited 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.organizationId
  • organizationInformation.businessInformation.name
  • organizationInformation.businessInformation.websiteUrl
  • organizationInformation.businessInformation.merchantCategoryCode
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.bancontact.enabled: set to true to enable Bancontact on Unified Checkout.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to enable portfolio access to sensitive data.

Include these required fields in the PECS API request:

Required Fields for Enabling Bancontact Using the PECS API
  • organizationId
  • payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • payments.unifiedCheckout.subscriptionInformation.features.bancontact.enabled: set to true to enable Bancontact on Unified Checkout.
  • payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to 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:

  1. Add Bancontact to your integration by adding BANCONTACT to the allowedPaymentTypes field object within the capture context request.

  2. Set the completeMandate.type field value to CAPTURE or PREFER_AUTH.

    You can capture the funds immediately if you include the completeMandate.type field 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.type field to PREFER_AUTH. The funds are captured immediately for the online bank transfer.

  3. Include these required fields for online bank transfers in the capture context request:

    • orderInformation.billTo.country
    • orderInformation.billTo.firstName
    • orderInformation.billTo.lastName
  4. Include these optional fields for online bank transfers in the capture context request:

    • orderInformation.billTo.address1
    • orderInformation.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.organizationId
  • organizationInformation.businessInformation.name
  • organizationInformation.businessInformation.websiteUrl
  • organizationInformation.businessInformation.merchantCategoryCode
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.dragonPay.enabled: set to true to enable DragonPay on Unified Checkout.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to enable portfolio access to sensitive data.

Include these required fields in the PECS API request:

Required Fields for Enabling DragonPay Using the PECS API
  • organizationId
  • payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • payments.unifiedCheckout.subscriptionInformation.features.dragonPay.enabled: set to true to enable DragonPay on Unified Checkout.
  • payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to 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:

  1. Add DragonPay to your integration by adding DRAGONPAY to the allowedPaymentTypes field object within the capture context request.

  2. Set the completeMandate.type field value to CAPTURE or PREFER_AUTH.

    You can capture the funds immediately if you include the completeMandate.type field 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.type field to PREFER_AUTH. The funds are captured immediately for the online bank transfer.

  3. Include these required fields for online bank transfers in the capture context request:

    • orderInformation.billTo.country
    • orderInformation.billTo.firstName
    • orderInformation.billTo.lastName
  4. Include these optional fields for online bank transfers in the capture context request:

    • orderInformation.billTo.address1
    • orderInformation.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.organizationId
  • organizationInformation.businessInformation.name
  • organizationInformation.businessInformation.websiteUrl
  • organizationInformation.businessInformation.merchantCategoryCode
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.ideal.enabled: set to true to enable iDEAL on Unified Checkout.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to enable portfolio access to sensitive data.

Include these required fields in the PECS API request:

Required Fields for Enabling iDEAL Using the PECS API
  • organizationId
  • payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • payments.unifiedCheckout.subscriptionInformation.features.ideal.enabled: set to true to enable iDEAL on Unified Checkout.
  • payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to 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:

  1. Add iDEAL to your integration by adding IDEAL to the allowedPaymentTypes field object within the capture context request.

  2. Set the completeMandate.type field value to CAPTURE or PREFER_AUTH.

    You can capture the funds immediately if you include the completeMandate.type field 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.type field to PREFER_AUTH. The funds are captured immediately for the online bank transfer.

  3. Include these required fields for online bank transfers in the capture context request:

    • orderInformation.billTo.country
    • orderInformation.billTo.firstName
    • orderInformation.billTo.lastName
  4. Include these optional fields for online bank transfers in the capture context request:

    • orderInformation.billTo.address1
    • orderInformation.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.organizationId
  • organizationInformation.businessInformation.name
  • organizationInformation.businessInformation.websiteUrl
  • organizationInformation.businessInformation.merchantCategoryCode
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.multibanco.enabled: set to true to enable Multibanco on Unified Checkout.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to enable portfolio access to sensitive data.

Include these required fields in the PECS API request:

Required Fields for Enabling Multibanco Using the PECS API
  • organizationId
  • payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • payments.unifiedCheckout.subscriptionInformation.features.multibanco.enabled: set to true to enable Multibanco on Unified Checkout.
  • payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to 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:

  1. Add Multibanco to your integration by adding MULTIBANCO to the allowedPaymentTypes field object within the capture context request.

  2. Set the completeMandate.type field value to CAPTURE or PREFER_AUTH.

    You can capture the funds immediately if you include the completeMandate.type field 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.type field to PREFER_AUTH. The funds are captured immediately for the online bank transfer.

  3. Include these required fields for online bank transfers in the capture context request:

    • orderInformation.billTo.country
    • orderInformation.billTo.firstName
    • orderInformation.billTo.lastName
  4. Include these optional fields for online bank transfers in the capture context request:

    • orderInformation.billTo.address1
    • orderInformation.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.organizationId
  • organizationInformation.businessInformation.name
  • organizationInformation.businessInformation.websiteUrl
  • organizationInformation.businessInformation.merchantCategoryCode
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.myBank.enabled: set to true to enable MyBank on Unified Checkout.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to enable portfolio access to sensitive data.

Include these required fields in the PECS API request:

Required Fields for Enabling MyBank Using the PECS API
  • organizationId
  • payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • payments.unifiedCheckout.subscriptionInformation.features.myBank.enabled: set to true to enable MyBank on Unified Checkout.
  • payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to 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:

  1. Add MyBank to your integration by adding MYBANK to the allowedPaymentTypes field object within the capture context request.

  2. Set the completeMandate.type field value to CAPTURE or PREFER_AUTH.

    You can capture the funds immediately if you include the completeMandate.type field 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.type field to PREFER_AUTH. The funds are captured immediately for the online bank transfer.

  3. Include these required fields for online bank transfers in the capture context request:

    • orderInformation.billTo.country
    • orderInformation.billTo.firstName
    • orderInformation.billTo.lastName
  4. Include these optional fields for online bank transfers in the capture context request:

    • orderInformation.billTo.address1
    • orderInformation.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.organizationId
  • organizationInformation.businessInformation.name
  • organizationInformation.businessInformation.websiteUrl
  • organizationInformation.businessInformation.merchantCategoryCode
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.p24.enabled: set to true to enable Przelewy24 (P24) on Unified Checkout.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to 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
  • organizationId
  • payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • payments.unifiedCheckout.subscriptionInformation.features.p24.enabled: set to true to enable Przelewy24 (P24) on Unified Checkout.
  • payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to 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:

  1. Add Przelewy24 (P24) to your integration by adding PRZELEWY24 to the allowedPaymentTypes field object within the capture context request.

  2. Set the completeMandate.type field value to CAPTURE or PREFER_AUTH.

    You can capture the funds immediately if you include the completeMandate.type field 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.type field to PREFER_AUTH. The funds are captured immediately for the online bank transfer.

  3. Include these required fields for online bank transfers in the capture context request:

    • orderInformation.billTo.country
    • orderInformation.billTo.email
    • orderInformation.billTo.firstName
    • orderInformation.billTo.lastName
  4. 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.organizationId
  • organizationInformation.businessInformation.name
  • organizationInformation.businessInformation.websiteUrl
  • organizationInformation.businessInformation.merchantCategoryCode
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.tinkPayByBank.enabled: set to true to enable Tink Pay By Bank on Unified Checkout.
  • productInformation.selectedProducts.payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to 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
  • organizationId
  • payments.unifiedCheckout.subscriptionInformation.enabled: set to true.
  • payments.unifiedCheckout.subscriptionInformation.features.tinkPayByBank.enabled: set to true to enable Tink Pay By Bank on Unified Checkout.
  • payments.unifiedCheckout.subscriptionInformation.features.portfolioAccessofSensitiveData.enabled: set to true to 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:

  1. Add Tink Pay By Bank to your integration by adding TINKPAYBYBANK to the allowedPaymentTypes field object within the capture context request.

  2. Set the completeMandate.type field value to CAPTURE or PREFER_AUTH.

    You can capture the funds immediately if you include the completeMandate.type field 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.type field to PREFER_AUTH. The funds are captured immediately for the online bank transfer.

  3. Include this required field for online bank transfers in the capture context request:

    • orderInformation.billTo.country
  4. Include these optional fields for online bank transfers in the capture context request:

    • orderInformation.billTo.firstName
    • orderInformation.billTo.lastName
    • orderInformation.shipTo.address1
    • orderInformation.shipTo.address2
    • orderInformation.shipTo.country
    • orderInformation.shipTo.district
    • orderInformation.shipTo.firstName
    • orderInformation.shipTo.lastName
    • orderInformation.shipTo.locality
    • orderInformation.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.

Last published: September 29, 2026