Refunding a Transaction

DEVELOPER GUIDE

Refund a Direct Debit or payments via PayId (Receivables)

This article will guide you on how to process a refund.

When refunds are allowed

  • Only against successful received payments
  • Applies to direct debit collections and PayID receivables
  • The refund must not exceed the original amount

Refund via API

  • POST /credits/{credit_ref}/refunds
  • Use the original credit reference C.xxx
  • You can specify refund channel behaviour

Funding account options

  • Refunds can be sent from the receiving account
  • Or from another bank account you specify
  • Use your_bank_account_id when needed

Refund Flow

1

Locate the successful received payment you want to refund

2

Get the original credit reference C.xxx

3

Send POST /credits/{credit_ref}/refunds with the refund amount and reason

4

Optionally specify your_bank_account_id and the refund channel preference

5

Expect a successful response with a new PRF.xxxx refund reference

API Endpoint

Refund
POST /credits/C.xxx/refunds

Issues a refund against a successful received payment using its credit reference.

Channels
["direct_entry"] 
["new_payments_platform"]
["new_payments_platform","direct_entry"]

Choose DE only, NPP only, or NPP first with DE fallback.

1

Use the original transaction credit reference

2

Ensure the refund amount does not exceed the available amount

3

Include a reason for the refund

4

Add your_bank_account_id if refunding from a different bank account

Refund Endpoint

POST /reference/issuearefund

Response Handling

{
  "amount": 500,
  "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"
     }
}
{
 "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": 500,
   "reason": "Refund API test"
   }
}
{
"errors": "Amount must not exceed available amount"
}

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


Webhooks Event Flow

Refer to this article to learn more about the webhooks event flow when you issue a refund.