UseePay Open API
UseePay PortalMechant Dashboard
Product Docs
Product Docs
  • V2.0
  • V1.0
UseePay PortalMechant Dashboard
Product Docs
Product Docs
  • V2.0
  • V1.0
  1. Supported Payment Methods
  • Integration
    • Welcome to the UseePay Demo Page
    • Payment Product Overview
      • Hosted Checkout Integration Guide
      • Embedded Checkout Integration Guide
      • Express Checkout Integration Guide
      • Server to Server Integration Guide
    • Supported Payment Methods
      • Affirm
      • AfterPay_ClearPay
      • Bank Transfer
      • Bancontact
      • Blik
      • Boost
      • Card
      • Cashapp
      • Dana
      • GCash
      • iDEAL
      • Kakao Pay
      • Klarna
      • Konbini
      • Korean Card
      • Maya
      • MB_WAY
      • Mobilepay
      • Naver pay
      • P24
      • Payco
      • Pay with Link
      • Pix
      • Pse
      • Rabbit LINE Pay
      • Samsung Pay
      • Servipag
      • SPEI
      • Tmoney
      • Toss Pay
      • Trustly
      • TrueMoney
      • Webpay
      • RSA-Encrypted Card Payments
      • ApplePay
        • Apple Pay
        • Apple Pay Web Integration (API Integration)
      • GooglePay
        • Google Pay
        • Google Pay Web Integration (API Integration)
      • common
        • _shared-client-os-type
      • alipay
        • Alipay CN
        • Alipay HK
        • Alipay+
    • Subscription
      • Get started with Subscription
    • Online payment
      • Get started with online payments
    • Payment Capabilities
      • Currency Amount Unit Specification
      • Adaptive Price
    • Checkout session
      • Checkout Session Guide
  • Developer
    • Introduction
    • Authentication
    • Integrate Local Payment Methods
    • Error code
      • last_payment_error documentation
      • Errors
    • Best Integration
      • Quickly create a paymentIntent for a subscription
      • Auto-Charge Subscription Guide
    • Payment Intents
      • Payment Intent Overview
      • Quickly create a paymentIntent
      • Create a PaymentIntent
      • Retrieve a PaymentIntent
      • Update a PaymentIntent
      • Confirm a PaymentIntent
      • Cancel a PaymentIntent
      • Capture a PaymentIntent
      • List all payment intents
    • Customers
      • Create a customer
      • Retrieves a customer
      • Update a customer
      • List all customers
    • Subscriptions
      • Create a subscription
      • Retrieves a subscription
      • Update a subscription
      • List all subscriptions
      • Cancel a subscription
    • Invoices
      • Create a invoice
      • Retrieves a invoice
      • List all invoices
      • Pay a invoice
    • Payment Methods
      • Retieve Payment Method Session
    • Mandates
      • Create a mandate
      • Retrieves a mandate
      • List all mandates
    • Refunds
      • Create a refund
      • Retrieves a refund
      • List all refunds
    • Webhooks
      • Webhook Integration Guide(version 2026-04)
      • Integration details
        • Supported Webhook Events
        • Webhook Activation/Signature Verification Steps
        • Webhook events for example
        • Dispute Webhook Integration Document
        • Difference between version 2026-04 and 2024-10-10
      • archive
        • 2024-10-10
          • Webhook Integration Guide(version 2024-10-10)
      • Create a webhook
      • Retrieves a webhook
      • Update a webhook
      • List all webhooks
    • Embedded Checkout
      • UseePay Elements Appearance
      • Payment Element
      • Payment Element (Deferred Intent)
      • Express Checkout Element
      • Checkout Session Element
    • Payment Method Configuration
      • Retieve Payment Method Configuration
    • Checkout Session
      • Create Checkout Session
      • Retrieve Checkout Session
    • Trackers
      • upload trackers
      • Retrieve a tracker
    • Capture
      • Capture Overview
      • List captures by intent id
    • Payement Attempt
      • ECI Indicator (3-D Secure) Reference
      • Retrieve PaymentAttempt
    • Schemas
      • CheckoutSessionCreateRequest
      • PaymentMethod
      • CreatePaymentIntentRequest
      • LineItem
      • Customer
      • Address
      • ProductData
      • Shipping
      • SubscriptionData
      • Error
      • DiscountPeriodConfig
      • DeviceData
      • CheckoutSessionResponse
      • ErrorResponse
      • Order
      • Product
      • PaymentMethodOptions
      • RiskControlOptions
      • Mandate
      • PaymentIntent
      • Billing
      • Card
      • AliPay
      • Wallet
      • Klarna
      • WechatPay
      • Refund
      • Subscription
      • Recurring
      • PriceData
      • SubscriptionItem
      • Invoice
      • NextAction
      • Webhook
      • CollectableOptions
      • PaymentLink
      • last_payment_error
      • discount_period_config
      • Capture
      • three_ds
      • PaymentAttempt
      • konbini
      • client_pm_options
      • pse
      • trial_period_config
      • Seller
      • RabbitLinePay
  • Message
    • Messaging Element
  • About Testing
    • Test Cards
    • ApplePay&GooglePay
  • Reconciliation
    • SFTP Access for Reconciliation
  • FAQ
    • Unable to receive Webhook notifications
    • FAQ
    • Introduction
  1. Supported Payment Methods

