Credit pools
Liệt kê credit pool và cài đặt ngân sách theo scope (thường là project AI). Sub-tab Ngân sách (pool), không phải Hạn mức (set_budget trên AI projects).
UI dealer: Credit pools, + Nạp, LEDGER thường chỉ hiện khi Share credit bật.
Auth: Bearer + access_token, domain đăng ký, device fields.
Playground
Playground — Home feed → Ngân sách dự án khi chạy npm run docs:stack (tên worker khớp UI).
Playground (Home feed)
Nhóm Ngân sách dự án trên POST /gateway/credit-pools:
| Worker Playground | action |
|---|---|
| Danh sách pool | list |
| Giao dịch pool | ledger |
| Tạo & nạp pool | create |
| Nạp thêm pool | deposit |
| Xóa pool | delete |
| Credit dùng chung | set_share_credit |
List pool theo project
POST https://api.gommo.net/api/v2/credit-pools (form-urlencoded)
| Field | Ghi chú |
|---|---|
action | list |
scope_type | project |
scope_id | id_base dự án |
domain, access_token | bắt buộc |
$domain = $env:GOMMO_API_DOMAIN
if (-not $domain) { throw 'Set GOMMO_API_DOMAIN' }
$h = @{ Authorization = "Bearer $env:TOKEN"; 'Content-Type' = 'application/x-www-form-urlencoded' }
$scopeId = '<id_base_du_an>'
$body = "access_token=$env:TOKEN&domain=$domain&action=list&scope_type=project&scope_id=$scopeId&language=vi"
Invoke-RestMethod -Method Post -Uri 'https://api.gommo.net/api/v2/credit-pools' -Headers $h -Body $bodyResponse: pools[], settings.share_credit_enabled, settings.budget_ceiling, catalog.currencies[], …
Gateway Mode B
POST {gateway}/gateway/credit-pools — JSON { "action": "list", "scope_type": "project", "scope_id": "…" }, Bearer bắt buộc.
OpenAPI: openapi.yaml
Ledger (đã verify)
action=ledger, scope_type=project, scope_id=id_base, limit (vd. 20). Response: data.items[] (rỗng khi chưa có giao dịch). Mở accordion LEDGER ở cuối tab Ngân sách.
Tạo pool & nạp lần đầu (verified)
action=create, scope_type=project, scope_id=id_base, name, amount, currency_name (vd. credit_ai), status (shared / private), tùy chọn tags, note. UI: Tạo pool & nạp.
Xóa pool (verified — Xóa)
UI dealer Xóa gọi POST https://api.gommo.net/api/v2/credit-pools với action=delete.
| Field | Bắt buộc | Ghi chú |
|---|---|---|
scope_type | có | project |
scope_id | có | id_base dự án |
pool_id | có | UUID từ action=list → data.pools[].id |
Response: { "success": true, "data": { "ok": true } }.
Hoàn ví
data.ok === true nghĩa upstream chấp nhận xóa pool — không cam kết số dư còn lại quay về ví cá nhân; kiểm tra balance và ledger sau khi xóa.
Gateway Mode B:
{
"action": "delete",
"scope_type": "project",
"scope_id": "<id_base dự án>",
"pool_id": "<từ list data.pools[].id>",
"language": "vi"
}Alias gateway: poolId → pool_id. Playground: Xóa pool.
Bơm / nạp pool có sẵn (verified — deposit)
Bơm trên dòng pool (và + Nạp cùng form): action=deposit, scope_type=project, scope_id=id_base, pool_id, amount, tùy chọn note. UI tối thiểu thường 200.000.
Ví cá nhân: sau nạp phải còn ≥ 100.000 credit → cần ví ≥ amount + 100.000. Không đủ: HTTP 200, error: 1, message tiếng Việt (không phải lỗi gateway).
Gateway JSON — alias poolId. Playground: Nạp thêm pool.
Chưa có pool → create (Tạo pool & nạp). Share credit: set_share_credit, id_base, enabled 0/1.
