List Transactions

Query transaction lists for the authenticated company via SePay API v2. Supports pagination, filters, sorting, and cursor-based polling.


List Transactions

GET
https://userapi.sepay.vn/v2/transactions
Information

Lists transactions for the authenticated company. Default 20 transactions per page, maximum 100.

Query Parameters
ParameterTypeDescription
qstringMulti-field search on reference_number, transaction_content, code
bank_account_idstring (UUID)Filter by bank account UUID
va_idstring (UUID)Filter by virtual account UUID
bank_brand_namestringFilter by bank (e.g., ACB, BIDV, VPB)
transaction_date_fromdatetimeStart date (inclusive)
transaction_date_todatetimeEnd date (inclusive)
amount_in_minintMinimum incoming amount
amount_in_maxintMaximum incoming amount
amount_out_minintMinimum outgoing amount
amount_out_maxintMaximum outgoing amount
reference_numberstringExact match on reference number
transaction_contentstringLIKE search on transaction content
transfer_typestringin or out
webhook_successint0 or 1
since_idstring (UUID)Cursor-based polling
transaction_date_sortstringasc or desc
amount_in_sortstringasc or desc
amount_out_sortstringasc or desc
Code Examples
>
>
>
curl --request GET \
--url 'https://userapi.sepay.vn/v2/transactions?q=SOME_STRING_VALUE&bank_account_id=f9e8d7c6-b5a4-3210-fedc-ba0987654321&va_id=a2b3c4d5-e6f7-8901-bcde-f12345678901&bank_brand_name=ACB&transaction_date_from=2026-01-01%2000%3A00%3A00&transaction_date_to=2026-03-31%2023%3A59%3A59&amount_in_min=500000&amount_in_max=10000000&amount_out_min=SOME_INTEGER_VALUE&amount_out_max=SOME_INTEGER_VALUE&reference_number=SOME_STRING_VALUE&transaction_content=SOME_STRING_VALUE&transfer_type=SOME_STRING_VALUE&webhook_success=SOME_INTEGER_VALUE&since_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890&transaction_date_sort=SOME_STRING_VALUE&amount_in_sort=SOME_STRING_VALUE&amount_out_sort=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE&fields=SOME_STRING_VALUE&timestamp_format=SOME_STRING_VALUE' \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
Response
{
  "status": "success",
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "transaction_date": "2025-02-20 14:15:00",
      "account_number": "0123456789",
      "va": "VA001",
      "transfer_type": "in",
      "amount_in": 500000,
      "amount_out": 0,
      "accumulated": 1500000,
      "transaction_content": "Thanh toan don hang #123",
      "reference_number": "FT26069ABC",
      "code": "ABC123",
      "bank_brand_name": "ACB",
      "bank_account_id": "f9e8d7c6-b5a4-3210-fedc-ba0987654321",
      "va_id": "a2b3c4d5-e6f7-8901-bcde-f12345678901",
      "webhook_success": 1
    }
  ],
  "meta": {
    "pagination": {
      "total": 150,
      "per_page": 20,
      "current_page": 1,
      "last_page": 8,
      "has_more": true
    }
  }
}
Response 200 - Transaction list
{
  "status": "success",
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "transaction_date": "2025-08-15 09:30:00",
      "account_number": "19028745631",
      "va": "VA001",
      "amount_in": 500000,
      "amount_out": 0,
      "accumulated": 1500000,
      "transaction_content": "Chuyen tien mua hang DH2025001",
      "reference_number": "FT26069ABC",
      "code": "ABC123",
      "bank_brand_name": "ACB",
      "bank_account_id": "f9e8d7c6-b5a4-3210-fedc-ba0987654321",
      "va_id": "a2b3c4d5-e6f7-8901-bcde-f12345678901",
      "webhook_success": 1,
      "transfer_type": "in"
    }
  ],
  "meta": {
    "pagination": {
      "total": 150,
      "per_page": 20,
      "current_page": 1,
      "last_page": 8,
      "has_more": true
    }
  }
}
Notes
  • id is the UUID of the transaction
  • bank_account_id is the UUID of the bank account
  • va_id is the UUID of the VA; null if the transaction did not go through a VA
  • webhook_success: 0 = not sent or failed, 1 = success, null if no webhook configured
  • Currency fields are always integers
  • q searches simultaneously on reference_number, transaction_content, code
  • since_id supports cursor-based polling, returning transactions created after the given ID
  • per_page maximum is 100
Usage Examples

Get incoming transactions from 500,000 to 1,000,000:

cURL
1
2
3
curl -X GET "https://userapi.sepay.vn/v2/transactions?amount_in_min=500000&amount_in_max=1000000" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Poll for new transactions using since_id:

cURL
1
2
3
curl -X GET "https://userapi.sepay.vn/v2/transactions?since_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Search transactions by content:

cURL
1
2
3
curl -X GET "https://userapi.sepay.vn/v2/transactions?q=DH001" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"