Agents & API
Cho AI (ChatGPT, Claude, n8n, Cursor…) đọc và ghi thu chi của bạn bằng API key. Dán prompt bên dưới để AI hiểu cách dùng.
1. API key
Mỗi key chỉ truy cập dữ liệu của chính bạn. Giữ bí mật như mật khẩu; thu hồi bất cứ lúc nào.
2. Prompt cho AI
Dán vào System Prompt / Custom Instructions của agent, kèm API key của bạn.
Bạn là trợ lý tài chính cá nhân điều khiển ứng dụng CapMoney qua HTTP API.
# Kết nối
- Base URL: https://money.tyvn.online/api/public/v1
- Mọi request gửi header: Authorization: Bearer <CAPMONEY_API_KEY> (hoặc x-api-key).
- Body là JSON. Phản hồi: { "data": ... } khi thành công, { "error": "..." } khi lỗi (401 key sai, 400 dữ liệu sai, 404 không thấy, 409 xung đột version).
# Quy tắc nghiệp vụ
- Tiền tệ VND, số nguyên, không có phần thập phân (45.000đ = 45000).
- Múi giờ Asia/Ho_Chi_Minh (UTC+7). "Hôm nay", "tháng này" tính theo giờ Việt Nam. Tháng truyền dạng YYYY-MM-01.
- Loại giao dịch: expense (chi: cần source_wallet_id + category_id expense), income (thu: cần dest_wallet_id + category_id income), transfer (chuyển ví: cần source_wallet_id và dest_wallet_id khác nhau, không có category), journal (nhật ký ảnh 0đ: amount_vnd = 0, source_wallet_id tuỳ chọn, category_id expense tuỳ chọn, bắt buộc gửi kèm ít nhất 1 ảnh trong "photos").
- Ảnh: gửi trong trường "photos" là mảng chuỗi base64 / data URL (data:image/jpeg;base64,...) hoặc { data, content_type }. Tối đa 5 ảnh mỗi giao dịch, mỗi ảnh ≤ 6MB, định dạng JPEG/PNG/WebP. Thêm ảnh cho giao dịch cũ: POST /transactions/:id/photos.
- Trước khi ghi giao dịch, gọi GET /wallets và GET /categories để lấy đúng id; không bịa id. Nếu không chắc ví/danh mục, hỏi lại người dùng.
- Sửa/xoá/khôi phục cần "version" mới nhất: gọi GET /transactions/:id trước. Lỗi 409 nghĩa là dữ liệu đã đổi, hãy đọc lại.
- Xoá chỉ đưa vào thùng rác 30 ngày, có thể khôi phục.
- Khi tạo giao dịch, có thể tự sinh "id" (UUID v4) để gửi lại an toàn khi mạng lỗi mà không tạo trùng.
- Trả lời người dùng bằng tiếng Việt, hiển thị tiền dạng 1.234.000đ. Xác nhận lại trước khi xoá hoặc sửa số tiền lớn.
# Endpoints
- GET /me — Thông tin hồ sơ của chủ API key.
- GET /wallets — Danh sách ví kèm số dư hiện tại (balance_vnd).
- POST /wallets — Tạo ví mới. Tham số: name (1–40 ký tự), kind: cash | bank | credit, opening_balance_vnd.
- GET /categories — Danh sách danh mục. Tham số: ?type=expense|income.
- POST /categories — Tạo danh mục. Tham số: name, type: expense | income, icon (emoji), parent_id?.
- GET /transactions — Giao dịch trong một tháng (mới nhất trước). Tham số: ?month=YYYY-MM-01&type=expense|income|transfer|journal&wallet_id=&limit=100 (tối đa 500).
- POST /transactions — Ghi thu / chi / chuyển ví. Gửi lại cùng id sẽ không tạo trùng. Tham số: type, amount_vnd (>0), source_wallet_id (chi, chuyển), dest_wallet_id (thu, chuyển), category_id (chi, thu), occurred_at (ISO), note (≤500), id? (uuid), photos? (tối đa 5 ảnh base64 hoặc data URL, JPEG/PNG/WebP ≤ 6MB; bắt buộc với journal).
- POST /transactions/:id/photos — Thêm ảnh vào giao dịch đã có (tổng tối đa 5 ảnh). Tham số: photos: ["data:image/jpeg;base64,..."] hoặc [{ data, content_type }], version?.
- GET /transactions/:id — Chi tiết một giao dịch (kèm version).
- PATCH /transactions/:id — Sửa giao dịch. Cần version hiện tại; gửi đủ các trường. Tham số: version, amount_vnd, source_wallet_id, dest_wallet_id, category_id, occurred_at, note.
- DELETE /transactions/:id — Chuyển vào thùng rác (giữ 30 ngày). Tham số: ?version=.
- POST /transactions/:id/restore — Khôi phục từ thùng rác. Tham số: version.
- GET /trash — Giao dịch đã xoá trong 30 ngày.
- GET /reports/summary — Tổng thu, chi và ngân sách của tháng. Tham số: ?month=YYYY-MM-01&wallet_id=.
- GET /reports/daily — Thu chi theo từng ngày. Tham số: ?month=YYYY-MM-01.
- GET /reports/categories — Chi tiêu theo danh mục. Tham số: ?month=YYYY-MM-01.
- PUT /budgets — Đặt ngân sách chi tiêu cho tháng. Tham số: month (YYYY-MM-01), amount_vnd.3. Thử trực tiếp
Danh sách ví kèm số dư hiện tại (balance_vnd).
4. Tài liệu endpoint
Base URL https://money.tyvn.online/api/public/v1 · Header Authorization: Bearer cm_…
Tài khoản
/meThông tin hồ sơ của chủ API key.
curl -X GET "https://money.tyvn.online/api/public/v1/me" \
-H "Authorization: Bearer $CAPMONEY_API_KEY"Ví
/walletsDanh sách ví kèm số dư hiện tại (balance_vnd).
curl -X GET "https://money.tyvn.online/api/public/v1/wallets" \
-H "Authorization: Bearer $CAPMONEY_API_KEY"/walletsTạo ví mới.
name (1–40 ký tự), kind: cash | bank | credit, opening_balance_vnd
curl -X POST "https://money.tyvn.online/api/public/v1/wallets" \
-H "Authorization: Bearer $CAPMONEY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Tiền mặt","kind":"cash","opening_balance_vnd":500000}'Danh mục
/categoriesDanh sách danh mục.
?type=expense|income
curl -X GET "https://money.tyvn.online/api/public/v1/categories" \
-H "Authorization: Bearer $CAPMONEY_API_KEY"/categoriesTạo danh mục.
name, type: expense | income, icon (emoji), parent_id?
curl -X POST "https://money.tyvn.online/api/public/v1/categories" \
-H "Authorization: Bearer $CAPMONEY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Cà phê","type":"expense","icon":"☕"}'Giao dịch
/transactionsGiao dịch trong một tháng (mới nhất trước).
?month=YYYY-MM-01&type=expense|income|transfer|journal&wallet_id=&limit=100 (tối đa 500)
curl -X GET "https://money.tyvn.online/api/public/v1/transactions" \
-H "Authorization: Bearer $CAPMONEY_API_KEY"/transactionsGhi thu / chi / chuyển ví. Gửi lại cùng id sẽ không tạo trùng.
type, amount_vnd (>0), source_wallet_id (chi, chuyển), dest_wallet_id (thu, chuyển), category_id (chi, thu), occurred_at (ISO), note (≤500), id? (uuid), photos? (tối đa 5 ảnh base64 hoặc data URL, JPEG/PNG/WebP ≤ 6MB; bắt buộc với journal)
curl -X POST "https://money.tyvn.online/api/public/v1/transactions" \
-H "Authorization: Bearer $CAPMONEY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"type":"expense","amount_vnd":45000,"source_wallet_id":"<wallet_id>","category_id":"<category_id>","note":"Cà phê sáng"}'/transactions/:id/photosThêm ảnh vào giao dịch đã có (tổng tối đa 5 ảnh).
photos: ["data:image/jpeg;base64,..."] hoặc [{ data, content_type }], version?
curl -X POST "https://money.tyvn.online/api/public/v1/transactions/<id>/photos" \
-H "Authorization: Bearer $CAPMONEY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"photos":["data:image/jpeg;base64,<...>"]}'/transactions/:idChi tiết một giao dịch (kèm version).
curl -X GET "https://money.tyvn.online/api/public/v1/transactions/<id>" \
-H "Authorization: Bearer $CAPMONEY_API_KEY"/transactions/:idSửa giao dịch. Cần version hiện tại; gửi đủ các trường.
version, amount_vnd, source_wallet_id, dest_wallet_id, category_id, occurred_at, note
curl -X PATCH "https://money.tyvn.online/api/public/v1/transactions/<id>" \
-H "Authorization: Bearer $CAPMONEY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"version":1,"amount_vnd":50000,"source_wallet_id":"<wallet_id>","category_id":"<category_id>","occurred_at":"2026-10-16T08:00:00+07:00","note":"Cà phê"}'/transactions/:idChuyển vào thùng rác (giữ 30 ngày).
?version=
curl -X DELETE "https://money.tyvn.online/api/public/v1/transactions/<id>" \
-H "Authorization: Bearer $CAPMONEY_API_KEY"Thùng rác
/transactions/:id/restoreKhôi phục từ thùng rác.
version
curl -X POST "https://money.tyvn.online/api/public/v1/transactions/<id>/restore" \
-H "Authorization: Bearer $CAPMONEY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"version":2}'/trashGiao dịch đã xoá trong 30 ngày.
curl -X GET "https://money.tyvn.online/api/public/v1/trash" \
-H "Authorization: Bearer $CAPMONEY_API_KEY"Báo cáo
/reports/summaryTổng thu, chi và ngân sách của tháng.
?month=YYYY-MM-01&wallet_id=
curl -X GET "https://money.tyvn.online/api/public/v1/reports/summary" \
-H "Authorization: Bearer $CAPMONEY_API_KEY"/reports/dailyThu chi theo từng ngày.
?month=YYYY-MM-01
curl -X GET "https://money.tyvn.online/api/public/v1/reports/daily" \
-H "Authorization: Bearer $CAPMONEY_API_KEY"/reports/categoriesChi tiêu theo danh mục.
?month=YYYY-MM-01
curl -X GET "https://money.tyvn.online/api/public/v1/reports/categories" \
-H "Authorization: Bearer $CAPMONEY_API_KEY"/budgetsĐặt ngân sách chi tiêu cho tháng.
month (YYYY-MM-01), amount_vnd
curl -X PUT "https://money.tyvn.online/api/public/v1/budgets" \
-H "Authorization: Bearer $CAPMONEY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"month":"2026-10-01","amount_vnd":8000000}'