Transfer funds
curl --request POST \
--url https://api.example.com/api/v1/transactions/transferconst options = {method: 'POST'};
fetch('https://api.example.com/api/v1/transactions/transfer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.example.com/api/v1/transactions/transfer"
response = requests.post(url)
print(response.text)Financials
Transfer funds
Move funds between two Qash accounts.
POST
/
api
/
v1
/
transactions
/
transfer
Transfer funds
curl --request POST \
--url https://api.example.com/api/v1/transactions/transferconst options = {method: 'POST'};
fetch('https://api.example.com/api/v1/transactions/transfer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.example.com/api/v1/transactions/transfer"
response = requests.post(url)
print(response.text)Requires
Authorization: Bearer <user-access-token> — the token from Verify login code. No X-Api-Key, X-Api-Secret, or userId — the token already identifies the sending user.Request
POST /api/v1/transactions/transfer
Authorization: Bearer <user-access-token>
Content-Type: application/json
Body
| Field | Type | Required | Description |
|---|---|---|---|
fromAccountId | number | No | Source account ID. If omitted, the token’s user’s primary account is used |
toAccountId | number | Yes | Destination account ID — can belong to a different user |
amount | number | Yes | Decimal amount in USDC (e.g. 50 = USDC 50.00) — not a smallest-unit integer |
description | string | Yes | Description of the transfer |
{
"fromAccountId": 619,
"toAccountId": 620,
"amount": 50,
"description": "Service payment"
}
Response
201 Created{
"id": 4502,
"status": "COMPLETED",
"amount": 50,
"description": "Service payment"
}
| Field | Type | Description |
|---|---|---|
id | number | Transaction ID |
status | string | "COMPLETED" on success |
amount | number | Decimal amount transferred, in USDC |
description | string | Description provided in the request |
Errors
| HTTP status | Error | Cause |
|---|---|---|
400 | Validation message | Missing required field or invalid format |
400 | One or both accounts do not exist | Source or destination account does not exist |
400 | Insufficient balance in account <id> | Source account has insufficient funds |
401 | Invalid or expired token | Missing, expired, or malformed access token |