Virtual Account Services
  1. Refunds
Virtual Account Services
  • Introduction
  • Terminologies
  • Webhooks
  • Authentication
  • Account
    • Create Account
      POST
    • Rename Account
      POST
    • Balance Inquiry
      GET
    • Create Bulk Accounts
      POST
    • List Accounts
      GET
  • Transaction
    • Credit Account
      POST
    • Debit Account
      POST
    • Credit Account [Agency Banking]
      POST
    • Debit Account [Agency Banking]
      POST
    • Transaction Query
      GET
    • Transaction Details
      GET
    • Transaction History
      GET
  • Transfer
    • Get Institutions
      GET
    • Name Inquiry
      POST
    • Interbank Transfer
      POST
    • Interbank Transfer [Sync]
      POST
    • Transfer Query
      GET
    • Transfer Enquiry
      GET
    • Virtual Account Intrabank Transfer
      POST
    • Core Banking Intrabank Transfer
      POST
    • Collection Accounts Intrabank Transfer
      POST
  • Invoice
    • Create Invoice
    • Get Invoice Detail
    • List Merchant Invoices
  • Refunds
    • Initiate Refund
      POST
    • Get Refund Status
      GET
    • Get Refunds
      GET
  • Notifications
    • Notification
    • Send Notification
  • Merchant
    • Account
      • Get Account
      • Activate Sub Ledger For Merchant
      • Get SubLedger Callback Urls
      • Set SubLedger Callback Urls
      • Get Collection Accounts
    • Transfer
      • Get Transfer History
      • Get Subledger transfers
      • Get Transfer Details
      • Name Inquiry
    • Refund
      • Refund Details
  • Admin
    • Accounting
      • Get GL Accounts
      • Get Classification Codes
    • Dashboard
      • Dashboard Summary
      • Dashboard Transactions
      • Dashboard Transaction Details
    • Group Codes
      • Get Group Codes
      • Set Collection Account
      • Create Group Code
    • Reporting
      • Get Report Types
      • Get Report Parameters
      • Create Report
      • Get Reports
      • Get Reports Details
  1. Refunds

Initiate Refund

POST
/va/refunds/initiate-refund
The API allows merchants to process refunds for transactions. It enables full or partial refunds, providing flexibility in handling customer transactions.

Request Body#

Field NameTypeRequiredDescription
transactionReferencestringtrueA unique reference identifier for the original transaction.
refundReferencestringtrueA unique reference identifier for the refund transaction.
refundAmountdecimaltrueThe amount to be refunded.
refundReasonstringtrueThe reason for initiating the refund.
customerNotestringfalseAn optional note from the customer regarding the refund.
destinationAccountNumberstringtrueThe account number where the refund should be credited.
destinationAccountBankCodestringtrueThe bank code of the destination account.

Response Body#

Field NameTypeDescription
requestSuccessfulbooleanIndicates whether the request was processed successfully.
responseMessagestringA message indicating the status of the refund request.
responseCodestringA code representing the outcome of the request.
transactionReferencestringThe reference ID of the original transaction.
refundReferencestringThe reference ID of the refund transaction.
refundAmountdecimalThe amount that is being refunded.
refundReasonstringThe reason provided for initiating the refund.
customerNotestringAn optional note from the customer regarding the refund.
refundTypestringIndicates whether the refund is partial or full.
refundStatusstringThe current status of the refund request (e.g., "PENDING").
refundStrategystringThe method used to process the refund (e.g., "MERCHANT_WALLET").
commentstringAdditional comments about the refund status.
completedOnstringThe timestamp when the refund was completed, or null if pending.
createdOnstringThe timestamp when the refund request was created.

Request

Body Params application/json

Example
{
    "transactionReference": "000012240124191535300537886000",
    "refundReference":"909090911",
    "refundAmount": 10,
    "refundReason": "Order cancelled!",
    "customerNote": "An optional note",
    "destinationAccountNumber": "0040088210",
    "destinationAccountBankCode": "000012"
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST '/va/refunds/initiate-refund' \
--header 'Content-Type: application/json' \
--data-raw '{
    "transactionReference": "000012240124191535300537886000",
    "refundReference":"909090911",
    "refundAmount": 10,
    "refundReason": "Order cancelled!",
    "customerNote": "An optional note",
    "destinationAccountNumber": "0040088210",
    "destinationAccountBankCode": "000012"
}'

Responses

🟢200Initiate Refund
application/json
Body

Example
{
    "requestSuccessful": true,
    "responseMessage": "success",
    "responseCode": "0",
    "responseBody": {
        "transactionReference": "000012240124191535300537886000",
        "refundReference": "909090911",
        "refundAmount": 10,
        "refundReason": "Order cancelled!",
        "customerNote": "An optional note",
        "refundType": "PARTIAL_REFUND",
        "refundStatus": "PENDING",
        "refundStrategy": "MERCHANT_WALLET",
        "comment": "Transaction refund is in progress.",
        "completedOn": null,
        "createdOn": "25/01/2024 01:35:27 AM"
    }
}
Modified at 2025-02-28 09:26:28
Previous
List Merchant Invoices
Next
Get Refund Status
Built with