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

Tài khoản ngân hàng

~12 phút đọc

Tài khoản ngân hàng của công ty: danh sách, tạo, cập nhật, lưu trữ, xem số tài khoản (có xác thực lại).

MethodPathTóm tắtQuyềnNhóm tốc độTương tác
GET/v1/accounts/{id}/recommendationsGợi ý tăng độ phủ cho tài khoảnaccount.readreadScalar
GET/v1/bank-accountsDanh sách tài khoản ngân hàngaccount.readreadScalar
POST/v1/bank-accountsThêm tài khoản ngân hàngaccount.createwriteScalar
GET/v1/bank-accounts/{id}Chi tiết tài khoản ngân hàngaccount.readreadScalar
PATCH/v1/bank-accounts/{id}Cập nhật tài khoản ngân hàngaccount.updatewriteScalar
POST/v1/bank-accounts/{id}:archiveLưu trữ tài khoản ngân hàngaccount.archivewriteScalar
POST/v1/bank-accounts/{id}:revealXem số tài khoản đầy đủaccount.revealwriteScalar

Gợi ý tăng độ phủ cho tài khoản

Dựa trên các kênh đang nhận tin của tài khoản. Tài khoản chỉ có iPhone Shortcut (tin tạm tính, không có chữ ký thiết bị) → gợi ý chuyển tiếp email và sao kê hằng ngày; automation parse_error → gợi ý sửa từ khoá. Chỉ gợi ý, không đổi dữ liệu.

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

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

Danh sách tài khoản ngân hàng

Trả các tài khoản trong phạm vi của thông tin xác thực, phân trang theo con trỏ. company_id giới hạn một công ty.

Quyền: account.read Scope: accounts:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Danh sách tài khoản. — BankAccountList, 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—
bank_codequeryKhôngstringLọc theo mã ngân hàng.
expandqueryKhôngstringMở rộng một cấp, phân cách bằng dấu phẩy. Giá trị: balance.
curl -sS -X GET "https://api.dongtien.pro/v1/bank-accounts" \
-H "Authorization: Bearer $DT_API_KEY"

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

Thêm tài khoản ngân hàng

Bắt buộc Idempotency-Key. Cùng ngân hàng + số tài khoản đã có trong tổ chức trả 409 conflict.

Quyền: account.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/bank-accounts" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"company_id": "org_0f5k2m9q4h7t3n8r6v1w0x5yz0",
"bank_code": "ACB",
"account_number": "123456784521",
"type": "business"
}'

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

Chi tiết tài khoản ngân hàng

Quyền: account.read Scope: accounts:read
  • Nhóm tốc độ: read
  • Phản hồi thành công 200: Tài khoản. — BankAccount, 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_…).
expandqueryKhôngstringMở rộng một cấp, phân cách bằng dấu phẩy. Giá trị: balance.
curl -sS -X GET "https://api.dongtien.pro/v1/bank-accounts/$ID" \
-H "Authorization: Bearer $DT_API_KEY"

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

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

Không đổi được số tài khoản; muốn đổi hãy thêm tài khoản mới và lưu trữ tài khoản cũ.

Quyền: account.update 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 PATCH "https://api.dongtien.pro/v1/bank-accounts/$ID" \
-H "Authorization: Bearer $DT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "business",
"state": "active"
}'

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

Lưu trữ tài khoản ngân hàng

Ngừng nhận giao dịch mới; lịch sử giữ nguyên. Đã lưu trữ rồi trả 409 conflict.

Quyền: account.archive 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 POST "https://api.dongtien.pro/v1/bank-accounts/$ID:archive" \
-H "Authorization: Bearer $DT_API_KEY"

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

Xem số tài khoản đầy đủ

Cần xác thực lại gần đây (passkey/TOTP ≤ 15 phút) và được ghi nhật ký kiểm toán mức nhạy cảm. Kết quả không bao giờ được lưu lại cho Idempotency-Key; phản hồi có Cache-Control: no-store.

Quyền: account.reveal 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: Số tài khoản đầy đủ, hết hạn sau 5 phút. — RevealedAccountNumber, 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óAccountIdMã tài khoản ngân hàng (acc_…).
curl -sS -X POST "https://api.dongtien.pro/v1/bank-accounts/$ID:reveal" \
-H "Authorization: Bearer $DT_API_KEY"

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

