Trong trang này
Lịch sử giao dịch
API truy vấn lịch sử giao dịch của các tài khoản ngân hàng thuộc về bạn.
GET /api/transactions
- Xác thực: bắt buộc —
Authorization: Bearer {token}(xem Xác thực). - Trả về các giao dịch thuộc tất cả tài khoản ngân hàng của chủ token.
- Mặc định lấy giao dịch trong ngày hiện tại; muốn khoảng khác thì truyền
transaction_date_from/transaction_date_to. - Kết quả sắp xếp theo
transaction_dategiảm dần (mới nhất trước) và được phân trang.
#Tham số truy vấn
Tất cả đều tùy chọn.
| Tham số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
q |
string | — | Tìm kiếm (LIKE) theo reference_number, transaction_content, transaction_id |
bank_account_id |
string (UUID) | — | Lọc theo một tài khoản ngân hàng. UUID phải thuộc về chủ token |
type |
string | — | Lọc theo chiều tiền: in (tiền vào) hoặc out (tiền ra) |
transaction_date_from |
date (Y-m-d) |
hôm nay | Ngày bắt đầu (bao gồm) |
transaction_date_to |
date (Y-m-d) |
hôm nay | Ngày kết thúc (bao gồm). Tối đa 90 ngày kể từ from |
per_page |
int (1–100) | 20 |
Số bản ghi mỗi trang |
page |
int | 1 |
Trang hiện tại |
Quy tắc khoảng thời gian:
- Không truyền cả
fromlẫnto→ lấy trong ngày hôm nay. - Chỉ truyền một trong hai → khoảng thời gian gói trọn trong đúng ngày đó.
fromphải<=to, và khoảng cách tối đa 90 ngày.
#Ví dụ request
curl -G "https://app.qh2pay.com/api/transactions" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
--data-urlencode "q=LE THANH" \
--data-urlencode "type=in" \
--data-urlencode "transaction_date_from=2026-06-01" \
--data-urlencode "transaction_date_to=2026-06-10" \
--data-urlencode "per_page=20"
const params = new URLSearchParams({
q: "LE THANH",
type: "in",
transaction_date_from: "2026-06-01",
transaction_date_to: "2026-06-10",
per_page: "20",
});
const res = await fetch(`https://app.qh2pay.com/api/transactions?${params}`, {
headers: {
Authorization: `Bearer ${API_TOKEN}`,
Accept: "application/json",
},
});
const json = await res.json();
#Response 200 OK
{
"data": [
{
"id": 1032,
"reference_number": "0551dTCO-82LiomOss",
"transaction_content": "MBVCB.11081239687.703327.LE THANH TRUNG chuyen tien",
"transaction_id": "20250812083338000006",
"bank_account_id": "ca0a96f9-7ac2-4470-be2f-89f854a27cef",
"virtual_number": "V3QHT8888",
"amount": 150000,
"type": 1,
"type_label": "in",
"status": 0,
"transaction_date": "2026-06-10 08:33:38",
"created_at": "2026-06-10 15:12:34"
}
],
"links": {
"first": "https://app.qh2pay.com/api/transactions?page=1",
"last": "https://app.qh2pay.com/api/transactions?page=3",
"prev": null,
"next": "https://app.qh2pay.com/api/transactions?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 3,
"per_page": 20,
"to": 20,
"total": 57
}
}
#Mô tả field trong data[]
| Field | Kiểu | Mô tả |
|---|---|---|
id |
int | ID giao dịch |
reference_number |
string | null | Mã tham chiếu (core reference) |
transaction_content |
string | Nội dung / diễn giải giao dịch |
transaction_id |
string | Mã giao dịch |
bank_account_id |
string (UUID) | Tài khoản ngân hàng phát sinh giao dịch |
virtual_number |
string | null | Số tài khoản ảo (nếu có) |
amount |
int | Số tiền (VND) |
type |
int | 1 = tiền vào, 2 = tiền ra |
type_label |
string | in (tiền vào) hoặc out (tiền ra) |
status |
int | Trạng thái giao dịch |
transaction_date |
string (Y-m-d H:i:s) |
Thời điểm giao dịch thực tế |
created_at |
string (Y-m-d H:i:s) |
Thời điểm hệ thống ghi nhận |
linksvàmetalà cấu trúc phân trang chuẩn của Laravel API Resource — dùngmeta.last_page/links.nextđể duyệt qua các trang.
#Lỗi validate
| Tình huống | HTTP | Body |
|---|---|---|
from > to |
422 |
{ "message": "transaction_date_from phải nhỏ hơn hoặc bằng transaction_date_to." } |
| Khoảng > 90 ngày | 422 |
{ "message": "Khoảng thời gian tối đa là 90 ngày." } |
| Sai kiểu dữ liệu tham số | 422 |
Body lỗi validate chuẩn Laravel ({ "message": ..., "errors": { ... } }) |