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

Nhập sao kê

~31 phút đọc

Tải sao kê ngân hàng (Excel, CSV, MT940, CAMT.053): xem trước, kiểm tra số dư đầu/cuối, ánh xạ cột, lịch nhận sao kê. Không có nhập ép: số dư lệch thì dừng.

MethodPathTóm tắtQuyềnNhóm tốc độTương tác
GET/v1/statement-mappingsDanh sách mẫu ánh xạ cộtstatement.importreadScalar
PUT/v1/statement-mappingsLưu mẫu ánh xạ cộtstatement.importwriteScalar
GET/v1/statement-schedulesDanh sách lịch nhận sao kêstatement_schedule.managereadScalar
POST/v1/statement-schedulesTạo lịch nhận sao kêstatement_schedule.managewriteScalar
PATCH/v1/statement-schedules/{id}Sửa lịch nhận sao kêstatement_schedule.managewriteScalar
DELETE/v1/statement-schedules/{id}Xoá lịch nhận sao kêstatement_schedule.managewriteScalar
POST/v1/statement-schedules/{id}:runChạy lịch ngaystatement_schedule.managewriteScalar
GET/v1/statementsDanh sách sao kê đã tảistatement.importreadScalar
POST/v1/statements/previewTải sao kê lên để xem trướcstatement.importwriteScalar
GET/v1/statements/{id}Chi tiết sao kêstatement.importreadScalar
GET/v1/statements/{id}/errorsTải nhật ký dòng lỗistatement.importexportScalar
GET/v1/statements/{id}/rowsDòng xem trước của sao kêstatement.importreadScalar
POST/v1/statements/{id}:cancelHuỷ sao kê chưa nhậpstatement.importwriteScalar
POST/v1/statements/{id}:commitNhập sao kê vào sổstatement.importwriteScalar
POST/v1/statements/{id}:rerunChạy lại xem trước với ánh xạ khácstatement.importwriteScalar

Danh sách mẫu ánh xạ cột

Mẫu mới cập nhật trước, tối đa 200. Lọc theo mã ngân hàng và/hoặc dấu vân tay tiêu đề.

Quyền: statement.import
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách. — StatementMappingList, application/json
  • Mã lỗi: chỉ các mã lỗi chung ở Tổng quan
TênVị tríBắt buộcKiểuMô tả
bank_codequeryKhôngstring—
header_fingerprintqueryKhôngstring—
curl -sS -X GET "https://api.dongtien.pro/v1/statement-mappings" \
-H "Authorization: Bearer $DT_API_KEY"

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

Lưu mẫu ánh xạ cột

Mỗi (ngân hàng, dấu vân tay tiêu đề) chỉ có một mẫu: lưu lại cùng khoá thì thay thế mẫu cũ (200 cả khi tạo mới). Cần có cột ngày và cột số tiền (hoặc cả ghi nợ lẫn ghi có).

Quyền: statement.import Idempotency-Key: tuỳ chọn
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: PutStatementMapping (application/json, bắt buộc)
  • Phản hồi thành công 200: Mẫu đã lưu. — StatementMapping, 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/statement-mappings" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"company_id": "org_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"bank_code": "ACB",
"header_fingerprint": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"mapping": {
"layout_id": "acb",
"header_row": 8,
"columns": {
"date": 0,
"debit": 3,
"credit": 4,
"balance": 5,
"description": 2
}
}
}'

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

Danh sách lịch nhận sao kê

Mới tạo trước, tối đa 200. Lọc theo tài khoản.

Quyền: statement_schedule.manage
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách. — StatementScheduleList, 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_…).
bank_account_idqueryKhôngAccountIdMã tài khoản ngân hàng (acc_…).
curl -sS -X GET "https://api.dongtien.pro/v1/statement-schedules" \
-H "Authorization: Bearer $DT_API_KEY"

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

Tạo lịch nhận sao kê

email_attachment: sao kê đến qua alias thư của công ty. manual_upload: nhắc người tải tay theo cron; quá overdue_after_days ngày mà chưa có thì trạng thái overdue. sftp: ngân hàng đẩy CAMT.053 lên máy chủ SFTP, cổng ngân hàng lấy về theo cron. Cần cron trừ nguồn thư; SFTP cần cấu hình máy chủ.

Quyền: statement_schedule.manage Idempotency-Key: tuỳ chọn
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: CreateStatementSchedule (application/json, bắt buộc)
  • Phản hồi thành công 201: Đã tạo. — StatementSchedule, 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/statement-schedules" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"bank_account_id": "acc_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"source": "email_attachment",
