Payouts
Steam
How to create payouts to Steam account balance
Payouts allow you to send funds from your merchant account to Steam account balances.
Before you start
How to authorize requests
Before making requests, ensure that your merchant account has sufficient funds for the payout.
Creating a payout
Send a POST request to create a new payout:
POST /v1/payoutsRequest example
curl -X POST "https://api.1capital.capital/v1/payouts" \
-H "Content-Type: application/json" \
-H "X-Api-Token: YOUR_API_TOKEN" \
-d '{
"amount": 1000,
"currency": "RUB",
"paymentType": "STEAM",
"account": {
"name": "Steam profile name or random string",
"requisites": "steam_login",
"userId": "user_12345"
},
"note": "Payout for order #1234"
}'Request parameters
Main parameters
| Field | Type | Required | Description |
|---|---|---|---|
| amount | number | ✅ Yes | Payout amount |
| currency | string | ✅ Yes | Currency code |
| paymentType | string | ✅ Yes | Payment type |
| account | object | ✅ Yes | Recipient details |
| note | string | ❌ No | Payout note |
| externalId | string | ❌ No | Payout identifier in your system |
| callbackUrl | string | ❌ No | Webhook notification address for the payout |
Account object
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | ✅ Yes | Recipient name |
| requisites | string | ✅ Yes | Account details (steam login) |
| userId | string | ✅ Yes | User ID in your system |
Supported currencies
| Value | Description |
|---|---|
| RUB | Russian Ruble |
| KZT | Kazakhstani Tenge |
| UAH | Ukrainian Hryvnia |
| USD | US Dollar |
Payment types
| Value | Description |
|---|---|
| STEAM | Payout to Steam account |
Successful response example
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"merchantId": "123e4567-e89b-12d3-a456-426614174000",
"amount": "1000.50",
"account": {
"name": "John Doe",
"requisites": "super_macho",
"userId": "user_12345"
},
"status": "CREATED",
"type": "STEAM",
"requisites": {},
"statusMessage": null,
"metadata": null,
"callbackUrl": null,
"createdAt": "2023-03-21T12:34:56Z",
"updatedAt": "2023-03-21T12:34:56Z",
"completedAt": null
}Response fields
| Field | Type | Description |
|---|---|---|
| id | string | Payout UUID |
| merchantId | string | Your merchant UUID |
| amount | string | Payout amount |
| account | object | Recipient details |
| status | string | Current payout status |
| type | string | Payment type |
| requisites | object | Additional requisites |
| statusMessage | string / null | Status message (if available) |
| metadata | object / null | Additional metadata |
| callbackUrl | string / null | Webhook notification address for this payout (null — merchant settings are used) |
| createdAt | string | Creation time |
| updatedAt | string | Last update time |
| completedAt | string / null | Completion time |
Payout statuses
| Status | Description |
|---|---|
| CREATED | Payout created |
| PENDING | Payout is processing |
| COMPLETED | Payout completed |
| FAILED | Payout failed |
| CANCELED | Payout canceled |
| EXPIRED | Payout expired |
Checking payout status
To check the current status of a payout, send a GET request:
GET /v1/payouts/{payoutId}Request example
curl -X GET "https://api.1capital.capital/v1/payouts/123e4567-e89b-12d3-a456-426614174000" \
-H "X-Api-Token: YOUR_API_TOKEN"Payout status updates are also delivered via webhooks: pass callbackUrl in
the request body or specify it in your merchant settings. Polling the status
by ID may be used as a fallback (for example, every 30 minutes).
Payout Webhooks
Recommendations
- Always check merchant balance before creating payouts
- Save the payout
idfrom the response for tracking status - Use webhook notifications (
callbackUrl) and verify theX-Signatureheader; polling the status by ID is a fallback - Handle all possible status values in your integration