Skip to main content

Direct Debit

Binance Pay Direct Debit Payment Model helps you to process payment efficiently. With customers' one-time authorization, you can automatically debit funds from their accounts automatically. Effectively reduce repetitive user payment transactions and eliminate inconvenience of payment in certain scenarios.

Set up your business as a subscription model, or pre-authorized debit model with Binance Pay APIs today.

Types of Direct Debit#

  1. Direct Debit The direct debit solution is suitable for businesses with a subscription model or monthly payment such as utility. This could be a monthly subscription, quarterly or even yearly.

    Perform deduction of the amount based on the frequency set by you, with just a one-time authorization from the customer.

Direct Debit Type 1
  1. Pre-authorized Debit The pre-authorized solution is suitable for businesses that offer multiple services or when customers will have regular purchases per day.

    Instead of being redirected to the payment provider end each time, the customer only needs to perform a one-time authorization.

Direct Debit Type 2

For future purchases with Binance Pay, customers will remain on your app/website as they have previously authorized you to deduct money from their account.

Direct Debit Type 2 Extra

This could be applied to, ride hailing, food delivery, in-game purchases or superapp with all services in one.

How it Works#

  1. Submit a direct debit request under the debit management tab on the merchant platform.
  2. Create contract for your customer
  3. Redirect customer to authorize the contract
  4. Start accepting payments with Binance Pay (no further redirection required).

Get Started#

To get started, login to your Binance Merchant Account, under debit management tav, submit a request. Once you receive the approval, you can generate the API key and secret to begin integration. Please note that the direct debit solution is only available for enterprise account.

Create Contract#

To begin, create a direct debit contract with your user to authorize you access to debit their account. To create the contract, you can either do it via

  1. Create Contract API, or
  2. Create Order API

1. Create Contract API#

Call the Create Contract API to create a direct debit contract with your customer for them to authorize the future deduction. For subscription models, set the periodic as true.

For pre-authorization models, set periodic as false.

End Point#
POST /binancepay/openapi/direct-debit/contract
Request Example#

For full API specification, please go to API Reference.

{    "merchantContractCode": "c0ecfb465e454560a5d8e307bbc407c5",    "serviceName": "Tra Direct Debit",    "scenarioCode":"Membership",    "currency": "USDT",    "singleUpperLimit": "30",    "periodic": true,    "cycleDebitFixed":true,    "cycleType": "DAY",    "cycleValue": 8,    "firstDeductTime": 1677628800000,    "merchantAccountNo": "sss@gmail.com"}

2. Create Order API#

Call the Create Order API to set the contract and perform the first payment deduction. Input the directDebitContract parameter and set the periodic as true for the recurring direct debit model.

Set the periodic as false for the pre-authorization model.

End Point#
POST /binancepay/openapi/v3/order
Request Example#

For full API specification, please go to Order API Reference and Create Contract API Reference.

{   "env": {      "terminalType":"APP"   },   "merchantTradeNo":"100060315",   "orderAmount": 50,   "currency":"USDT",   "goods": {      "goodsType":"01",      "goodsCategory":"0000",      "referenceGoodsId":"abc001",      "goodsName":"Starter Plan"   },   "directDebitContract":{        "merchantContractCode": "10000007",        "serviceName": "Monthly Subscription",        "scenarioCode":"Membership",        "currency": "USDT",        "singleUpperLimit": "50",        "periodic": true        "cycleDebitFixed":true,        "cycleType": "MONTH",        "cycleValue": 1,        "firstDeductTime": 1677628800000   }}

Payment Notification API#

This is applicable for subscription models only. If you are using a pre-authorization model please skip to Apply Payment API.

For the direct debit subscription model, please ensure that 2-5 days prior each payment cycle, call the Payment Notification API to inform users of deduction.

End Point#
POST /binancepay/openapi/pay/notify
Request Example#

For full API specification, please go to API Reference.

{    "merchantRequestId": "abcd123245",    "tradeMode": "DIRECT_DEBIT",    "bizId":120000003,    "estimatedAmount": 50,    "currency":"USDT"}

Apply Payment API#

To perform the deduction, you will need to call the Apply Payment API.

  • For the direct debit subscription model, please ensure that you have called the Payment Notification Model before you tried to deduct the payment.
  • For the pre-authorization model, each day you can deduct up to 5x from the user Binance account per contract.
End Point#
POST /binancepay/openapi/pay/apply
Request Example#

For full API specification, please go to API Reference.

{    "merchantRequestId": "request12334abcd",    "tradeMode": "DIRECT_DEBIT",    "bizId":120000003,    "productName": "Monthly Subscription",    "amount": 50,    "currency":"USDT",    "webhookUrl": "https://abc.com"}