TrườngKiểuBắt buộcMô tả
account_idAccountIdCó—
channelsobjectCó—
channels.androidintegerCó—
channels.bank_connectionintegerCó—
channels.emailintegerCó—
channels.iosintegerCó—
dataCoverageRecommendation[]Có—
data[].actionobject | nullCó—
data[].kindstringCóGiá trị: email_forward, daily_statement, bank_connection, android_device, fix_ios_keywords.
data[].objectstringCóGiá trị: coverage_recommendation.
data[].prioritystringCóGiá trị: high, normal.
data[].reasonstringCó—
data[].titlestringCó—
objectstringCóGiá trị: list.
TrườngKiểuBắt buộcMô tả
dataBankAccount[]Có—
data[].account_number_maskedstringCóSố tài khoản đã che, chỉ lộ 4 số cuối.
data[].archived_atTimestamp | nullCó—
data[].balanceobjectKhôngChỉ có khi expand=balance.
data[].bankobjectCó—
data[].companyobjectCó—
data[].created_atTimestampCó—
data[].currencystringCóGiá trị: VND.
data[].holder_namestring | nullCó—
data[].idAccountIdCó—
data[].labelstringCóNhãn hiển thị, vd. ACB •••4521.
data[].last4stringCó—
data[].objectstringCóGiá trị: bank_account.
data[].statestringCóGiá trị: active, stopped_receiving, archived.
data[].typestringCóGiá trị: business, virtual_sub, savings.
data[].va_numberstring | nullCóSố tài khoản định danh (VA) nếu ngân hàng cấp.
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ả
account_numberstringCóSố tài khoản đầy đủ. Chỉ ghi: được mã hoá ngay khi nhận và không bao giờ trả lại ở các route đọc.
bank_codestringCó—
company_idOrgIdCó—
holder_namestringKhông—
labelstringKhông—
typestringKhôngGiá trị: business, virtual_sub, savings.
va_numberstringKhông—
TrườngKiểuBắt buộcMô tả
account_number_maskedstringCóSố tài khoản đã che, chỉ lộ 4 số cuối.
archived_atTimestamp | nullCó—
balanceobjectKhôngChỉ có khi expand=balance.
balance.account_idAccountIdCó—
balance.as_ofstringCóThời điểm tính của phản hồi này.
balance.computedobject | nullCóSố dư tính từ mốc neo + giao dịch đã xác thực; null nếu chưa có mốc neo.
balance.differenceinteger | nullCóreported − computed khi có cả hai.
balance.evidenceobjectCó—
balance.objectstringCóGiá trị: balance.
balance.reportedobject | nullCóSố dư do ngân hàng/sao kê báo cáo; null nếu chưa nhận được.
balance.trustBalanceChainTrustCóGiá trị: consistent, mismatch, gap_suspected, unchecked.
bankobjectCó—
bank.codestringCóMã ngân hàng trong danh mục (vd. ACB).
bank.namestringCó—
companyobjectCó—
company.idOrgIdCó—
company.mststring | nullCóMã số thuế của công ty.
created_atTimestampCó—
currencystringCóGiá trị: VND.
holder_namestring | nullCó—
idAccountIdCó—
labelstringCóNhãn hiển thị, vd. ACB •••4521.
last4stringCó—
objectstringCóGiá trị: bank_account.
statestringCóGiá trị: active, stopped_receiving, archived.
typestringCóGiá trị: business, virtual_sub, savings.
va_numberstring | nullCóSố tài khoản định danh (VA) nếu ngân hàng cấp.
TrườngKiểuBắt buộcMô tả
holder_namestring | nullKhông—
labelstringKhông—
statestringKhôngstopped_receiving: ngừng nhận giao dịch mới nhưng giữ lịch sử. Giá trị: active, stopped_receiving.
typestringKhôngGiá trị: business, virtual_sub, savings.
TrườngKiểuBắt buộcMô tả
account_numberstringCó—
expires_atstringCóThời điểm hết hạn hiển thị (5 phút sau khi cấp).
idAccountIdCó—
objectstringCóGiá trị: bank_account_secret.

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.