There can be instances where you may want to issue a refund to your customer against a received direct debit payment. This article will guide you through the steps of issuing a refund using,

Please be mindful that a refund can be issued only against successful Payment Requests ie. direct debits (Collections) or payments via PayId (Receivables).

A refund can be issued against an original payment request but should not exceed the originally requested amount.

  • Using the API

Issuing a refund can be done using our POST /credits/{credit_ref or C.xxx}/refunds endpoint. You can also refer to our API documentation attached here.

Example Payload:

{
"amount": 5,
"reason": "Refund API test",
"your_bank_account_id": "cf4a8ced-3d97-4fb5-b9a5-42a0b33ed578",
//option 1 'channels':['new_payments_platform'],
//option 2 'channels':['direct_entry'],
//option 3 'channels':['new_payments_platform','direct_entry'],
"custom": {
"custom_key": "Test 1",
"another_custom_key": "Maybe a URL"
}
}

You will need to add the credit reference C.xxx in the POST request, every successful transaction will have a credit reference attached to it which can be found on that particular transaction.

You can choose between the three options while issuing a refund:

  • “channels”: [“direct_entry”] - When specified the transaction will only be processed using the DE channel. If the transaction fails via DE, the whole transaction will fail.

  • “channels”: [“new_payments_platform”] - When specified the transaction will only be processed via the NPP channel. If the transaction fails via the NPP, the whole transaction will fail.

  • “channels”: [“new_payments_platform”, “direct_entry”] - The transaction will first be processed using the NPP channel, if this fails, the transaction will be retried using the DE channel.

While using the API, you can also issue the refund from a different bank account to the one that received the funds by specifying the id of the bank account in the your_bank_account_id field.

Example of Successful response:

{
"data": {
"ref": "PRF.iv",
"for_ref": "C.o130",
"debit_ref": "D.gyrf",
"your_bank_account_id": "cf4a8ced-3d97-4fb5-b9a5-42a0b33ed578",
"created_at": "2021-07-19T01:22:06Z",
"amount": 5,
"reason": "Refund API test"
}
}

A successful response will include a PRF.xxxx reference as well as the original credit reference in the for_ref field.

If you issue a refund for an amount higher than the original transaction, you should receive the following error.

{
"errors": "Amount must not exceed available amount"
}

  • Using the UI

You can also issue a refund for a successful payment request from the UI. In order to do this, you will need to

  1. Sign in to your Zepto dashboard and look for the payment request that you would like to refund.

  2. From the top right corner of the screen, you should be able to click on Issue a refund button.

  3. Select the From account from which you would like to make a refund.

  4. Add the amount you would like to refund to the customer and a reason for the refund.

  5. Click on Issue Refund

You should notice this transaction to be added in your Zepto dashboard.

Fig. Issue a refund from UI

Feel free to reach out if you have any questions or concerns by clicking on the blue bubble icon or email us directly at support@zepto.com.au.

Did this answer your question?