Introduction
The Quotes API provides real-time pricing for currency conversions. Bipa’s smart order router queries multiple exchange order books simultaneously to find the best available price.Flexible input
Specify amount in source or target currency, net or gross
Transparent fees
Clear breakdown of total, partner, and Bipa fees
Best execution
Smart routing across multiple exchanges
Partner revenue
Set your own fee and earn on every conversion
How it works
Supported pairs
| From | To | Use case |
|---|---|---|
BRL | USDT | Buy stablecoins with Brazilian Real |
USDT | BRL | Sell stablecoins for Brazilian Real |
BRL | BTC | Buy Bitcoin with Brazilian Real |
BTC | BRL | Sell Bitcoin for Brazilian Real |
USDT | BTC | Convert stablecoins to Bitcoin |
BTC | USDT | Convert Bitcoin to stablecoins |
All BRL pairs settle instantly. Crypto-to-crypto pairs execute on-chain or via Lightning depending on amount.
The quote object
Attributes
| Attribute | Type | Description |
|---|---|---|
id | string | Unique quote identifier |
customer_id | string | Customer requesting the quote |
from_asset | string | Source asset (BRL, USDT, BTC) |
to_asset | string | Target asset (BRL, USDT, BTC) |
from_amount | string | Amount debited from customer (smallest unit) |
to_amount | string | Amount credited to customer (smallest unit) |
from_decimals | integer | Decimal places for source asset |
to_decimals | integer | Decimal places for target asset |
price | string | Exchange price (1 unit of to_asset in from_asset smallest unit) |
price_decimals | integer | Decimal places for price display |
fees | object | Fee breakdown |
fees.total | string | Total fee in from_asset smallest unit |
fees.total_bps | integer | Total fee in basis points |
fees.partner | string | Partner’s fee portion in from_asset smallest unit |
fees.partner_bps | integer | Partner fee in basis points |
fees.bipa | string | Bipa’s fee portion in from_asset smallest unit |
fees.bipa_bps | integer | Bipa fee in basis points |
status | string | Quote status |
expires_at | string | ISO 8601 expiration timestamp |
created_at | string | ISO 8601 creation timestamp |
Amount encoding
All amounts use integer strings in the smallest unit:| Asset | Decimals | Example |
|---|---|---|
| BRL | 2 | "100000" = R$ 1,000.00 |
| USDT | 6 | "100000000" = 100 USDT |
| BTC | 8 | "1000000" = 0.01 BTC |
Net vs Gross amounts
When requesting a quote, specify whether your amount is net or gross:| Type | Description | Use case |
|---|---|---|
net | Amount the customer receives after fees | ”I want exactly 0.001 BTC” |
gross | Amount the customer pays before fees | ”I want to spend exactly R$ 1,000” |
Partner fees
Partners can set their own fee on each quote usingpartner_fee_bps. This fee is:
- Added to the total cost for the customer
- Split between the partner and Bipa (you keep your portion)
- Shown transparently in the
feesobject
Quote lifecycle
| State | Duration | Description |
|---|---|---|
pending | 30 seconds | Quote can be executed |
expired | After 30s | Must request a new quote |
executed | - | Quote has been used for a trade |
Endpoints
Create Quote
Get a real-time quote for a conversion
Execute Quote
Execute a quote to complete the trade
Limits
| Pair | Minimum | Maximum |
|---|---|---|
| BRL → USDT | R$ 10.00 | R$ 1,000,000.00 |
| USDT → BRL | 2 USDT | 200,000 USDT |
| BRL → BTC | R$ 10.00 | R$ 1,000,000.00 |
| BTC → BRL | 0.0001 BTC | 10 BTC |
| BTC ↔ USDT | 0.0001 BTC | 10 BTC |