"format": "auto",
"alias_id": "eal_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"sftp": {
"port": 22
},
"auto_commit": true,
"overdue_after_days": 7
}'

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

Sửa lịch nhận sao kê

Sửa định dạng, lịch, cấu hình SFTP, tự nhập, hạn quá hạn, bật/tắt. Tài khoản và nguồn không đổi. cron chỉ với manual_upload/sftp; sftp chỉ với lịch SFTP.

Quyền: statement_schedule.manage Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóStatementScheduleIdMã lịch nhận sao kê (ssc_…).
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/statement-schedules/$ID" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"format": "auto",
"alias_id": "eal_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"sftp": {
"port": 22
}
}'

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

Xoá lịch nhận sao kê

Xoá lịch; các sao kê đã nhập từ lịch này được giữ.

Quyền: statement_schedule.manage Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóStatementScheduleIdMã lịch nhận sao kê (ssc_…).
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 DELETE "https://api.dongtien.pro/v1/statement-schedules/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

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

Chạy lịch ngay

Xử lý lại tệp gần nhất của lịch như một sao kê mới (theo auto_commit của lịch). 409 conflict khi lịch chưa có tệp nào, hoặc là lịch manual_upload (tải tệp lên qua POST /v1/statements/preview). Việc lấy tệp từ SFTP do cổng ngân hàng thực hiện theo lịch.

Quyền: statement_schedule.manage Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóStatementScheduleIdMã lịch nhận sao kê (ssc_…).
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/statement-schedules/$ID:run" \
-H "Authorization: Bearer $DT_API_KEY"

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

Danh sách sao kê đã tải

Mới nhất trước. Lọc theo tài khoản và trạng thái.

Quyền: statement.import
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách. — StatementImportList, application/json
  • Mã lỗi riêng của endpoint: invalid_cursor
TênVị tríBắt buộcKiểuMô tả
company_idqueryKhôngOrgIdMã công ty / tổ chức (org_…).
bank_account_idqueryKhôngAccountIdMã tài khoản ngân hàng (acc_…).
statequeryKhôngStatementImportStatecreated → validating → preview_ready → committing → completed | completed_with_errors; failed, cancelled. halted_balance_mismatch: số dư không khớp, không nhập được.
limitqueryKhônginteger—
cursorqueryKhôngCursorCon trỏ phân trang mờ (cur_…) lấy từ next_cursor; không tự tạo hay sửa.
curl -sS -X GET "https://api.dongtien.pro/v1/statements" \
-H "Authorization: Bearer $DT_API_KEY"

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

Tải sao kê lên để xem trước

Nhận tệp (multipart/form-data, tối đa 25 MB), kiểm tra nội dung bằng chữ ký tệp, niêm phong rồi lưu và chạy xem trước: nhận dạng bố cục, kiểm số dư đầu/cuối, chạy thử gộp trùng. Chưa ghi gì vào sổ. Trả 202 với tác vụ để theo dõi; khi state=preview_ready đọc GET /v1/statements/{id}. Cùng một tệp đã có trên tài khoản này: 200 kèm sao kê cũ, không tạo thêm. Tệp sai chữ ký: 422; quá 25 MB: 413.

Quyền: statement.import
  • Nhóm tốc độ: write
  • Nội dung yêu cầu: PreviewStatementForm (multipart/form-data, bắt buộc)
  • Phản hồi thành công 200: Tệp này đã được tải lên trước đó cho tài khoản: trả sao kê cũ. — StatementAccepted, application/json
  • Phản hồi thành công 202: Đã nhận tệp; đang nhận dạng và xem trước. — StatementAccepted, application/json
  • Mã lỗi riêng của endpoint: conflict
curl -sS -X POST "https://api.dongtien.pro/v1/statements/preview" \
-H "Authorization: Bearer $DT_API_KEY"

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

Chi tiết sao kê

Trạng thái, tệp, kỳ, đếm, bản xem trước (kiểm số dư, đếm mới/khớp/trùng/lỗi, ánh xạ cột) và kết quả sau khi nhập (neo số dư, giao dịch tạm tính không có trong sao kê).

Quyền: statement.import
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Sao kê. — StatementImport, 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/statements/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

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

Tải nhật ký dòng lỗi

Văn bản thuần (text/plain) theo dạng NDJSON: mỗi dòng một JSON {row_no, code} của một dòng lỗi trong sao kê. 404 khi sao kê không có dòng lỗi.

