Bỏ qua để đến nội dung

Đối soát

~89 phút đọc

Đề nghị phân bổ giao dịch vào công nợ, gợi ý khớp và quy tắc đối soát; duyệt theo chính sách người lập và người duyệt.

MethodPathTóm tắtQuyềnNhóm tốc độTương tác
POST/v1/accounting/coa-profiles/{id}:duplicateNhân bản hồ sơ hệ thống tài khoảnmapping.writewriteScalar
GET/v1/accounting/export-readinessKiểm tra mức độ sẵn sàng xuất kế toánexport.dry_runreadScalar
GET/v1/accounting/mapping/bank-accounts/{id}Lấy ánh xạ tài khoản ngân hàng sang tài khoản kế toánmapping.writereadScalar
PUT/v1/accounting/mapping/bank-accounts/{id}Cập nhật ánh xạ tài khoản ngân hàngmapping.writewriteScalar
GET/v1/accounting/mapping/changesDanh sách thay đổi ánh xạ chờ duyệtmapping.approvereadScalar
POST/v1/accounting/mapping/changes/{id}:approveDuyệt thay đổi ánh xạmapping.approvewriteScalar
POST/v1/accounting/mapping/changes/{id}:rejectTừ chối thay đổi ánh xạmapping.approvewriteScalar
GET/v1/accounting/mapping/counterparty-codesMã đối tượng theo phần mềm đíchmapping.writereadScalar
PUT/v1/accounting/mapping/counterparty-codesĐặt mã đối tượngmapping.writewriteScalar
POST/v1/accounting/mapping/counterparty-codes:importNhập danh mục mã đối tượng từ phần mềm đíchmapping.writewriteScalar
GET/v1/accounting/mapping/rulesDanh sách quy tắc định khoảnmapping.writereadScalar
POST/v1/accounting/mapping/rulesTạo quy tắc định khoảnmapping.writewriteScalar
PATCH/v1/accounting/mapping/rules/{id}Cập nhật quy tắc định khoảnmapping.writewriteScalar
POST/v1/accounting/mapping/rules:proposeĐề xuất quy tắc định khoản (gói, maker-checker)mapping.writewriteScalar
GET/v1/accounting/mapping/templatesDanh sách bộ mẫu quy tắc định khoảnmapping.writereadScalar
POST/v1/accounting/mapping:apply-templateÁp dụng bộ mẫu quy tắc định khoảnmapping.writewriteScalar
GET/v1/accounting/misa/connectionThông tin kết nối MISA AMISaccounting.misa.readreadScalar
PUT/v1/accounting/misa/connectionThiết lập kết nối MISA AMISaccounting.misa.managewriteScalar
DELETE/v1/accounting/misa/connectionNgắt kết nối MISA AMISaccounting.misa.managewriteScalar
POST/v1/accounting/misa/connection:testKiểm tra kết nối và danh mục MISAaccounting.misa.managewriteScalar
GET/v1/accounting/misa/dictionaryDanh sách ánh xạ danh mục MISAaccounting.misa.readreadScalar
POST/v1/accounting/misa/dictionary:syncĐồng bộ danh mục thiếu sang MISA AMISaccounting.misa.managewriteScalar
GET/v1/accounting/misa/requestsDanh sách đề nghị chứng từ MISAaccounting.misa.readreadScalar
GET/v1/accounting/misa/requests/{id}Chi tiết đề nghị chứng từ MISAaccounting.misa.readreadScalar
POST/v1/accounting/misa/requests/{id}:cancelHuỷ đề nghị chứng từ trong MISAaccounting.misa.managewriteScalar
POST/v1/accounting/misa/requests/{id}:mark-generatedXác nhận kế toán đã lập chứng từ thủ côngaccounting.misa.managewriteScalar
POST/v1/accounting/misa/requests/{id}:resendGửi lại đề nghị chứng từ sang MISAaccounting.misa.managewriteScalar
POST/v1/accounting/misa/requests/{id}:reverseĐảo đề nghị chứng từ MISA đã lậpaccounting.misa.managewriteScalar
GET/v1/accounting/periodsDanh sách kỳ kế toánexport.dry_runreadScalar
POST/v1/accounting/periods/{ym}/lock-requestsYêu cầu khoá kỳ kế toánperiod.lock_requestwriteScalar
POST/v1/accounting/periods/{ym}/lock-requests/{id}:approveDuyệt khoá kỳ kế toánperiod.lock_approvewriteScalar
POST/v1/accounting/periods/{ym}/lock-requests/{id}:rejectTừ chối khoá kỳ kế toánperiod.lock_approvewriteScalar
POST/v1/accounting/periods/{ym}/unlock-requestsYêu cầu mở khoá kỳ kế toánperiod.unlock_requestwriteScalar
POST/v1/accounting/periods/{ym}/unlock-requests/{id}:approveDuyệt mở khoá kỳ kế toánperiod.unlock_approvewriteScalar
POST/v1/accounting/periods/{ym}/unlock-requests/{id}:rejectTừ chối mở khoá kỳ kế toánperiod.unlock_approvewriteScalar
GET/v1/allocationsDanh sách phân bổ đối soátallocation.createreadScalar
POST/v1/allocationsTạo bản nháp phân bổ đối soátallocation.createwriteScalar
GET/v1/allocations/{id}Chi tiết phân bổ đối soátallocation.createreadScalar
PATCH/v1/allocations/{id}Cập nhật bản nháp phân bổ đối soátallocation.createwriteScalar
DELETE/v1/allocations/{id}Xoá bản nháp phân bổallocation.createwriteScalar
GET/v1/allocations/{id}/writebackTrạng thái ghi ngược hoadon.pro của phân bổallocation.createreadScalar
POST/v1/allocations/{id}:approveDuyệt phân bổ đối soát (checker)allocation.approvewriteScalar
POST/v1/allocations/{id}:rejectTừ chối phân bổ đối soátallocation.rejectwriteScalar
POST/v1/allocations/{id}:retry-writebackThử lại ghi ngược thanh toán sang hoadon.prohoadon.writeback.retryreplayScalar
POST/v1/allocations/{id}:reverseĐảo phân bổ đã duyệtallocation.approvewriteScalar
POST/v1/allocations/{id}:submitGửi phân bổ để phê duyệt (maker)allocation.createwriteScalar
POST/v1/allocations/{id}:withdrawRút lại phân bổ đang chờ duyệt (maker)allocation.withdrawwriteScalar
POST/v1/allocations:approve-batchDuyệt hàng loạt phân bổ (tối đa 50 dòng)allocation.approvewriteScalar
GET/v1/expected-paymentsDanh sách khoản dự thu/chiallocation.createreadScalar
POST/v1/expected-paymentsTạo khoản dự thu/chiallocation.createwriteScalar
POST/v1/expected-payments:importNhập hàng loạt dự thu/chi (tối đa 500 dòng)allocation.createwriteScalar
GET/v1/exportsDanh sách các lô xuất kế toánexport.downloadreadScalar
POST/v1/exportsTạo lô xuất kế toán (gửi duyệt)export.createexportScalar
POST/v1/exports/dry-runChạy thử kiểm tra xuất kế toánexport.dry_runexportScalar
GET/v1/exports/goldenDanh sách phiên bản golden templatesexport.dry_runreadScalar
GET/v1/exports/{id}Chi tiết một lô xuất kế toánexport.downloadreadScalar
GET/v1/exports/{id}/fileTải tệp chứng từ xuấtexport.downloadreadScalar
GET/v1/exports/{id}/previewXem trước các dòng chứng từ của lô xuấtexport.downloadreadScalar
POST/v1/exports/{id}:approveDuyệt lô xuất kế toánexport.approveexportScalar
POST/v1/exports/{id}:re-exportXuất lại lô chứng từexport.createexportScalar
POST/v1/exports/{id}:rejectTừ chối lô xuất kế toánexport.rejectexportScalar
POST/v1/exports/{id}:rerun-checksChạy lại kiểm tra điều kiện xuấtexport.createexportScalar
GET/v1/recon-followupsDanh sách việc cần xử lý đối soátallocation.createreadScalar
GET/v1/recon-rulesDanh sách quy tắc gợi ý đối soátrule.readreadScalar
POST/v1/recon-rulesTạo quy tắc gợi ý mới (không có auto_post)rule.managewriteScalar
GET/v1/recon-rules/{id}Chi tiết quy tắc đối soátrule.readreadScalar
PUT/v1/recon-rules/{id}Cập nhật quy tắc đối soát (tạo phiên bản mới)rule.managewriteScalar
DELETE/v1/recon-rules/{id}Xoá quy tắc đối soátrule.managewriteScalar
POST/v1/recon-rules/{id}:disableTắt quy tắc đối soátrule.managewriteScalar
POST/v1/recon-rules/{id}:dry-runChạy thử quy tắc trên 30 ngày (không ghi sổ)rule.readwriteScalar
POST/v1/recon-rules/{id}:enableBật quy tắc đối soátrule.managewriteScalar
GET/v1/recon-settingsCài đặt dung sai & phạm vi đối soátrule.readreadScalar
PUT/v1/recon-settingsCập nhật cài đặt dung sai & phạm vi đối soátrecon.settings.writewriteScalar
GET/v1/reconciliation/queueHàng chờ duyệt đối soátallocation.createreadScalar
POST/v1/reconciliation/queueĐưa giao dịch vào hàng chờ đối soátallocation.createwriteScalar
POST/v1/reconciliation/suggestions:rerunChạy lại công cụ gợi ý đối soátallocation.createwriteScalar
GET/v1/reconciliation/summaryTổng quan đối soátallocation.createreadScalar
GET/v1/reconciliation/workspaceDữ liệu màn làm việc đối soátallocation.createreadScalar
GET/v1/settlement/obligationsDanh sách nghĩa vụ thanh toánsettlement.readreadScalar
POST/v1/settlement/obligations/allocations/{aid}:approveDuyệt gạch nợ nghĩa vụobligation_allocation.approvewriteScalar
POST/v1/settlement/obligations/allocations/{aid}:rejectTừ chối gạch nợ nghĩa vụobligation_allocation.approvewriteScalar
POST/v1/settlement/obligations/allocations/{aid}:reverseĐảo gạch nợ đã duyệtobligation_allocation.approvewriteScalar
POST/v1/settlement/obligations/allocations:bulk-approveDuyệt hàng loạt gạch nợobligation_allocation.approvewriteScalar
GET/v1/settlement/obligations/{id}Chi tiết nghĩa vụ thanh toánsettlement.readreadScalar
POST/v1/settlement/obligations/{id}/allocationsTạo gạch nợ nghĩa vụ với giao dịch ngân hàngobligation_allocation.createwriteScalar
POST/v1/settlement/obligations/{id}:remindGửi nhắc nợ đối tácsettlement.readwriteScalar
POST/v1/settlement/obligations/{id}:statement-sendGửi bảng kê đối soát qua emailsettlement.readwriteScalar
POST/v1/settlement/orders:importNhập danh sách đơn hàng xuất từ sànpayout.importwriteScalar
GET/v1/settlement/payoutsDanh sách đợt quyết toán / sao kê sànsettlement.readreadScalar
GET/v1/settlement/payouts/{id}Chi tiết đợt quyết toánsettlement.readreadScalar
POST/v1/settlement/payouts/{id}:assign-statementGán thủ công giao dịch ngân hàng vào đợt payoutpayout.importwriteScalar
POST/v1/settlement/payouts/{id}:reminderĐặt hẹn nhắc tiền về cho đợt payoutsettlement.readwriteScalar
POST/v1/settlement/payouts/{id}:variance-approveDuyệt ghi nhận chênh lệch payoutpayout.variance.approvewriteScalar
POST/v1/settlement/payouts/{id}:variance-claim-exportXuất tệp khiếu nại chênh lệch gửi sànpayout.variance.proposewriteScalar
POST/v1/settlement/payouts/{id}:variance-recognitionĐề xuất ghi nhận chênh lệch payoutpayout.variance.proposewriteScalar
GET/v1/settlement/report-files/{id}Tải tệp báo cáo đối soát (XLSX / PDF)settlement.readexportScalar
GET/v1/settlement/report-schedulesDanh sách lịch tự động gửi báo cáo đối soátsettlement.readreadScalar
PUT/v1/settlement/report-schedules/{id}Cấu hình lịch tự động gửi báo cáo đối soátsettlement.readwriteScalar
GET/v1/settlement/reports/{kind}Báo cáo đối soát settlement (XLSX / PDF)settlement.readreadScalar
GET/v1/settlement/settingsNgưỡng đối soát payoutsettlement.readreadScalar
PUT/v1/settlement/settingsĐặt ngưỡng đối soát payoutpartner.approvewriteScalar
GET/v1/settlement/sku-brand-mapLấy bảng ánh xạ SKU sang nhãn hàng / đối tác hãngsettlement.readreadScalar
PUT/v1/settlement/sku-brand-mapCập nhật bảng ánh xạ SKU sànpartner.writewriteScalar
GET/v1/settlement/split-rulesDanh sách quy tắc chia doanh thusettlement.readreadScalar
POST/v1/settlement/split-rulesTạo quy tắc chia doanh thusplit_rule.writewriteScalar
GET/v1/settlement/split-rules/{id}Chi tiết quy tắc chiasettlement.readreadScalar
POST/v1/settlement/split-rules/{id}/versionsTạo phiên bản quy tắc mớisplit_rule.writewriteScalar
POST/v1/settlement/split-rules/{id}/versions/{vid}:approveDuyệt phiên bản quy tắcsplit_rule.approvewriteScalar
POST/v1/settlement/split-rules/{id}/versions/{vid}:rejectTừ chối phiên bản quy tắcsplit_rule.approvewriteScalar
GET/v1/settlement/statements/{id}Trạng thái nhập sao kê sànpayout.importreadScalar
POST/v1/settlement/statements/{id}:commitXác nhận nhập sao kê sànpayout.importwriteScalar
POST/v1/settlement/statements:importTải lên tệp sao kê sàn (Shopee, TikTok, Lazada)payout.importwriteScalar
GET/v1/settlement/summaryTổng quan đối soátsettlement.readreadScalar
GET/v1/transactions/{id}/suggestionsGợi ý đối soát cho một giao dịchallocation.createreadScalar
POST/v1/transactions/{id}:ignore-reconĐánh dấu giao dịch không cần đối soátallocation.createwriteScalar
POST/v1/transactions/{id}:route-settlementChuyển giao dịch payout sang đối soát sàn (Settlement)allocation.createwriteScalar

