Get funding
GET /v1/accounts/{externalUserId}/wallet/funding
Read display cash with details = 'summary', independently of getTradingAvailability for progressive UI. The compatible 'trading' mode returns both. balance.formatted is display cash; availableToTrade.formatted is available cash. Null means unavailable, not zero.
Balances and deposits guide · All endpoints · SDK: getFunding
Authentication
Server-to-server HMAC. Your key selects the partner; your backend must authorize the end user.
CRISP enables access to the features agreed for your integration. Contact CRISP if an enabled feature returns an access error.
Idempotency-Key: Not required by this operation. Signing and authentication →
Request fields
Required means the field must be present. Nullable means an explicit JSON null is allowed; it does not mean optional.
Path parameters
| Field | Type / presence | Description and constraints |
|---|---|---|
externalUserId | stringRequired Non-null | Your stable user ID within the authenticated partner. Derive it from your authorized server session. Validation pattern^[A-Za-z0-9._:@-]{1,200}$ |
Query parameters
| Field | Type / presence | Description and constraints |
|---|---|---|
details | stringOptional Non-null | Allowed: "summary", "trading", "full" |
Header parameters
No operation-specific headers. The HMAC headers above still apply.
JSON body
No request body.
Request example
Illustrative identifiers only: replace them with resources from your integration. Keep credentials on your backend. HTTP placeholders must be signed; the SDK signs automatically. Financial intent keys must be persisted and unique per new action.
GET /v1/accounts/user-123/wallet/funding?details=trading
Host: partner-api.crisp.trade
X-Crisp-Partner-Key: <server-key-id>
X-Crisp-Timestamp: <fresh-ISO-8601-UTC-timestamp>
X-Crisp-Nonce: <fresh-unique-nonce>
X-Crisp-Signature: <computed-base64-HMAC>Response fields
HTTP responses use the envelope below. SDK calls expose its payload as result.data, with HTTP status and request metadata on the SDK wrapper.
200 · Success
Data payload
| Field | Type / presence | Description and constraints | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
crispAccountId | stringRequired Non-null | CRISP's account identifier; distinct from your external user ID. Format: uuid | |||||||||||||||||||||||||||||||||
externalUserId | stringRequired Non-null | Your stable user ID within the authenticated partner. Derive it from your authorized server session. Validation pattern^[A-Za-z0-9._:@-]{1,200}$ | |||||||||||||||||||||||||||||||||
wallet | objectRequired Non-null | Expand the structure below. | |||||||||||||||||||||||||||||||||
wallet: expand fields
Additional fields are not allowed in this object. | |||||||||||||||||||||||||||||||||||
balance | object | nullRequired Nullable | Cash balance snapshot. Null means unavailable, not zero. | |||||||||||||||||||||||||||||||||
balance: expand fields
Additional extension fields are allowed; do not assume undocumented fields are stable. | |||||||||||||||||||||||||||||||||||
balanceStatus | stringRequired Non-null | Whether the balance read was available; handle unavailable values explicitly. Allowed: "available", "temporarily_unavailable" | |||||||||||||||||||||||||||||||||
availableToTrade | object | nullRequired Nullable | Spendable amount reported by CRISP; may differ from cash balance. Null means unavailable. | |||||||||||||||||||||||||||||||||
availableToTrade: expand fields
Additional fields are not allowed in this object. | |||||||||||||||||||||||||||||||||||
details | stringRequired Non-null | Allowed: "summary", "trading", "full" | |||||||||||||||||||||||||||||||||
deposit | objectRequired Non-null | Expand the structure below. | |||||||||||||||||||||||||||||||||
deposit: expand fields
Additional fields are not allowed in this object. | |||||||||||||||||||||||||||||||||||
withdrawal | objectRequired Non-null | Expand the structure below. | |||||||||||||||||||||||||||||||||
withdrawal: expand fields
Additional fields are not allowed in this object. | |||||||||||||||||||||||||||||||||||
Additional fields are not allowed in this object.
Full HTTP envelope
| Field | Type / presence | Description and constraints | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
data | objectRequired Non-null | Expand the structure below. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
data: expand fields
Additional fields are not allowed in this object. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
requestId | stringRequired Non-null | Request correlation ID for debugging and support. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Additional fields are not allowed in this object.
Response example
Schema illustration, not live account data. Null means unavailable or not applicable, never an invented zero. Empty arrays do not imply the endpoint always returns no results.
200 response JSON
{
"data": {
"crispAccountId": "11111111-1111-4111-8111-111111111111",
"externalUserId": "user-123",
"wallet": {
"tradingAddress": "0x1111111111111111111111111111111111111111"
},
"balance": null,
"balanceStatus": "temporarily_unavailable",
"availableToTrade": null,
"details": "trading",
"deposit": {
"instructions": null
},
"withdrawal": {
"source": null,
"enabled": false,
"authorization": "example"
}
},
"requestId": "example-request-id"
}Errors and recovery
| Status | Meaning |
|---|---|
400 | Inspect error.code and retain the original financial intent. |
401 | Inspect error.code and retain the original financial intent. |
403 | Inspect error.code and retain the original financial intent. |
404 | Not visible for this account. A recovery lookup miss is not proof that an in-flight submission failed. |
409 | Inspect error.code and retain the original financial intent. |
429 | Inspect error.code and retain the original financial intent. |
500 | Inspect error.code and retain the original financial intent. |
502 | Inspect error.code and retain the original financial intent. |
503 | Inspect error.code and retain the original financial intent. |
Inspect the error code and outcomeUnknown, not just the HTTP status. Preserve the original intent after financial uncertainty. Read-only retries should honor Retry-After. Recovery workflow →
Error response fields
| Field | Type / presence | Description and constraints | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
error | objectRequired Non-null | Expand the structure below. | ||||||||||||
error: expand fields
Additional fields are not allowed in this object. | ||||||||||||||
Additional fields are not allowed in this object.