v2.payment.get_income_detail
GET/api/v2/payment/get_income_detailGọi qua 360: GET https://partner.quantri360.com/v1/shopee/api/v2/payment/get_income_detail
Mô tả API
Danh sách tiền theo TỪNG ĐƠN như mục "Doanh thu" trên Kênh Người Bán: tab Đã thanh toán (tiền đã về ví, kèm thời điểm và số tiền) hoặc tab Sẽ thanh toán (đơn chưa quyết toán, kèm số tiền dự kiến). Dùng để đối soát tiền về theo ngày và biết đang có bao nhiêu tiền treo ở Shopee.
- BẪY PHÂN TRANG:
next_pagelà OBJECT. Truyền nguyên object vàocursorsẽ thành chuỗi "[object Object]" và Shopee trả lại TRANG 1 → vòng lặp cộng trùng. Luôn lấynext_page.cursorvà khử trùng theo order_sn (không có đơn mới → dừng). - Released: khoảng ngày > 14 ngày →
error_param"…the date range must not exceed 14 days." — chia đoạn ≤ 14 ngày. - Pending BỎ QUA date_from / date_to: luôn trả TOÀN BỘ đơn đang chờ. Tổng estimated_escrow_amount khớp
pending_amountcủa get_income_overview. - page_size ngoài 1–100 →
error_param"Invalid or missing page_size parameter…". - Chỉ có bút toán CỘNG theo đơn: khoản Shopee đòi lại sau quyết toán (khách hoàn hàng) KHÔNG xuất hiện ở đây — xem đủ dòng tiền bằng get_wallet_transaction_list.
- Mảng trong phản hồi tên
list(không phải income_detail_list).
Request
Địa chỉ
GET https://partner.quantri360.com/v1/shopee/api/v2/payment/get_income_detail
Xác thực & gian hàng
| Tên | Vị trí | Kiểu | Mẫu | Mô tả |
|---|---|---|---|---|
| Authorization | header | header | Bearer q360_live_ab12cd34_… | Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand. |
| platform_shop_id | query | string | 100001 | Gian hàng (lấy ở GET /v1/platforms → shops[].platform_shop_id). BẮT BUỘC khi brand có > 1 gian hàng trên nền tảng; 360 bỏ tham số này trước khi chuyển tiếp. |
Tham số request
| Tên | Vị trí | Kiểu | Bắt buộc | Mẫu | Mô tả |
|---|---|---|---|---|---|
| income_status | query | int | Có | 1 | Gian hàng nội địa VN: 1 = Đã thanh toán (Released) · 2 = Đang chờ (Pending). (Gian hàng xuyên biên giới thêm 0 = To Release.) |
| date_from | query | string | Không | 2026-10-20 | Từ ngày (YYYY-MM-DD) theo ngày tiền về. CHỈ có tác dụng với income_status = 1. |
| date_to | query | string | Không | 2026-10-28 | Đến ngày (YYYY-MM-DD). Với income_status = 1: date_from → date_to tối đa 14 ngày. |
| page_size | query | int | Có | 100 | Số đơn mỗi trang: 1–100. |
| cursor | query | string | Không | Trang đầu để trống; trang sau = response.next_page.cursor (lấy CHUỖI cursor bên trong object). |
Phân trang
Lặp với cursor = response.next_page.cursor (next_page là OBJECT {cursor, page_size}, không phải chuỗi) cho tới khi cursor rỗng hoặc list rỗng; khử trùng theo order_sn.
Ví dụ request
curl -s "https://partner.quantri360.com/v1/shopee/api/v2/payment/get_income_detail?income_status=1&date_from=2026-10-20&date_to=2026-10-28&page_size=100&cursor=" \ -H "Authorization: Bearer $KEY"
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.get(
"https://partner.quantri360.com/v1/shopee/api/v2/payment/get_income_detail",
params={
"income_status": 1,
"date_from": "2026-10-20",
"date_to": "2026-10-28",
"page_size": 100,
"cursor": ""
},
headers={"Authorization": f"Bearer {KEY}"},
timeout=60,
)
print(r.status_code)
print(r.json())Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/shopee/api/v2/payment/get_income_detail');
for (const [k, v] of Object.entries({"income_status":1,"date_from":"2026-10-20","date_to":"2026-10-28","page_size":100,"cursor":""})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
method: 'GET',
headers: { Authorization: `Bearer ${KEY}` },
});
console.log(r.status, await r.json());PHP
<?php $key = 'q360_live_...'; // khóa API của brand $url = 'https://partner.quantri360.com/v1/shopee/api/v2/payment/get_income_detail' . '?' . http_build_query(['income_status' => 1, 'date_from' => '2026-10-20', 'date_to' => '2026-10-28', 'page_size' => 100, 'cursor' => '']); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]); $res = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status, "\n", $res;
Response
Tham số phản hồi (nguyên của Shopee)
| Tên | Kiểu | Mẫu | Mô tả |
|---|---|---|---|
| request_id | string | d52ca43b277a4f9292fb8be658bfd33d | Mã request của Shopee để tra lỗi. |
| error | string | Mã lỗi Shopee; rỗng = thành công. | |
| message | string | Mô tả lỗi. | |
| response | object | ||
| list | object[] | Mỗi phần tử một đơn, mới nhất trước. | |
| order_sn | string | 2610250ABCDE21 | Mã đơn. |
| payment_method | string | TK Ngân hàng liên kết ShopeePay | Phương thức thanh toán của khách (tiếng Việt). |
| status | string | Đã thanh toán cho Người bán | Trạng thái hiển thị (tiếng Việt): "Đã thanh toán cho Người bán" (Released) · "Đang chờ đơn hàng hoàn tất" (Pending)… |
| currency | string | VND | Tiền tệ. |
| released_amount | float | 267690 | Chỉ Released: số tiền đã về ví (= escrow_amount_after_adjustment của get_escrow_detail). |
| actual_payout_time | timestamp | 1793204105 | Chỉ Released: thời điểm tiền về (Unix giây). |
| estimated_escrow_amount | float | 407340 | Chỉ Pending: số tiền dự kiến nhận. |
| estimated_payout_time | timestamp | 0 | Chỉ Pending: thời điểm dự kiến về — gần như luôn = 0, không dùng để dự báo. |
| next_page | object | Thông tin trang sau. | |
| cursor | string | 10000000076 | Truyền vào tham số cursor lần sau; rỗng = hết. |
| page_size | int | 100 |
Mẫu phản hồi
{
"error": "",
"message": "",
"request_id": "7fc8a48b5ef6cb50…",
"response": {
"list": [
{
"actual_payout_time": 1793204105,
"currency": "VND",
"order_sn": "2610250ABCDE21",
"payment_method": "TK Ngân hàng liên kết ShopeePay",
"released_amount": 267690,
"status": "Đã thanh toán cho Người bán"
},
{
"actual_payout_time": 1793200097,
"currency": "VND",
"order_sn": "2610250ABCDE22",
"payment_method": "Thẻ Tín dụng/Ghi nợ",
"released_amount": 190693,
"status": "Đã thanh toán cho Người bán"
}
],
"next_page": {
"cursor": "10000000076",
"page_size": 100
}
}
}
Mã lỗi của Shopee (8)
Bấm để xem
| Mã | Ý nghĩa |
|---|---|
| error_param | Tham số sai / thiếu / sai kiểu — xem `message` để biết tham số nào. |
| error_shop | Gian hàng không hợp lệ — kiểm tra platform_shop_id. |
| error_user_refresh_token | Your refresh token is error, please check refresh token or user_id. |
| error_auth | Ủy quyền gian hàng cho 360 đã hết hạn hoặc bị thu hồi (360 đã tự làm mới token một lần) — chủ gian hàng kết nối lại Shopee trong Partner. |
| error_limit | Chạm hạn mức gọi Shopee trong ngày của kết nối — 360 trả kèm thời điểm thử lại; giảm tần suất gọi. |
| error_rate_limit | Gọi quá nhanh — chờ vài giây rồi gọi lại (360 cũng giới hạn theo key: 429 + Retry-After). |
| shop_banned | Gian hàng đang bị Shopee khóa — mọi API tạm ngưng tới khi gỡ khóa. |
| error_kyc_auth | Gian hàng chưa hoàn tất đăng ký người bán trên Kênh Người Bán. |
Bắt đầu dùng
- Đăng ký tài khoản Partner
- Mở loại dữ liệu thuộc nhóm Tài chính / đối soát ở trang nền tảng
- Tạo API key (tick kênh Shopee)
- Gọi theo ví dụ ở trên