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 DebitDirect 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.
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.
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.
This could be applied to, ride hailing, food delivery, in-game purchases or superapp with all services in one.
#
How it Works- Submit a direct debit request under the debit management tab on the merchant platform.
- Create contract for your customer
- Redirect customer to authorize the contract
- Start accepting payments with Binance Pay (no further redirection required).
#
Get StartedTo 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 ContractTo 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
- Create Contract API, or
- Create Order API
#
1. Create Contract APICall 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 PointPOST /binancepay/openapi/direct-debit/contract
#
Request ExampleFor 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 APICall 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 PointPOST /binancepay/openapi/v3/order
#
Request ExampleFor 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 APIThis 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 PointPOST /binancepay/openapi/pay/notify
#
Request ExampleFor full API specification, please go to API Reference.
{ "merchantRequestId": "abcd123245", "tradeMode": "DIRECT_DEBIT", "bizId":120000003, "estimatedAmount": 50, "currency":"USDT"}
#
Apply Payment APITo 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 PointPOST /binancepay/openapi/pay/apply
#
Request ExampleFor 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"}