Danh mục sự kiện webhook
danh muc su kien webhookMọi sự kiện webhook của Dòng Tiền Pro theo nhóm: phong bì Standard Webhooks và các trường của data.object cho từng sự kiện. moi su kien webhook cua dong tien pro theo nhom: phong bi standard webhooks va cac truong cua data.object cho tung su kien.Mỗi khi dữ liệu của bạn thay đổi, Dòng Tiền Pro gửi một sự kiện tới endpoint webhook theo chuẩn Standard Webhooks. Trang này liệt kê 34 sự kiện của phiên bản API 2026-10-19 và các trường trong data.object của từng sự kiện.
Phong bì sự kiện
Phần tiêu đề “Phong bì sự kiện”Thân yêu cầu là một JSON có năm trường:
| Trường | Kiểu | Ý nghĩa |
|---|---|---|
id | string | Mã sự kiện evt_…; giữ nguyên khi giao lại, dùng để loại trùng. |
type | string | Loại sự kiện, một trong các giá trị ở bảng bên dưới. |
api_version | string | Phiên bản API của nội dung data.object (YYYY-MM-DD). |
created_at | string | Thời điểm tạo sự kiện, RFC 3339 UTC. |
data.object | object | Đối tượng của sự kiện; các trường theo từng sự kiện ở phần chi tiết. |
{ "id": "evt_…", "type": "transaction.created", "api_version": "2026-10-19", "created_at": "…", "data": { "object": {} }}- Header giao kèm:
webhook-id,webhook-timestamp,webhook-signature; khoá ký có dạngwhsec_…. - Cách xác minh chữ ký: Chữ ký webhook. Thử lại và thứ tự giao: Thử lại, Thứ tự và trùng lặp.
Danh sách sự kiện
Phần tiêu đề “Danh sách sự kiện”| Nhóm | Sự kiện | Mô tả |
|---|---|---|
| Giao dịch | transaction.created | Giao dịch xuất hiện (trừ giao dịch bị cách ly); status là trạng thái thật. |
| Giao dịch | transaction.confirmed | Giao dịch đạt xác thực; phát đúng một lần, kể cả giao dịch xác thực ngay từ đầu. Tín hiệu "tiền về". |
| Giao dịch | transaction.merged | Dedupe gộp hai giao dịch thành một. |
| Giao dịch | transaction.quarantined | Giao dịch bị cách ly (DKIM lỗi, người gửi lạ…). |
| Giao dịch | transaction.released | Giao dịch được gỡ cách ly. |
| Kênh dữ liệu | channel.degraded | Kênh nhận dữ liệu của tài khoản lỗi, hết hạn hoặc im lặng. |
| Thiết bị chuyển tiếp | device.offline | Thiết bị chuyển tiếp mất kết nối quá 15 phút. |
| Thiết bị chuyển tiếp | device.online | Thiết bị chuyển tiếp kết nối lại. |
| Đối soát | reconcile.proposed | Có đề nghị đối soát chờ duyệt hoặc gợi ý AI vượt ngưỡng. |
| Đối soát | reconcile.approved | Người duyệt chấp thuận đối soát. |
| Đối soát | reconcile.rejected | Người duyệt từ chối đối soát. |
| Đối soát | reconcile.reversed | Một đối soát đã duyệt bị đảo. |
| Hoá đơn | invoice.payment_posted | Đã ghi ngược thanh toán về hoá đơn nguồn. |
| Hoá đơn | invoice.payment_writeback_failed | Ghi ngược thanh toán về hoá đơn thất bại sau khi hết số lần thử. |
| Thu tiền VietQR | payment.received | Yêu cầu thanh toán đã được trả đủ (đã xác thực). |
| Thu tiền VietQR | payment.partial | Yêu cầu thanh toán mới được trả một phần. |
| Thu tiền VietQR | payment.overpaid | Yêu cầu thanh toán được trả thừa. |
| Thu tiền VietQR | payment.expired | Yêu cầu thanh toán hết hạn khi chưa trả đủ. |
| Thu tại quầy | collect.bill.paid | Hoá đơn tại quầy được thanh toán. |
| Kết nối ngân hàng | connection.expiring | Mã truy cập ngân hàng sắp hết hạn (14 và 3 ngày trước). |
| Kết nối ngân hàng | connection.failed | Kết nối ngân hàng đồng bộ lỗi. |
| Khoá API | apikey.expiring | Khoá API sắp hết hạn (14 và 3 ngày trước). |
| Xuất kế toán | export.completed | Lô xuất kế toán đã sinh tệp. |
| Xuất kế toán | export.failed | Lô xuất kế toán lỗi. |
| Xuất kế toán | export.misa_failed | Đề nghị đẩy chứng từ sang phần mềm kế toán thất bại hoặc kết nối bị ngắt. |
| Kỳ kế toán | period.locked | Kỳ kế toán được khoá. |
| Kỳ kế toán | period.unlocked | Kỳ kế toán được mở khoá. |
| Hạn mức | quota.threshold | Số giao dịch xác thực đạt 80% hoặc 100% hạn mức. |
| Dòng tiền | cashflow.alert | Một quy tắc cảnh báo dòng tiền kích hoạt. |
| Settlement | settlement.payout_variance | Khoản quyết toán lệch quá ngưỡng. |
| Công nợ | obligation.overdue | Khoản phải thu/phải trả quá hạn. |
| Nhập dữ liệu | import.completed | Tác vụ nhập sao kê hoặc lịch sử hoàn tất (không tính hạn mức). |
| Tích hợp | integration.delivery_failed | Gửi sang kênh tích hợp thất bại sau khi hết số lần thử. |
| Gửi thử | ping | "Gửi thử" từ trang cấu hình endpoint; giao trực tiếp, không qua hàng đợi sự kiện. |
Chi tiết từng sự kiện
Phần tiêu đề “Chi tiết từng sự kiện”Giao dịch
Phần tiêu đề “Giao dịch”transaction.created
Phần tiêu đề “transaction.created”Giao dịch xuất hiện (trừ giao dịch bị cách ly); status là trạng thái thật.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
account | object | Có | — |
account.bank | string | Có | — |
account.id | string | Có | Mã tài khoản ngân hàng (acc_…). |
account.label | string | Có | — |
account.last4 | string | Có | — |
amount | integer | Có | Số tiền VND dương, số nguyên đồng. Tối đa: 9007199254740991 |
balance_after | integer | null | Có | Số dư sau giao dịch nếu nguồn có; không bao giờ suy đoán. Khoảng: -9007199254740991 – 9007199254740991 |
company | object | Có | — |
company.id | string | Có | Mã công ty / tổ chức (org_…). |
company.mst | string | null | Có | — |
counterparty | object | null | Có | — |
counterparty.name_masked | string | null | Có | — |
currency | string | Có | Giá trị: VND |
description | string | null | Có | — |
direction | string | Có | Giá trị: in, out |
id | string | Có | Mã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp. |
lifecycle | string | Có | Giá trị: active, merged_child, quarantined, rejected, released |
memo_code | string | null | Có | Mã nội dung chuyển khoản DTP… đã trích. |
merged_into | string | null | Có | Khi bị gộp, mã giao dịch chính; mã tx_ cũ vẫn truy cập được. |
object | string | Có | Giá trị: transaction |
occurred_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
occurred_precision | string | Có | Giá trị: date, minute, second |
payment_request | string | null | Có | Mã yêu cầu thanh toán (pr_…). |
received_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
recon_status | string | Có | Giá trị: unreconciled, suggested, pending_approval, reconciled, not_required, routed_settlement |
sources | string[] | Có | Các kênh đã báo giao dịch này (sau khi gộp). |
status | string | Có | confirmed: đã xác thực bởi nguồn đáng tin (tiền về). provisional: tạm tính, chưa đủ bằng chứng — không coi là tiền về.Giá trị: provisional, confirmed |
verified_by | string | null | Có | Bằng chứng đã xác thực giao dịch; null khi còn provisional.Giá trị: openapi, statement, trusted_sender, email_dkim, manual, import |
chain_flag | string | null | Không | Chuỗi số dư nghi ngờ quanh giao dịch: chain_mismatch số dư mâu thuẫn, gap_suspected nghi thiếu giao dịch. Chỉ đánh dấu nhất quán — không đổi trạng thái xác thực (D36).Giá trị: chain_mismatch, gap_suspected |
dedupe_hint | string | null | Không | Gợi ý khử trùng lúc nhập: ambiguous (nhiều ứng viên, không gộp), near_duplicate (giống nhưng chưa đủ điểm), locked_period (kỳ đã khoá), quarantined_source (nguồn bị cách ly nên không gộp).Giá trị: ambiguous, near_duplicate, locked_period, quarantined_source |
quarantine_reason | string | null | Không | Lý do cách ly khi lifecycle là quarantined/rejected: unverified_sender, device_sig_invalid, dkim_fail, domain_mismatch hoặc lý do do người vận hành nhập; null nếu không bị cách ly. |
source_count | integer | Không | Số nguồn đã gộp vào giao dịch này (“Gộp từ n nguồn”). Khoảng: 1 – 9007199254740991 |
transaction.confirmed
Phần tiêu đề “transaction.confirmed”Giao dịch đạt xác thực; phát đúng một lần, kể cả giao dịch xác thực ngay từ đầu. Tín hiệu "tiền về".
data.object có cùng cấu trúc với sự kiện transaction.created.
transaction.merged
Phần tiêu đề “transaction.merged”Dedupe gộp hai giao dịch thành một.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
id | string | Có | Mã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp. |
merged_into | string | Có | Mã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp. |
sources | string[] | Có | — |
transaction.quarantined
Phần tiêu đề “transaction.quarantined”Giao dịch bị cách ly (DKIM lỗi, người gửi lạ…).
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
id | string | Có | Mã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp. |
reason | string | Có | — |
transaction.released
Phần tiêu đề “transaction.released”Giao dịch được gỡ cách ly.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
id | string | Có | Mã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp. |
reason | string | null | Có | — |
Kênh dữ liệu
Phần tiêu đề “Kênh dữ liệu”channel.degraded
Phần tiêu đề “channel.degraded”Kênh nhận dữ liệu của tài khoản lỗi, hết hạn hoặc im lặng.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
account_id | string | Có | — |
channel | string | Có | Giá trị: android, ios, email, openapi, statement, import |
reason | string | Có | — |
Thiết bị chuyển tiếp
Phần tiêu đề “Thiết bị chuyển tiếp”device.offline
Phần tiêu đề “device.offline”Thiết bị chuyển tiếp mất kết nối quá 15 phút.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
device_id | string | Có | — |
last_seen_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
queue_depth | integer | Có | Khoảng: 0 – 9007199254740991 |
reason | string | Có | Giá trị: battery, oem_kill, network, automation_off, token_revoked, silent_36h, unknown |
device.online
Phần tiêu đề “device.online”Thiết bị chuyển tiếp kết nối lại.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
device_id | string | Có | — |
last_seen_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
queue_depth | integer | Có | Khoảng: 0 – 9007199254740991 |
Đối soát
Phần tiêu đề “Đối soát”reconcile.proposed
Phần tiêu đề “reconcile.proposed”Có đề nghị đối soát chờ duyệt hoặc gợi ý AI vượt ngưỡng.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
id | string | Có | Mã đối soát alc_…. |
reconcile.approved
Phần tiêu đề “reconcile.approved”Người duyệt chấp thuận đối soát.
data.object có cùng cấu trúc với sự kiện reconcile.proposed.
reconcile.rejected
Phần tiêu đề “reconcile.rejected”Người duyệt từ chối đối soát.
data.object có cùng cấu trúc với sự kiện reconcile.proposed.
reconcile.reversed
Phần tiêu đề “reconcile.reversed”Một đối soát đã duyệt bị đảo.
data.object có cùng cấu trúc với sự kiện reconcile.proposed.
Hoá đơn
Phần tiêu đề “Hoá đơn”invoice.payment_posted
Phần tiêu đề “invoice.payment_posted”Đã ghi ngược thanh toán về hoá đơn nguồn.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
allocation_id | string | Có | — |
hoadon_payment_id | string | Có | — |
invoice_id | string | Có | — |
invoice.payment_writeback_failed
Phần tiêu đề “invoice.payment_writeback_failed”Ghi ngược thanh toán về hoá đơn thất bại sau khi hết số lần thử.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
allocation_id | string | Có | — |
error | string | Có | — |
Thu tiền VietQR
Phần tiêu đề “Thu tiền VietQR”payment.received
Phần tiêu đề “payment.received”Yêu cầu thanh toán đã được trả đủ (đã xác thực).
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
id | string | Có | Mã yêu cầu thanh toán (pr_…). |
transactions | object[] | Có | — |
transactions[].account | object | Có | — |
transactions[].amount | integer | Có | Số tiền VND dương, số nguyên đồng. Tối đa: 9007199254740991 |
transactions[].balance_after | integer | null | Có | Số dư sau giao dịch nếu nguồn có; không bao giờ suy đoán. Khoảng: -9007199254740991 – 9007199254740991 |
transactions[].company | object | Có | — |
transactions[].counterparty | object | null | Có | — |
transactions[].currency | string | Có | Giá trị: VND |
transactions[].description | string | null | Có | — |
transactions[].direction | string | Có | Giá trị: in, out |
transactions[].id | string | Có | Mã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp. |
transactions[].lifecycle | string | Có | Giá trị: active, merged_child, quarantined, rejected, released |
transactions[].memo_code | string | null | Có | Mã nội dung chuyển khoản DTP… đã trích. |
transactions[].merged_into | string | null | Có | Khi bị gộp, mã giao dịch chính; mã tx_ cũ vẫn truy cập được. |
transactions[].object | string | Có | Giá trị: transaction |
transactions[].occurred_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
transactions[].occurred_precision | string | Có | Giá trị: date, minute, second |
transactions[].payment_request | string | null | Có | Mã yêu cầu thanh toán (pr_…). |
transactions[].received_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
transactions[].recon_status | string | Có | Giá trị: unreconciled, suggested, pending_approval, reconciled, not_required, routed_settlement |
transactions[].sources | string[] | Có | Các kênh đã báo giao dịch này (sau khi gộp). |
transactions[].status | string | Có | confirmed: đã xác thực bởi nguồn đáng tin (tiền về). provisional: tạm tính, chưa đủ bằng chứng — không coi là tiền về.Giá trị: provisional, confirmed |
transactions[].verified_by | string | null | Có | Bằng chứng đã xác thực giao dịch; null khi còn provisional.Giá trị: openapi, statement, trusted_sender, email_dkim, manual, import |
transactions[].chain_flag | string | null | Không | Chuỗi số dư nghi ngờ quanh giao dịch: chain_mismatch số dư mâu thuẫn, gap_suspected nghi thiếu giao dịch. Chỉ đánh dấu nhất quán — không đổi trạng thái xác thực (D36).Giá trị: chain_mismatch, gap_suspected |
transactions[].dedupe_hint | string | null | Không | Gợi ý khử trùng lúc nhập: ambiguous (nhiều ứng viên, không gộp), near_duplicate (giống nhưng chưa đủ điểm), locked_period (kỳ đã khoá), quarantined_source (nguồn bị cách ly nên không gộp).Giá trị: ambiguous, near_duplicate, locked_period, quarantined_source |
transactions[].quarantine_reason | string | null | Không | Lý do cách ly khi lifecycle là quarantined/rejected: unverified_sender, device_sig_invalid, dkim_fail, domain_mismatch hoặc lý do do người vận hành nhập; null nếu không bị cách ly. |
transactions[].source_count | integer | Không | Số nguồn đã gộp vào giao dịch này (“Gộp từ n nguồn”). Khoảng: 1 – 9007199254740991 |
payment.partial
Phần tiêu đề “payment.partial”Yêu cầu thanh toán mới được trả một phần.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
id | string | Có | Mã yêu cầu thanh toán (pr_…). |
short_by | integer | Có | Số tiền VND, số nguyên đồng (không có phần thập phân). Khoảng: -9007199254740991 – 9007199254740991 |
transactions | object[] | Có | — |
transactions[].account | object | Có | — |
transactions[].amount | integer | Có | Số tiền VND dương, số nguyên đồng. Tối đa: 9007199254740991 |
transactions[].balance_after | integer | null | Có | Số dư sau giao dịch nếu nguồn có; không bao giờ suy đoán. Khoảng: -9007199254740991 – 9007199254740991 |
transactions[].company | object | Có | — |
transactions[].counterparty | object | null | Có | — |
transactions[].currency | string | Có | Giá trị: VND |
transactions[].description | string | null | Có | — |
transactions[].direction | string | Có | Giá trị: in, out |
transactions[].id | string | Có | Mã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp. |
transactions[].lifecycle | string | Có | Giá trị: active, merged_child, quarantined, rejected, released |
transactions[].memo_code | string | null | Có | Mã nội dung chuyển khoản DTP… đã trích. |
transactions[].merged_into | string | null | Có | Khi bị gộp, mã giao dịch chính; mã tx_ cũ vẫn truy cập được. |
transactions[].object | string | Có | Giá trị: transaction |
transactions[].occurred_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
transactions[].occurred_precision | string | Có | Giá trị: date, minute, second |
transactions[].payment_request | string | null | Có | Mã yêu cầu thanh toán (pr_…). |
transactions[].received_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
transactions[].recon_status | string | Có | Giá trị: unreconciled, suggested, pending_approval, reconciled, not_required, routed_settlement |
transactions[].sources | string[] | Có | Các kênh đã báo giao dịch này (sau khi gộp). |
transactions[].status | string | Có | confirmed: đã xác thực bởi nguồn đáng tin (tiền về). provisional: tạm tính, chưa đủ bằng chứng — không coi là tiền về.Giá trị: provisional, confirmed |
transactions[].verified_by | string | null | Có | Bằng chứng đã xác thực giao dịch; null khi còn provisional.Giá trị: openapi, statement, trusted_sender, email_dkim, manual, import |
transactions[].chain_flag | string | null | Không | Chuỗi số dư nghi ngờ quanh giao dịch: chain_mismatch số dư mâu thuẫn, gap_suspected nghi thiếu giao dịch. Chỉ đánh dấu nhất quán — không đổi trạng thái xác thực (D36).Giá trị: chain_mismatch, gap_suspected |
transactions[].dedupe_hint | string | null | Không | Gợi ý khử trùng lúc nhập: ambiguous (nhiều ứng viên, không gộp), near_duplicate (giống nhưng chưa đủ điểm), locked_period (kỳ đã khoá), quarantined_source (nguồn bị cách ly nên không gộp).Giá trị: ambiguous, near_duplicate, locked_period, quarantined_source |
transactions[].quarantine_reason | string | null | Không | Lý do cách ly khi lifecycle là quarantined/rejected: unverified_sender, device_sig_invalid, dkim_fail, domain_mismatch hoặc lý do do người vận hành nhập; null nếu không bị cách ly. |
transactions[].source_count | integer | Không | Số nguồn đã gộp vào giao dịch này (“Gộp từ n nguồn”). Khoảng: 1 – 9007199254740991 |
payment.overpaid
Phần tiêu đề “payment.overpaid”Yêu cầu thanh toán được trả thừa.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
id | string | Có | Mã yêu cầu thanh toán (pr_…). |
over_by | integer | Có | Số tiền VND, số nguyên đồng (không có phần thập phân). Khoảng: -9007199254740991 – 9007199254740991 |
transactions | object[] | Có | — |
transactions[].account | object | Có | — |
transactions[].amount | integer | Có | Số tiền VND dương, số nguyên đồng. Tối đa: 9007199254740991 |
transactions[].balance_after | integer | null | Có | Số dư sau giao dịch nếu nguồn có; không bao giờ suy đoán. Khoảng: -9007199254740991 – 9007199254740991 |
transactions[].company | object | Có | — |
transactions[].counterparty | object | null | Có | — |
transactions[].currency | string | Có | Giá trị: VND |
transactions[].description | string | null | Có | — |
transactions[].direction | string | Có | Giá trị: in, out |
transactions[].id | string | Có | Mã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp. |
transactions[].lifecycle | string | Có | Giá trị: active, merged_child, quarantined, rejected, released |
transactions[].memo_code | string | null | Có | Mã nội dung chuyển khoản DTP… đã trích. |
transactions[].merged_into | string | null | Có | Khi bị gộp, mã giao dịch chính; mã tx_ cũ vẫn truy cập được. |
transactions[].object | string | Có | Giá trị: transaction |
transactions[].occurred_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
transactions[].occurred_precision | string | Có | Giá trị: date, minute, second |
transactions[].payment_request | string | null | Có | Mã yêu cầu thanh toán (pr_…). |
transactions[].received_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
transactions[].recon_status | string | Có | Giá trị: unreconciled, suggested, pending_approval, reconciled, not_required, routed_settlement |
transactions[].sources | string[] | Có | Các kênh đã báo giao dịch này (sau khi gộp). |
transactions[].status | string | Có | confirmed: đã xác thực bởi nguồn đáng tin (tiền về). provisional: tạm tính, chưa đủ bằng chứng — không coi là tiền về.Giá trị: provisional, confirmed |
transactions[].verified_by | string | null | Có | Bằng chứng đã xác thực giao dịch; null khi còn provisional.Giá trị: openapi, statement, trusted_sender, email_dkim, manual, import |
transactions[].chain_flag | string | null | Không | Chuỗi số dư nghi ngờ quanh giao dịch: chain_mismatch số dư mâu thuẫn, gap_suspected nghi thiếu giao dịch. Chỉ đánh dấu nhất quán — không đổi trạng thái xác thực (D36).Giá trị: chain_mismatch, gap_suspected |
transactions[].dedupe_hint | string | null | Không | Gợi ý khử trùng lúc nhập: ambiguous (nhiều ứng viên, không gộp), near_duplicate (giống nhưng chưa đủ điểm), locked_period (kỳ đã khoá), quarantined_source (nguồn bị cách ly nên không gộp).Giá trị: ambiguous, near_duplicate, locked_period, quarantined_source |
transactions[].quarantine_reason | string | null | Không | Lý do cách ly khi lifecycle là quarantined/rejected: unverified_sender, device_sig_invalid, dkim_fail, domain_mismatch hoặc lý do do người vận hành nhập; null nếu không bị cách ly. |
transactions[].source_count | integer | Không | Số nguồn đã gộp vào giao dịch này (“Gộp từ n nguồn”). Khoảng: 1 – 9007199254740991 |
payment.expired
Phần tiêu đề “payment.expired”Yêu cầu thanh toán hết hạn khi chưa trả đủ.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
id | string | Có | Mã yêu cầu thanh toán (pr_…). |
Thu tại quầy
Phần tiêu đề “Thu tại quầy”collect.bill.paid
Phần tiêu đề “collect.bill.paid”Hoá đơn tại quầy được thanh toán.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
amount | integer | Có | Số tiền VND, số nguyên đồng (không có phần thập phân). Khoảng: -9007199254740991 – 9007199254740991 |
bill_ref | string | Có | — |
counter | string | Có | — |
memo | string | null | Có | — |
store | string | Có | — |
tx_id | string | Có | Mã giao dịch (tx_…), ổn định vĩnh viễn kể cả khi bị gộp. |
Kết nối ngân hàng
Phần tiêu đề “Kết nối ngân hàng”connection.expiring
Phần tiêu đề “connection.expiring”Mã truy cập ngân hàng sắp hết hạn (14 và 3 ngày trước).
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
connection_id | string | Có | — |
expires_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
connection.failed
Phần tiêu đề “connection.failed”Kết nối ngân hàng đồng bộ lỗi.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
connection_id | string | Có | — |
expires_at | string | null | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
Khoá API
Phần tiêu đề “Khoá API”apikey.expiring
Phần tiêu đề “apikey.expiring”Khoá API sắp hết hạn (14 và 3 ngày trước).
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
api_key_id | string | Có | — |
expires_at | string | Có | Thời điểm RFC 3339, luôn ở UTC (hậu tố Z). |
Xuất kế toán
Phần tiêu đề “Xuất kế toán”export.completed
Phần tiêu đề “export.completed”Lô xuất kế toán đã sinh tệp.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
export_batch_id | string | Có | — |
file | object | Có | — |
file.sha256 | string | Có | — |
file.size | integer | Có | Khoảng: 0 – 9007199254740991 |
export.failed
Phần tiêu đề “export.failed”Lô xuất kế toán lỗi.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
error_code | string | null | Có | — |
export_batch_id | string | Có | — |
export.misa_failed
Phần tiêu đề “export.misa_failed”Đề nghị đẩy chứng từ sang phần mềm kế toán thất bại hoặc kết nối bị ngắt.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
error_code | string | Có | — |
export_batch_id | string | Có | — |
org_refid | string | Có | — |
request_id | string | Có | — |
Kỳ kế toán
Phần tiêu đề “Kỳ kế toán”period.locked
Phần tiêu đề “period.locked”Kỳ kế toán được khoá.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
approved_by | string | null | Có | — |
by | string | Có | — |
period | string | Có | — |
period.unlocked
Phần tiêu đề “period.unlocked”Kỳ kế toán được mở khoá.
data.object có cùng cấu trúc với sự kiện period.locked.
Hạn mức
Phần tiêu đề “Hạn mức”quota.threshold
Phần tiêu đề “quota.threshold”Số giao dịch xác thực đạt 80% hoặc 100% hạn mức.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
pct | number | Có | Tối thiểu: 0 |
projected | integer | Có | Khoảng: 0 – 9007199254740991 |
quota | integer | Có | Khoảng: 0 – 9007199254740991 |
usage | integer | Có | Khoảng: 0 – 9007199254740991 |
estimated_fee_vnd | integer | Không | Số tiền VND, số nguyên đồng (không có phần thập phân). Khoảng: -9007199254740991 – 9007199254740991 |
kind | string | Không | Giá trị: quota, spend_cap |
period | string | Không | — |
Dòng tiền
Phần tiêu đề “Dòng tiền”cashflow.alert
Phần tiêu đề “cashflow.alert”Một quy tắc cảnh báo dòng tiền kích hoạt.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
alert_id | string | Có | — |
rule | string | Có | — |
severity | string | Có | Giá trị: low, medium, high |
Settlement
Phần tiêu đề “Settlement”settlement.payout_variance
Phần tiêu đề “settlement.payout_variance”Khoản quyết toán lệch quá ngưỡng.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
diff | integer | Có | Số tiền VND, số nguyên đồng (không có phần thập phân). Khoảng: -9007199254740991 – 9007199254740991 |
payout_id | string | Có | — |
Công nợ
Phần tiêu đề “Công nợ”obligation.overdue
Phần tiêu đề “obligation.overdue”Khoản phải thu/phải trả quá hạn.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
obligation_id | string | Có | — |
Nhập dữ liệu
Phần tiêu đề “Nhập dữ liệu”import.completed
Phần tiêu đề “import.completed”Tác vụ nhập sao kê hoặc lịch sử hoàn tất (không tính hạn mức).
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
counts | object | Có | — |
job_id | string | Có | — |
Tích hợp
Phần tiêu đề “Tích hợp”integration.delivery_failed
Phần tiêu đề “integration.delivery_failed”Gửi sang kênh tích hợp thất bại sau khi hết số lần thử.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
error | string | Có | — |
idl_id | string | Có | — |
integration_id | string | Có | — |
Gửi thử
Phần tiêu đề “Gửi thử”"Gửi thử" từ trang cấu hình endpoint; giao trực tiếp, không qua hàng đợi sự kiện.
Các trường của data.object:
| Trường | Kiểu | Luôn có | Mô tả |
|---|---|---|---|
message | string | Có | — |
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.
doi de diem dat dung dau duoc da dao don du dong day doan dinh dang danh