Ripio User API
The User API from Ripio — 6 operation(s) for user.
The User API from Ripio — 6 operation(s) for user.
openapi: 3.0.0
info:
title: Ripio Trade - API Documentation Book User API
version: v4.0
description: "Welcome to the Ripio Trade API documentation.\n\n### Version\nThis API is currently in the version 4.\n\nIf there is need for any big change, a new version will be launched and this version will be maintained for at least 3 months.\n\nIf you're still using the version 3, [access the old documentation](../v3) and check the [migration guide](#tag/V3-Endpoint-Migrations).\n\n### Important\nUse the `Market` endpoints for all trading operations. The `Public` endpoints have a delay (cache) of up to 30 seconds.\n\nAll successful requests will result in a 200 HTTP Status.\n\nAll requests returns data in JSON format (application/json) and have a default body:\n\n\n### Success\n```\n{\n \"error_code\": null,\n \"message\": null,\n \"data\": { }\n}\n```\n\n### Error\n```\n{\n \"error_code\": [Error code],\n \"message\": \"Error description\",\n \"data\": null\n}\n```\n\n\nEndpoints that have a date filter will return data for the last 6 months if no value is sent in the `start_date` parameter.\n\n### URL structure\nThe endpoints URL follow this pattern:\n\n`https://api.ripiotrade.co/{version}/{method}[/{parameter}][?parameter=value...]`\n\n `https://api.ripiotrade.co/v4/tickers/BTC_BRL`\n\n### Limits\n\nThe request limits are based on the user's operational limits.\n\nThere are two types of limit, one of requests per second and another of daily requests. Both of them should be taken in consideration and the requests should be balanced so the daily limit isn't reached.\n\nUsers **without approved documentation** have 1 request per second or 86.400 daily requests.\n\nUsers **with approved documentation** have 3.5 requests per second or 302.400 daily requests.\n\nThese limits can be increased, and the support team should be contacted for that.\n\nWhen the requests per second limit is reached, the response HTTP Status returned is 429 and the response body is:\n```\n{\n \"message\": \"Too many requests\"\n}\n```\n\nWhen the daily requests limit is reached, the response HTTP Status returned is 429 and the response body is:\n```\n{\n \"message\": \"Limit Exceeded\"\n}\n```"
contact:
name: Jorn Filho
x-logo:
url: https://trade-images.ripio.com/general_images/logo-ripio.png
href: '#'
servers:
- url: https://api.ripiotrade.co/v4/
tags:
- name: User
paths:
/user/balances:
get:
operationId: ListBalances
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/BalanceResponseV4'
description: Lists the user's balances
summary: Balances
tags:
- User
security:
- API Credentials:
- Read
parameters:
- description: Currency code (one or many, use "," to separate)
in: query
name: currency_code
required: false
schema:
type: string
x-mcp:
enabled: true
name: get_user_balances
usage: '- To retrieve current balances for all user currencies
- To check available and locked amounts for trading
- To monitor portfolio holdings and asset distribution'
/user/balances/{date}:
get:
operationId: GetUserBalanceOnDate
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/BalanceOnDateResponseV4'
description: Lists the user's balances in the given date.
summary: Balance On Date
tags:
- User
security:
- API Credentials:
- Read
parameters:
- in: path
name: date
required: true
schema:
$ref: '#/components/schemas/DateParamV4'
x-mcp:
enabled: true
name: get_user_balance_on_date
usage: '- To retrieve historical balances for a specific date
- To check portfolio value at a particular point in time
- For accounting and reporting purposes with historical data'
/user/trading-fees:
get:
operationId: GetUserPairFee
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/UserPairFeeResponse'
description: Get the user trading fees
summary: Trading Fees
tags:
- User
security:
- API Credentials:
- Read
parameters:
- description: Pair code
in: query
name: pair
required: true
schema:
type: string
x-mcp:
enabled: true
name: get_user_trading_fees
usage: '- To retrieve maker and taker fees for specific trading pairs
- To calculate trading costs before placing orders
- For fee optimization and trading strategy planning'
/user/statement:
get:
operationId: GetStatement
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/UserStatementResponse'
description: Lists the user's statement.
summary: Statement
tags:
- User
security:
- API Credentials:
- Read
parameters:
- in: query
name: start_time
required: false
schema:
$ref: '#/components/schemas/StartDateTimeParamV4'
- in: query
name: end_time
required: false
schema:
$ref: '#/components/schemas/EndDateTimeParamV4'
- in: query
name: page_size
required: false
schema:
$ref: '#/components/schemas/PageSizeParamV4'
- in: query
name: current_page
required: false
schema:
$ref: '#/components/schemas/CurrentPageParamV4'
x-mcp:
enabled: true
name: get_user_statement
usage: '- To retrieve complete account statement with all transactions
- To track financial history and account activity
- For accounting, reporting, and audit purposes'
/user/statement/{currency_code}:
get:
operationId: GetStatementByCode
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/UserStatementResponse'
description: Lists the user's statement by currency.
summary: Statement by Currency
tags:
- User
security:
- API Credentials:
- Read
parameters:
- description: Currency code
in: path
name: currency_code
required: true
schema:
type: string
example: BTC
- in: query
name: start_time
required: false
schema:
$ref: '#/components/schemas/StartDateTimeNoMinParamV4'
- in: query
name: end_time
required: false
schema:
$ref: '#/components/schemas/EndDateTimeNoMinParamV4'
- in: query
name: page_size
required: false
schema:
$ref: '#/components/schemas/PageSizeParamV4'
- in: query
name: current_page
required: false
schema:
$ref: '#/components/schemas/CurrentPageParamV4'
x-mcp:
enabled: true
name: get_user_statement_by_currency
usage: '- To retrieve account statement filtered by specific currency
- To track transactions and balance changes for individual assets
- For currency-specific accounting and analysis'
/user/trades:
get:
operationId: GetUserTrades
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/UserTradesResponseV4'
description: 'Lists the user''s trades.
**Attention:** Due to performance concerns, this endpoint now uses cursor-based pagination. The pagination object currently included in the response is now a placeholder and will be entirely removed as of 2026-06-01. The parameter current_page is also a placeholder and will be removed at the same time. Please update your integration accordingly and refer to the documentation for the correct pagination handling.'
summary: Get User Trades
tags:
- User
security:
- API Credentials:
- Read
parameters:
- description: Currency pair code
in: query
name: pair
required: true
schema:
type: string
example: BTC_BRL
- in: query
name: start_date
required: false
schema:
$ref: '#/components/schemas/StartDateParamV4'
- in: query
name: end_date
required: false
schema:
$ref: '#/components/schemas/EndDateNoMinParamV4'
- in: query
name: page_size
required: false
schema:
$ref: '#/components/schemas/PageSizeParamV4'
- in: query
name: current_page
required: false
schema:
$ref: '#/components/schemas/CurrentPageParamV4'
- description: Order id
in: query
name: order_id
required: false
schema:
type: string
example: F49F5BD8-3F5B-4364-BCEE-F36F62DB966A
- description: External id
in: query
name: external_id
required: false
schema:
type: string
example: 90FcPa1Zm75
- description: The `c` parameter is the cursor you should use to fetch the next page of results
in: query
name: c
required: false
schema:
type: string
x-mcp:
enabled: true
name: get_user_trades
usage: '- To list user executed trades for specific trading pairs
- To track trading history and performance analysis
- To retrieve trades by order ID or external ID for reconciliation'
components:
schemas:
StartDateTimeNoMinParamV4:
type: string
default: '[6 months ago]'
example: '2020-01-01T00:00:00-03:00'
format: datetime
description: Initial datetime filter in ISO-8601 format
PaginationV4:
properties:
current_page:
type: number
format: double
description: Current page
page_size:
type: number
format: double
description: Page size
registers_count:
type: number
format: double
description: Total number of registers
total_pages:
type: number
format: double
description: Total number of pages
required:
- current_page
- page_size
- registers_count
- total_pages
type: object
additionalProperties: false
example:
current_page: 1
registers_count: 21
total_pages: 1
page_size: 100
UserTradesDataV4:
properties:
trades:
items:
$ref: '#/components/schemas/UserPreparedTradeV4'
type: array
example:
- amount: 0.00270754
date: '2019-04-02T11:22:22.403Z'
fee: 0.25
fee_currency: USDC
id: 488F9395-47ED-4924-98AB-C860E1733A03
maker_order_id: 1FD30735-E055-4200-AD3D-007B02A5BA92
pair_code: BTC_USDC
taker_or_maker: maker
price: 18550
side: sell
taker_order_id: DBC6D4AF-D454-46DF-80EC-E19528A0FB25
timestamp: 1675708481219
type: market
total_value: 50.22
- amount: 0.0026938
date: '2019-04-02T11:25:41.512Z'
fee: 1.347e-05
fee_currency: BTC
id: C79ED37D-DC21-4D54-8AFC-4262347E3F8D
maker_order_id: F49F5BD8-3F5B-4364-BCEE-F36F62DB966A
pair_code: BTC_USDC
taker_or_maker: taker
price: 18550
side: buy
taker_order_id: FEAB5CEC-7F9E-4F95-B67D-9E8D5C739BE3
timestamp: 1675708481220
type: market
total_value: 49.96
pagination:
$ref: '#/components/schemas/PaginationV4'
nc:
type: string
nullable: true
description: This is the next cursor, use its value with the `c` parameter to retrieve the next page
pc:
type: string
nullable: true
description: This is the previous cursor, use its value with the `c` parameter to retrieve the previous page
required:
- trades
- pagination
type: object
additionalProperties: false
EndDateTimeParamV4:
type: string
default: '[Current datetime]'
example: '2020-01-02T23:59:59-03:00'
format: datetime
description: Final datetime filter in ISO-8601 format (the interval between the initial and final datetime shouldn't be greater than 6 months)
EndDateTimeNoMinParamV4:
type: string
default: '[Current datetime]'
example: '2020-01-02T23:59:59-03:00'
format: datetime
description: Final datetime filter in ISO-8601 format
UserTradesResponseV4:
properties:
data:
$ref: '#/components/schemas/UserTradesDataV4'
error_code:
type: number
enum:
- null
nullable: true
example: null
message:
type: string
nullable: true
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
UserPreparedTradeV4:
properties:
amount:
type: number
format: float
description: Amount
id:
type: string
description: Trade id
format: string
price:
type: number
format: float
description: Price
timestamp:
type: number
format: double
description: Current timestamp
example: 1675708481219
total_value:
type: number
format: float
description: Total value
date:
type: string
description: Trade date
side:
type: string
description: Order side (buy or sell)
type:
type: string
description: Order type (limit or market)
fee:
type: number
format: float
description: Exchange fee
fee_currency:
type: string
description: Code of the currency used to charge the fee
example: BTC
pair_code:
type: string
description: Currency pair code
example: BTC_BRL
taker_or_maker:
type: string
description: Provides or removes liquidity (maker or taker)
example: maker
maker_order_id:
type: string
description: Maker order id
format: string
taker_order_id:
type: string
description: Taker order id
format: string
required:
- amount
- id
- price
- timestamp
- total_value
- date
- side
- type
- fee
- fee_currency
- pair_code
- taker_or_maker
- maker_order_id
- taker_order_id
type: object
additionalProperties: false
EndDateNoMinParamV4:
type: string
default: '[Current date]'
format: date
description: Final date filter in ISO-8601 format
BalanceOnDateResponseDataV4:
properties:
currency_code:
type: string
description: Currency code
example: BTC
available_amount:
type: number
format: float
description: Available amount for trading or withdrawing
last_update:
type: string
description: Datetime of the last update
format: datetime
required:
- currency_code
- available_amount
- last_update
type: object
additionalProperties: false
BalanceOnDateResponseV4:
properties:
data:
items:
$ref: '#/components/schemas/BalanceOnDateResponseDataV4'
type: array
example:
- available_amount: 5.23423423
currency_code: BTC
last_update: '2020-10-20T18:39:45.198Z'
error_code:
type: number
enum:
- null
nullable: true
example: null
message:
type: string
nullable: true
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
BalanceResponseDataV4:
properties:
currency_code:
type: string
description: Currency code
example: BTC
available_amount:
type: number
format: float
description: Available amount for trading or withdrawing
last_update:
type: string
description: Datetime of the last update
format: datetime
locked_amount:
type: number
format: float
description: Amount in use
required:
- currency_code
- available_amount
- last_update
- locked_amount
type: object
additionalProperties: false
example:
- available_amount: 5.23423423
currency_code: BTC
last_update: '2020-10-20T18:39:45.198Z'
locked_amount: 0
UserStatementResponse:
properties:
data:
$ref: '#/components/schemas/UserStatementData'
error_code:
type: number
enum:
- null
nullable: true
example: null
message:
type: string
nullable: true
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
UserPairFeeResponse:
properties:
data:
items:
$ref: '#/components/schemas/UserPairFeeData'
type: array
example:
- side: buy
maker: 0.21
taker: 0.3
- side: sell
maker: 0.21
taker: 0.3
error_code:
type: number
enum:
- null
nullable: true
example: null
message:
type: string
nullable: true
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
PageSizeParamV4:
type: number
format: int32
default: 200
example: 100
description: Number of records per page
maximum: 1000
minimum: 1
UserStatementItem:
properties:
amount:
type: number
format: float
description: Transaction amount
after_balance:
type: number
format: float
description: Account balance after the operation
currency:
type: string
description: Currency code
example: BTC
date:
type: string
description: Timestamp of the operation
operation:
type: string
description: Description of the operation (e.g., "Buy", "Sell", "Tax over buy, ...")
required:
- amount
- after_balance
- currency
- date
- operation
type: object
additionalProperties: false
StartDateParamV4:
type: string
default: '[10 days ago]'
format: date
description: Initial date filter in ISO-8601 format (shouldn't be before 2017-10-01)
DateParamV4:
type: string
format: date
description: Date filter in ISO-8601 format
StartDateTimeParamV4:
type: string
default: '[6 months ago]'
example: '2020-01-01T00:00:00-03:00'
format: datetime
description: Start of datetime range (ISO-8601 format, default is 6 months ago, minimum is 2017-10-01)
UserPairFeeData:
properties:
taker:
type: number
format: double
maker:
type: number
format: double
side:
type: string
required:
- taker
- maker
- side
type: object
UserStatementData:
properties:
statement:
items:
$ref: '#/components/schemas/UserStatementItem'
type: array
example:
- amount: -4.76e-06
after_balance: 8605.31353851
currency: BTC
date: '2022-01-27T18:16:10.557Z'
operation: Tax over buy, executed
- amount: 0.00119048
after_balance: 8605.31354327
currency: BTC
date: '2022-01-27T18:16:10.557Z'
operation: Buy
pagination:
$ref: '#/components/schemas/PaginationV4'
required:
- statement
- pagination
type: object
additionalProperties: false
CurrentPageParamV4:
type: number
format: int32
default: 1
example: 3
description: Page number for pagination
BalanceResponseV4:
properties:
data:
items:
$ref: '#/components/schemas/BalanceResponseDataV4'
type: array
error_code:
type: number
enum:
- null
nullable: true
example: null
message:
type: string
nullable: true
example: null
required:
- data
- error_code
- message
type: object
additionalProperties: false
securitySchemes:
API Credentials:
type: apiToken
in: header
name: Authorization
description: "You can create API Credentials on: <https://trade.ripio.com/market/api/token>.\n\n After creating the **API Credentials**, you'll need to save in a safe place two pieces of information, an **API Token** and a **Secret Key**. The credentials are required respectively to **Authenticate** and **Sign** all Private REST Requests.\n\n **Attention**: The Secret Key can only be viewed once and cannot be retrieved later. **If you lose the Secret Key, delete the set of credentials and create a new one**. \n\n Each endpoint requires a type of access, which can be `Read`, `Buy/Sell`, `Cryptocurrency withdrawals`, or can contain all of these, each one for its own function. It is possible for the token to be `Read` only, or it may have several types, if it has any other type of access such as: `Buy/Sell` or `Cryptocurrency withdrawals`, it will also be `Read` by default.\n\n\n## Headers\n\n\nFor all private routes, these Headers are required:\n\n| Header | Description |\n|--------------|---------------|\n| **Authorization** | The API Token as a string. |\n| **Timestamp** | A timestamp in milliseconds. See the Timestamp Security section for more details. |\n| **Timestamp-tolerance** | An additional, non-required parameter, that you can send to specify the number of milliseconds after the timestamp for the request to be valid. See the Timestamp Security section for more details. |\n| **Signature** | See the Generating Signature section for more details. |\n\n## Timestamp Security\n\n Timestamp Security is a security method to guarantee the validation of the acceptable time window, in addition to guaranteeing the uniqueness of the request **Signature**.\n\n* **All Private Requests** also require a **Header** parameter, **Timestamp**, which must be the timestamp in milliseconds of when the request was created and sent. Can be generated with `Date.now()` if you're using JavaScript, for example.\n\n* An additional parameter, **Timestamp-tolerance**, non-required, may be sent to specify the max number of milliseconds after the timestamp, that the request is valid. If Timestamp-tolerance is not sent, it defaults to **5000 (5 seconds)**.\n\n* **It is recommended to use a small Timestamp-tolerance of 5000 (5 seconds) or less. The maximum value is 60,000 (60 seconds)**. \n\n## Generating Signature\n\nTo create a signature for all Private Requests, you must **encrypt** the hash-based message using **sha256 HMAC** and encode it in **Base64**. \n\n The **message** must contain:\n\n```\nTimestamp + HTTP Method + Path + JSON Payload\n```\n * Not including the **'+'** sign, just concatenate the content into a string.\n\n* The **Timestamp** is the same as the one sent in the Header.\n\n* For **GET** Requests, it is necessary to consider the **PATH** without **Query Params**. For example, this route: `/withdrawals/estimate-rate/ADA?network=cardano_testnet`. Just `/withdrawals/estimate-fee` is considered. Additionally, the **BODY** is considered an empty **String**.\n\n* **JSON Payload** must be a string and must be the same as the one sent in the request **Body**.\n\n**IMPORTANT:** To prevent an invalid signature, avoid using unnecessary decimal places in the request body properties. For instance, use `1` instead of `1.0`. Alternatively, you can also send numbers as strings in the request body, ensuring they are in the same format but as strings. For example:\n\n```json\n{\n 'amount': '0.01',\n 'pair': 'BTC_BRL',\n 'price': '300000', \n 'side': 'buy', \n 'type': 'limit'\n}\n\n```\n\n### Examples \n\nWe provide functional examples of how to authenticate with this API, written in various programming languages. You can find these examples in our GitHub repository: https://github.com/ripio/api."
scopes:
Read: Endpoints / token with read access.
Buy/Sell: Endpoints / token with Buy and Sell orders access.
Crypto Withdrawals: Endpoints / token with Crypto Withdrawals access.
Fiat Withdrawals: Endpoints / token with Fiat Withdrawals access.
x-websocket-api:
description: "# WebSocket API\n\nThe WebSocket API allows you to perform trading operations (create, cancel, and update orders) via WebSocket connection. This is separate from the WebSocket Stream service which provides real-time market data.\n\n## General API Information\n\n- **Base endpoint**: `wss://ws-api.ripio.com`\n- Connections remain active as long as there is activity; idle connections are disconnected after **60 seconds** of inactivity\n- The WebSocket server will automatically send ping frames to maintain connection health\n- If the WebSocket server does not receive a pong frame back from the connection within **60 seconds**, the connection will be disconnected\n- When you receive a ping, you must send a pong with a copy of ping's payload as soon as possible\n- Unsolicited pong frames are allowed, but will not prevent disconnection\n- Authentication is done using **API Token, Secret, and Timestamp** (same as REST API)\n- All timestamps are in **milliseconds** in UTC\n- All field names and values are **case-sensitive**\n- APIs have a timeout of **10 seconds** when processing a request\n\n## Authentication\n\nThe WebSocket API uses the same authentication mechanism as the REST API, including API Token, Secret, and Timestamp-based signature generation.\n\nFor complete authentication details, including signature generation, please refer to the **Authorization** section.\n\n### Key Points for WebSocket API:\n\n- Use the same **API Token** and **Secret** from your REST API credentials\n- Include `apiToken`, `timestamp`, and `signature` in the `params` object of each request\n- The signature is generated using: **Timestamp + JSON Body (business parameters only)**\n\n### Signature Generation for WebSocket API\n\nUnlike the REST API, the WebSocket signature is simpler because there's no HTTP method or path:\n\n**Message to sign:** `Timestamp + JSON Body`\n\n**Where:**\n- `Timestamp`: The same timestamp sent in the `params.timestamp` field (in milliseconds)\n- `JSON Body`: **ONLY the business parameters** (pair, side, type, amount, price, etc.). **DO NOT include** `apiToken`, `timestamp`, or `signature` in the body to sign.\n\n**Important:** Do NOT include `+` signs - just concatenate the values directly.\n\n### Signature Example\n\n**Request to send:**\n```json\n{\n \"id\": \"req-001\",\n \"method\": \"order.create\",\n \"params\": {\n \"pair\": \"BTC_BRL\",\n \"side\": \"buy\",\n \"type\": \"limit\",\n \"amount\": 0.001,\n \"price\": 100000,\n \"apiToken\": \"your-api-token\",\n \"timestamp\": 1634567890000,\n \"signature\": \"calculated-signature\"\n }\n}\n```\n\n**Body to sign (only business params):**\n```json\n{\n \"pair\": \"BTC_BRL\",\n \"side\": \"buy\",\n \"type\": \"limit\",\n \"amount\": 0.001,\n \"price\": 100000\n}\n```\n\n**Message to sign:**\n```\n1634567890000{\"pair\":\"BTC_BRL\",\"side\":\"buy\",\"type\":\"limit\",\"amount\":0.001,\"price\":100000}\n```\n\n**Then generate HMAC SHA256 signature:**\n```javascript\nconst crypto = require('crypto');\nconst message = timestamp.toString() + JSON.stringify(bodyParams);\nconst signature = crypto.createHmac('sha256', secretKey).update(message).digest('base64');\n```\n\n## Request Format\n\nAll WebSocket API requests must follow this format:\n\n```json\n{\n \"id\": \"unique-request-id\",\n \"method\": \"order.create\",\n \"params\": {\n ...body parameters...,\n \"apiToken\": \"your-api-token\",\n \"timestamp\": 1634567890000,\n \"signature\": \"calculated-signature\"\n }\n}\n```\n\n## Response Format\n\n### Success Response\n\n```json\n{\n \"id\": \"unique-request-id\",\n \"status\": 200,\n \"result\": {\n \"id\": \"7155ED34-9EC4-4733-8B32-1E4319CB662F\",\n \"create_date\": \"2024-03-27T13:27:19.853Z\",\n \"executed_amount\": 0,\n \"external_id\": \"BEAB10B1-45B0-4999-9B2F-D2ED048D6C42\",\n \"pair\": \"BTC_BRL\",\n \"remaining_amount\": 10,\n \"remaining_value\": 1000,\n \"requested_amount\": 10,\n \"requested_value\": 1000,\n \"side\": \"buy\",\n \"status\": \"open\"\n }\n}\n```\n\n### Error Response\n\n```json\n{\n \"id\": \"unique-request-id\",\n \"status\": 400,\n \"result\": null,\n \"error\": {\n \"error_code\": 40011,\n \"message\": \"Insufficient funds.\"\n }\n}\n```"
methods:
order.create:
summary: Create Order via WebSocket
description: Creates a new trading order via WebSocket API. Supports all order types available in the REST API including limit, market, stop-limit, trailing, ceiling, and iceberg orders.
requestSchema:
$ref: '#/components/schemas/WebSocketCreateRequest'
responseSchema:
$ref: '#/components/schemas/WebSocketResponse'
errorSchema:
$ref: '#/components/schemas/WebSocketErrorResponse'
examples:
limitBuyOrder:
summary: Create Limit Buy Order
value:
id: req-001
method: order.create
params:
apiToken: your-api-token
timestamp: 1634567890000
signature: calculated-signature
pair: BTC_BRL
side: buy
type: limit
amount: 0.001
price: 100000
external_id: my-order-123
marketSellOrder:
summary: Create Market Sell Order
value:
id: req-002
method: order.create
params:
apiToken: your-api-token
timestamp: 1634567890000
signature: calculated-signature
pair: ETH_BRL
side: sell
type: market
amount: 0.1
value: 1000
successResponse:
id: req-001
status: 200
result:
id: 7155ED34-9EC4-4733-8B32-1E4319CB662F
status: open
create_date: '2024-03-27T13:27:19.853Z'
external_id: my-order-123
pair: BTC_BRL
side: buy
executed_amount: 0
remaining_amount: 0.001
remaining_value: 100
requested_amount: 0.001
requested_value: 100
order.cancel:
summary: Cancel Order via WebSocket
description: Cancels an active trading order via WebSocket API. You can cancel by order ID or external ID.
requestSchema:
type: object
properties:
id:
type: string
description: Unique request identifier for correlation
method:
type: string
enum:
- o
# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ripio/refs/heads/main/openapi/ripio-user-api-openapi.yml