Transaction List API

API to retrieve the transaction list of linked bank accounts. Supports pagination and filtering by multiple criteria.


API Endpoint

GET
https://bankhub-api-sandbox.sepay.vn/v1/transaction

Query Parameters

pageinteger

Page number

Default: 1
per_pageinteger

Number of items per page

Default: 20
company_xidstring

Filter by company ID

bank_account_xidstring

Filter by bank account ID

brand_namestring

Filter by bank name (MBBank, Vietcombank...)

transaction_datestring

Filter by specific date (YYYY-MM-DD)

start_transaction_datestring

Filter from date (YYYY-MM-DD)

end_transaction_datestring

Filter to date (YYYY-MM-DD)

transfer_typeenum

Filter by transaction type (in = incoming, out = outgoing)

webhook_successenum

Filter by webhook status (0 = failed, 1 = success)

qstring

Search keyword (transaction content, payment code, account number)

Note
  • This API requires a Bearer Token in the Authorization header
  • Results are sorted by newest transaction time by default
  • Use transfer_type to distinguish inbound (in) and outbound (out) transactions
  • The webhook_success field indicates whether the webhook was delivered successfully

Error Handling

401Unauthorized

The access token is invalid or has expired

API Response

Response 200 - Success
{
  "data": [
    {
      "transaction_id": "string",
      "transaction_date": "string",
      "bank_account_xid": "string",
      "company_xid": "string",
      "brand_name": "string",
      "account_number": "string",
      "va": "string",
      "va_xid": "string",
      "reference_number": "string",
      "transfer_type": "in",
      "amount": 0,
      "transaction_content": "string",
      "payment_code": "string",
      "webhook_success": 0
    }
  ],
  "meta": {
    "page": 0,
    "per_page": 0,
    "total": 0,
    "total_pages": 0
  }
}
dataarray<object>

List of transactions

metaobject

Pagination information

Code Examples

1
2
3
curl --request GET \
--url 'https://bankhub-api-sandbox.sepay.vn/v1/transaction?page=SOME_INTEGER_VALUE&per_page=SOME_INTEGER_VALUE&company_xid=SOME_STRING_VALUE&bank_account_xid=SOME_STRING_VALUE&brand_name=SOME_STRING_VALUE&transaction_date=SOME_STRING_VALUE&start_transaction_date=SOME_STRING_VALUE&end_transaction_date=SOME_STRING_VALUE&transfer_type=SOME_STRING_VALUE&webhook_success=SOME_INTEGER_VALUE&q=SOME_STRING_VALUE' \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Usage Examples

JSGet the first page with 10 transactions
1
2
curl --location 'https://bankhub-api-sandbox.sepay.vn/v1/transaction?limit=10&page=1' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
JSFilter transactions by company
1
2
curl --location 'https://bankhub-api-sandbox.sepay.vn/v1/transaction?company_xid=cmp_abc123xyz' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
JSFilter inbound transactions only
1
2
curl --location 'https://bankhub-api-sandbox.sepay.vn/v1/transaction?transfer_type=in' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
JSFilter by date range
1
2
curl --location 'https://bankhub-api-sandbox.sepay.vn/v1/transaction?transaction_date_min=2024-01-01&transaction_date_max=2024-01-31' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN'
JSSearch by transaction content
1
2
curl --location 'https://bankhub-api-sandbox.sepay.vn/v1/transaction?content=DH123456' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Performance Notes
  • Use an appropriate limit value to optimize performance (recommended: 20-50, max 100)
  • For large volumes of transactions, filter by company_xid or bank_account_xid
  • Use transaction_date_min and transaction_date_max to limit the time range
  • Combine multiple filters to narrow down search results
Useful Filters
  • transfer_type: Filter by transaction type (in = inbound, out = outbound)
  • amount_min / amount_max: Filter by amount range
  • content: Search by transaction content
  • bank_account_xid: Filter by specific bank account