Quyền: statement.import
  • Nhóm tốc độ: export
  • Phản hồi thành công 200: Nhật ký lỗi, mỗi dòng một JSON. — string (binary), text/plain
  • 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/statements/$ID/errors" \
-H "Authorization: Bearer $DT_API_KEY"

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

Dòng xem trước của sao kê

Một trang 500 dòng của bản xem trước, theo thứ tự thời gian. status lọc các dòng trong trang. Chỉ có khi sao kê đã tới preview_ready (hoặc sau đó); trước đó trả 409 conflict.

Quyền: statement.import
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Trang dòng. — StatementRowsPage, 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_…).
pagequeryKhônginteger—
statusqueryKhôngstring—
curl -sS -X GET "https://api.dongtien.pro/v1/statements/$ID/rows" \
-H "Authorization: Bearer $DT_API_KEY"

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

Huỷ sao kê chưa nhập

Bỏ bản xem trước chưa nhập (created, preview_ready hoặc halted_balance_mismatch). Đang nhập hoặc đã xong trả 409 conflict. Tệp cùng nội dung có thể tải lên lại sau khi huỷ.

Quyền: statement.import Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóStatementImportIdMã lần nhập sao kê (imp_…).
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/statements/$ID:cancel" \
-H "Authorization: Bearer $DT_API_KEY"

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

Nhập sao kê vào sổ

Chỉ khi state=preview_ready. Sao kê số dư lệch (halted_balance_mismatch) trả 409 balance_mismatch: không có cách ép nhập, hãy sửa ánh xạ cột rồi chạy lại hoặc huỷ. Trạng thái khác trả 409 conflict. Gọi lại khi đang nhập trả chính tác vụ đó.

Quyền: statement.import Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóStatementImportIdMã lần nhập sao kê (imp_…).
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/statements/$ID:commit" \
-H "Authorization: Bearer $DT_API_KEY"

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

Chạy lại xem trước với ánh xạ khác

Chỉ từ preview_ready hoặc halted_balance_mismatch. Đọc lại tệp đã lưu với ánh xạ mới (mapping_id hoặc mapping), tuỳ chọn lưu làm mẫu. Trả 202 với tác vụ xem trước mới.

Quyền: statement.import Idempotency-Key: tuỳ chọn
TênVị tríBắt buộcKiểuMô tả
idpathCóStatementImportIdMã lần nhập sao kê (imp_…).
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/statements/$ID:rerun" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mapping_id": "smp_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"mapping": {
"layout_id": "acb",
"header_row": 8,
"columns": {
"date": 0,
"debit": 3,
"credit": 4,
"balance": 5,
"description": 2
}
}
}'

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