Bancontact

Bancontact is a local payment method that allows customers in Belgium to pay using a Bancontact card or the Bancontact mobile app.

Overview#

PropertyDetails
Markets (consumer)BE
Consumer currenciesEUR
Authentication methodsREDIRECT
Authentication timeoutSubject to channel rules
Minimum payment amountSubject to channel rules
Maximum payment amountSubject to channel rules
Payment instrumentBANK_REDIRECT / DEBIT_CARD
One-time paymentYes
Recurring paymentsNo
Separate capturesNo
RefundFull · Partial
Refund validitySubject to channel rules
DisputesNo standard chargeback flow
Supported productsCheckout Session · Hosted Checkout · Embedded Checkout · API

Payment Flow#

1.
Customer selects Bancontact at checkout.
2.
UseePay creates and confirms the PaymentIntent.
3.
UseePay returns a redirect URL in next_action.redirect.url.
4.
The merchant redirects the customer to the Bancontact payment page.
5.
The customer completes the payment using a Bancontact card or the Bancontact mobile app.
6.
After authorization, the customer is returned to the URL specified in return_url.
7.
UseePay updates the PaymentIntent and sends a webhook notification containing the final payment status.

Notes#

Bancontact is primarily available to customers in Belgium.
The payment currency is EUR.
Bancontact is a redirect-based payment method. A valid return_url must be provided when creating or confirming the PaymentIntent.
Bancontact only supports automatic capture. Set auto_capture to true or omit it to use the default value.
The browser redirect does not represent the final payment result. Always retrieve the PaymentIntent or process the webhook notification before fulfilling the order.
The payment_method_data.bancontact object currently does not require any Bancontact-specific business parameters. The optional extra_params object is reserved for extended channel parameters and should only be provided when instructed by UseePay.

Integration Guide#

Create and Confirm a PaymentIntent#

UseePay recommends creating and confirming the PaymentIntent in a single request by setting confirm to true.
Set:
currency to EUR
payment_method_data.type to bancontact
billing.address.country to BE
confirm to true
return_url to the merchant result page

Request Example#

{
  "merchant_order_id": "order_bancontact_001",
  "amount": 1000,
  "currency": "EUR",
  "confirm": true,
  "auto_capture": true,
  "return_url": "https://merchant.example.com/payment/return",
  "payment_method_data": {
    "type": "bancontact",
    "billing": {
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@example.com",
      "address": {
        "country": "BE"
      }
    },
    "bancontact": {}
  }
}

Request Example (Java SDK)#


Response Example#

When customer authorization is required, the PaymentIntent returns requires_customer_action.
{
  "id": "1012611020000000001",
  "code": "0000",
  "message": "Approved or completed successfully",
  "amount": 1000,
  "currency": "EUR",
  "status": "requires_customer_action",
  "confirm": true,
  "orderType": "sale",
  "mode": "payment",
  "sale": true,
  "merchant_no": "500000000000000",
  "app_id": "merchant.example.com",
  "merchant_order_id": "order_bancontact_001",
  "refunded_amount": 0,
  "next_action": {
    "type": "redirect",
    "redirect": {
      "method": "GET",
      "url": "https://payment.example.com/bancontact/authorize",
      "content_type": null,
      "app_url": null,
      "package_name": null
    }
  },
  "return_url": "https://merchant.example.com/payment/return",
  "auto_capture": true,
  "payment_attempt": {
    "payment_method_details": {
      "type": "bancontact"
    }
  }
}
When status is requires_customer_action, redirect the customer to:
next_action.redirect.url
Do not mark the merchant order as paid at this stage.

Handling the Payment Result#

After the customer completes the Bancontact authorization, the browser is redirected to the configured return_url.
The merchant must then:
1.
Retrieve the PaymentIntent from the server, or wait for the UseePay webhook.
2.
Check the final PaymentIntent status.
3.
Fulfill the order only when the status is succeeded.
Possible statuses include:
StatusDescriptionMerchant Action
requires_customer_actionCustomer authorization is still requiredRedirect the customer
pendingThe payment is pending the final result from the payment providerWait for the webhook notification
succeededPayment completed successfullyFulfill the order
failedPayment failedDisplay the failure and allow retry
canceledPayment was canceledClose or recreate the payment
Always use the PaymentIntent status or webhook event as the source of truth. Do not rely only on the browser redirect result.
Previous
Bank Transfer
Next
Blik
Built with