List Refunds API

List the refunds of one bank account via SePay API. Filter by order, transaction or processing state, newest first.

||

List refunds

GET
https://userapi.sepay.vn/v2/bank-accounts/{ba_xid}/refunds

Returns the refunds of one bank account, newest first.

Parameters

ba_xidstringrequired

Bank account UUID

orderstring

Filter by order UUID

transactionstring

Filter by collection transaction id

statusenum

Filter by refund status

pageinteger

Page (default: 1)

Default: 1
per_pageinteger

Records per page, 1-100 (default: 20)

Default: 20
Filter for reconciliation

Filter status=pending to find refunds without a final answer, status=succeeded to reconcile the money that actually went back. Filter by transaction to see how much of one payment has been refunded.

Code Examples

>
>
>
curl --request GET \
--url 'https://userapi.sepay.vn/v2/bank-accounts/f9e8d7c6-b5a4-3210-fedc-ba0987654321/refunds?order=SOME_STRING_VALUE&transaction=SOME_STRING_VALUE&status=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE' \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response (HTTP 200)

Response 200 - Refund list
{
  "status": "success",
  "data": [
    {
      "refund_id": "RF-7QK3-M8PZ-4VNW",
      "order_type": "va_order",
      "order_id": "string",
      "order_code": "string",
      "xid": "string",
      "transaction_id": "string",
      "original_reference": "string",
      "amount": 50000,
      "currency": "VND",
      "scope": "full",
      "status": "pending",
      "created_at": "2026-08-28 14:05:00"
    }
  ],
  "meta": {
    "pagination": {
      "total": 0,
      "per_page": 0,
      "current_page": 0,
      "last_page": 0,
      "has_more": true
    }
  }
}
statusstring
dataarray<object>
metaobject

Notes

  • refund_id is the handle used by Refund detail
  • amount is an integer (VND)
  • order_id and order_code are null for a refund with no order behind it
  • Filtering status with a value outside the allowed list returns 422