Tài khoản — chuyển credit
Màn Tài khoản → Transfer Money gửi credit tới username khác trên cùng domain đăng ký. Integrator dùng upstream giống với access_token user đã đăng nhập.
Dùng domain đăng ký trong form — không phải hostname API.
Không phải merchant send
POST /admin/credits/send dùng token merchant trên server. User transfer dùng token end-user. Xem Admin (server-only).
Playground & Profile
Playground — Home feed → Nền tảng → Chuyển credit khi chạy npm run docs:stack. Profile → Tài khoản cùng luồng khi đã đăng nhập. Chuyển thật, upstream không hoàn tác.
HTTP 200 nhưng lỗi nghiệp vụ
Upstream thường trả HTTP 200 với { "error": 1, "message": "…" }. Coi error khác 0 hoặc success: false là lỗi.
Quy tắc (UI dealer)
| Quy tắc | Giá trị |
|---|---|
| Tối thiểu mỗi lần | 10.000 credit |
| Tối đa mỗi lần | 20.000.000 credit |
| Số dư còn lại sau chuyển | Phải > 500.000 credit ví người gửi |
Preflight: trước khi gọi, đảm bảo số dư người gửi ≥ value + 500_001 credit.
Upstream
POST https://api.gommo.net/api/apps/go-mmo/users/sendBalances
Content-Type: application/x-www-form-urlencoded
| Field | Bắt buộc | Ghi chú |
|---|---|---|
access_token | có | Token phiên người gửi |
domain | có | Domain đăng ký |
type | có | UI dealer: credit_ai |
value | có | Số credit (integer) |
username | có | Username người nhận |
message | có | Ghi chú bắt buộc |
language | không | VD EN, VI |
device_id, device_name, device_info | không | Giống login / đổi mật khẩu |
PowerShell (thay domain; token chỉ trong session an toàn):
$domain = $env:GOMMO_API_DOMAIN
if (-not $domain) { throw 'Set GOMMO_API_DOMAIN to your registration domain' }
$h = @{ 'Content-Type' = 'application/x-www-form-urlencoded' }
$body = "access_token=$env:TOKEN&domain=$domain&type=credit_ai&value=10000&username=recipient_username&message=Transfer+note&language=VI"
Invoke-RestMethod -Method Post -Uri 'https://api.gommo.net/api/apps/go-mmo/users/sendBalances' -Headers $h -Body $bodyVí dụ từ chối nghiệp vụ (HTTP 200):
{
"error": 1,
"message": "…phải còn hơn 500.000 credit…"
}Mode B (gateway)
POST {gateway}/gateway/credits/transfer — Bearer + JSON:
{
"username": "recipient_username",
"value": 10000,
"message": "Ghi chú chuyển",
"type": "credit_ai",
"language": "VI"
}Server điền access_token, domain; mặc định type credit_ai. device_* tùy chọn; Playground gửi device trình duyệt trong JSON.
Pass-through JSON upstream; body rỗng/non-JSON → UPSTREAM_ERROR.
OpenAPI: openapi.yaml — /gateway/credits/transfer.
SDK: @ai-gateway/client — auth.transferCredits(). Xem SDK authentication.
→ Lịch sử giao dịch · Thiết bị đăng nhập · Ticket hỗ trợ · Chương trình đối tác · Creator Rewards · Đổi mật khẩu · Đăng ký · Endpoint map · Deploy → Self-host (advanced)