Nhân bản hồ sơ hệ thống tài khoản

Nhân bản hồ sơ hệ thống tài khoản và danh mục tài khoản mà không sửa lịch sử.

Quyền: mapping.write Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóstring (uuid)—
idempotency-keyheaderKhôngstringKhoá 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/accounting/coa-profiles/$ID:duplicate" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "TT133 - bản nháp chuyển sang TT99"
}'

Mở trong tài liệu tương tác

Kiểm tra mức độ sẵn sàng xuất kế toán

Kiểm tra tiền điều kiện trước khi tạo lô (giao dịch tạm tính, độ khớp số dư, ánh xạ thiếu).

Quyền: export.dry_run
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Mức độ sẵn sàng xuất kế toán. — ExportReadiness, application/json
  • Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
TênVị tríBắt buộcKiểuMô tả
periodqueryCóstring—
targetqueryCóExportTargetĐích xuất kế toán: MISA AMIS, MISA SME, Fast, Excel TT133, Excel TT99 hoặc OpenAPI MISA AMIS.
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/export-readiness?period=$PERIOD&target=misa_amis" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Lấy ánh xạ tài khoản ngân hàng sang tài khoản kế toán

Xem định khoản và mã tương ứng của tài khoản ngân hàng trong phần mềm đích.

Quyền: mapping.write
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Thông tin ánh xạ tài khoản. — BankAccountGlMap \| null, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóAccountIdMã tài khoản ngân hàng (acc_…).
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/mapping/bank-accounts/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Cập nhật ánh xạ tài khoản ngân hàng

Thiết lập tài khoản kế toán (1121...) và mã tương ứng trong MISA/Fast.

Quyền: mapping.write Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóAccountIdMã tài khoản ngân hàng (acc_…).
idempotency-keyheaderKhôngstringKhoá 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 PUT "https://api.dongtien.pro/v1/accounting/mapping/bank-accounts/$ID" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"gl_code": "1121",
"effective_from": "2026-10-19"
}'

Mở trong tài liệu tương tác

Danh sách thay đổi ánh xạ chờ duyệt

Các thay đổi ánh xạ tài khoản ngân hàng và quy tắc định khoản đang chờ người kiểm tra duyệt.

Quyền: mapping.approve
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách thay đổi ánh xạ. — MappingChangeList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
statequeryKhôngstring—
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
limitqueryKhônginteger—
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/mapping/changes" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Duyệt thay đổi ánh xạ

Người kiểm tra (khác người đề xuất) duyệt thay đổi ánh xạ; từ lúc duyệt, ánh xạ mới áp dụng cho các chứng từ chưa xuất.

Quyền: mapping.approve Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóApprovalRequestIdMã yêu cầu duyệt (apr_…).
idempotency-keyheaderKhôngstringKhoá 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/accounting/mapping/changes/$ID:approve" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Từ chối thay đổi ánh xạ

Người kiểm tra từ chối thay đổi ánh xạ; ánh xạ đang áp dụng không đổi.

Quyền: mapping.approve Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóApprovalRequestIdMã yêu cầu duyệt (apr_…).
idempotency-keyheaderKhôngstringKhoá 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/accounting/mapping/changes/$ID:reject" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Sai tài khoản kế toán, vui lòng kiểm tra lại."
}'

Mở trong tài liệu tương tác

Mã đối tượng theo phần mềm đích

Mã đối tượng (khách hàng/nhà cung cấp) sẽ xuất cho một đích: mã kế toán đã lưu hoặc mã suy ra (đánh dấu derived = sẽ tạo mới trên đích).

Quyền: mapping.write
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Mã đối tượng. — CounterpartyCodeList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
targetqueryCóCounterpartyCodeTargetPhần mềm kế toán đích của mã đối tượng.
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
limitqueryKhônginteger—
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/mapping/counterparty-codes?target=misa_amis" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Đặt mã đối tượng

Lưu mã đối tượng cho một đối tác trên một đích. Mã trùng với mã của đối tác khác trên cùng đích bị từ chối (409).

Quyền: mapping.write Idempotency-Key: tuỳ chọn
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: PutCounterpartyCodeBody (application/json, bắt buộc)
  • Phản hồi thành công 200: Đã lưu mã đối tượng. — CounterpartyCodeEntry, application/json
  • Mã lỗi riêng của endpoint: conflict, idempotency_in_flight, idempotency_key_reused
TênVị tríBắt buộcKiểuMô tả
idempotency-keyheaderKhôngstringKhoá 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 PUT "https://api.dongtien.pro/v1/accounting/mapping/counterparty-codes" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"counterparty_id": "cpt_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"target": "misa_amis",
"code": "KH_VINHPHAT"
}'

Mở trong tài liệu tương tác

POST /v1/accounting/mapping/counterparty-codes:import

Phần tiêu đề “POST /v1/accounting/mapping/counterparty-codes:import”

Nhập danh mục mã đối tượng từ phần mềm đích

Dùng lại mã đã có trong MISA/Fast: khớp đối tác theo MST rồi theo tên đã chuẩn hoá và lưu mã.

Quyền: mapping.write Idempotency-Key: tuỳ chọn
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: ImportCounterpartyCodesBody (application/json, bắt buộc)
  • Phản hồi thành công 200: Kết quả nhập. — ImportCounterpartyCodesResult, application/json
  • Mã lỗi riêng của endpoint: conflict, idempotency_in_flight, idempotency_key_reused
TênVị tríBắt buộcKiểuMô tả
idempotency-keyheaderKhôngstringKhoá 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/accounting/mapping/counterparty-codes:import" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target": "misa_amis",
"rows": [
{
"code": "KH_VINHPHAT",
"mst": "0301234567",
"name": "CTY CP VAT LIEU XD VINH PHAT"
}
]
}'

Mở trong tài liệu tương tác

Danh sách quy tắc định khoản

Liệt kê các quy tắc định khoản tự động cho giao dịch.

Quyền: mapping.write
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách quy tắc định khoản. — MappingRuleList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
profile_idqueryKhôngstring (uuid)—
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
limitqueryKhônginteger—
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/mapping/rules" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tạo quy tắc định khoản

