Direct Debit Binding

The Direct Debit Binding feature (registration-account-binding API) is the first process of the Direct Debit Journey of a user.

Binding in this context means registering the user's Bank Account in Ayoconnect's Direct Debit system so that payment can be made using that bank account.

It is a one-time process, and after a successful binding, the user can make payments as many times as they want as long as the card is not unbinded. If a bank account has unbinded, the user has to rebind it again.

Through this feature, you can:

  • Bind a user's bank account to your product/service for recurring payments
  • Define the bank name (BCA, BRI, Mandiri, etc) that the merchant would like to request user to bind

Bank Account Binding is done through Ayoconnect's webview. There are 2 steps a user would need to go through to ensure a successful binding process:

  • User submits his bank account details
  • User authenticates themselves

Once a bank account has been successfully binded, the user can be redirected to a merchant-specific URL, which must be provided during the merchant onboarding process. After that, new redirection URLs can be provided as parameters in the API but they will be applied only to that specific request.

Upon successful binding, Partners will receive accountToken via account binding callback. This token will not have any expiration from Ayoconnect side, but do note that banks will have their own Binding expiration time. See the table below


Binding Status

Possible latestBindingStatus statuses are:

  1. IN_PROGRESS
    1. This indicates that the binding flow has been initiated but user has not submitted bank account details successfully, and thus has not reached the verification step
  2. VERIFICATION_PENDING
    1. This indicates that the user has submitted his bank account details successfully, and is now at the authentication step (i.e. OTP verification step)
  3. SUCCESS
    1. This indicates definitive successful binding from the bank
  4. FAIL
    1. This status indicates definite binding failure status from the bank. You should initiate another binding attempt if you would like to try again
  5. UNBINDED
    1. This status indicates that a previously binded bank account has been unbinded. This status will only be returned as part of the unbinding flow response

AccountToken Expiration from banks

Bank Name

Account Token Expiration

BCA

TBC from BCA side

BRI

Following Card Expiration Date

BNI

Following Card Expiration Date

Mandiri

3 Months if there is no payment activity in that 3 month timeframe. If payment activity is done, Mandiri will renew and extend the binding expiration for another 3 months.

If the debit card has past the expiration date, then the payment will not work and will return error response by the bank

Danamon

1 Year if there is no payment activities in that timeframe. If payment activity is done, Danamon will renew and extend the binding expiration for another 1 Year

Danamon binding does not have any dependencies on user card expiration date

If the user tries to bind an expired card, it will fail during binding process and will not be able to do payment. If user binds a valid card, and then in the future the card expires, payment attempts will fail. The payment charge API will return error "Card Expired"

User will need to re-bind with new card in order for partner to attempt another successful payment.


Rebinding behavior for each banks

If the user have successfully bind a valid card before on a merchant platform, and tries to bind the same card again on the same merchant platform, most banks will reject the binding request and return error message.

In this case, there are 2 options that the merchant can consider:

  • Merchant need to unbind the card first before attempting to do another binding using the same card.
  • Merchant can simply use the existing token to do payment without the need to do any binding.

Bank Name

Re-Binding Behavior

BCA

  • 1 BCA account can be binded multiples times across multiple user IDs per merchant, however 1 user ID can only bind to 1 BCA account per merchant
  • If BCA account 12345 has been binded to user ID A on merchant platform XYZ, it can be binded to user ID B as well on merchant platform XYZ
  • However, user ID A will not be able to bind another BCA account on merchant platform XYZ as it already has an account (12345) binded to it.

BRI

  • 1 BRI account can be binded multiples times across multiple user IDs per merchant
  • 1 user ID can also bind to multiple BRI accounts per merchant

BNI

  • 1 BNI account can only be binded once per merchant, however 1 user ID can bind to multiple BNI accounts per merchant
  • If BNI account 12345 has been binded to user ID A on merchant platform XYZ, it cannot be binded to user ID B on merchant platform XYZ. User ID B will encounter an error in the binding webview at the account detail submission stage ("Request Not Allowed")
  • User ID A can however bind to other BNI accounts on platform XYZ

Mandiri

  • 1 Mandiri account can only be binded once per merchant, however 1 user ID can bind to multiple Mandiri accounts per merchant

  • If Mandiri account 12345 has been binded to user ID A on merchant platform XYZ, it cannot be binded to user ID B on merchant platform XYZ. User ID B will encounter an error in the binding webview at the account detail submission stage ("Internal Server Error")

  • User ID A can however bind to other Mandiri accounts on platform XYZ

Danamon

  • 1 Danamon account can only be binded once per merchant