Danh sách giao dịch
Nội dung Markdown đầy đủ của trang tài liệu.
# Danh sách giao dịch
`GET https://api.pay2s.vn/api/v1/oauth/transactions`
## Xác thực
Bearer. Scope cần có: `transactions:read`. Gửi header `Authorization: Bearer ACCESS_TOKEN`.
## Tham số
Định dạng: **query URL**.
| Trường | Kiểu nhập | Yêu cầu |
|---|---|---|
| `bank_id` | string | Bắt buộc |
| `from_date` | string | Tùy chọn |
| `to_date` | string | Tùy chọn |
| `limit` | integer | Tùy chọn |
| `before_id` | string | Tùy chọn |
bank_id bắt buộc, lấy từ ngân hàng đã cấp quyền. Ngày YYYY-MM-DD, mặc định ngày hiện tại, to_date mặc định from_date; khoảng chênh lệch tối đa 31 ngày. limit 1–100 (mặc định 50). before_id lấy từ next_cursor lần trước; null là hết trang. Lịch sử dùng giờ UTC+7; amount là chuỗi thập phân. Tài khoản demo chỉ đọc giao dịch demo.
Cần gói Pay2S còn hoạt động. Dữ liệu chỉ thuộc tài khoản/ngân hàng được cấp quyền; tài khoản demo chỉ đọc ngân hàng và giao dịch demo.
## Cách thử
Mở Playground bằng nút đầu trang, nhập thông tin của ứng dụng hoặc Access Token đã được cấp. [Hướng dẫn toàn bộ luồng](/docs/oauth/quickstart/). Code mẫu cURL, Node.js và PHP nằm dưới form Playground.
## Lỗi cần xử lý
`invalid_token` (401), `insufficient_scope` hoặc `active_plan_required` (403), dữ liệu không hợp lệ (422). Xem [bảng lỗi](/docs/oauth/errors/).
## Request và response tham khảo
Các mẫu dưới đây giữ cấu trúc trường và kiểu dữ liệu. Khóa, chữ ký, URL phiên đã được thay bằng placeholder; danh sách chỉ giữ tối đa hai phần tử và dữ liệu ảnh/PDF/XML dài được rút gọn. Không sao chép placeholder để gọi API thật.
### OAuth · Danh sách giao dịch
<div class="doc-api-actions" data-doc-api-actions><a class="try-button" data-doc-playground href="/playground/?api=oauth-transactions">Thử API trong Playground ↗</a><a class="try-button experience-button" data-doc-experience hidden>Trải nghiệm ↗</a></div>
**Đối chiếu mã nguồn backend; giá trị minh họa.** bank_id bắt buộc, lấy từ ngân hàng đã cấp quyền. Ngày YYYY-MM-DD, mặc định ngày hiện tại, to_date mặc định from_date; khoảng chênh lệch tối đa 31 ngày. limit 1–100 (mặc định 50). before_id lấy từ next_cursor lần trước; null là hết trang. Lịch sử dùng giờ UTC+7; amount là chuỗi thập phân. Tài khoản demo chỉ đọc giao dịch demo.
`GET /api/v1/oauth/transactions`
Tham số path/query (không gửi JSON body):
```json
{
"bank_id": "",
"from_date": "",
"to_date": "",
"limit": 50,
"before_id": ""
}
```
HTTP 200. Response:
```json
{
"data": [
{
"id": 1001,
"transactionNumber": "DEMO1001",
"amount": "2000.00",
"description": "THANHTOAN DEMO",
"date": "2026-10-13 09:00:00",
"type": "IN"
}
],
"next_cursor": null
}
```