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

Các khối (bước) của một quy trình — API Base Service

service/get.stages · 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.

service/get.stages

POST/extapi/v1/service/get.stagesGọi qua 360: POST https://partner.quantri360.com/v1/base_service/extapi/v1/service/get.stages
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

Các KHỐI (bước) của một quy trình: tên bước, loại (việc, duyệt, song song, gộp, kết thúc), người phụ trách mặc định, thời lượng định mức, bước kế tiếp. Dùng để dựng sơ đồ quy trình và hiểu block_id trong từng bước của phiếu.

  • Thiếu / sai service_id → code 0.
  • Thứ tự mảng không phải thứ tự chạy — đi theo properties.next_block_ids bắt đầu từ next_block_ids của quy trình (service/get.all).

Request

Địa chỉ

POST https://partner.quantri360.com/v1/base_service/extapi/v1/service/get.stages

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_idquerystringheradgTên kết nối Base Service (GET /v1/platforms). Có thể bỏ khi chỉ nối một token.
usernamebodystringnguyenvanaAPI ghi (tạo / sửa / thực thi / chuyển khối / giao người) chạy DƯỚI TÊN người dùng Base này — phải là người có quyền ở khối đó.

Tham số request

TênVị tríKiểuBắt buộcMẫuMô tả
service_idbodystringCó73460Mã quy trình (service/get.all → services[].id).

Ví dụ request

curl -s -X POST "https://partner.quantri360.com/v1/base_service/extapi/v1/service/get.stages" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"service_id":"73460"}'
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.post(
    "https://partner.quantri360.com/v1/base_service/extapi/v1/service/get.stages",
    params={},
    json={
        "service_id": "73460"
    },
    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/base_service/extapi/v1/service/get.stages');
for (const [k, v] of Object.entries({})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
  method: 'POST',
  headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({"service_id":"73460"}),
});
console.log(r.status, await r.json());
PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/base_service/extapi/v1/service/get.stages' . '?' . http_build_query([]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key, 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"service_id":"73460"}');
$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 Base Service)

TênKiểuMẫuMô tả
codeint11 = thành công · 0 = lỗi.
messagestringGET_DATA_SUCCESSFULLY
stagesobject[]Mỗi phần tử một khối.
idstring73466Mã khối = `block_id` của bước phiếu.
namestringPhát lệnh sản xuấtTên bước.
root_idstring73460Quy trình chứa khối.
metatypestringtaskLoại: `custom` (bước mở đầu) · `task` (việc) · `approval` (duyệt) · `approved_endpoint` / `rejected_endpoint` / `asked_more_endpoint` / `bypassed_endpoint` (nhánh kết quả duyệt) · `parallel` (tách song song) · `merge` (gộp) · `end_service` (hoàn thành).
assigneesstring[]["tranthib"]Người phụ trách mặc định.
followersstring[][]Người theo dõi.
propertiesobject
next_block_idsstring[]["73965"]Khối kế tiếp.
durationstring48Thời lượng định mức (giờ) — hạn của bước = lúc bắt đầu + duration.
fixed_followersstring[]
rulesobjectworkflow (`one_for_all` · `sequential`), assignment_rule (`fixed_assignee` · `fixed_approvers` · `keep_prev_assignee`), start_sla, service_variables…
formobject[][]Trường thông tin riêng của bước (nếu có).
…Còn: acl, permissions, embed_link, since, last_update…

Mẫu phản hồi

{
  "code": 1,
  "message": "GET_DATA_SUCCESSFULLY",
  "data": null,
  "httpCode": "200",
  "stages": [
    {
      "id": "73461",
      "name": "Phát đơn",
      "root_id": "73460",
      "metatype": "custom",
      "assignees": [],
      "followers": [
        "tranthib"
      ],
      "properties": {
        "next_block_ids": [
          "73465"
        ],
        "duration": "24"
      },
      "rules": {
        "workflow": "one_for_all",
        "assignment_rule": "keep_prev_assignee"
      }
    },
    {
      "id": "73467",
      "name": "Lên PAKD (bao gồm giá NPL, CM)",
      "root_id": "73460",
      "metatype": "task",
      "assignees": [
        "tranthib"
      ],
      "followers": [],
      "properties": {
        "next_block_ids": [
          "73965"
        ],
        "duration": "48"
      },
      "rules": {
        "workflow": "one_for_all",
        "assignment_rule": "fixed_assignee"
      }
    },
    {
      "id": "73475",
      "name": "Duyệt PAKD",
      "root_id": "73460",
      "metatype": "approval",
      "assignees": [
        "levanc"
      ],
      "followers": [],
      "properties": {
        "next_block_ids": [
          "73471",
          "73472",
          "73473"
        ],
        "duration": "12"
      },
      "rules": {
        "workflow": "sequential",
        "assignment_rule": "fixed_approvers"
      }
    }
  ]
}

Bắt đầu dùng

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