Thêm quy tắc ánh xạ phân loại sang định khoản Nợ/Có.

Quyền: mapping.write Idempotency-Key: tuỳ chọn
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: CreateMappingRuleBody (application/json, bắt buộc)
  • Phản hồi thành công 201: Đã tạo quy tắc định khoản. — MappingRule, application/json
  • Mã lỗi riêng của endpoint: conflict, idempotency_in_flight, idempotency_key_reused
TênVị tríBắt buộcKiểuMô tả
idempotency-keyheaderKhôngstringKhoá 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/accounting/mapping/rules" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Thu tiền khách hàng qua ngân hàng",
"profile_id": "0192f2f0-7c3e-7d3a-9b1a-3c5d6e7f8a90",
"conditions": {},
"voucher_type": "BC",
"debit_account": "1121",
"credit_account": "131",
"case_code_required": false,
"priority": 100,
"effective_from": "2026-10-19"
}'

Mở trong tài liệu tương tác

Cập nhật quy tắc định khoản

Sửa đổi điều kiện hoặc tài khoản định khoản của quy tắc.

Quyền: mapping.write Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóMappingRuleIdMã quy tắc định khoản (map_…).
idempotency-keyheaderKhôngstringKhoá 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 PATCH "https://api.dongtien.pro/v1/accounting/mapping/rules/$ID" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Thu tiền khách hàng qua ngân hàng",
"profile_id": "0192f2f0-7c3e-7d3a-9b1a-3c5d6e7f8a90",
"conditions": {},
"voucher_type": "BC",
"debit_account": "1121",
"credit_account": "131",
"case_code_required": false,
"priority": 100,
"effective_from": "2026-10-19"
}'

Mở trong tài liệu tương tác

Đề xuất quy tắc định khoản (gói, maker-checker)

Gói một hoặc nhiều quy tắc định khoản thành MỘT yêu cầu duyệt mapping_change; chỉ khi người duyệt (khác người đề xuất) chấp thuận các quy tắc mới có hiệu lực.

Quyền: mapping.write Idempotency-Key: tuỳ chọn
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: ProposeMappingRulesBody (application/json, bắt buộc)
  • Phản hồi thành công 201: Đã gửi đề xuất, chờ duyệt. — MappingProposalResult, application/json
  • Mã lỗi riêng của endpoint: conflict, idempotency_in_flight, idempotency_key_reused
TênVị tríBắt buộcKiểuMô tả
idempotency-keyheaderKhôngstringKhoá 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/accounting/mapping/rules:propose" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rules": [
{
"name": "Thu tiền khách hàng qua ngân hàng",
"conditions": {
"direction": "in"
},
"voucher_type": "BC",
"debit_account": "1121",
"credit_account": "131",
"priority": 90
}
],
"note": "Quy tắc cho tài khoản VCB chính."
}'

Mở trong tài liệu tương tác

Danh sách bộ mẫu quy tắc định khoản

Các bộ mẫu quy tắc có thể áp dụng cho hồ sơ hệ thống tài khoản của công ty (chỉ bộ mẫu cùng hệ thống TK).

Quyền: mapping.write
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Bộ mẫu áp dụng được. — MappingTemplateList, application/json
  • Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/mapping/templates" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Áp dụng bộ mẫu quy tắc định khoản

Tạo toàn bộ quy tắc của bộ mẫu thành MỘT yêu cầu duyệt mapping_change (maker-checker). Từ chối nếu hệ thống TK của hồ sơ khác bộ mẫu hoặc thiếu tài khoản mà bộ mẫu cần.

Quyền: mapping.write Idempotency-Key: tuỳ chọn
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: ApplyMappingTemplateBody (application/json, bắt buộc)
  • Phản hồi thành công 201: Đã gửi bộ mẫu để duyệt. — ApplyMappingTemplateResult, application/json
  • Mã lỗi riêng của endpoint: conflict, idempotency_in_flight, idempotency_key_reused
TênVị tríBắt buộcKiểuMô tả
idempotency-keyheaderKhôngstringKhoá 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/accounting/mapping:apply-template" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template_id": "tt133-standard"
}'

Mở trong tài liệu tương tác

Thông tin kết nối MISA AMIS

Lấy trạng thái kết nối MISA AMIS của công ty hiện tại.

Quyền: accounting.misa.read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Thông tin kết nối. — MisaConnection \| null, application/json
  • Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/misa/connection" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Thiết lập kết nối MISA AMIS

Lưu mã kết nối AMIS (access_code) do khách hàng cung cấp và thử lấy token ngay.

Quyền: accounting.misa.manage Cần xác thực lại gần đây
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: PutMisaConnectionBody (application/json, bắt buộc)
  • Phản hồi thành công 200: Kết nối đã được cập nhật. — MisaConnection, application/json
  • Mã lỗi riêng của endpoint: step_up_required, conflict
curl -sS -X PUT "https://api.dongtien.pro/v1/accounting/misa/connection" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"access_code": "AMIS-7F3K9Q2XMD41"
}'

Mở trong tài liệu tương tác

Ngắt kết nối MISA AMIS

Xoá mã kết nối MISA AMIS và ngừng đồng bộ chứng từ.

Quyền: accounting.misa.manage Cần xác thực lại gần đây
  • Nhóm tốc độ: write
  • Phản hồi thành công 204: Đã ngắt kết nối. — không có nội dung
  • Mã lỗi riêng của endpoint: step_up_required, conflict
curl -sS -X DELETE "https://api.dongtien.pro/v1/accounting/misa/connection" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Kiểm tra kết nối và danh mục MISA

Gọi thử các API danh mục của MISA AMIS để kiểm tra tính hợp lệ của mã kết nối và lấy danh sách chi nhánh, tài khoản ngân hàng.

Quyền: accounting.misa.manage Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idempotency-keyheaderKhôngstringKhoá 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/accounting/misa/connection:test" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Danh sách ánh xạ danh mục MISA

Xem bảng ánh xạ tài khoản ngân hàng và đối tượng sang mã trong MISA AMIS.

Quyền: accounting.misa.read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách danh mục MISA. — MisaDictionaryItem[], application/json
  • Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
TênVị tríBắt buộcKiểuMô tả
kindqueryKhôngMisaDictionaryKindLoại danh mục MISA: bank_account (tài khoản ngân hàng) hoặc account_object (khách hàng/nhà cung cấp).
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/misa/dictionary" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Đồng bộ danh mục thiếu sang MISA AMIS

Tạo các tài khoản ngân hàng hoặc đối tượng còn thiếu trong MISA bằng save_dictionary kèm ID và thăm dò (poll) kết quả.

Quyền: accounting.misa.manage Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idempotency-keyheaderKhôngstringKhoá 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/accounting/misa/dictionary:sync" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Danh sách đề nghị chứng từ MISA

Liệt kê các đề nghị lập chứng từ đã gửi sang MISA AMIS.

Quyền: accounting.misa.read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách đề nghị chứng từ. — MisaVoucherRequestList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
statequeryKhôngMisaVoucherRequestStateTrạng thái đề nghị chứng từ MISA: queued, blocked, sent, generated, failed_generation, posted_inferred, unconfirmed, superseded, dead.
batch_idqueryKhôngExportBatchIdMã lô xuất kế toán (exb_…).
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
limitqueryKhônginteger—
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/misa/requests" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Chi tiết đề nghị chứng từ MISA

Xem chi tiết một đề nghị lập chứng từ và lịch sử gửi.

Quyền: accounting.misa.read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Chi tiết đề nghị chứng từ. — MisaVoucherRequest, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóMisaVoucherRequestIdMã đề nghị chứng từ MISA AMIS (mvr_…).
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/misa/requests/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Huỷ đề nghị chứng từ trong MISA

Huỷ đề nghị lập chứng từ (chỉ có tác dụng khi kế toán chưa bấm Lập CT trong AMIS).

Quyền: accounting.misa.manage Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóMisaVoucherRequestIdMã đề nghị chứng từ MISA AMIS (mvr_…).
idempotency-keyheaderKhôngstringKhoá 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/accounting/misa/requests/$ID:cancel" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

POST /v1/accounting/misa/requests/{id}:mark-generated

Phần tiêu đề “POST /v1/accounting/misa/requests/{id}:mark-generated”

Xác nhận kế toán đã lập chứng từ thủ công

Đánh dấu thủ công chứng từ đã được lập trong AMIS khi webhook callback chưa được kích hoạt.

Quyền: accounting.misa.manage Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóMisaVoucherRequestIdMã đề nghị chứng từ MISA AMIS (mvr_…).
idempotency-keyheaderKhôngstringKhoá 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/accounting/misa/requests/$ID:mark-generated" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Gửi lại đề nghị chứng từ sang MISA

Gửi lại đề nghị cùng org_refid (MISA sẽ cập nhật đè tại chỗ nếu kế toán chưa bấm Lập CT).

Quyền: accounting.misa.manage Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóMisaVoucherRequestIdMã đề nghị chứng từ MISA AMIS (mvr_…).
idempotency-keyheaderKhôngstringKhoá 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/accounting/misa/requests/$ID:resend" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Đảo đề nghị chứng từ MISA đã lập

Ghi nhận chứng từ đã lập (hoặc đã ghi sổ) trong AMIS là bị đảo/huỷ: đề nghị chuyển sang superseded để không còn được tính là đã đẩy. MISA OpenAPI không có lệnh xoá, nên kế toán phải xoá hoặc đảo chứng từ trong AMIS; bút toán đảo tương ứng đi theo lô xuất kế tiếp. Chỉ áp dụng cho đề nghị generated hoặc posted_inferred.

Quyền: accounting.misa.manage Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóMisaVoucherRequestIdMã đề nghị chứng từ MISA AMIS (mvr_…).
idempotency-keyheaderKhôngstringKhoá 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/accounting/misa/requests/$ID:reverse" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Danh sách kỳ kế toán

Lấy danh sách các kỳ kế toán và trạng thái khoá/mở.

Quyền: export.dry_run
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách các kỳ. — AccountingPeriod[], application/json
  • Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
curl -sS -X GET "https://api.dongtien.pro/v1/accounting/periods" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Yêu cầu khoá kỳ kế toán

Gửi yêu cầu khoá kỳ qua quy trình maker-checker. Cần nêu rõ lý do khoá.

