VI | EN
Nhắn Messenger
Dành cho developer

List of transaction — API Pancake POS

get /shops/{SHOP_ID}/transactions · gọi qua Quantri360 bằng một API key cho chính tài khoản / tài sản bạn đã kết nối và ủy quyền — 360 lo việc ký request và làm mới phiên đăng nhập bạn đã cấp.

get /shops/{SHOP_ID}/transactions

GET/shops/{SHOP_ID}/transactionsGọi qua 360: GET https://partner.quantri360.com/v1/pancake_pos/shops/{SHOP_ID}/transactions
Sắp mở. API này đã chạy thật qua 360 và đang được chốt giá — bạn có thể đọc tài liệu và chuẩn bị tích hợp trước.
Mô tả API

Sổ thu chi của cửa hàng: tiền thu đơn hàng, trả trước, phí vận chuyển trả ĐVVC, hoàn phí, chi khác — số tiền, đối tượng, đơn liên quan, thời điểm. Dùng cho báo cáo dòng tiền và đối chiếu COD / phí vận chuyển.

  • startDateTime / endDateTime là Unix giây (mili giây cũng nhận). Gọi thật: phiếu posted_at 06:25 lọc khớp khoảng 06:00–07:00 UTC, không khớp 06:00–07:00 giờ VN → thời gian trả về là UTC.
  • Gọi thật 500 phiếu gần nhất: tên phiếu gặp — "Thanh toán cho đơn hàng", "Thanh toán phí vận chuyển … cho đơn vị vận chuyển" (chi, âm), "Hoàn phí vận chuyển", "Trả trước cho đơn hàng", "Hoàn cho đơn hàng", "Huỷ đơn hàng".
  • Mỗi phiếu kèm nguyên object order có items — phản hồi nặng; page_size 100–200 là vừa.

Request

Địa chỉ

GET https://partner.quantri360.com/v1/pancake_pos/shops/{SHOP_ID}/transactions

Xác thực & gian hàng

TênVị tríKiểuMẫuMô tả
AuthorizationheaderheaderBearer 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_idquerystring1234567SHOP_ID đã nối — có thể bỏ khi đường dẫn có /shops/{SHOP_ID}.

Tham số request

TênVị tríKiểuBắt buộcMẫuMô tả
SHOP_IDpathintegerCó1234567Mã cửa hàng đã nối với 360.
pagequeryintKhông1
page_sizequeryintKhông100Mặc định 30; gọi thật 500 vẫn nhận.
statusqueryintKhông-1-1 tất cả · 0 mới · 1 có hiệu lực · 2 đã hủy · 3 đã xóa.
startDateTimequeryintKhông1792994400Từ (Unix giây) — lọc theo thời điểm ghi sổ.
endDateTimequeryintKhông1792998000Đến (Unix giây).

Phân trang

Tăng page tới total_pages. Mới nhất trước.

Ví dụ request

curl -s "https://partner.quantri360.com/v1/pancake_pos/shops/1234567/transactions?page=1&page_size=100&status=-1&startDateTime=1792994400&endDateTime=1792998000" \
  -H "Authorization: Bearer $KEY"
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.get(
    "https://partner.quantri360.com/v1/pancake_pos/shops/1234567/transactions",
    params={
        "page": 1,
        "page_size": 100,
        "status": -1,
        "startDateTime": 1792994400,
        "endDateTime": 1792998000
    },
    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/pancake_pos/shops/1234567/transactions');
for (const [k, v] of Object.entries({"page":1,"page_size":100,"status":-1,"startDateTime":1792994400,"endDateTime":1792998000})) 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/pancake_pos/shops/1234567/transactions' . '?' . http_build_query(['page' => 1, 'page_size' => 100, 'status' => -1, 'startDateTime' => 1792994400, 'endDateTime' => 1792998000]);
$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 Pancake POS)

TênKiểuMẫuMô tả
successbooltrue
dataobject[]Phiếu thu / chi.
idstringMã (UUID).
display_idstringEGW10744Mã phiếu hiển thị.
namestringThanh toán cho đơn hàng #ref_display_idTên phiếu — chứa nguyên chữ `#ref_display_id`, tự thay bằng `ref_display_id` khi hiển thị.
type_transactionint1`1` thu (amount dương) · `2` chi (amount âm).
amountint325000Số tiền VND; chi là số ÂM.
statusint1`0` mới · `1` có hiệu lực · `2` đã hủy · `3` đã xóa.
is_canceledboolfalse
is_lockedboolfalse
table_namestringshop_transactions_orderNguồn phiếu.
ref_display_idint9716Số đơn liên quan.
ref_idstringMã nội bộ đơn liên quan.
orderobjectĐơn liên quan: id, display_id, items[]… (rất nặng).
supplier_or_customerstringcustomer`customer` · `other` (ĐVVC…) · NCC.
shop_customer_idstringKhách.
supplier_products_idintNCC.
accountstringTài khoản / trang nhận tiền.
paymentsobject[][]Phương thức thanh toán.
warehouse_idstring
posted_atstring2026-10-27T06:25:48Thời điểm ghi sổ — UTC.
inserted_atstringUTC.
time_incurredstringThời điểm phát sinh (nếu nhập tay).
creatorobjectNgười tạo (null với phiếu tự sinh).
tag_idsstring[][]
notestring
page_number / page_size / total_pages / total_entriesint

Mẫu phản hồi

{
  "success": true,
  "data": [
    {
      "id": "89dcbf80-cc57-409b-b491-e81acab10000",
      "display_id": "EGW10744",
      "name": "Thanh toán cho đơn hàng #ref_display_id",
      "type_transaction": 1,
      "amount": 325000,
      "currency": "VND",
      "status": 1,
      "is_canceled": false,
      "is_locked": false,
      "table_name": "shop_transactions_order",
      "ref_display_id": 9716,
      "ref_id": "1431770000",
      "order": {
        "id": 360301027960000,
        "display_id": 9716
      },
      "supplier_or_customer": "customer",
      "shop_customer_id": "02a75d1b-…",
      "account": "871110146500000",
      "payments": [],
      "warehouse_id": "6d1b3245-…",
      "posted_at": "2026-10-27T06:25:48",
      "inserted_at": "2026-10-27T06:25:48",
      "creator": null,
      "tag_ids": [],
      "note": null
    },
    {
      "id": "a81e855f-…",
      "display_id": "WXX10741",
      "name": "Thanh toán phí vận chuyển của đơn hàng #ref_display_id cho đơn vị vận chuyển.",
      "type_transaction": 2,
      "amount": -26000,
      "status": 1,
      "supplier_or_customer": "other",
      "ref_display_id": 9705,
      "posted_at": "2026-10-15T03:11:15"
    }
  ],
  "page_size": 100,
  "total_pages": 113,
  "page_number": 1,
  "total_entries": 11225
}

Bắt đầu dùng

  1. Đăng ký tài khoản Partner
  2. Mở loại dữ liệu thuộc nhóm Tài chính ở trang nền tảng
  3. Tạo API key (tick kênh Pancake POS)
  4. Gọi theo ví dụ ở trên