1. Introduction
To work with API, you need to get API-Key and API-secret in your personal account.
API URL: https://api2.capitalist.net/
2. Authentication
With each API call, you need to pass the following headers:
2.1. Authentication Headers
| Header | Description |
|---|---|
|
Your API key obtained from your personal account ( |
|
Current timestamp in epoch milliseconds |
|
SHA-256 hex hash of: |
2.2. Signature Calculation Example
2.2.1. Input Data
-
Request timestamp:
1678901234567 -
Request body:
{"type":"PAYONEER","accountFrom":"U0123504","payload":{"account":"[email protected]"},"userRequestId":"1745844029437","callbackUrl":"https://some-domain.com/callbacksFromCap","amount":100} -
API secret:
somePrivateApiSecret
2.2.2. Signature Calculation Steps
-
Concatenate the following components as a single string:
rawString = X-Request-Timestamp + requestBody + API-secret
-
In this case:
1678901234567{"type":"PAYONEER","accountFrom":"U0123504","payload":{"account":"[email protected]"},"userRequestId":"1745844029437","callbackUrl":"https://some-domain.com/callbacksFromCap","amount":100}somePrivateApiSecret -
Calculate SHA-256 hex of the string above:
val signature = sha256Hex(input) -
Resulting signature (SHA-256 digest as a hex string):
2eec8f9fcedae5de9a4ebba8e4ef393ece034a1a14a28a51ee34812311e5b516
-
Final Header to send:
Signature: 2eec8f9fcedae5de9a4ebba8e4ef393ece034a1a14a28a51ee34812311e5b516
3. Security: IP Whitelist
API methods may be restricted to a whitelist of IP addresses. Requests coming from IPs that are not in the whitelist will be rejected.
You can manage the whitelist via dedicated endpoints below. The request body accepts an array of strings with exact IPs or wildcard patterns for the last octet (e.g., 127.0.0.*).
3.1. Read Whitelist
Endpoint: GET /v1/whitelist
Returns an array of IPs.
Response Body
["12.12.11.14"]
3.2. Add IPs to Whitelist
Endpoint: POST /v1/whitelist
Request Body
{
"ip": ["12.12.11.14"]
}
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
|
array[string] |
Yes |
List of IPs or patterns to allow (e.g., |
3.3. Remove IPs from Whitelist
Endpoint: POST /v1/whitelist/remove
Request Body
{
"ip": [
"127.0.0.*",
"127.0.0.1"
]
}
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
|
array[string] |
Yes |
List of IPs or patterns to remove from the whitelist. |
4. API Endpoints
4.1. Account Management
4.1.1. List Accounts
Endpoint: GET /v1/account/list
Retrieves a list of accounts filtered by currency.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
|
string |
Yes |
Currency code to filter accounts (e.g., USD, EUR, RUR, BTC, USDT, USDTt, USDC). Note: USDT - for ERC-20, USDTt - for TRC-20R) |
Response
Returns an array of account objects.
[
{
"number": "U0123504",
"currency": "USD",
"name": "Main Account",
"balance": 1250.50
}
]
Response Fields
| Field | Type | Description |
|---|---|---|
|
string |
Account number identifier |
|
string |
Account currency code |
|
string |
Account display name |
|
number |
Current account balance |
4.2. Exchange Operations
4.2.1. Create Currency Exchange
Endpoint: POST /v1/exchange
Creates a currency conversion/exchange operation between accounts.
Request Body
{
"fromAccount": "U0123504",
"toAccount": "E0123505",
"amount": 100.00
}
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
|
string |
Yes |
Source account number |
|
string |
Yes |
Destination account number |
|
number |
Yes |
Amount to exchange from source account |
Response
Returns null on success.
4.3. Exchange Rate
4.3.1. Get Exchange Rate
Endpoint: GET /v1/rate
Retrieves the current exchange rate between two currencies.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
|
string |
Yes |
Source currency code |
|
string |
Yes |
Target currency code |
Response
Returns the exchange rate as a number.
1.0842
4.4. Payment Operations
4.4.1. Create Payment
Endpoint: POST /v1/payment
Creates a new payment transaction.
The payment type is determined by the payload object — its structure defines the specific payment flow and validation rules.
Optionally, you may include a callbackUrl field. If provided, the system will send a callback request to this URL with the final payment status once the transaction is completed.
|
Warning
|
Not all payment channels listed in the documentation may be currently available. |
Request Body
{
"userRequestId": "string",
"accountFrom": "string",
"amount": 0.1,
"currency": "string",
"comment": "string",
"callbackUrl": "string",
"payload": {
"type": "SOME_BANK_TYPE",
"account": "string",
"taxId": "string",
"cbu": "string"
}
}
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
|
string |
Yes |
Your unique transaction identifier |
|
string |
Yes |
Your account number from which funds will be withdrawn |
|
number |
Yes |
Transaction amount in account currency or in the specified currency |
|
string |
No |
Currency code (e.g., USD, EUR, RUR, BTC, USDT, USDTt, USDC). Note: USDT - for ERC-20, USDTt - for TRC-20 |
|
string |
No |
Optional transaction comment |
|
string |
No |
URL where the system will send callback notifications about transaction status |
|
object |
Yes |
Payment-specific data. Required fields depend on the payment channel type |
Response
If the request is successful, the API returns a JSON object containing the unique document ID of the created payment.
{
"documentId": 9007199254740991
}
Response Fields
| Field | Type | Description |
|---|---|---|
|
integer |
Unique identifier of the created payment document |
4.4.2. Get Payment Status by Document ID
Endpoint: GET /v1/payment/document/{documentId}
Retrieves the current status and details of a payment by its document ID. The response also includes all payment fields as originally submitted, as well as the calculated fee associated with the transaction.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
|
integer |
Yes |
Unique document identifier returned when payment was created |
Response
{
"state": "EXECUTED",
"fee": 1.12,
"documentId": 123,
"comment": "Own funds",
"amount": 100.00,
"currency": "USD",
"type": "PAYONEER",
"accountFrom": "U0123504",
"payload": "{\"account\":\"[email protected]\",\"type\":\"PAYONEER\"}",
"userRequestId": "9876543219",
"callbackUrl": "https://some-domain.com/for-callbacks"
}
4.4.3. Get Payment Status by User Request ID
Endpoint: GET /v1/payment/{userRequestId}
Retrieves the current status and details of a payment by your unique request identifier. The response also includes all payment fields as originally submitted, as well as the calculated fee associated with the transaction.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
|
string |
Yes |
Your unique transaction identifier specified when creating the payment |
Response
Same response format as "Get Payment Status by Document ID".
Response Fields
| Field | Type | Description |
|---|---|---|
|
string |
Payment state (PENDING, EXECUTED, DECLINED) |
|
number |
Transaction fee amount |
|
integer |
Unique document identifier |
|
string |
Transaction comment (may be null) |
|
number |
Transaction amount |
|
string |
Transaction currency code |
|
string |
Payment channel type (e.g., RUCARD, PAYONEER) |
|
string |
Source account identifier |
|
string |
JSON string containing payment-specific data |
|
string |
Your unique request identifier |
|
string |
Callback URL for notifications |
4.5. Merchant Orders
4.5.1. Get Orders
Endpoint: GET /v1/orders
Retrieves a list of orders using filters.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
|
number |
No |
Maximum number of returned orders. Default value is 100. |
|
number |
No |
Offset of returned orders. Default value is 0. |
|
string |
No |
Date in ISO 8601 format |
|
string |
No |
Date in ISO 8601 format |
|
string |
No |
Order number identifier |
|
string |
No |
Merchant name |
|
number |
No |
Order id identifier |
|
number |
No |
Merchant id identifier |
Response
Returns an array of merchant orders.
{
"orders": [
{
"merchantId": 163,
"number": "utorg0012",
"creationDate": "2020-08-31T18:49:23.670Z",
"description": "My demo payment.",
"currency": "BTC",
"state": "PAID",
"amount": 0.00161283,
"paidAmount": 0.00161283,
"cryptoCurrency": "BTC",
"orderId": 800000012
}
],
"count": 123
}
Response Fields
| Field | Type | Description |
|---|---|---|
|
Array[Object] |
List of orders |
|
number |
Number of orders |
Order Object Fields
| Field | Type | Description |
|---|---|---|
|
number |
Merchant id identifier |
|
string |
Order number identifier |
|
string |
Date of creation in ISO 8601 format. |
|
string |
Currency code |
|
string |
Crypto currency code |
|
number |
Order state. Possible values: NEW, PARTIALLYPAID, PAID, FAIL, REFUND, CHARGEBACK, CANCELLED. |
|
number |
Order amount |
|
number |
Order paid amount |
|
number |
Order id identifier |
|
string |
Order description |
4.6. List transactions
4.6.1. Get Transactions
Endpoint: GET /v1/transactions
Retrieves a list of transactions using filters.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
|
number |
No |
Maximum number of returned orders. Default value is 100. |
|
number |
No |
Offset of returned orders. Default value is 0. |
|
string |
No |
Date in ISO 8601 format |
|
string |
No |
Date in ISO 8601 format |
|
number |
No |
Transaction id identifier |
Response
Returns an array of merchant orders.
{
"transactions": [
{
"transactionId": 8367664,
"createDate": "2014-02-18T21:47:29.452Z",
"executeDate": "2014-02-18T21:47:39.543Z",
"type": "EXTERNALOUT",
"state": "EXECUTED",
"amount": 500.00000000,
"currency": "USD",
"planDate": "2014-02-18T21:21:53.314Z",
"version": 1
}
],
"count": 123
}
Response Fields
| Field | Type | Description |
|---|---|---|
|
Array[Object] |
List of transactions |
|
number |
Number of transactions |
Transaction Object Fields
| Field | Type | Description |
|---|---|---|
|
number |
Transaction id identifier |
|
string |
Date of creation in ISO 8601 format. |
|
string |
Date of execution in ISO 8601 format. |
|
string |
Transaction type |
|
string |
Transaction state |
|
number |
Transaction amount |
|
string |
Currency code |
|
string |
Date of plan in ISO 8601 format. |
|
number |
Transaction version |
5. Payment Callbacks
The service will inform you about changes in the payment status using the callbackUrl link. A POST request will be sent to this URL when a final status is received.
5.1. Callback Headers
| Header | Description |
|---|---|
|
Current timestamp in epoch milliseconds |
|
SHA-256 hex hash of: |
|
Note
|
The callback signature is calculated the same way as the request signature. Use this to verify the authenticity of the callback. When validating the callback, use the timestamp from the X-Request-Timestamp header together with your API-secret to recompute the signature and compare it with the value in the Signature header. |
5.2. Callback Body Fields
| Field | Type | Required | Description |
|---|---|---|---|
|
string |
Yes |
Document final state (EXECUTED, DECLINED) |
|
number |
Yes |
Transaction fee amount |
|
integer |
Yes |
Unique identifier of the transaction document |
|
string |
No |
Additional information or notes about the transaction |
|
number |
Yes |
Transaction amount |
|
string |
Yes |
Transaction currency code (e.g., USD, EUR) |
|
string |
Yes |
Transaction type (e.g., RUCARD, PAYONEER) |
|
string |
Yes |
Source account identifier |
|
string |
Yes |
Unique request identifier from the user |
|
string |
Yes |
URL for sending callback notifications |
5.3. Example Callback Body
{
"state": "EXECUTED",
"fee": 1.12,
"documentId": 123,
"comment": "Own funds",
"amount": 100.00,
"currency": "USD",
"type": "PAYONEER",
"accountFrom": "U0123504",
"userRequestId": "9876543219",
"callbackUrl": "https://some-domain.com/for-callbacks"
}
6. Payment Channels
The following payment channels are supported. Each channel has specific validation requirements for the payload field.
Each supported record type in the system has its own validation rules. These rules define which fields are required in the request payload when creating a new payment.
|
Warning
|
Not all payment channels listed in the documentation may be currently available. |
6.1. Card Payments
6.1.1. RUCARD - Russian Cards
Russian payment cards.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "RUCARD" |
|
string |
Russian card number (16-19 digits, digits only) |
|
string |
Cardholder first name |
|
string |
Cardholder last name |
|
string |
Cardholder middle name (patronymic) |
Example Payload
{
"type": "RUCARD",
"name": "Ivan",
"account": "1234567890123456",
"surname": "Petrov",
"midname": "Sergeevich"
}
6.1.2. RUCARDP2P / RUCARDP2PDYN - Russian P2P Card Transfers
Peer-to-peer transfers between Russian cards.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "RUCARDP2P" or "RUCARDP2PDYN" |
|
string |
Russian card number (16-19 digits, digits only) |
|
string |
Cardholder first name |
|
string |
Cardholder last name |
|
string |
Cardholder middle name (patronymic) |
Example Payload
{
"type": "RUCARDP2P",
"account": "1234567890123456",
"name": "Ivan",
"surname": "Petrov",
"midname": "Sergeevich"
}
6.1.3. UKRCARD - Ukrainian Cards
Payment cards issued by Ukrainian banks.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "UKRCARD" |
|
string |
Card number (digits only) |
Example Payload
{
"type": "UKRCARD",
"account": "1234567890123456"
}
6.1.4. TRCARD - Turkish Cards
Payment cards issued by Turkish banks.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "TRCARD" |
|
string |
Card number (16 digits starting with 4, 5, or 9) |
|
string |
Sender’s full name as on card |
|
string |
Sender’s tax code number (11 digits) |
|
string |
Recipient’s full name |
Example Payload
{
"type": "TRCARD",
"account": "423411110123111",
"senderFullname": "Ahmet Ymaz",
"senderIdentityNumber": "12345678901",
"beneficiaryFullname": "Mehmet Damir"
}
6.1.5. GECARD - Georgian Cards
Cards issued by Georgian banks.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "GECARD" |
|
string |
Card number |
|
string |
Sender’s first name |
|
string |
Sender’s last name |
|
string |
Sender’s ID number |
|
string |
Recipient’s first name |
|
string |
Recipient’s last name |
Example Payload
{
"type": "GECARD",
"account": "5234567890123456",
"senderFirstname": "Giorgi",
"senderLastname": "Piponia",
"senderIdentityNumber": "01234567890",
"receiverFirstname": "Nino",
"receiverLastname": "Kupdze"
}
6.1.6. AZCARD - Azerbaijani Cards
Cards issued by Azerbaijani banks.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "AZCARD" |
|
string |
Card number (exact length depends on issuer) |
|
string |
4-digit future year (e.g., 2033) |
|
string |
2-digit month (01-12) |
Example Payload
{
"type": "AZCARD",
"account": "1234567890123456",
"cardExpiryYear": "2033",
"cardExpiryMonth": "11"
}
6.1.7. KZCARD - Kazakhstani Cards
Payment cards issued by Kazakhstani banks.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "KZCARD" |
|
string |
Card number (digits only) |
Example Payload
{
"type": "KZCARD",
"account": "1234567890123456"
}
6.1.8. UZCARD - Uzbekistani Cards
Payment cards issued by Uzbekistani banks.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "UZCARD" |
|
string |
Card number (digits only) |
Example Payload
{
"type": "UZCARD",
"account": "1234567890123456"
}
6.1.9. WORLDCARDEUR / WORLDCARDUSD - International Cards
International payment cards in EUR or USD.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "WORLDCARDEUR" or "WORLDCARDUSD" |
|
string |
Card number (16-18 digits, no spaces) |
|
string |
Cardholder first name |
|
string |
Cardholder last name |
|
string |
Must match service (EUR/USD) |
|
string |
Date in YYYY-MM-DD format |
|
string |
Full street address |
|
string |
Country code (ISO) |
|
string |
City name |
|
string |
2 digits (01-12) |
|
string |
4 digits (e.g., 2025) |
Example Payload
{
"type": "WORLDCARDEUR",
"account": "1234567890123456",
"name": "John",
"surname": "Smith",
"cardCurrency": "EUR",
"birthDate": "1990-01-01",
"address": "123 Main Street",
"addressCountryCode": "USA",
"addressCity": "New York",
"cardExpiryMonth": "12",
"cardExpiryYear": "2025"
}
6.2. Bank Transfers
6.2.1. ARBANK - Argentinian Banks
Bank accounts in Argentina.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "ARBANK" |
|
string |
Beneficiary account ID (alphanumeric, exact length depends on bank) |
|
string |
Exactly 11 digits of beneficiary’s tax ID |
|
string |
22-digit numeric code for routing transfers |
Example Payload
{
"type": "ARBANK",
"account": "12345",
"taxId": "12345678901",
"cbu": "1234567890123456789012"
}
6.2.2. BRBANK - Brazilian Banks
Bank accounts in Brazil.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "BRBANK" |
|
string |
11 digits of taxpayer identification number (CPF format) |
|
string |
Full legal name |
|
string |
Valid email format |
|
string |
Minimum 6 characters |
Example Payload
{
"type": "BRBANK",
"taxId": "12345678901",
"name": "João Silva",
"email": "[email protected]",
"additionalRemark": "Own funds"
}
6.2.3. COBANK - Colombian Banks
Bank accounts in Colombia.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "COBANK" |
|
string |
9 to 11 digits of taxpayer identification number |
|
string |
Full legal name |
|
string |
Valid email format |
|
string |
11 to 15 digits |
Example Payload
{
"type": "COBANK",
"taxId": "1234567890",
"fullName": "Carlos Rodriguez",
"email": "[email protected]",
"phone": "573001234567"
}
6.2.4. MALAYSIA_BANK - Malaysian Banks
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "MALAYSIA_BANK" |
|
string |
Bank account number (digits only) |
|
object |
Bank details |
|
string |
Bank identifier code |
|
string |
Name on the account |
|
string |
Recipient account number |
|
object |
Recipient information |
|
string |
Recipient’s first name |
|
string |
Recipient’s last name |
|
string |
Recipient’s email |
|
string |
Recipient’s phone number |
|
string |
Postal code |
|
string |
Recipient’s city |
|
string |
Recipient’s street address |
|
string |
Lowercase ISO 2-letter country code (e.g., 'my') |
Example Payload
{
"type": "MALAYSIA_BANK",
"destination": {
"bankCode": "MBBEMYKL",
"accountName": "Ahmad Abdullah",
"accountNumber": "1234567890"
},
"recipient": {
"firstName": "Ahmad",
"lastName": "Abdullah",
"email": "[email protected]",
"phone": "60123456789",
"zipCode": "50000",
"city": "Kuala Lumpur",
"address": "Jalan Sultan Ismail",
"country": "my"
},
"account": "1234567890"
}
6.2.5. INDONESIA_BANK - Indonesian Banks
Required Fields
Same structure as MALAYSIA_BANK with type = "INDONESIA_BANK" and recipient.country = "id".
6.2.6. THAILAND_BANK - Thai Banks
Required Fields
Same structure as MALAYSIA_BANK with type = "THAILAND_BANK" and recipient.country = "th".
6.2.7. SOUTH_KOREA_BANK - South Korean Banks
Required Fields
Same structure as MALAYSIA_BANK with type = "SOUTH_KOREA_BANK" and recipient.country = "kr".
6.3. Mobile Payments
6.3.1. MEGAFON / TMOBILE / BEELINE / MTS / TELE2 / YOTA
Digital wallets and Russian mobile carrier payments.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Payment type (e.g., "MEGAFON", "TELE2", …) |
|
string |
Russian phone number (11 digits starting with 7 or 8) |
Example Payload
{
"type": "MEGAFON",
"account": "79001234567"
}
6.3.2. UKR_MOBILE - Ukrainian Mobile Payments
Payments via Ukrainian mobile operators.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "UKR_MOBILE" |
|
string |
Ukrainian phone number (digits only) |
Example Payload
{
"type": "UKR_MOBILE",
"account": "380501234567"
}
6.4. Fast Payment Systems
6.4.1. SBP - Russian Fast Payment System / "Система Быстрых Платежей"
System for instant payments in Russia.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "SBP" |
|
string |
Russian phone number (digits only) |
|
string |
Beneficiary’s email |
|
string |
NSPK member bank ID |
|
string |
Beneficiary’s first name |
|
string |
Beneficiary’s last name |
Example Payload
{
"type": "SBP",
"account": "79001234567",
"email": "[email protected]",
"nspk": "100000000004",
"firstName": "Ivan",
"lastName": "Petrov"
}
6.4.2. IMPS - Immediate Payment Service (India)
India’s real-time interbank electronic funds transfer system.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "IMPS" |
|
string |
Account number (digits only) |
|
string |
Beneficiary account name |
|
string |
Indian Financial System Code (IFSC, digits only) |
Example Payload
{
"type": "IMPS",
"account": "1234567890",
"account_name": "Raj Kumar",
"bank_code": "SBIN0001234"
}
6.5. E-Wallets
6.5.1. PAYONEER / PAYONEER_EUR / PAYONEER_USD
International digital payment platform for cross-border transfers.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "PAYONEER", "PAYONEER_EUR", or "PAYONEER_USD" |
|
string |
Beneficiary email address |
Example Payload
{
"type": "PAYONEER_EUR",
"account": "[email protected]"
}
6.5.2. EUR_NETELLER / EUR_SKRILL
Electronic wallets in euros via Neteller or Skrill.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "EUR_NETELLER" or "EUR_SKRILL" |
|
string |
Beneficiary email address |
|
string |
Legal name |
|
string |
Legal surname |
|
string |
ISO country code |
|
string |
City of residence |
|
string |
Physical address |
|
string |
Postal code |
|
string |
Verification code |
|
string |
Phone number (digits only) |
|
string |
Client’s IP address |
|
string |
Required if country is USA or CANADA (ISO ALPHA-2 state code) |
Example Payload
{
"type": "EUR_NETELLER",
"wallet_email": "[email protected]",
"name": "John",
"surname": "Doe",
"country": "USA",
"city": "New York",
"address": "123 Main St",
"zip": "10001",
"code": "123456",
"phone": "12125551234",
"client_ip": "192.168.1.1",
"state": "NY"
}
6.5.3. PAYTM
Indian digital payments and mobile wallet platform.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "PAYTM" |
|
string |
Account number (digits only) |
Example Payload
{
"type": "PAYTM",
"account": "9876543210"
}
6.5.4. GCASH
Digital wallet and mobile payment service (Philippines).
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "GCASH" |
|
object |
Recipient details |
|
string |
Recipient’s surname |
|
string |
Recipient’s given name |
|
string |
Recipient’s mobile number (digits only) |
|
object |
Sender details |
|
string |
Purpose of transaction |
|
string |
GCash account number |
|
number |
Amount to receive |
|
string |
Currency code |
|
string |
Payment channel code |
|
string |
Payment channel name |
Example Payload
{
"type": "GCASH",
"receiver": {
"surName": "Dela Cruz",
"givName": "Juan",
"phone": "639171234567"
},
"sender": {
"purposeOfRemittance": "FAMILY SUPPORT"
},
"account": "639171234567",
"receiveAmount": 5000.00,
"receiveCurrency": "PHP",
"channelCode": "73",
"channelName": "GCASH"
}
6.5.5. WM
WebMoney payments.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "WM" |
|
string |
WebMoney wallet identifier, alphanumeric |
Example Payload
{
"type": "WM",
"account": "9876543210"
}
6.5.6. PAGS_CHWALLET
Vita wallet Chile payments.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "PAGS_CHWALLET" |
|
string |
Beneficiary’s email |
Example Payload
{
"type": "PAGS_CHWALLET",
"account": "[email protected]"
}
6.5.7. PAGS_MXSPEI
Mexican SPEI
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "PAGS_MXSPEI" |
|
string |
Beneficiary’s full name |
|
string |
Bank code |
|
string |
Account number |
|
string |
One of: clabe, phone, debit |
|
string |
Document ID |
|
string |
One of: RFC, CURP |
Example Payload
{
"type": "PAGS_MXSPEI",
"name": "John Doe",
"bankCode": "123",
"account": "9876543210",
"accountType": "clabe",
"documentId": "ABC123456",
"documentType": "RFC"
}
6.5.8. PAGS_COWALLET
Colombian Nequi, Tpaga
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "PAGS_COWALLET" |
|
string |
Account number |
|
string |
One of: Nequi, Tpaga |
|
string |
Email of beneficiary |
Example Payload
{
"type": "PAGS_COWALLET",
"account": "3001234567",
"channel": "Nequi",
"email": "[email protected]"
}
6.5.9. PAGS_COTRAN
Colombian Transfiya
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "PAGS_COTRAN" |
|
string |
Account number. Must start with 57 and contain 12–14 digits |
|
string |
Beneficiary full name |
|
string |
CC: 6–10 digits. CE: max 12 chars. PEP: max 15 digits |
|
string |
One of: CC, CE, PEP |
Example Payload
{
"type": "PAGS_COTRAN",
"account": "5712345678901",
"name": "Juan Perez",
"documentNumber": "123456789",
"documentType": "CC"
}
6.5.10. EPAY_EPAY_E_VN_ZALO
ZaloPay payments.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "EPAY_EPAY_E_VN_ZALO" |
|
object |
Receiver info (surName, givName, phone) |
|
object |
Sender info (surName, country, address, purposeOfRemittance) |
|
string |
Receiver account |
|
string |
Amount to be received |
|
string |
Currency code (e.g., USD) |
Example Payload
{
"type": "EPAY_EPAY_E_VN_ZALO",
"receiver": {
"surName": "Tran",
"givName": "Anh",
"phone": "0901234567"
},
"sender": {
"surName": "Smith",
"country": "US",
"address": "123 Main St",
"purposeOfRemittance": "Family support"
},
"account": "123456789",
"receiveAmount": "100000",
"receiveCurrency": "USD"
}
6.5.11. EPAY_EPAY_E_BD_BKASH
bKash payments.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "EPAY_EPAY_E_BD_BKASH" |
|
object |
Receiver info (surName, givName, accountNo) |
|
object |
Sender info (givName, surName, area, phone, nationality, idType, idNumber, birthday, city, zipCode, country, address, purposeOfRemittance) |
|
string |
Beneficiary account |
|
string |
Amount to be received |
|
string |
Currency code (e.g., USD) |
Example Payload
{
"type": "EPAY_EPAY_E_BD_BKASH",
"receiver": {
"surName": "Rahman",
"givName": "Ali",
"accountNo": "017XXXXXXXX"
},
"sender": {
"givName": "John",
"surName": "Doe",
"area": "Dhaka",
"phone": "8801XXXXXXXX",
"nationality": "US",
"idType": "Passport",
"idNumber": "AB1234567",
"birthday": "1985-01-01",
"city": "NYC",
"zipCode": "10001",
"country": "USA",
"address": "123 Main St",
"purposeOfRemittance": "Family Support"
},
"account": "017XXXXXXXX",
"receiveAmount": "5000",
"receiveCurrency": "USD"
}
6.6. Cryptocurrency
6.6.1. BITCOIN / ETH / USDCERC20 / USDTERC20 / USDTTRC20
Cryptocurrency payments for Bitcoin, Ethereum, and various stablecoins.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "BITCOIN", "ETH", "USDCERC20", "USDTERC20", or "USDTTRC20" |
|
string |
Wallet address (minimum 26 characters) |
Example Payload
{
"type": "BITCOIN",
"account": "bc1qxy2kg342rsqtzq2n0yrf2493p83kkfjhx0wlh"
}
NOTE:
-
USDTERC20 - USDT on ERC-20 network (Ethereum)
-
USDTTRC20 - USDT on TRC-20 network (Tron)
-
USDCERC20 - USDC on ERC-20 network (Ethereum)
6.7. STEAM
6.7.1. STEAM RUR ACCOUNTS
Top up Steam account balance in rubles
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Steam account name, not Steam nickname |
|
string |
Ip address |
Example Payload
{
"type": "steamAccountName",
"ip": "179.195.60.108"
}
6.8. CAPITALIST
6.8.1. CAPITALIST INTERNAL PAYMENTS
Send payment to another system user.
Required Fields
| Field | Type | Description |
|---|---|---|
|
string |
Must be "CAPITALIST" |
|
string |
Beneficiary account ID |
Example Payload
{
"type": "CAPITALIST",
"account": "U123456789"
}
7. Error Handling
When an error occurs, the API returns a JSON object with an error description.
7.1. Error Response
{
"error": "Error description message"
}
7.2. HTTP Status Codes
| Status Code | Description |
|---|---|
200 |
Success - Request processed successfully |
400 |
Bad Request - Invalid parameters or validation error |
8. Reference
8.1. Currency
| Currency Code | Description |
|---|---|
RUR |
Russian Roubles |
USD |
U.S. Dollars |
EUR |
European EURO |
USDT |
USDT (Erc 20) |
USDTt |
USDT (Trc 20) |
ETH |
Ethereum |
USDC |
USDC (Erc 20) |
BTC |
Bitcoin |
9. Best Practices
9.1. Security
-
Keep your API secret secure - Never commit it to version control or share it publicly
-
Validate callback signatures - Always verify the signature of incoming callbacks to ensure they’re from the legitimate service
-
Use HTTPS - All API calls must use HTTPS protocol
-
Implement idempotency - Use unique
userRequestIdfor each transaction to prevent duplicates
9.2. Integration Tips
-
Test with small amounts first - Start with minimal transaction amounts during integration
-
Implement proper error handling - Handle all possible error responses gracefully
-
Monitor callback endpoints - Ensure your callback URL is always accessible and responds within timeout limits
-
Log all transactions - Keep detailed logs of all API requests and responses for debugging
-
Check payment channel availability - Not all payment channels may be available at all times
9.3. Rate Limiting
If you want to poll transaction statuses more than 20 times per minute, consider integrating callbacks instead. You can create new transactions without any restrictions.
With excessively frequent API calls, the system will automatically throttle your requests.
10. Coding Examples
You can find working integration examples in our public GitHub repository:
-
Java example: https://github.com/capitalist-net/API-V2
11. Support
For technical support and questions about the API integration, please contact support through your personal account.