Quyền: period.lock_request Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
ympathCóstring—
idempotency-keyheaderKhôngstringKhoá 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/accounting/periods/$YM/lock-requests" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Đã hoàn tất đối soát và chốt sổ tháng 09/2026."
}'

Mở trong tài liệu tương tác

POST /v1/accounting/periods/{ym}/lock-requests/{id}:approve

Phần tiêu đề “POST /v1/accounting/periods/{ym}/lock-requests/{id}:approve”

Duyệt khoá kỳ kế toán

Người kiểm tra (checker khác maker) duyệt khoá kỳ kế toán.

Quyền: period.lock_approve Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
ympathCóstring—
idpathCóstring—
idempotency-keyheaderKhôngstringKhoá 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/accounting/periods/$YM/lock-requests/$ID:approve" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

POST /v1/accounting/periods/{ym}/lock-requests/{id}:reject

Phần tiêu đề “POST /v1/accounting/periods/{ym}/lock-requests/{id}:reject”

Từ chối khoá kỳ kế toán

Người kiểm tra (khác người yêu cầu) từ chối yêu cầu khoá kỳ; kỳ trở lại trạng thái mở.

Quyền: period.lock_approve Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
ympathCóstring—
idpathCóstring—
idempotency-keyheaderKhôngstringKhoá 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/accounting/periods/$YM/lock-requests/$ID:reject" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Sai tài khoản kế toán, vui lòng kiểm tra lại."
}'

Mở trong tài liệu tương tác

Yêu cầu mở khoá kỳ kế toán

Gửi yêu cầu mở khoá kỳ đã khoá trước đó (yêu cầu step-up xác thực).

Quyền: period.unlock_request Cần xác thực lại gần đây
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: UnlockPeriodRequest (application/json, bắt buộc)
  • Phản hồi thành công 200: Yêu cầu mở khoá đã gửi. — AccountingPeriod, application/json
  • Mã lỗi riêng của endpoint: step_up_required, resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
ympathCóstring—
curl -sS -X POST "https://api.dongtien.pro/v1/accounting/periods/$YM/unlock-requests" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Cần điều chỉnh bút toán phát hiện sai sót sau khi khoá kỳ."
}'

Mở trong tài liệu tương tác

POST /v1/accounting/periods/{ym}/unlock-requests/{id}:approve

Phần tiêu đề “POST /v1/accounting/periods/{ym}/unlock-requests/{id}:approve”

Duyệt mở khoá kỳ kế toán

Duyệt mở lại kỳ kế toán (yêu cầu step-up xác thực).

Quyền: period.unlock_approve Cần xác thực lại gần đây
  • Nhóm tốc độ: write
  • Phản hồi thành công 200: Kỳ kế toán đã được mở khoá. — AccountingPeriod, application/json
  • Mã lỗi riêng của endpoint: step_up_required, resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
ympathCóstring—
idpathCóstring—
curl -sS -X POST "https://api.dongtien.pro/v1/accounting/periods/$YM/unlock-requests/$ID:approve" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

POST /v1/accounting/periods/{ym}/unlock-requests/{id}:reject

Phần tiêu đề “POST /v1/accounting/periods/{ym}/unlock-requests/{id}:reject”

Từ chối mở khoá kỳ kế toán

Người kiểm tra từ chối yêu cầu mở khoá; kỳ vẫn khoá (yêu cầu step-up xác thực).

Quyền: period.unlock_approve Cần xác thực lại gần đây
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: RejectRequestBody (application/json, bắt buộc)
  • Phản hồi thành công 200: Yêu cầu mở khoá đã bị từ chối. — AccountingPeriod, application/json
  • Mã lỗi riêng của endpoint: step_up_required, resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
ympathCóstring—
idpathCóstring—
curl -sS -X POST "https://api.dongtien.pro/v1/accounting/periods/$YM/unlock-requests/$ID:reject" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Sai tài khoản kế toán, vui lòng kiểm tra lại."
}'

Mở trong tài liệu tương tác

Danh sách phân bổ đối soát

Quyền: allocation.create Scope: reconcile:propose
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách phân bổ — AllocationList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
limitqueryKhôngintegerSố phần tử mỗi trang (1–100, mặc định 20).
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
statusqueryKhôngstring—
approverqueryKhôngstring—
tx_idqueryKhôngTxIdMã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp.
curl -sS -X GET "https://api.dongtien.pro/v1/allocations" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tạo bản nháp phân bổ đối soát

Quyền: allocation.create Scope: reconcile:propose Idempotency-Key: bắt buộc
TênVị tríBắt buộcKiểuMô tả
idempotency-keyheaderKhôngstringKhoá 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ũ. Bắt buộc ở máy chủ (thiếu → 400 idempotency_key_required); SDK tự sinh.
curl -sS -X POST "https://api.dongtien.pro/v1/allocations" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"tx_id": "tx_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"lines": [
{
"target_type": "invoice",
"amount": 4500000
}
],
"overpay_amount": 4500000,
"overpay_handling": "customer_advance",
"rounding_diff": 4500000
}'

Mở trong tài liệu tương tác

Chi tiết phân bổ đối soát

Quyền: allocation.create
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Chi tiết phân bổ — Allocation, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóAllocationIdMã phân bổ đối soát (alc_…).
curl -sS -X GET "https://api.dongtien.pro/v1/allocations/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Cập nhật bản nháp phân bổ đối soát

Quyền: allocation.create
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Bản nháp đã cập nhật — Allocation, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóAllocationIdMã phân bổ đối soát (alc_…).
curl -sS -X PATCH "https://api.dongtien.pro/v1/allocations/$ID" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"lines": [
{
"target_type": "invoice",
"amount": 4500000
}
],
"overpay_amount": 4500000,
"overpay_handling": "customer_advance",
"rounding_diff": 4500000
}'

Mở trong tài liệu tương tác

Xoá bản nháp phân bổ

Quyền: allocation.create
  • Nhóm tốc độ: write
  • Phản hồi thành công 200: Đã xoá bản nháp — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóAllocationIdMã phân bổ đối soát (alc_…).
curl -sS -X DELETE "https://api.dongtien.pro/v1/allocations/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Trạng thái ghi ngược hoadon.pro của phân bổ

Quyền: allocation.create
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách writeback — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóAllocationIdMã phân bổ đối soát (alc_…).
curl -sS -X GET "https://api.dongtien.pro/v1/allocations/$ID/writeback" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Duyệt phân bổ đối soát (checker)

Checker phải khác maker trừ ngoại lệ D41 (org 1 người, khớp 100%, < 20M). Từ 100M cần accountant_chief.

Quyền: allocation.approve
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Phân bổ đã được duyệt — Allocation, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóAllocationIdMã phân bổ đối soát (alc_…).
curl -sS -X POST "https://api.dongtien.pro/v1/allocations/$ID:approve" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'

Mở trong tài liệu tương tác

Từ chối phân bổ đối soát

Quyền: allocation.reject
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Phân bổ đã bị từ chối — Allocation, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóAllocationIdMã phân bổ đối soát (alc_…).
curl -sS -X POST "https://api.dongtien.pro/v1/allocations/$ID:reject" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "wrong_amount",
"note": "Số tiền phân bổ không khớp với hoá đơn."
}'

Mở trong tài liệu tương tác

Thử lại ghi ngược thanh toán sang hoadon.pro

Quyền: hoadon.writeback.retry
  • Nhóm tốc độ: replay
  • Phản hồi thành công 200: Đã đưa vào hàng đợi thử lại — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóAllocationIdMã phân bổ đối soát (alc_…).
curl -sS -X POST "https://api.dongtien.pro/v1/allocations/$ID:retry-writeback" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Đảo phân bổ đã duyệt

Sinh dòng âm và đảo trạng thái ghi ngược hoadon.

Quyền: allocation.approve Cần xác thực lại gần đây
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Phân bổ đã được đảo — Allocation, application/json
  • Mã lỗi riêng của endpoint: step_up_required, resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóAllocationIdMã phân bổ đối soát (alc_…).
curl -sS -X POST "https://api.dongtien.pro/v1/allocations/$ID:reverse" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Phân bổ nhầm hoá đơn, cần đảo để phân bổ lại."
}'

Mở trong tài liệu tương tác

Gửi phân bổ để phê duyệt (maker)

Quyền: allocation.create Scope: reconcile:propose
  • Nhóm tốc độ: write
  • Phản hồi thành công 200: Phân bổ đã chuyển sang pending_approval — Allocation, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóAllocationIdMã phân bổ đối soát (alc_…).
curl -sS -X POST "https://api.dongtien.pro/v1/allocations/$ID:submit" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Rút lại phân bổ đang chờ duyệt (maker)

Quyền: allocation.withdraw Scope: reconcile:propose
  • Nhóm tốc độ: write
  • Phản hồi thành công 200: Phân bổ đã rút về draft/withdrawn — Allocation, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóAllocationIdMã phân bổ đối soát (alc_…).
curl -sS -X POST "https://api.dongtien.pro/v1/allocations/$ID:withdraw" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Duyệt hàng loạt phân bổ (tối đa 50 dòng)

Quyền: allocation.approve
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Kết quả duyệt hàng loạt — object, application/json
  • Mã lỗi riêng của endpoint: conflict
curl -sS -X POST "https://api.dongtien.pro/v1/allocations:approve-batch" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ids": [
"alc_0f5k2m9q4h7t3n8r6v1w0x5yz0"
]
}'

Mở trong tài liệu tương tác

Danh sách khoản dự thu/chi

Quyền: allocation.create
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách dự thu/chi — ExpectedPaymentList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
limitqueryKhôngintegerSố phần tử mỗi trang (1–100, mặc định 20).
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
statequeryKhôngstring—
kindqueryKhôngstring—
curl -sS -X GET "https://api.dongtien.pro/v1/expected-payments" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tạo khoản dự thu/chi

Quyền: allocation.create
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 201: Khoản dự thu/chi đã tạo — object, application/json
  • Mã lỗi riêng của endpoint: conflict
TênVị tríBắt buộcKiểuMô tả
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
curl -sS -X POST "https://api.dongtien.pro/v1/expected-payments" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"kind": "order",
"ref": "DH-2026-001234",
"counterparty_name": "Công ty TNHH Thương mại Sao Việt",
"counterparty_tax_code": "0312345678",
"amount": 12500000,
"due_date": "2026-11-05T00:00:00Z",
"description": "Thanh toán đơn hàng DH-2026-001234"
}'