TrườngKiểuBắt buộcMô tả
dataStatementMapping[]Có—
data[].bank_codestringCó—
data[].company_idOrgIdCó—
data[].created_atTimestampCó—
data[].header_fingerprintstringCóSHA-256 của các ô tiêu đề đã chuẩn hoá.
data[].idStatementMappingIdCó—
data[].mappingStatementColumnMappingCó—
data[].objectstringCóGiá trị: statement_mapping.
data[].template_namestring | nullCó—
data[].updated_atTimestampCó—
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ả
bank_codestringCó—
company_idstringCóCông ty sở hữu mẫu.
header_fingerprintstringCó—
mappingStatementColumnMappingCó—
mapping.columnsobjectCóChỉ số cột (đếm từ 0) của từng trường; trường nào không có cột thì bỏ qua.
mapping.header_rowintegerCóDòng tiêu đề (đếm từ 0).
mapping.header_rowsnumber | numberKhôngSố dòng tiêu đề (mặc định 1).
mapping.layout_idstringKhôngMã bố cục đã nhận dạng (ví dụ acb).
template_namestringKhông—
TrườngKiểuBắt buộcMô tả
bank_codestringCó—
company_idOrgIdCó—
created_atTimestampCó—
header_fingerprintstringCóSHA-256 của các ô tiêu đề đã chuẩn hoá.
idStatementMappingIdCó—
mappingStatementColumnMappingCó—
mapping.columnsobjectCóChỉ số cột (đếm từ 0) của từng trường; trường nào không có cột thì bỏ qua.
mapping.header_rowintegerCóDòng tiêu đề (đếm từ 0).
mapping.header_rowsnumber | numberKhôngSố dòng tiêu đề (mặc định 1).
mapping.layout_idstringKhôngMã bố cục đã nhận dạng (ví dụ acb).
objectstringCóGiá trị: statement_mapping.
template_namestring | nullCó—
updated_atTimestampCó—
TrườngKiểuBắt buộcMô tả
dataStatementSchedule[]Có—
data[].alias_idEmailAliasId | nullCó—
data[].auto_commitbooleanCótrue: tự nhập khi không có dòng lỗi và số dư khớp; ngược lại chờ người xác nhận.
data[].bank_account_idAccountIdCó—
data[].company_idOrgIdCó—
data[].created_atTimestampCó—
data[].cronstring | nullCó—
data[].enabledbooleanCó—
data[].formatstringCóGiá trị: auto, xlsx, csv, mt940, camt053.
data[].idStatementScheduleIdCó—
data[].last_job_idStatementImportId | nullCóSao kê của lần chạy gần nhất.
data[].last_resultmap<string, any> | nullCóĐếm của lần chạy gần nhất (rows, new, skipped, error…), không có nội dung dòng.
data[].last_run_atTimestamp | nullCó—
data[].next_run_atTimestamp | nullCó—
data[].objectstringCóGiá trị: statement_schedule.
data[].overdue_after_daysintegerCóQuá số ngày này kể từ lúc đến hạn mà chưa có sao kê: trạng thái overdue ("Quá hạn nhắc").
data[].sftpSftpConfig | nullCóChỉ có với source=sftp. Mật khẩu/khoá không bao giờ trả về.
data[].sourcestringCóGiá trị: email_attachment, manual_upload, sftp.
data[].statusstringCóGiá trị: never, ok, failed, overdue.
data[].updated_atTimestampCó—
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ả
alias_idstringKhôngChỉ với email_attachment: alias thư nhận sao kê.
auto_commitbooleanKhông—
bank_account_idAccountIdCó—
cronstringKhôngBắt buộc với manual_upload và sftp; không dùng với email_attachment.
formatstringKhôngGiá trị: auto, xlsx, csv, mt940, camt053.
overdue_after_daysintegerKhông—
sftpobjectKhôngBắt buộc với sftp, cấm với nguồn khác. SFTP chỉ nhận CAMT.053.
sftp.hoststringCó—
sftp.host_key_sha256stringCóDấu vân tay khoá máy chủ SFTP (SHA256:…, như ssh-keygen -lf). Cổng ngân hàng chỉ kết nối khi máy chủ trình đúng khoá này; không khớp thì từ chối, không tự tin cậy lần đầu.
sftp.pathstringCóThư mục hoặc mẫu tên tệp trên máy chủ SFTP, ví dụ /out/camt053/*.xml.
sftp.portintegerKhông—
sftp.secretstringCóMật khẩu hoặc khoá riêng; được niêm phong cho cổng ngân hàng, không bao giờ trả về.
sftp.usernamestringCó—
sourcestringCóGiá trị: email_attachment, manual_upload, sftp.
TrườngKiểuBắt buộcMô tả
alias_idEmailAliasId | nullCó—
auto_commitbooleanCótrue: tự nhập khi không có dòng lỗi và số dư khớp; ngược lại chờ người xác nhận.
bank_account_idAccountIdCó—
company_idOrgIdCó—
created_atTimestampCó—
cronstring | nullCó—
enabledbooleanCó—
formatstringCóGiá trị: auto, xlsx, csv, mt940, camt053.
idStatementScheduleIdCó—
last_job_idStatementImportId | nullCóSao kê của lần chạy gần nhất.
last_resultmap<string, any> | nullCóĐếm của lần chạy gần nhất (rows, new, skipped, error…), không có nội dung dòng.
last_run_atTimestamp | nullCó—
next_run_atTimestamp | nullCó—
objectstringCóGiá trị: statement_schedule.
overdue_after_daysintegerCóQuá số ngày này kể từ lúc đến hạn mà chưa có sao kê: trạng thái overdue ("Quá hạn nhắc").
sftpSftpConfig | nullCóChỉ có với source=sftp. Mật khẩu/khoá không bao giờ trả về.
sftp.hoststringCó—
sftp.host_key_sha256string | nullCóKhoá máy chủ đã ghim. null ở lịch tạo trước khi có ghim khoá: cổng ngân hàng không chạy lịch đó cho tới khi bạn nhập dấu vân tay.
sftp.pathstringCóThư mục hoặc mẫu tên tệp trên máy chủ SFTP, ví dụ /out/camt053/*.xml.
sftp.portintegerCó—
sftp.usernamestringCó—
sourcestringCóGiá trị: email_attachment, manual_upload, sftp.
statusstringCóGiá trị: never, ok, failed, overdue.
updated_atTimestampCó—
TrườngKiểuBắt buộcMô tả
alias_idEmailAliasId | nullKhông—
auto_commitbooleanKhông—
cronstringKhôngLịch cron năm trường theo giờ Việt Nam (phút giờ ngày tháng thứ), ví dụ 0 9 1 * * = 9 giờ sáng ngày 1 hằng tháng.
enabledbooleanKhông—
formatstringKhôngGiá trị: auto, xlsx, csv, mt940, camt053.
overdue_after_daysintegerKhông—
sftpobjectKhông—
sftp.hoststringCó—
sftp.host_key_sha256stringKhôngBỏ trống để giữ khoá máy chủ đã ghim; bắt buộc khi đổi máy chủ hoặc cổng.
sftp.pathstringCóThư mục hoặc mẫu tên tệp trên máy chủ SFTP, ví dụ /out/camt053/*.xml.
sftp.portintegerKhông—
sftp.secretstringKhôngBỏ trống để giữ khoá cũ.
sftp.usernamestringCó—
TrườngKiểuBắt buộcMô tả
jobJobCó—
job.created_atTimestampCó—
job.errorJobErrorKhông—
job.finished_atTimestamp | nullCó—
job.idJobIdCó—
job.kindJobKindCó—
job.objectstringCóGiá trị: job.
job.progressJobProgressCó—
job.resultmap<string, any>KhôngKết quả khi succeeded (cấu trúc tuỳ kind).
job.stateJobStateCóGiá trị: queued, running, succeeded, failed, cancelled.
statementStatementRefCó—
statement.idStatementImportIdCó—
statement.stateStatementImportStateCóGiá trị: created, validating, preview_ready, committing, completed, completed_with_errors, failed, cancelled, halted_balance_mismatch.
TrườngKiểuBắt buộcMô tả
dataStatementImportSummary[]Có—
data[].bank_account_idAccountIdCó—
data[].commit_job_idJobId | nullCó—
data[].company_idOrgIdCó—
data[].countsImportCountsCó—
data[].created_atTimestampCó—
data[].created_bystring | nullCó—
data[].errorobject | nullCóCó khi state=failed (ví dụ MISSING_COLUMN, TOO_MANY_ROWS).
data[].fileobjectCóTệp đã tải lên.
data[].finished_atTimestamp | nullCó—
data[].idStatementImportIdCó—
data[].mapping_idStatementMappingId | nullCó—
data[].objectstringCóGiá trị: statement.
data[].periodobject | nullCóKỳ sao kê (giờ Việt Nam).
data[].preview_job_idJobId | nullCó—
data[].schedule_idStatementScheduleId | nullCó—
data[].sourceStatementSourceCóGiá trị: upload, email_attachment, sftp, schedule_run.
data[].started_atTimestamp | nullCó—
data[].stateStatementImportStateCóGiá trị: created, validating, preview_ready, committing, completed, completed_with_errors, failed, cancelled, halted_balance_mismatch.
data[].total_rowsinteger | nullCó—
data[].updated_atTimestampCó—
data[].upgradedintegerCóSố giao dịch tạm tính đã nâng xác thực.
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ả
bank_account_idAccountIdCó—
commit_job_idJobId | nullCó—
company_idOrgIdCó—
countsImportCountsCó—
counts.errorintegerCóDòng lỗi, không nhập.
counts.mergedintegerCóKhớp giao dịch realtime sẵn có (nâng xác thực tại chỗ).
counts.newintegerCóGiao dịch mới tạo (đã xác thực).
counts.processedintegerCónew + merged + skipped đã ghi.
counts.skippedintegerCóTrùng, bỏ qua.
created_atTimestampCó—
created_bystring | nullCó—
errorobject | nullCóCó khi state=failed (ví dụ MISSING_COLUMN, TOO_MANY_ROWS).
error.codestringCó—
error.detailstring | nullCó—
fileobjectCóTệp đã tải lên.
file.bank_codestring | nullCó—
file.bytesinteger | nullCó—
file.formatStatementFormat | nullCóGiá trị: xlsx, xls, csv, mt940, camt053.
file.layout_idstring | nullCó—
file.namestring | nullCó—
file.sha256string | nullCóSHA-256 (hex) của tệp gốc.
finished_atTimestamp | nullCó—
idStatementImportIdCó—
mapping_idStatementMappingId | nullCó—
objectstringCóGiá trị: statement.
periodobject | nullCóKỳ sao kê (giờ Việt Nam).
period.fromDateCó—
period.toDateCó—
previewStatementPreview | nullCóCó từ preview_ready (và khi halted_balance_mismatch).
preview.balance_checkStatementBalanceCheckCó—
preview.columnsStatementColumns | nullCónull với MT940/CAMT (không có cột).
preview.countsStatementPreviewCountsCó—
preview_job_idJobId | nullCó—
resultStatementResult | nullCóCó khi đã nhập xong.
result.anchorsobject[]Có—
result.promotedintegerCóSố giao dịch tạm tính đã được nâng lên xác thực.
result.unmatched_countintegerCó—
result.unmatched_provisionalTxId[]CóGiao dịch tạm tính trong kỳ mà sao kê không có ("Không có trong sao kê"), tối đa 200.
schedule_idStatementScheduleId | nullCó—
sourceStatementSourceCóGiá trị: upload, email_attachment, sftp, schedule_run.
started_atTimestamp | nullCó—
stateStatementImportStateCóGiá trị: created, validating, preview_ready, committing, completed, completed_with_errors, failed, cancelled, halted_balance_mismatch.
total_rowsinteger | nullCó—
updated_atTimestampCó—
upgradedintegerCóSố giao dịch tạm tính đã nâng xác thực.
TrườngKiểuBắt buộcMô tả
dataStatementPreviewRow[]Có—
data[].amountVndCó—
data[].balance_afterVnd | nullCó—
data[].bank_refstring | nullCó—
data[].counterparty_namestring | nullCó—
data[].dateDateCó—
data[].descriptionstringCó—
data[].directionstringCóGiá trị: in, out.
data[].errorstring | nullCó—
data[].row_nointegerCóSố dòng trong tệp gốc (đếm từ 1).
data[].statusstringCóGiá trị: new, merged, skipped, error, locked.
data[].timestring | nullCóHH:mm hoặc HH:mm:ss khi tệp có giờ.
data[].tx_idstring | nullCóGiao dịch khớp (khi status=merged).
data[].upgradebooleanCótrue: khớp giao dịch tạm tính và sẽ nâng xác thực ("Khớp & nâng xác thực").
objectstringCóGiá trị: statement_rows.
pageintegerCó—
page_sizeintegerCó—
total_pagesintegerCó—
total_rowsintegerCó—
TrườngKiểuBắt buộcMô tả
bank_account_idAccountIdCó—
commit_job_idJobId | nullCó—
company_idOrgIdCó—
countsImportCountsCó—
counts.errorintegerCóDòng lỗi, không nhập.
counts.mergedintegerCóKhớp giao dịch realtime sẵn có (nâng xác thực tại chỗ).
counts.newintegerCóGiao dịch mới tạo (đã xác thực).
counts.processedintegerCónew + merged + skipped đã ghi.
counts.skippedintegerCóTrùng, bỏ qua.
created_atTimestampCó—
created_bystring | nullCó—
errorobject | nullCóCó khi state=failed (ví dụ MISSING_COLUMN, TOO_MANY_ROWS).
error.codestringCó—
error.detailstring | nullCó—
fileobjectCóTệp đã tải lên.
file.bank_codestring | nullCó—
file.bytesinteger | nullCó—
file.formatStatementFormat | nullCóGiá trị: xlsx, xls, csv, mt940, camt053.
file.layout_idstring | nullCó—
file.namestring | nullCó—
file.sha256string | nullCóSHA-256 (hex) của tệp gốc.
finished_atTimestamp | nullCó—
idStatementImportIdCó—
mapping_idStatementMappingId | nullCó—
objectstringCóGiá trị: statement.
periodobject | nullCóKỳ sao kê (giờ Việt Nam).
period.fromDateCó—
period.toDateCó—
preview_job_idJobId | nullCó—
schedule_idStatementScheduleId | nullCó—
sourceStatementSourceCóGiá trị: upload, email_attachment, sftp, schedule_run.
started_atTimestamp | nullCó—
stateStatementImportStateCóGiá trị: created, validating, preview_ready, committing, completed, completed_with_errors, failed, cancelled, halted_balance_mismatch.
total_rowsinteger | nullCó—
updated_atTimestampCó—
upgradedintegerCóSố giao dịch tạm tính đã nâng xác thực.

Đối tượng khác của nhóm này (xem tài liệu tương tác): RerunStatement

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.