The Partner API financial endpoints let you manage the full money lifecycle for your users: open ledger accounts, deposit funds, transfer between accounts, initiate payouts to bank accounts, and retrieve transaction history — all from your own backend.
End User → Your App → Your Backend → Qash Partner API
↑
X-Api-Key + X-Api-Secret + User JWT
Base URL
| Environment | URL |
|---|
| Production | https://api.qash.ai |
Authentication
All financial endpoints require dual authentication: your partner credentials plus a valid user JWT obtained from POST /api/v1/partner/auth/token.
X-Api-Key: qash_key_live_xxxxx
X-Api-Secret: qash_secret_live_xxxxx
Authorization: Bearer <user-jwt>
Content-Type: application/json
The Authorization header carries the user’s JWT — not a partner-level token. Each request acts on behalf of the authenticated user.
Endpoints
| Method | Endpoint | Description |
|---|
POST | /api/v1/user/accounts | Create a ledger account for the authenticated user |
GET | /api/v1/user/accounts | List all accounts for the authenticated user |
GET | /api/v1/user/balance | List all accounts and balances |
GET | /api/v1/user/kyc/status | Get the KYC verification status for the authenticated user |
POST | /api/v1/user/deposit | Credit funds into a user account |
GET | /api/v1/user/transactions | List recent transactions |
GET | /api/v1/user/transactions/:id | Get a single transaction |
POST | /api/v1/user/transfer | Transfer funds between ledger accounts |
POST | /api/v1/user/payout | Send funds to a bank account |
POST | /api/v1/user/exchange/calculate | Calculate an exchange rate quote |
All monetary amounts are integers in the smallest unit of the currency (cents for USD/COP, atomic units for USDC).
| Currency | Unit | Example |
|---|
| USD | cents | 150000 = USD 1,500.00 |
| COP | centavos | 500000 = COP 5,000.00 |
| USDC | atomic | 100000000 = 100 USDC |
The exchange/calculate endpoint is the exception — it accepts fromAmount in the base unit (e.g. 100 for USD 100.00).
Common errors
| Status | Error | Cause |
|---|
401 | Missing partner credentials | X-Api-Key or X-Api-Secret header absent |
401 | Invalid partner credentials | Wrong API key or secret |
401 | Missing user token | Authorization header absent |
401 | Invalid or expired user token | JWT expired or malformed |
403 | User does not belong to this partner | JWT issued by a different partner |
429 | — | Rate limit exceeded |
503 | — | Downstream service unavailable |