Mở trong tài liệu tương tác

Nhập hàng loạt dự thu/chi (tối đa 500 dòng)

Quyền: allocation.create
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Kết quả nhập hàng loạt — object, application/json
  • Mã lỗi riêng của endpoint: conflict
TênVị tríBắt buộcKiểuMô tả
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
curl -sS -X POST "https://api.dongtien.pro/v1/expected-payments:import" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"kind": "order",
"counterparty_id": "cpt_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"amount": 4500000,
"due_date": "2026-10-19T01:30:15Z",
"expires_at": "2026-10-19T01:30:15Z"
}
]
}'

Mở trong tài liệu tương tác

Danh sách các lô xuất kế toán

Liệt kê lịch sử các lô xuất kế toán theo công ty.

Quyền: export.download Scope: export:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách lô xuất. — ExportBatchList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
targetqueryKhôngExportTargetĐích xuất kế toán: MISA AMIS, MISA SME, Fast, Excel TT133, Excel TT99 hoặc OpenAPI MISA AMIS.
periodqueryKhôngstring—
statequeryKhôngExportBatchStateTrạng thái lô xuất: dry_run, pending_approval, approved, failed_validation, rejected, superseded.
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
limitqueryKhônginteger—
curl -sS -X GET "https://api.dongtien.pro/v1/exports" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tạo lô xuất kế toán (gửi duyệt)

Tạo một lô xuất mới ở trạng thái chờ duyệt (pending_approval). Yêu cầu Idempotency-Key. Nếu còn lỗi chặn (blocking), lô chuyển sang failed_validation.

Quyền: export.create Idempotency-Key: bắt buộc
TênVị tríBắt buộcKiểuMô tả
idempotency-keyheaderKhôngstringKhoá 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ũ. Bắt buộc ở máy chủ (thiếu → 400 idempotency_key_required); SDK tự sinh.
curl -sS -X POST "https://api.dongtien.pro/v1/exports" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"target": "misa_amis",
"coa_profile": "TT133",
"from": "2026-10-19",
"to": "2026-10-19",
"account_ids": [
"acc_0f5k2m9q4h7t3n8r6v1w0x5yz0"
],
"voucher_types": [
"BC"
],
"flags": {
"verified_only": true,
"invoice_no_in_memo": false,
"cash_voucher_pairs": false,
"merge_bank_fee_daily": false
},
"ack_warnings": false
}'

Mở trong tài liệu tương tác

Chạy thử kiểm tra xuất kế toán

Kiểm tra điều kiện xuất chứng từ (cân đối Nợ-Có, tài khoản đã ánh xạ, kỳ khoá, mã đối tượng). Không lưu dữ liệu, không tiêu số chứng từ.

Quyền: export.dry_run Idempotency-Key: tuỳ chọn
  • Nhóm tốc độ: export
  • Nội dung yêu cầu: ExportDryRunBody (application/json, bắt buộc)
  • Phản hồi thành công 200: Kết quả kiểm tra điều kiện xuất. — ExportDryRunResponse, application/json
  • Mã lỗi riêng của endpoint: conflict, idempotency_in_flight, idempotency_key_reused
TênVị tríBắt buộcKiểuMô tả
idempotency-keyheaderKhôngstringKhoá 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/exports/dry-run" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"target": "misa_amis",
"coa_profile": "TT133",
"from": "2026-10-19",
"to": "2026-10-19",
"account_ids": [
"acc_0f5k2m9q4h7t3n8r6v1w0x5yz0"
],
"voucher_types": [
"BC"
],
"flags": {
"verified_only": true,
"invoice_no_in_memo": false,
"cash_voucher_pairs": false,
"merge_bank_fee_daily": false
}
}'

Mở trong tài liệu tương tác

Danh sách phiên bản golden templates

Lấy cấu trúc mẫu xuất kế toán chuẩn của các phần mềm kế toán.

Quyền: export.dry_run
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách golden templates. — 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/exports/golden" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Chi tiết một lô xuất kế toán

Xem chi tiết lô xuất, danh sách kiểm tra và các tệp đính kèm.

Quyền: export.download Scope: export:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Chi tiết lô xuất. — ExportBatchDetail, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóExportBatchIdMã lô xuất kế toán (exb_…).
curl -sS -X GET "https://api.dongtien.pro/v1/exports/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tải tệp chứng từ xuất

Tải tệp của lô đã duyệt và sinh xong (file_state = ready). Tệp được phát qua Worker kèm X-Content-SHA256 (sha256 lúc sinh tệp) và mỗi lượt tải được ghi nhật ký. Lô lớn được tách thành nhiều tệp (mỗi tệp tối đa 10.000 dòng, không cắt giữa chứng từ): ..._P001, ..._P002, ... kèm ..._MANIFEST.csv ghi số dòng, số chứng từ và tổng tiền từng phần và tổng toàn lô. Lô có nhiều tệp: bỏ trống name để tải một tệp ZIP chứa tất cả (X-Content-SHA256 là của tệp ZIP), hoặc chỉ định name để tải từng tệp (xem files trong chi tiết lô); ZIP quá lớn (> 40 MB) bị từ chối, hãy tải từng tệp.

Quyền: export.download Scope: export:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Nội dung tệp xuất (xlsx hoặc csv), hoặc tệp ZIP khi lô có nhiều tệp. — string (binary), application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; string (binary), application/zip; string, text/csv
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóExportBatchIdMã lô xuất kế toán (exb_…).
namequeryKhôngstringTên tệp trong lô; bỏ trống ở lô nhiều tệp để tải ZIP chứa tất cả.
curl -sS -X GET "https://api.dongtien.pro/v1/exports/$ID/file" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Xem trước các dòng chứng từ của lô xuất

Xem danh sách các dòng chứng từ theo từng loại (BC, BN, PT, PC).

Quyền: export.download
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách dòng chứng từ xem trước. — ExportPreviewLineList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor, resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóExportBatchIdMã lô xuất kế toán (exb_…).
typequeryKhôngVoucherTypeLoại chứng từ ngân hàng/tiền mặt: BC (Báo Có), BN (Báo Nợ), PT (Phiếu Thu), PC (Phiếu Chi).
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
limitqueryKhônginteger—
curl -sS -X GET "https://api.dongtien.pro/v1/exports/$ID/preview" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Duyệt lô xuất kế toán

Người kiểm tra (checker khác maker) duyệt lô xuất. Cấp dải số chứng từ chính thức và khởi chạy sinh tệp.

Quyền: export.approve Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóExportBatchIdMã lô xuất kế toán (exb_…).
idempotency-keyheaderKhôngstringKhoá 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/exports/$ID:approve" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Xuất lại lô chứng từ

Tạo một lô xuất mới thay thế (supersedes) lô đã được duyệt trước đó.

Quyền: export.create Idempotency-Key: bắt buộc
TênVị tríBắt buộcKiểuMô tả
idpathCóExportBatchIdMã lô xuất kế toán (exb_…).
idempotency-keyheaderKhôngstringKhoá 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ũ. Bắt buộc ở máy chủ (thiếu → 400 idempotency_key_required); SDK tự sinh.
curl -sS -X POST "https://api.dongtien.pro/v1/exports/$ID:re-export" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"

Mở trong tài liệu tương tác

Từ chối lô xuất kế toán

Người kiểm tra từ chối duyệt lô xuất và nêu rõ lý do.

Quyền: export.reject Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóExportBatchIdMã lô xuất kế toán (exb_…).
idempotency-keyheaderKhôngstringKhoá 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/exports/$ID:reject" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Sai tài khoản đối ứng ở chứng từ BC-0012"
}'

Mở trong tài liệu tương tác

Chạy lại kiểm tra điều kiện xuất

Chạy lại bộ kiểm tra khi giao dịch hoặc quy tắc ánh xạ đã được cập nhật.

Quyền: export.create Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóExportBatchIdMã lô xuất kế toán (exb_…).
idempotency-keyheaderKhôngstringKhoá 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/exports/$ID:rerun-checks" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Danh sách việc cần xử lý đối soát

Nhắc thu phần còn lại, nhắc hoàn tiền trả thừa, hoá đơn quá hạn.

Quyền: allocation.create
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách followups — ReconFollowupList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
limitqueryKhôngintegerSố phần tử mỗi trang (1–100, mặc định 20).
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
statusqueryKhôngstring—
curl -sS -X GET "https://api.dongtien.pro/v1/recon-followups" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Danh sách quy tắc gợi ý đối soát

Quyền: rule.read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách quy tắc — MatchRuleList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
limitqueryKhôngintegerSố phần tử mỗi trang (1–100, mặc định 20).
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
curl -sS -X GET "https://api.dongtien.pro/v1/recon-rules" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tạo quy tắc gợi ý mới (không có auto_post)

Quyền: 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 mới đã tạo — object, application/json
  • Mã lỗi riêng của endpoint: conflict
TênVị tríBắt buộcKiểuMô tả
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
curl -sS -X POST "https://api.dongtien.pro/v1/recon-rules" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Khớp đúng số tiền và mã đơn hàng",
"direction": "in",
"strategy": "one_to_one",
"priority": 50,
"conds": [
{
"field": "tx.content",
"op": "contains",
"value": "DH"
}
],
"tolerance_vnd": 1000,
"window_days": 45,
"mode": "suggest_only",
"is_enabled": true
}'

Mở trong tài liệu tương tác

Chi tiết quy tắc đối soát

Quyền: rule.read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Chi tiết quy tắc — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóMatchRuleIdMã quy tắc đối soát (rul_…).
curl -sS -X GET "https://api.dongtien.pro/v1/recon-rules/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Cập nhật quy tắc đối soát (tạo phiên bản mới)

Quyền: 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 đã được cập nhật phiên bản mới — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóMatchRuleIdMã quy tắc đối soát (rul_…).
curl -sS -X PUT "https://api.dongtien.pro/v1/recon-rules/$ID" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"direction": "in",
"strategy": "one_to_one",
"conds": [
{
"op": "="
}
],
"bonus": [
{
"tone": "y"
}
],
"mode": "suggest_only"
}'

Mở trong tài liệu tương tác

Xoá quy tắc đối soát

