Dòng tiền
dong tienDòng tiền hợp nhất, dự báo 13 tuần, danh mục thu chi, quy tắc phân loại và cảnh báo. dong tien hop nhat, du bao 13 tuan, danh muc thu chi, quy tac phan loai va canh bao.Dòng tiền hợp nhất, dự báo 13 tuần, danh mục thu chi, quy tắc phân loại và cảnh báo.
Endpoint
Phần tiêu đề “Endpoint”| Method | Path | Tóm tắt | Quyền | Nhóm tốc độ | Tương tác |
|---|---|---|---|---|---|
GET | /v1/cashflow/alert-rules | Danh sách quy tắc cảnh báo dòng tiền | cashflow.read | read | Scalar |
POST | /v1/cashflow/alert-rules | Tạo quy tắc cảnh báo dòng tiền | alert_rule.manage | write | Scalar |
PUT | /v1/cashflow/alert-rules/{id} | Cập nhật quy tắc cảnh báo dòng tiền | alert_rule.manage | write | Scalar |
GET | /v1/cashflow/alerts | Danh sách cảnh báo dòng tiền | cashflow.read | read | Scalar |
POST | /v1/cashflow/alerts/{id}:dismiss | Bỏ qua cảnh báo dòng tiền | alert_rule.manage | write | Scalar |
POST | /v1/cashflow/alerts/{id}:snooze | Tạm ẩn cảnh báo dòng tiền (mặc định 7 ngày) | alert_rule.manage | write | Scalar |
GET | /v1/cashflow/categories | Danh sách danh mục dòng tiền | cashflow.read | read | Scalar |
POST | /v1/cashflow/categories | Tạo danh mục dòng tiền tuỳ biến cho công ty | category_rule.write | write | Scalar |
PATCH | /v1/cashflow/categories/{id} | Cập nhật danh mục dòng tiền tuỳ biến | category_rule.write | write | Scalar |
POST | /v1/cashflow/categorization:bulk-accept | Chấp nhận hàng loạt gợi ý phân loại có độ tin cậy cao | category_rule.write | write | Scalar |
GET | /v1/cashflow/category-rules | Danh sách quy tắc phân loại | cashflow.read | read | Scalar |
POST | /v1/cashflow/category-rules | Tạo quy tắc phân loại mới | category_rule.write | write | Scalar |
PATCH | /v1/cashflow/category-rules/{id} | Cập nhật quy tắc phân loại | category_rule.write | write | Scalar |
DELETE | /v1/cashflow/category-rules/{id} | Xoá quy tắc phân loại | category_rule.write | write | Scalar |
PUT | /v1/cashflow/category-rules/{id}/enabled | Bật/tắt quy tắc phân loại | category_rule.write | write | Scalar |
POST | /v1/cashflow/category-rules/{id}:decide-retro-apply | Duyệt hoặc từ chối áp dụng quy tắc cho giao dịch cũ | category_rule.retro_apply.approve | write | Scalar |
POST | /v1/cashflow/category-rules/{id}:preview-impact | Xem trước tác động của quy tắc phân loại | category_rule.write | read | Scalar |
POST | /v1/cashflow/category-rules/{id}:retro-apply | Đề xuất áp dụng quy tắc phân loại cho giao dịch cũ | category_rule.retro_apply.propose | write | Scalar |
POST | /v1/cashflow/category-rules:preview-impact | Xem trước tác động của quy tắc phân loại chưa lưu | category_rule.write | read | Scalar |
GET | /v1/cashflow/category-suggestions | Danh sách gợi ý phân loại từ AI | cashflow.read | read | Scalar |
POST | /v1/cashflow/category-suggestions/{id}:accept | Chấp nhận gợi ý phân loại từ AI | category_rule.write | write | Scalar |
POST | /v1/cashflow/category-suggestions/{id}:dismiss | Bỏ qua gợi ý phân loại từ AI | category_rule.write | write | Scalar |
GET | /v1/cashflow/counterparties | Phân tích đối tác dòng tiền | cashflow.read | read | Scalar |
GET | /v1/cashflow/forecast | Dự báo dòng tiền 13 tuần | cashflow.read | read | Scalar |
GET | /v1/cashflow/forecast-settings | Cấu hình dự báo dòng tiền | cashflow.read | read | Scalar |
PUT | /v1/cashflow/forecast-settings | Cập nhật cấu hình dự báo dòng tiền | forecast.settings.write | write | Scalar |
POST | /v1/cashflow/forecast:run | Chạy lại dự báo dòng tiền theo yêu cầu | cashflow.read | write | Scalar |
GET | /v1/cashflow/overview | Tổng quan dòng tiền hợp nhất | cashflow.read | read | Scalar |
GET | /v1/cashflow/pending-classifications | Danh sách giao dịch chờ phân loại | cashflow.read | read | Scalar |
GET | /v1/categories | Danh sách danh mục hệ thống và công ty | cashflow.read | read | Scalar |
GET | /v1/settlement/upcoming-cash | Dòng tiền sắp về / sắp chi trong 7 ngày | settlement.read | read | Scalar |
Chi tiết endpoint
Phần tiêu đề “Chi tiết endpoint”GET /v1/cashflow/alert-rules
Phần tiêu đề “GET /v1/cashflow/alert-rules”Danh sách quy tắc cảnh báo dòng tiền
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Danh sách quy tắc. —object[],application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/cashflow/alert-rules" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/cashflow/alert-rules");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import list_cashflow_alert_rules
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = list_cashflow_alert_rules.sync(client=dt.client)POST /v1/cashflow/alert-rules
Phần tiêu đề “POST /v1/cashflow/alert-rules”Tạo quy tắc cảnh báo dòng tiền
Quyền: alert_rule.manage- Nhóm tốc độ:
write - Nội dung yêu cầu:
object(application/json) - Phản hồi thành công
201: Quy tắc vừa tạo. —object,application/json - Mã lỗi riêng của endpoint:
conflict
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/alert-rules" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "kind": "forecast_below_threshold", "params": {}, "severity": "warning", "channels": [ "in_app" ], "enabled": true}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/alert-rules", { body: { "kind": "forecast_below_threshold", "params": {}, "severity": "warning", "channels": [ "in_app" ], "enabled": true },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import create_cashflow_alert_rule
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = create_cashflow_alert_rule.sync( client=dt.client, body={ "kind": "forecast_below_threshold", "params": {}, "severity": "warning", "channels": [ "in_app", ], "enabled": True, }, )PUT /v1/cashflow/alert-rules/{id}
Phần tiêu đề “PUT /v1/cashflow/alert-rules/{id}”Cập nhật quy tắc cảnh báo dòng tiền
Quyền: alert_rule.manage- Nhóm tốc độ:
write - Nội dung yêu cầu:
object(application/json) - Phản hồi thành công
200: Quy tắc sau khi cập nhật. —object,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | string (uuid) | — |
curl -sS -X PUT "https://api.dongtien.pro/v1/cashflow/alert-rules/$ID" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "severity": "info"}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.PUT("/v1/cashflow/alert-rules/{id}", { params: { path: { "id": "<id>" }, }, body: { "severity": "info" },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import update_cashflow_alert_rule
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = update_cashflow_alert_rule.sync( id="<id>", client=dt.client, body={ "severity": "info", }, )GET /v1/cashflow/alerts
Phần tiêu đề “GET /v1/cashflow/alerts”Danh sách cảnh báo dòng tiền
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Danh sách cảnh báo. —object[],application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
state | query | Không | string | — |
curl -sS -X GET "https://api.dongtien.pro/v1/cashflow/alerts" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/cashflow/alerts");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import list_cashflow_alerts
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = list_cashflow_alerts.sync(client=dt.client)POST /v1/cashflow/alerts/{id}:dismiss
Phần tiêu đề “POST /v1/cashflow/alerts/{id}:dismiss”Bỏ qua cảnh báo dòng tiền
Quyền: alert_rule.manage- Nhóm tốc độ:
write - Phản hồi thành công
200: Đã bỏ qua cảnh báo. —object,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | string (uuid) | — |
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/alerts/$ID:dismiss" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/alerts/{id}:dismiss", { params: { path: { "id": "<id>" }, },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import dismiss_cashflow_alert
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = dismiss_cashflow_alert.sync(id="<id>", client=dt.client)POST /v1/cashflow/alerts/{id}:snooze
Phần tiêu đề “POST /v1/cashflow/alerts/{id}:snooze”Tạm ẩn cảnh báo dòng tiền (mặc định 7 ngày)
Quyền: alert_rule.manage- Nhóm tốc độ:
write - Nội dung yêu cầu:
object(application/json) - Phản hồi thành công
200: Cảnh báo đã được tạm ẩn. —object,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | string (uuid) | — |
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/alerts/$ID:snooze" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "days": 7}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/alerts/{id}:snooze", { params: { path: { "id": "<id>" }, }, body: { "days": 7 },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import snooze_cashflow_alert
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = snooze_cashflow_alert.sync( id="<id>", client=dt.client, body={ "days": 7, }, )GET /v1/cashflow/categories
Phần tiêu đề “GET /v1/cashflow/categories”Danh sách danh mục dòng tiền
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Danh sách danh mục thu chi. —Category[],application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/cashflow/categories" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/cashflow/categories");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import list_cashflow_categories
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = list_cashflow_categories.sync(client=dt.client)POST /v1/cashflow/categories
Phần tiêu đề “POST /v1/cashflow/categories”Tạo danh mục dòng tiền tuỳ biến cho công ty
Quyền: category_rule.write- Nhóm tốc độ:
write - Nội dung yêu cầu:
object(application/json) - Phản hồi thành công
201: Danh mục vừa tạo. —Category,application/json - Mã lỗi riêng của endpoint:
conflict
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/categories" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "key": "tien_dien_nuoc", "name_vn": "Tiền điện nước", "direction": "out"}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/categories", { body: { "key": "tien_dien_nuoc", "name_vn": "Tiền điện nước", "direction": "out" },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import create_cashflow_category
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = create_cashflow_category.sync( client=dt.client, body={ "key": "tien_dien_nuoc", "name_vn": "Tiền điện nước", "direction": "out", }, )PATCH /v1/cashflow/categories/{id}
Phần tiêu đề “PATCH /v1/cashflow/categories/{id}”Cập nhật danh mục dòng tiền tuỳ biến
Quyền: category_rule.write- Nhóm tốc độ:
write - Nội dung yêu cầu:
object(application/json) - Phản hồi thành công
200: Danh mục sau cập nhật. —Category,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | string (uuid) | — |
curl -sS -X PATCH "https://api.dongtien.pro/v1/cashflow/categories/$ID" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "direction": "in"}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.PATCH("/v1/cashflow/categories/{id}", { params: { path: { "id": "<id>" }, }, body: { "direction": "in" },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import update_cashflow_category
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = update_cashflow_category.sync( id="<id>", client=dt.client, body={ "direction": "in", }, )POST /v1/cashflow/categorization:bulk-accept
Phần tiêu đề “POST /v1/cashflow/categorization:bulk-accept”Chấp nhận hàng loạt gợi ý phân loại có độ tin cậy cao
Quyền: category_rule.write- Nhóm tốc độ:
write - Phản hồi thành công
200: Số lượng giao dịch đã áp dụng. —object,application/json - Mã lỗi riêng của endpoint:
conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
min_confidence | query | Không | number | null | — |
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/categorization:bulk-accept" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/categorization:bulk-accept");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import bulk_accept_categorization
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = bulk_accept_categorization.sync(client=dt.client)GET /v1/cashflow/category-rules
Phần tiêu đề “GET /v1/cashflow/category-rules”Danh sách quy tắc phân loại
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Danh sách quy tắc. —CategoryRule[],application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/cashflow/category-rules" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/cashflow/category-rules");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import list_category_rules
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = list_category_rules.sync(client=dt.client)POST /v1/cashflow/category-rules
Phần tiêu đề “POST /v1/cashflow/category-rules”Tạo quy tắc phân loại mới
Quyền: category_rule.write- Nhóm tốc độ:
write - Nội dung yêu cầu:
object(application/json) - Phản hồi thành công
201: Quy tắc vừa tạo. —CategoryRule,application/json - Mã lỗi riêng của endpoint:
conflict
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/category-rules" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Tiền điện EVN", "conds": [ { "field": "content", "op": "contains", "value": "EVN", "join": "and" } ], "direction": "out", "category_id": "0192f3a4-5b6c-7d8e-9f01-23456789abcd", "action": "assign"}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/category-rules", { body: { "name": "Tiền điện EVN", "conds": [ { "field": "content", "op": "contains", "value": "EVN", "join": "and" } ], "direction": "out", "category_id": "0192f3a4-5b6c-7d8e-9f01-23456789abcd", "action": "assign" },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import create_category_rule
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = create_category_rule.sync( client=dt.client, body={ "name": "Tiền điện EVN", "conds": [ { "field": "content", "op": "contains", "value": "EVN", "join": "and", }, ], "direction": "out", "category_id": "0192f3a4-5b6c-7d8e-9f01-23456789abcd", "action": "assign", }, )PATCH /v1/cashflow/category-rules/{id}
Phần tiêu đề “PATCH /v1/cashflow/category-rules/{id}”Cập nhật quy tắc phân loại
Quyền: category_rule.write- Nhóm tốc độ:
write - Nội dung yêu cầu:
object(application/json) - Phản hồi thành công
200: Quy tắc sau cập nhật. —CategoryRule,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | CategoryRuleId | Mã quy tắc phân loại danh mục (crl_…). |
curl -sS -X PATCH "https://api.dongtien.pro/v1/cashflow/category-rules/$ID" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "conds": [ { "field": "content", "op": "contains", "join": "and" } ], "direction": "in", "action": "assign"}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.PATCH("/v1/cashflow/category-rules/{id}", { params: { path: { "id": "crl_0f5k2m9q4h7t3n8r6v1w0x5yz0" }, }, body: { "conds": [ { "field": "content", "op": "contains", "join": "and" } ], "direction": "in", "action": "assign" },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import update_category_rule
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = update_category_rule.sync( id="crl_0f5k2m9q4h7t3n8r6v1w0x5yz0", client=dt.client, body={ "conds": [ { "field": "content", "op": "contains", "join": "and", }, ], "direction": "in", "action": "assign", }, )DELETE /v1/cashflow/category-rules/{id}
Phần tiêu đề “DELETE /v1/cashflow/category-rules/{id}”Xoá quy tắc phân loại
Quyền: category_rule.write- Nhóm tốc độ:
write - Phản hồi thành công
200: Đã xoá quy tắc. —object,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | CategoryRuleId | Mã quy tắc phân loại danh mục (crl_…). |
curl -sS -X DELETE "https://api.dongtien.pro/v1/cashflow/category-rules/$ID" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.DELETE("/v1/cashflow/category-rules/{id}", { params: { path: { "id": "crl_0f5k2m9q4h7t3n8r6v1w0x5yz0" }, },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import delete_category_rule
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = delete_category_rule.sync(id="crl_0f5k2m9q4h7t3n8r6v1w0x5yz0", client=dt.client)PUT /v1/cashflow/category-rules/{id}/enabled
Phần tiêu đề “PUT /v1/cashflow/category-rules/{id}/enabled”Bật/tắt quy tắc phân loại
Quyền: category_rule.write- Nhóm tốc độ:
write - Nội dung yêu cầu:
object(application/json) - Phản hồi thành công
200: Trạng thái quy tắc đã cập nhật. —CategoryRule,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | CategoryRuleId | Mã quy tắc phân loại danh mục (crl_…). |
curl -sS -X PUT "https://api.dongtien.pro/v1/cashflow/category-rules/$ID/enabled" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "enabled": true}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.PUT("/v1/cashflow/category-rules/{id}/enabled", { params: { path: { "id": "crl_0f5k2m9q4h7t3n8r6v1w0x5yz0" }, }, body: { "enabled": true },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import set_category_rule_enabled
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = set_category_rule_enabled.sync( id="crl_0f5k2m9q4h7t3n8r6v1w0x5yz0", client=dt.client, body={ "enabled": True, }, )POST /v1/cashflow/category-rules/{id}:decide-retro-apply
Phần tiêu đề “POST /v1/cashflow/category-rules/{id}:decide-retro-apply”Duyệt hoặc từ chối áp dụng quy tắc cho giao dịch cũ
Người thứ hai (khác người đề nghị) quyết định yêu cầu category_retro_apply đang chờ. Cùng người đề nghị trả 403 approver_same_as_maker. Duyệt xong, giao dịch khớp được gán danh mục (nhãn do người gán tay luôn được giữ). Nếu tập giao dịch khớp đã đổi so với lúc đề nghị, yêu cầu hết hạn và trả 409 conflict.
- Nhóm tốc độ:
write - Nội dung yêu cầu:
DecideCategoryRetroApply(application/json, bắt buộc) - Phản hồi thành công
200: Kết quả quyết định. —object,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict,idempotency_in_flight,idempotency_key_reused
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | CategoryRuleId | Mã quy tắc phân loại danh mục (crl_…). |
idempotency-key | header | Không | string | Khoá chống gửi trùng (≤ 255 ký tự, nên là UUID). Giữ 24 giờ; gửi lại cùng khoá + cùng nội dung trả lại kết quả cũ. |
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/category-rules/$ID:decide-retro-apply" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "decision": "approve"}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/category-rules/{id}:decide-retro-apply", { params: { path: { "id": "crl_0f5k2m9q4h7t3n8r6v1w0x5yz0" }, }, body: { "decision": "approve" },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import decide_retro_apply_category_rulefrom dongtien_api.models import DecideCategoryRetroApply
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = decide_retro_apply_category_rule.sync( id="crl_0f5k2m9q4h7t3n8r6v1w0x5yz0", client=dt.client, body=DecideCategoryRetroApply.from_dict({ "decision": "approve", }), )POST /v1/cashflow/category-rules/{id}:preview-impact
Phần tiêu đề “POST /v1/cashflow/category-rules/{id}:preview-impact”Xem trước tác động của quy tắc phân loại
Quyền: category_rule.write- Nhóm tốc độ:
read - Phản hồi thành công
200: Số lượng giao dịch sẽ khớp. —object,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | CategoryRuleId | Mã quy tắc phân loại danh mục (crl_…). |
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/category-rules/$ID:preview-impact" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/category-rules/{id}:preview-impact", { params: { path: { "id": "crl_0f5k2m9q4h7t3n8r6v1w0x5yz0" }, },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import preview_category_rule_impact
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = preview_category_rule_impact.sync(id="crl_0f5k2m9q4h7t3n8r6v1w0x5yz0", client=dt.client)POST /v1/cashflow/category-rules/{id}:retro-apply
Phần tiêu đề “POST /v1/cashflow/category-rules/{id}:retro-apply”Đề xuất áp dụng quy tắc phân loại cho giao dịch cũ
Quyền: category_rule.retro_apply.propose- Nhóm tốc độ:
write - Phản hồi thành công
202: Yêu cầu duyệt đã được tạo. —object,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | CategoryRuleId | Mã quy tắc phân loại danh mục (crl_…). |
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/category-rules/$ID:retro-apply" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/category-rules/{id}:retro-apply", { params: { path: { "id": "crl_0f5k2m9q4h7t3n8r6v1w0x5yz0" }, },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import retro_apply_category_rule
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = retro_apply_category_rule.sync(id="crl_0f5k2m9q4h7t3n8r6v1w0x5yz0", client=dt.client)POST /v1/cashflow/category-rules:preview-impact
Phần tiêu đề “POST /v1/cashflow/category-rules:preview-impact”Xem trước tác động của quy tắc phân loại chưa lưu
Quyền: category_rule.write- Nhóm tốc độ:
read - Nội dung yêu cầu:
object(application/json) - Phản hồi thành công
200: Số lượng giao dịch sẽ khớp. —object,application/json - Mã lỗi riêng của endpoint:
conflict
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/category-rules:preview-impact" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "conds": [ { "field": "content", "op": "contains", "join": "and" } ], "direction": "in", "action": "assign"}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/category-rules:preview-impact", { body: { "conds": [ { "field": "content", "op": "contains", "join": "and" } ], "direction": "in", "action": "assign" },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import preview_unsaved_category_rule_impact
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = preview_unsaved_category_rule_impact.sync( client=dt.client, body={ "conds": [ { "field": "content", "op": "contains", "join": "and", }, ], "direction": "in", "action": "assign", }, )GET /v1/cashflow/category-suggestions
Phần tiêu đề “GET /v1/cashflow/category-suggestions”Danh sách gợi ý phân loại từ AI
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Danh sách gợi ý phân loại. —object[],application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/cashflow/category-suggestions" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/cashflow/category-suggestions");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import list_category_suggestions
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = list_category_suggestions.sync(client=dt.client)POST /v1/cashflow/category-suggestions/{id}:accept
Phần tiêu đề “POST /v1/cashflow/category-suggestions/{id}:accept”Chấp nhận gợi ý phân loại từ AI
Quyền: category_rule.write- Nhóm tốc độ:
write - Phản hồi thành công
200: Đã chấp nhận gợi ý. —object,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | string (uuid) | — |
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/category-suggestions/$ID:accept" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/category-suggestions/{id}:accept", { params: { path: { "id": "<id>" }, },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import accept_category_suggestion
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = accept_category_suggestion.sync(id="<id>", client=dt.client)POST /v1/cashflow/category-suggestions/{id}:dismiss
Phần tiêu đề “POST /v1/cashflow/category-suggestions/{id}:dismiss”Bỏ qua gợi ý phân loại từ AI
Quyền: category_rule.write- Nhóm tốc độ:
write - Phản hồi thành công
200: Đã bỏ qua gợi ý. —object,application/json - Mã lỗi riêng của endpoint:
resource_not_found,conflict
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
id | path | Có | string (uuid) | — |
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/category-suggestions/$ID:dismiss" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/category-suggestions/{id}:dismiss", { params: { path: { "id": "<id>" }, },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import dismiss_category_suggestion
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = dismiss_category_suggestion.sync(id="<id>", client=dt.client)GET /v1/cashflow/counterparties
Phần tiêu đề “GET /v1/cashflow/counterparties”Phân tích đối tác dòng tiền
Top 90 ngày đối tác theo chiều vào/ra, mức độ tập trung và trạng thái thuế.
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Danh sách phân tích đối tác. —object,application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
direction | query | Không | string | — |
limit | query | Không | integer | — |
curl -sS -X GET "https://api.dongtien.pro/v1/cashflow/counterparties" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/cashflow/counterparties");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import get_cashflow_counterparties
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = get_cashflow_counterparties.sync(client=dt.client)GET /v1/cashflow/forecast
Phần tiêu đề “GET /v1/cashflow/forecast”Dự báo dòng tiền 13 tuần
Dự báo 13 tuần theo 3 kịch bản (cơ sở, thận trọng, lạc quan), P10/P50/P90.
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Dự báo dòng tiền 13 tuần. —object,application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
scenario | query | Không | ForecastScenario | Kịch bản dự báo dòng tiền: Cơ sở, Thận trọng, Lạc quan. |
company_ids | query | Không | string | — |
curl -sS -X GET "https://api.dongtien.pro/v1/cashflow/forecast" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/cashflow/forecast");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import get_cashflow_forecast
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = get_cashflow_forecast.sync(client=dt.client)Công cụ forecast_cashflow, scope cashflow:read.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "forecast_cashflow", "arguments": {} }}GET /v1/cashflow/forecast-settings
Phần tiêu đề “GET /v1/cashflow/forecast-settings”Cấu hình dự báo dòng tiền
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Cấu hình dự báo. —object,application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/cashflow/forecast-settings" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/cashflow/forecast-settings");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import get_forecast_settings
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = get_forecast_settings.sync(client=dt.client)PUT /v1/cashflow/forecast-settings
Phần tiêu đề “PUT /v1/cashflow/forecast-settings”Cập nhật cấu hình dự báo dòng tiền
Quyền: forecast.settings.write- Nhóm tốc độ:
write - Nội dung yêu cầu:
object(application/json) - Phản hồi thành công
200: Cấu hình dự báo đã cập nhật. —object,application/json - Mã lỗi riêng của endpoint:
conflict
curl -sS -X PUT "https://api.dongtien.pro/v1/cashflow/forecast-settings" \ -H "Authorization: Bearer $DT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "min_balance_threshold": 4500000}'import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.PUT("/v1/cashflow/forecast-settings", { body: { "min_balance_threshold": 4500000 },});import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import update_forecast_settings
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = update_forecast_settings.sync( client=dt.client, body={ "min_balance_threshold": 4500000, }, )POST /v1/cashflow/forecast:run
Phần tiêu đề “POST /v1/cashflow/forecast:run”Chạy lại dự báo dòng tiền theo yêu cầu
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
write - Phản hồi thành công
200: Kết quả dự báo vừa chạy. —object,application/json - Mã lỗi riêng của endpoint:
conflict
curl -sS -X POST "https://api.dongtien.pro/v1/cashflow/forecast:run" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.POST("/v1/cashflow/forecast:run");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import trigger_cashflow_forecast_run
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = trigger_cashflow_forecast_run.sync(client=dt.client)GET /v1/cashflow/overview
Phần tiêu đề “GET /v1/cashflow/overview”Tổng quan dòng tiền hợp nhất
Số dư hợp nhất (đã xác thực + tạm tính), vào/ra 30 ngày so kỳ trước, biểu đồ 12 tuần và tỷ trọng danh mục.
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Dữ liệu tổng quan dòng tiền. —object,application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
Tham số
Phần tiêu đề “Tham số”| Tên | Vị trí | Bắt buộc | Kiểu | Mô tả |
|---|---|---|---|---|
company_ids | query | Không | string | Danh sách id công ty phân cách bởi dấu phẩy |
from | query | Không | string | — |
to | query | Không | string | — |
curl -sS -X GET "https://api.dongtien.pro/v1/cashflow/overview" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/cashflow/overview");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import get_cashflow_overview
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = get_cashflow_overview.sync(client=dt.client)GET /v1/cashflow/pending-classifications
Phần tiêu đề “GET /v1/cashflow/pending-classifications”Danh sách giao dịch chờ phân loại
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Danh sách giao dịch chờ phân loại. —object[],application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/cashflow/pending-classifications" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/cashflow/pending-classifications");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import list_pending_classifications
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = list_pending_classifications.sync(client=dt.client)GET /v1/categories
Phần tiêu đề “GET /v1/categories”Danh sách danh mục hệ thống và công ty
Quyền: cashflow.read Scope: cashflow:read- Nhóm tốc độ:
read - Phản hồi thành công
200: Danh sách các danh mục thu chi. —Category[],application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/categories" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/categories");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import list_categories
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = list_categories.sync(client=dt.client)GET /v1/settlement/upcoming-cash
Phần tiêu đề “GET /v1/settlement/upcoming-cash”Dòng tiền sắp về / sắp chi trong 7 ngày
Feed dữ liệu nguồn settlement và payout_lag phục vụ biểu đồ và dự báo dòng tiền Phase 14.
- Nhóm tốc độ:
read - Phản hồi thành công
200: Danh sách khoản tiền dự kiến trong 7 ngày tới. —object,application/json - Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/settlement/upcoming-cash" \ -H "Authorization: Bearer $DT_API_KEY"import { createClient } from "@dongtien/sdk";
const dt = createClient({ apiKey: process.env.DT_API_KEY! });
const { data } = await dt.GET("/v1/settlement/upcoming-cash");import os
from dongtien import DongTienfrom dongtien_api.api.dong_tien import get_upcoming_cash
with DongTien(api_key=os.environ["DT_API_KEY"]) as dt: result = get_upcoming_cash.sync(client=dt.client)Đối tượng
Phần tiêu đề “Đối tượng”Category
Phần tiêu đề “Category”| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
created_at | Timestamp | Có | — |
direction | CategoryDirection | Có | Giá trị: in, out. |
id | string (uuid) | Có | — |
key | string | Có | — |
name_vn | string | Có | — |
org_id | OrgId | null | Có | — |
system | boolean | Có | — |
updated_at | Timestamp | Có | — |
CategoryRule
Phần tiêu đề “CategoryRule”| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
action | string | Có | Giá trị: assign, tag_review. |
ai_confidence | number | null | Có | — |
applied_count | integer | Có | — |
approved_by | string (uuid) | null | Có | — |
category_id | string (uuid) | null | Có | — |
conds | object[] | Có | — |
conds[].field | string | Có | Giá trị: content, counterparty_mst, counterparty_name, recipient_account_in_list, amount, account, direction. |
conds[].join | string | Không | Giá trị: and, or. |
conds[].op | string | Có | Giá trị: contains, starts_with, regex, eq, in, gte. |
conds[].value | string | number | string[] | Có | — |
created_at | Timestamp | Có | — |
direction | CategoryDirection | null | Có | Giá trị: in, out. |
enabled | boolean | Có | — |
id | CategoryRuleId | Có | — |
locked | boolean | Có | — |
name | string | Có | — |
org_id | OrgId | Có | — |
scope | map<string, any> | Có | — |
seq_no | integer | Có | — |
source | string | Có | Giá trị: user, ai_suggested, system_default. |
updated_at | Timestamp | Có | — |
DecideCategoryRetroApply
Phần tiêu đề “DecideCategoryRetroApply”| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
decision | string | Có | Giá trị: approve, reject. |
reason | string | Không | — |
Lưu ý về từ "đã xác thực": đây là xác thực nguồn, không phải ngân hàng xác nhận quyết toán.
do dinh dong de doi da duoc dang day