Note: This article is relevant to merchants integrating with Zepto in Australia.
Webhooks are used to notify your application of changes to the status of Agreements, Payment Requests, Credits, Debits, etc as they are processed through the system.
By subscribing to our webhook events you can monitor the status of each transaction, and then trigger the appropriate next steps. While making Payments and Payment Requests, webhooks allow you to check the status of the transactions.
This article gives an overview of the webhook events you would expect to receive for the following scenarios.
Making a Payment
Via NPP
Unsuccessful (No Channel Switch to DE) (Uncommon Configuration)
Via Direct Entry(Direct Credit)
Making a Payment Request (Direct Debit)
Receiving Funds to a PayID
Voided Transactions
Successful NPP and Direct Entry Payment
The webhooks that are fired when you make a payment (from your primary account or the float account) are as follows:
payment.added
debit.scheduled
debtor_credit.scheduled
debit.maturing
debit.matured
debit.processing
debit.clearing
debit.cleared
debtor_credit.matured
debtor_credit.processing
debtor_credit.clearing
debtor_credit.cleared
- (Funds were credited into the end customer's account)
For a successful NPP transaction, the final event that the system will fire is debtor_credit.cleared
. Please note, that the above webhooks will be fired under the category payout
Note: For DC transactions, the cleared webhook does not guarantee that the funds have been settled into the end customer's account. The end customer's bank can take a few hours to settle the funds in the associated bank account.
It has been previously noticed, that for a Direct Credit transaction, the banks can get back to us after a day or two, informing us that the credit to the end customer's account has failed due to various reasons(eg: bank account closed). In this case, our system will trigger another webhook event debtor_credit.returned
under the category payout
and a bunch of other webhook events with the category payout_reversal
.
You can refer to these events for such instances.
Unsuccessful via NPP (Successfully Processed via DE after channel switching)
If you chose an NPP hybrid account, failed NPP payments are retried via DE, you would expect to receive the following webhooks:
payment.added
debit.scheduled
debtor_credit.scheduled
debit.matured
debit.processing
debit.clearing
debit.cleared
debtor_credit.matured
debtor_credit.processing
debtor_credit.channel_switched
- (Funds are being sent via the BECS channel)debtor_credit.processing
debtor_credit.clearing
debtor_credit.cleared
- (Funds have been sent to the end customer's bank and marked as cleared on the Zepto dashboard.)
Note: For DC transactions, the cleared webhook does not guarantee that the funds have been settled into the end customer's account. The end customer's bank can take a few hours to settle the funds in the associated bank account.
It has been previously noticed, that for a Direct Credit transaction, the banks can get back to us after a day or two, informing us that the credit to the end customer's account has failed due to various reasons(eg: bank account closed).
In this case, our system will trigger another webhook event with the category payout_reversal
. You can refer to these events for such instances.
Unsuccessful NPP
If you chose a standard Float account (with only NPP transactions or only DE), you would expect to receive the following webhooks:
payment.added
debit.scheduled
debtor_credit.scheduled
debit.maturing
debit.matured
debit.processing
debit.clearing
debit.cleared
debtor_credit.matured
debtor_credit.processing
debtor_credit.clearing
debtor_credit.returned
- (Funds will be returned back to your account)
Since the debit side of the transaction was successful, the credit will be reversed back into the original bank account. The below events will then be fired, under the category payout_reversal.
credit.scheduled
credit.matured
credit.processing
credit.clearing
credit.cleared
- (Funds have been returned to your account)
eg.
For the payment transactions, these are final state webhook events:
debtor_credit.cleared
debtor_credit.returned
credit.cleared
- (category payout_reversal)
In addition, it is also suggested that you configure to the debtor_credit.channel_switched
for transactions via a Hybrid float account.
Unsuccessful Direct Credit transaction
If you chose a standard Float account (with only NPP transactions or only DE), you would expect to receive the following webhooks:
payment.added
debit.scheduled
debtor_credit.scheduled
debit.maturing
debit.matured
debit.processing
debit.clearing
debit.cleared
debtor_credit.matured
debtor_credit.processing
debtor_credit.clearing
debtor_credit.cleared
debtor_credit.returned
- (Funds will be returned back to your account)
Note: Our system would mark the credit as cleared for a DC transaction based on the nearest available exchange point. The banks can get back to us within one or two business days informing us that the credit failed due to some reason. In this case, the final debtor_credit.returned
event will be fired.
Since the debit side of the transaction was successful, the credit will be reversed back into the original bank account. The below events will then be fired, under the category payout_reversal.
credit.scheduled
credit.matured
credit.processing
credit.clearing
credit.cleared
- (Funds have been returned to your account)
Successful Payment Request
While requesting a Payment, the Webhooks that will be fired are as follows :
payment_request.added
payment_request.approved
credit.scheduled
creditor_debit.scheduled
creditor_debit.matured
creditor_debit.processing
creditor_debit.clearing
creditor_debit.cleared
credit.matured
credit.processing
credit.clearing
credit.cleared
- (Funds have settled into your nominated bank account)
Unsuccessful Payment Requests
While requesting the payment, in any case, if the payment request fails due to incorrect BSB, account number, insufficient funds, etc, the webhooks that will be fired are:
payment_request.added
payment_request.approved
credit.scheduled
creditor_debit.scheduled
creditor_debit.matured
creditor_debit.processing
creditor_debit.clearing
creditor_debit.returned
- (Debited funds were returned back to the end customer's account)credit.voided
- (the credit to your account will be canceled as the debit was unsuccessful)
The final states for a direct debit transaction are:
credit.cleared
creditor_debit.returned
credit.voided
Receiving Funds through PayID
When you receive funds through a PayId, the webhooks that are fired are as follows:
payment_request.approved
credit.scheduled
creditor_debit.scheduled
creditor_debit.matured
creditor_debit.processing
creditor_debit.clearing
creditor_debit.cleared
credit.matured
credit.processing
credit.clearing
credit.cleared
Voided Payment
You can also void a payment, by logging in to your Zepto account, navigating to the payment you created, and clicking the cancel button found on the top-right corner of the page. Please be mindful that you can only cancel/void the payment before it is processed.
The webhooks that will be triggered if you successfully cancel the payment before it matures are as follows,
payment.added
debit.scheduled
debtor_credit.scheduled
debit.voided
debtor_credit.voided
There is also the scenario when your NPP payments fail to process, for example, the customer's bank is not NPP enabled. When this happens, the resulting behaviour and webhooks received will depend on the configuration you chose for your account float during setup.
Voided Payment Request
You can also void a payment request, by logging in to your Zepto account, navigating to the payment request you created, and clicking the cancel button found on the top-right corner of the page. Please be mindful that you can only cancel a payment request before it is processed.
The webhooks that will be triggered if you cancel the payment request are as follows,
payment_request.added
payment_request.approved
creditor_debit.scheduled
creditor_debit.matured
payment_request.cancelled
creditor_debit.voided
credit.voided
Feel free to reach out to us via the green bubble on the bottom right of the screen or email us at support@zepto.com.au. Happy to help with all your questions! :)