Quyền: rule.manage
  • 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
TênVị tríBắt buộcKiểuMô tả
idpathCóMatchRuleIdMã quy tắc đối soát (rul_…).
curl -sS -X DELETE "https://api.dongtien.pro/v1/recon-rules/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tắt quy tắc đối soát

Quyền: rule.manage
  • Nhóm tốc độ: write
  • Phản hồi thành công 200: Đã tắt quy tắc — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóMatchRuleIdMã quy tắc đối soát (rul_…).
curl -sS -X POST "https://api.dongtien.pro/v1/recon-rules/$ID:disable" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Chạy thử quy tắc trên 30 ngày (không ghi sổ)

Quyền: rule.read
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Kết quả chạy thử — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóMatchRuleIdMã quy tắc đối soát (rul_…).
curl -sS -X POST "https://api.dongtien.pro/v1/recon-rules/$ID:dry-run" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rule": {
"direction": "in",
"strategy": "one_to_one",
"priority": 50,
"conds": [
{
"op": "="
}
],
"bonus": [
{
"tone": "y"
}
],
"tolerance_vnd": 1000,
"window_days": 45,
"mode": "suggest_only",
"is_enabled": true
},
"window_days": 30,
"limit": 500
}'

Mở trong tài liệu tương tác

Bật quy tắc đối soát

Quyền: rule.manage
  • Nhóm tốc độ: write
  • Phản hồi thành công 200: Đã bật quy tắc — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóMatchRuleIdMã quy tắc đối soát (rul_…).
curl -sS -X POST "https://api.dongtien.pro/v1/recon-rules/$ID:enable" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Cài đặt dung sai & phạm vi đối soát

Quyền: rule.read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Cài đặt đối soát — object, application/json
  • Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
TênVị tríBắt buộcKiểuMô tả
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
curl -sS -X GET "https://api.dongtien.pro/v1/recon-settings" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Cập nhật cài đặt dung sai & phạm vi đối soát

Quyền: recon.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ài đặt đã cập nhật — object, application/json
  • Mã lỗi riêng của endpoint: conflict
TênVị tríBắt buộcKiểuMô tả
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
curl -sS -X PUT "https://api.dongtien.pro/v1/recon-settings" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"large_amount_threshold": 4500000,
"solo_self_approve_limit": 4500000
}'

Mở trong tài liệu tương tác

Hàng chờ duyệt đối soát

Danh sách phân bổ đang ở trạng thái pending_approval kèm checklist kiểm tra chính sách.

Quyền: allocation.create
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách hàng chờ duyệt — ReconQueueList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
limitqueryKhôngintegerSố phần tử mỗi trang (1–100, mặc định 20).
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
filterqueryKhôngstring—
store_idqueryKhôngstring—
counter_idqueryKhôngstring—
curl -sS -X GET "https://api.dongtien.pro/v1/reconciliation/queue" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Đưa giao dịch vào hàng chờ đối soát

Quyền: allocation.create
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Kết quả đưa vào hàng chờ — object, application/json
  • Mã lỗi riêng của endpoint: conflict
curl -sS -X POST "https://api.dongtien.pro/v1/reconciliation/queue" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tx_ids": [
"tx_0f5k2m9q4h7t3n8r6v1w0x5yz0"
]
}'

Mở trong tài liệu tương tác

Chạy lại công cụ gợi ý đối soát

Quyền: allocation.create
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Gợi ý đã được tính lại — object, application/json
  • Mã lỗi riêng của endpoint: conflict
curl -sS -X POST "https://api.dongtien.pro/v1/reconciliation/suggestions:rerun" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tx_id": "tx_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"company_id": "org_0f5k2m9q4h7t3n8r6v1w0x5yz0"
}'

Mở trong tài liệu tương tác

Tổng quan đối soát

KPI giao dịch chưa đối soát, gợi ý >= 90%, chờ duyệt và tỷ lệ đã đối soát.

Quyền: allocation.create
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: KPI đối soát — object, application/json
  • Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
TênVị tríBắt buộcKiểuMô tả
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
curl -sS -X GET "https://api.dongtien.pro/v1/reconciliation/summary" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Dữ liệu màn làm việc đối soát

Danh sách giao dịch chưa đối soát (vào/ra), gợi ý và trạng thái kết nối hoadon.pro.

Quyền: allocation.create
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Dữ liệu workspace — object, application/json
  • Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
TênVị tríBắt buộcKiểuMô tả
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
directionqueryKhôngstring—
curl -sS -X GET "https://api.dongtien.pro/v1/reconciliation/workspace" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Danh sách nghĩa vụ thanh toán

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách nghĩa vụ. — ObligationList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
limitqueryKhônginteger—
partner_idqueryKhôngPartnerIdMã đối tác sàn/hãng/CTV (ptn_…).
directionqueryKhôngObligationDirectionin phải thu · out phải trả.
statequeryKhôngObligationStatenot_due chưa đến hạn · awaiting_payout chờ payout · partially_settled đã gạch một phần · settled tất toán · variance chênh lệch.
is_overduequeryKhôngstringChỉ nghĩa vụ đã quá hạn.
curl -sS -X GET "https://api.dongtien.pro/v1/settlement/obligations" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

POST /v1/settlement/obligations/allocations/{aid}:approve

Phần tiêu đề “POST /v1/settlement/obligations/allocations/{aid}:approve”

Duyệt gạch nợ nghĩa vụ

Checker duyệt allocation: ghi bút toán hai chân vào sổ nghĩa vụ settlement_entries / settlement_lines (append-only) và cập nhật số tiền đã gạch.

Quyền: obligation_allocation.approve
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Gạch nợ đã duyệt thành công. — ObligationAllocation, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
aidpathCóObligationAllocationIdMã gạch nợ nghĩa vụ (ola_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/obligations/allocations/$AID:approve" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'

Mở trong tài liệu tương tác

POST /v1/settlement/obligations/allocations/{aid}:reject

Phần tiêu đề “POST /v1/settlement/obligations/allocations/{aid}:reject”

Từ chối gạch nợ nghĩa vụ

Quyền: obligation_allocation.approve
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Gạch nợ đã bị từ chối. — ObligationAllocation, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
aidpathCóObligationAllocationIdMã gạch nợ nghĩa vụ (ola_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/obligations/allocations/$AID:reject" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Giao dịch ngân hàng không thuộc nghĩa vụ này"
}'

Mở trong tài liệu tương tác

POST /v1/settlement/obligations/allocations/{aid}:reverse

Phần tiêu đề “POST /v1/settlement/obligations/allocations/{aid}:reverse”

Đảo gạch nợ đã duyệt

Ghi bút toán đảo (append-only) cho gạch nợ đã duyệt và trả lại số dư còn lại của nghĩa vụ. Cần lý do. Kỳ kế toán đã khoá: bút toán đảo được ghi vào kỳ mở kế tiếp.

Quyền: obligation_allocation.approve
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Gạch nợ đã được đảo. — ObligationAllocation, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
aidpathCóObligationAllocationIdMã gạch nợ nghĩa vụ (ola_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/obligations/allocations/$AID:reverse" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Gạch nhầm giao dịch"
}'

Mở trong tài liệu tương tác

POST /v1/settlement/obligations/allocations:bulk-approve

Phần tiêu đề “POST /v1/settlement/obligations/allocations:bulk-approve”

Duyệt hàng loạt gạch nợ

Duyệt qua danh sách allocation, mỗi bản ghi kiểm tra độc lập quy tắc maker-checker.

Quyền: obligation_allocation.approve
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Kết quả duyệt hàng loạt. — object, application/json
  • Mã lỗi riêng của endpoint: conflict
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/obligations/allocations:bulk-approve" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"allocation_ids": [
"ola_0f5k2m9q4h7t3n8r6v1w0x5yz0"
]
}'

Mở trong tài liệu tương tác

Chi tiết nghĩa vụ thanh toán

Bao gồm chi tiết các dòng cấu thành và các đợt gạch nợ.

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Chi tiết nghĩa vụ. — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóObligationIdMã nghĩa vụ thanh toán (obl_…).
curl -sS -X GET "https://api.dongtien.pro/v1/settlement/obligations/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tạo gạch nợ nghĩa vụ với giao dịch ngân hàng

Tạo yêu cầu gạch nợ: chỉ giao dịch đã xác thực (verified), đúng chiều (phải thu ⇒ tiền vào, phải trả ⇒ tiền ra), tổng gạch không vượt số tiền giao dịch và số dư còn lại của nghĩa vụ. Trả thừa cần overpay_handling và luôn qua duyệt.

Quyền: obligation_allocation.create
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: CreateObligationAllocationBody (application/json)
  • Phản hồi thành công 201: Yêu cầu gạch nợ đã tạo. — ObligationAllocation, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóObligationIdMã nghĩa vụ thanh toán (obl_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/obligations/$ID/allocations" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tx_id": "tx_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"amount": 4500000,
"overpay_handling": "credit_next"
}'

Mở trong tài liệu tương tác

Gửi nhắc nợ đối tác

Gửi email nhắc khoản phải thu/phải trả quá hạn tới địa chỉ liên hệ của đối tác (qua dt-notify, không lặp trong cùng ngày).

Quyền: settlement.read
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Đã gửi nhắc thành công. — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóObligationIdMã nghĩa vụ thanh toán (obl_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/obligations/$ID:remind" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recipient_email": "ketoan@congtyabc.vn"
}'

Mở trong tài liệu tương tác

POST /v1/settlement/obligations/{id}:statement-send

Phần tiêu đề “POST /v1/settlement/obligations/{id}:statement-send”

Gửi bảng kê đối soát qua email

Tạo bảng kê Excel kèm chữ ký HMAC statement_hash và gửi email cho đối tác.

Quyền: settlement.read
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Email bảng kê đã được gửi. — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóObligationIdMã nghĩa vụ thanh toán (obl_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/obligations/$ID:statement-send" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recipient_email": "ketoan@congtyabc.vn",
"note": "Bảng kê kỳ 01-15/10/2026"
}'

Mở trong tài liệu tương tác

Nhập danh sách đơn hàng xuất từ sàn

Nhập danh sách đơn hàng (SKU, giá, phí, ngày giao) để phục vụ tính nghĩa vụ hãng/CTV theo sku_brand_map.

