Coinchange API reference
Reference documentation for partners integrating with Coinchange. API keys are issued on request.
The Coinchange Earn API supports integration of the fund into partner websites and apps, including client onboarding and reporting.
Endpoints for sub-client setup, wallet addresses, balances, transactions and withdrawal requests.
Endpoint paths, field names and enum values appear exactly as the API uses them. Some carry legacy names, such as earn_clients. They are identifiers, not product descriptions.
Overview
The API is the integration surface for Coinchange Yield-as-a-Service (YaaS). It supports two integration modes, chosen by whose funds the partner manages:
- Sub-client mode — a partner offers Coinchange investment products to its own clients through the partner's application, and the API tracks balances, earnings and transaction history per client_id.
- Organization mode — a partner invests and reports on its own corporate funds, automating deposits, withdrawals, balances and earnings.
Resources are grouped below by the part of the integration they serve. All requests run over HTTPS and return JSON.
Getting started
Send requests to the base URL for your environment (see Environments below). Every request carries an API key in the apikey header (see Authentication). API keys are issued to integration partners on request.
Environments
- Production
https://api-gateway.coinchange.io/api/yaas/v1- Sandbox
https://sandbox-api-gateway.coinchangetest.io/api/yaas/v1
Authentication
Every request carries an API key in the apikey header. Keys are issued to integration partners.
Endpoints
Products
1 endpoint
GET/products/
Get the latest products offerings
Header parameters
| Name | Type | Description |
|---|---|---|
| apikeystringrequired | string | API key issued to the integration partner. |
Responses
200OK
| Name | Type | Description |
|---|---|---|
| productstringrequired | string | Allowed values: |
| offeringarray of ProductOfferingrequired | array of ProductOffering | |
| offering[].asset_idstring | string | |
| offering[].apy_30dstring | string |
[
{
"product": "highyield",
"offering": [
{
"asset_id": "USDC",
"apy_30d": "string"
},
{
"asset_id": "USDT",
"apy_30d": "string"
}
]
}
]401Unauthorized
Assets
1 endpoint
GET/assets/
Get list of assets
Header parameters
| Name | Type | Description |
|---|---|---|
| apikeystringrequired | string | API key issued to the integration partner. |
Responses
200List of assets
| Name | Type | Description |
|---|---|---|
| idstring | string | |
| namestring | string | |
| precisioninteger | integer |
[
{
"id": "USDC",
"name": "USD Coin",
"precision": 4
},
{
"id": "DAI",
"name": "Dai",
"precision": 4
},
{
"id": "BTC",
"name": "Bitcoin",
"precision": 8
},
{
"id": "ETH",
"name": "Ethereum",
"precision": 8
},
{
"id": "USDT",
"name": "Tether",
"precision": 4
}
]401Unauthorized
Organization
7 endpoints
- GET/organization/balances/Get organization balances
- POST/organization/deposit/notify/Notify about a new deposit transaction
- GET/organization/transactions/Get organization transaction history
- POST/organization/transactions/validate_withdrawal_request/Perform pre-submission withdrawal request validation
- POST/organization/transactions/withdraw/Create withdrawal request
- GET/organization/wallets/deposit/Get organization deposit addresses
- GET/organization/wallets/withdrawal/Get organization withdrawal addresses
Reserve account
3 endpoints
- POST/organization/reserve_account/allocate/Allocate reserve funds
- GET/organization/reserve_account/balances/Get organization reserve account balances
- GET/organization/reserve_account/wallets/deposit/Get organization reserve account deposit addresses
Sub-clients
10 endpoints
- GET/earn_clients/Get list of sub-clients
- POST/earn_clients/Create new sub-client
- GET/earn_clients/balances/Get sub-client balances
- POST/earn_clients/deposit/notify/Notify about a new deposit transaction
- GET/earn_clients/transactions/Get sub-client transaction history
- POST/earn_clients/transactions/validate_withdrawal_request/Perform pre-submission withdrawal request validation
- POST/earn_clients/transactions/withdraw/Create withdrawal request
- GET/earn_clients/wallets/deposit/Get deposit addresses
- GET/earn_clients/wallets/withdrawal/Get withdrawal addresses
- POST/earn_clients/wallets/withdrawal/Update withdrawal wallets
Technical documentation is provided to institutional integration partners for integration work. It is not an offer or a solicitation. Availability of products, assets and endpoints varies by partner and jurisdiction.