Quyền: payout.import
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Kết quả nhập đơn hàng. — object, application/json
  • Mã lỗi riêng của endpoint: conflict
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/orders:import" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "shopee",
"shop_id": "shopee_88123456",
"orders": [
{
"order_no": "2410215ABCD123",
"sku": "AO-THUN-DEN-L",
"revenue": 350000,
"platform_fee": 38500,
"voucher_seller": 20000,
"net_amount": 291500,
"delivered_at": "2026-10-18T09:30:00Z",
"ctv_code": "CTV-0123"
}
]
}'

Mở trong tài liệu tương tác

Danh sách đợt quyết toán / sao kê sàn

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách đợt quyết toán. — PayoutList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
limitqueryKhônginteger—
platformqueryKhôngSettlementPlatformSàn thương mại điện tử: shopee · tiktok · lazada.
statequeryKhôngPayoutStatematched khớp tuyệt đối · variance lệch N đ · awaiting_payout chờ tiền về · provisional tạm tính (chỉ SMS/email) · orphan_credit thừa/thiếu statement.
curl -sS -X GET "https://api.dongtien.pro/v1/settlement/payouts" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Chi tiết đợt quyết toán

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Chi tiết đợt quyết toán. — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóPayoutIdMã đợt quyết toán sàn (pay_…).
curl -sS -X GET "https://api.dongtien.pro/v1/settlement/payouts/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Gán thủ công giao dịch ngân hàng vào đợt payout

Dành cho trường hợp orphan_credit hoặc cần khớp thủ công, bắt buộc ghi rõ lý do để ghi nhận chuỗi audit.

Quyền: payout.import
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Payout đã được gán giao dịch. — Payout, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóPayoutIdMã đợt quyết toán sàn (pay_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/payouts/$ID:assign-statement" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tx_id": "tx_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"reason": "Khoản tiền về từ Shopee không kèm mã payout"
}'

Mở trong tài liệu tương tác

Đặt hẹn nhắc tiền về cho đợt payout

Quyền: settlement.read
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Đã đặt hẹn nhắc. — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóPayoutIdMã đợt quyết toán sàn (pay_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/payouts/$ID:reminder" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"remind_at": "2026-10-19T01:30:15Z"
}'

Mở trong tài liệu tương tác

Duyệt ghi nhận chênh lệch payout

Checker duyệt ghi nhận chênh lệch: sinh nghĩa vụ phải thu sàn tương ứng.

Quyền: payout.variance.approve
  • Nhóm tốc độ: write
  • Phản hồi thành công 200: Đã duyệt chênh lệch. — Payout, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóPayoutIdMã đợt quyết toán sàn (pay_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/payouts/$ID:variance-approve" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

POST /v1/settlement/payouts/{id}:variance-claim-export

Phần tiêu đề “POST /v1/settlement/payouts/{id}:variance-claim-export”

Xuất tệp khiếu nại chênh lệch gửi sàn

Xuất tệp Excel bảng kê khiếu nại (hệ thống không tự gửi ra ngoài, người dùng tự đính kèm khiếu nại sàn).

Quyền: payout.variance.propose
  • Nhóm tốc độ: write
  • Phản hồi thành công 200: Đường dẫn tải file khiếu nại. — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóPayoutIdMã đợt quyết toán sàn (pay_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/payouts/$ID:variance-claim-export" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

POST /v1/settlement/payouts/{id}:variance-recognition

Phần tiêu đề “POST /v1/settlement/payouts/{id}:variance-recognition”

Đề xuất ghi nhận chênh lệch payout

Tạo yêu cầu phê duyệt ghi nhận chênh lệch. Khi được duyệt, hệ thống sẽ sinh nghĩa vụ phải thu bù từ sàn.

Quyền: payout.variance.propose
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Yêu cầu ghi nhận chênh lệch đã gửi duyệt. — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóPayoutIdMã đợt quyết toán sàn (pay_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/payouts/$ID:variance-recognition" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Sàn trừ phí vận chuyển không có trong biểu phí",
"note": "Chênh lệch 45.000đ"
}'

Mở trong tài liệu tương tác

Tải tệp báo cáo đối soát (XLSX / PDF)

Tệp do GET /v1/settlement/reports/{kind}?format=xlsx|pdf sinh ra, lưu bất biến trên R2 (PDF A4 ngang, phông tiếng Việt nhúng). Cần phiên/khoá API có quyền settlement.read (không phải liên kết công khai); hết hạn sau 7 ngày trả 404. Mỗi lần tải được ghi nhật ký kiểm toán.

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: export
  • Phản hồi thành công 200: Tệp XLSX hoặc PDF của báo cáo (theo format lúc sinh). — string (binary), application/pdf; string (binary), application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóSettlementReportIdMã bản báo cáo đối soát (srp_…).
curl -sS -X GET "https://api.dongtien.pro/v1/settlement/report-files/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Danh sách lịch tự động gửi báo cáo đối soát

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Các lịch báo cáo của tổ chứ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/settlement/report-schedules" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Cấu hình lịch tự động gửi báo cáo đối soát

Quyền: settlement.read
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Lịch đã lưu thành công. — SettlementReportSchedule, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóSettlementReportScheduleIdMã lịch báo cáo đối soát (srs_…).
curl -sS -X PUT "https://api.dongtien.pro/v1/settlement/report-schedules/$ID" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"kind": "partner_statement",
"cron": "0 8 5 * *",
"partner_id": "ptn_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"recipients": [
"ketoan@congtyabc.vn"
],
"channel": "email",
"enabled": true
}'

Mở trong tài liệu tương tác

Báo cáo đối soát settlement (XLSX / PDF)

Xuất báo cáo tuổi nợ, đối soát sàn, bảng kê đối tác kèm mã HMAC statement_hash, hoặc đối chiếu phí sàn thực tế với biểu phí.

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Dữ liệu báo cáo hoặc đường dẫn tải tệp. — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
kindpathCóSettlementReportKindLoại báo cáo đối soát: receivable_payable_aging tuổi nợ · payout_reconciliation đối soát sao kê sàn · partner_statement bảng kê đối tác/hãng · platform_fee_actual phí sàn thực trả vs biểu phí.
formatqueryKhôngstring—
partner_idqueryKhôngPartnerIdMã đối tác sàn/hãng/CTV (ptn_…).
from_datequeryKhôngDateNgày lịch YYYY-MM-DD (giờ Việt Nam).
to_datequeryKhôngDateNgày lịch YYYY-MM-DD (giờ Việt Nam).
curl -sS -X GET "https://api.dongtien.pro/v1/settlement/reports/$KIND" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Ngưỡng đối soát payout

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Ngưỡng hiện hành (mặc định 0 khi chưa lưu). — SettlementSettings, 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/settings" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Đặt ngưỡng đối soát payout

Quyền: partner.approve
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: SettlementSettings (application/json)
  • Phản hồi thành công 200: Đã lưu. — SettlementSettings, application/json
  • Mã lỗi riêng của endpoint: conflict
curl -sS -X PUT "https://api.dongtien.pro/v1/settlement/settings" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"allowable_drift_vnd": 5500,
"variance_alert_threshold_vnd": 50000
}'

Mở trong tài liệu tương tác

Lấy bảng ánh xạ SKU sang nhãn hàng / đối tác hãng

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Bảng ánh xạ SKU. — 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/sku-brand-map" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Cập nhật bảng ánh xạ SKU sàn

Quyền: partner.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: Đã lưu bảng ánh xạ. — object, application/json
  • Mã lỗi riêng của endpoint: conflict
curl -sS -X PUT "https://api.dongtien.pro/v1/settlement/sku-brand-map" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mappings": [
{
"partner_id": "ptn_0f5k2m9q4h7t3n8r6v1w0x5yz0"
}
]
}'

Mở trong tài liệu tương tác

Danh sách quy tắc chia doanh thu

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách quy tắc chia. — SplitRuleList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
limitqueryKhônginteger—
partner_idqueryKhôngPartnerIdMã đối tác sàn/hãng/CTV (ptn_…).
kindqueryKhôngSplitRuleKindpayable_brand phải trả hãng/nhà cung cấp · payable_ctv phải trả CTV · receivable_agent phải thu đại lý.
curl -sS -X GET "https://api.dongtien.pro/v1/settlement/split-rules" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tạo quy tắc chia doanh thu

Tạo quy tắc chia và phiên bản v1 ban đầu ở trạng thái draft.

Quyền: split_rule.write
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: CreateSplitRuleBody (application/json)
  • Phản hồi thành công 201: Quy tắc chia đã tạo. — SplitRule, application/json
  • Mã lỗi riêng của endpoint: conflict
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/split-rules" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"kind": "payable_brand",
"partner_id": "ptn_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"name": "Chia doanh thu hãng An Phát",
"initial_version": {
"conds": {
"brands": [
"Thương hiệu An Phát"
],
"platforms": [
"shopee"
]
},
"pct_bp": 1500,
"basis": "net_after_platform_fee",
"trigger": "on_delivered",
"effective_from": "2026-11-01"
}
}'

Mở trong tài liệu tương tác

Chi tiết quy tắc chia

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Chi tiết quy tắc và các phiên bản. — SplitRule, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóSplitRuleIdMã quy tắc chia doanh thu (spl_…).
curl -sS -X GET "https://api.dongtien.pro/v1/settlement/split-rules/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tạo phiên bản quy tắc mới

Phiên bản mới chờ duyệt; phiên bản cũ vẫn hoạt động cho đến ngày hiệu lực của phiên bản mới.

Quyền: split_rule.write
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: CreateSplitRuleVersionBody (application/json)
  • Phản hồi thành công 201: Phiên bản mới đã tạo. — SplitRuleVersion, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóSplitRuleIdMã quy tắc chia doanh thu (spl_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/split-rules/$ID/versions" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"conds": {
"brands": [
"Thương hiệu An Phát"
],
"platforms": [
"shopee"
]
},
"pct_bp": 1200,
"basis": "net_after_platform_fee",
"trigger": "on_delivered",
"effective_from": "2026-11-01"
}'

Mở trong tài liệu tương tác

POST /v1/settlement/split-rules/{id}/versions/{vid}:approve

Phần tiêu đề “POST /v1/settlement/split-rules/{id}/versions/{vid}:approve”

Duyệt phiên bản quy tắc

Maker-checker: Người duyệt phải khác người tạo phiên bản. Trả 409 conflict khi phiên bản chồng lấn điều kiện với quy tắc đang áp dụng cùng loại mà cùng mức ưu tiên và cùng ngày hiệu lực (không xác định được quy tắc nào thắng); trường hợp còn lại trả lint_warnings.

Quyền: split_rule.approve
  • Nhóm tốc độ: write
  • Phản hồi thành công 200: Phiên bản đã duyệt. — SplitRuleVersion, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóSplitRuleIdMã quy tắc chia doanh thu (spl_…).
vidpathCóSplitRuleVersionIdMã phiên bản quy tắc chia (spv_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/split-rules/$ID/versions/$VID:approve" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

POST /v1/settlement/split-rules/{id}/versions/{vid}:reject

Phần tiêu đề “POST /v1/settlement/split-rules/{id}/versions/{vid}:reject”

Từ chối phiên bản quy tắc

Quyền: split_rule.approve
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (application/json)
  • Phản hồi thành công 200: Phiên bản đã bị từ chối. — SplitRuleVersion, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóSplitRuleIdMã quy tắc chia doanh thu (spl_…).
vidpathCóSplitRuleVersionIdMã phiên bản quy tắc chia (spv_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/split-rules/$ID/versions/$VID:reject" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Tỷ lệ chia chưa đúng hợp đồng ký gửi"
}'

Mở trong tài liệu tương tác

Trạng thái nhập sao kê sàn

Quyền: payout.import
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Trạng thái và bản xem trước. — SettlementImport, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóStatementImportIdMã lần nhập sao kê (imp_…).
curl -sS -X GET "https://api.dongtien.pro/v1/settlement/statements/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Xác nhận nhập sao kê sàn

Chỉ khi tác vụ ở preview_ready. Workflow ghi đơn và đợt payout theo từng trang rồi khớp với giao dịch ngân hàng.

Quyền: payout.import
  • Nhóm tốc độ: write
  • Phản hồi thành công 202: Đã nhận lệnh nhập. — SettlementImport, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóStatementImportIdMã lần nhập sao kê (imp_…).
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/statements/$ID:commit" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tải lên tệp sao kê sàn (Shopee, TikTok, Lazada)

Tải tệp Excel/CSV sao kê sàn (multipart/form-data, tối đa 25 MB): niêm phong và lưu R2, tạo tác vụ payout, đọc 5.000 đơn/trang, xem trước rồi chờ lệnh commit, sau đó khớp với giao dịch ngân hàng đã xác thực. Nhập lại cùng statement_ref sẽ gộp, không trùng đơn/đợt. Không tính quota billing (D33). Quá 25 MB: 413; tệp rỗng: 422.

Quyền: payout.import
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: object (multipart/form-data)
  • Phản hồi thành công 202: Job import sao kê đã được tiếp nhận. — SettlementImport, application/json
  • Mã lỗi riêng của endpoint: conflict
curl -sS -X POST "https://api.dongtien.pro/v1/settlement/statements:import" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Tổng quan đối soát

Phải thu, phải trả (còn lại chưa gạch), hạn trả gần nhất, số đợt payout đã khớp và tổng chênh lệch.

Quyền: settlement.read Scope: settlement:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Tổng quan đối soát của tổ chức. — SettlementSummary, 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/summary" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Gợi ý đối soát cho một giao dịch

Quyền: allocation.create
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách tối đa 3 phương án gợi ý — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found
TênVị tríBắt buộcKiểuMô tả
idpathCóTxIdMã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp.
curl -sS -X GET "https://api.dongtien.pro/v1/transactions/$ID/suggestions" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

Đánh dấu giao dịch không cần đối soát

Quyền: allocation.create
  • 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ập nhật trạng thái không cần đối soát — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóTxIdMã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp.
curl -sS -X POST "https://api.dongtien.pro/v1/transactions/$ID:ignore-recon" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Giao dịch chuyển khoản nội bộ giữa các tài khoản của công ty."
}'

Mở trong tài liệu tương tác

Chuyển giao dịch payout sang đối soát sàn (Settlement)

Quyền: allocation.create
  • Nhóm tốc độ: write
  • Phản hồi thành công 200: Đã chuyển sang settlement — object, application/json
  • Mã lỗi riêng của endpoint: resource_not_found, conflict
TênVị tríBắt buộcKiểuMô tả
idpathCóTxIdMã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp.
curl -sS -X POST "https://api.dongtien.pro/v1/transactions/$ID:route-settlement" \
-H "Authorization: Bearer $DT_API_KEY"

Mở trong tài liệu tương tác

TrườngKiểuBắt buộcMô tả
namestringKhông—
TrườngKiểuBắt buộcMô tả
idstringCó—
namestringCó—
systemstringCó—
TrườngKiểuBắt buộcMô tả
balance_anchor_mismatchbooleanCó—
blockersstring[]Có—
missing_counterparty_codes_countintegerCó—
periodstringCó—
period_lockedbooleanCó—
provisional_countintegerCó—
readybooleanCótrue nếu sẵn sàng tạo lô xuất.
targetExportTargetCóGiá trị: misa_amis, misa_sme, fast, excel_tt133, excel_tt99, misa_amis_api.
unmapped_accounts_countintegerCó—
warningsstring[]Có—
TrườngKiểuBắt buộcMô tả
bank_account_idAccountIdCó—
code_faststring | nullKhôngMã tương ứng trong Fast.
code_misastring | nullKhôngMã tương ứng trong MISA.
created_atTimestampCó—
effective_fromDateCó—
gl_codestringCóMã tài khoản kế toán (ví dụ: 1121).
idstring (uuid)Có—
org_idOrgIdCó—
profile_idstring (uuid)Có—
statestringCóGiá trị: pending_approval, active, disabled.
updated_atTimestampCó—
TrườngKiểuBắt buộcMô tả
code_faststringKhông—
code_misastringKhông—
effective_fromDateCó—
gl_codestringCóSố hiệu tài khoản kế toán (TT200/TT133), ví dụ 1121.
TrườngKiểuBắt buộcMô tả
dataMappingChange[]Có—
data[].checker_user_idUserId | nullKhông—
data[].created_atTimestampCó—
data[].decided_atTimestamp | nullKhông—
data[].decision_reasonstring | nullKhông—
data[].idApprovalRequestIdCó—
data[].maker_user_idUserIdCó—
data[].statestringCóGiá trị: pending, approved, rejected, withdrawn, expired.
data[].subject_idstringCóId dòng ánh xạ, hoặc <id quy tắc>:<phiên bản> với quy tắc định khoản.
data[].subject_typestringCóGiá trị: bank_account_gl_map, mapping_rule.
has_morebooleanCó—
next_cursorstring | nullCóCon trỏ trang kế; null khi hết dữ liệu.
objectstringCóGiá trị: list.
TrườngKiểuBắt buộcMô tả
checker_user_idUserId | nullKhông—
created_atTimestampCó—
decided_atTimestamp | nullKhông—
decision_reasonstring | nullKhông—
idApprovalRequestIdCó—
maker_user_idUserIdCó—
statestringCóGiá trị: pending, approved, rejected, withdrawn, expired.
subject_idstringCóId dòng ánh xạ, hoặc <id quy tắc>:<phiên bản> với quy tắc định khoản.
subject_typestringCóGiá trị: bank_account_gl_map, mapping_rule.
TrườngKiểuBắt buộcMô tả
reasonstringCó—
TrườngKiểuBắt buộcMô tả
dataCounterpartyCodeEntry[]Có—
data[].codestringCóMã sẽ xuất: mã đã lưu, hoặc mã suy ra từ MST/tên khi chưa lưu.
data[].counterparty_idCounterpartyIdCó—
data[].max_lenintegerCóĐộ dài tối đa của mã trên đích.
data[].mststring | nullCó—
data[].namestringCó—
data[].sourcestringCóGiá trị: saved, derived.
data[].targetCounterpartyCodeTargetCóGiá trị: misa_amis, misa_sme, fast, excel.
has_morebooleanCó—
next_cursorstring | nullCóCon trỏ trang kế; null khi hết dữ liệu.
objectstringCóGiá trị: list.
TrườngKiểuBắt buộcMô tả
codestringCóASCII hoa, số, _ hoặc -; không dài hơn giới hạn của đích.
counterparty_idCounterpartyIdCó—
targetCounterpartyCodeTargetCóGiá trị: misa_amis, misa_sme, fast, excel.
TrườngKiểuBắt buộcMô tả
codestringCóMã sẽ xuất: mã đã lưu, hoặc mã suy ra từ MST/tên khi chưa lưu.
counterparty_idCounterpartyIdCó—
max_lenintegerCóĐộ dài tối đa của mã trên đích.
mststring | nullCó—
namestringCó—
sourcestringCóGiá trị: saved, derived.
targetCounterpartyCodeTargetCóGiá trị: misa_amis, misa_sme, fast, excel.
TrườngKiểuBắt buộcMô tả
rowsobject[]Có—
rows[].codestringCó—
rows[].mststringKhông—
rows[].namestringKhông—
targetCounterpartyCodeTargetCóGiá trị: misa_amis, misa_sme, fast, excel.

Đối tượng khác của nhóm này (xem tài liệu tương tác): ImportCounterpartyCodesResult, MappingRuleList, CreateMappingRuleBody, MappingRule, ProposeMappingRulesBody, MappingProposalResult, MappingTemplateList, ApplyMappingTemplateBody, ApplyMappingTemplateResult, MisaConnection, PutMisaConnectionBody, MisaConnectionTestResult, MisaDictionaryItem, MisaVoucherRequestList, MisaVoucherRequest, AccountingPeriod, LockPeriodRequest, UnlockPeriodRequest, AllocationList, Allocation, ExpectedPaymentList, ExportBatchList, CreateExportBatchBody, ExportBatch, ExportDryRunBody, ExportDryRunResponse, ExportBatchDetail, ExportPreviewLineList, RejectExportBatchBody, ReconFollowupList, MatchRuleList, ReconQueueList, ObligationList, ObligationAllocation, CreateObligationAllocationBody, PayoutList, Payout, SettlementReportSchedule, SettlementSettings, SplitRuleList, CreateSplitRuleBody, SplitRule, CreateSplitRuleVersionBody, SplitRuleVersion, SettlementImport, SettlementSummary

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.