Build automated payment flows
Developers can request quotes, create buy and sell orders, receive PIX/card payment status, deliver crypto and automate webhooks.
GET /rates
POST /quote
POST /buy
POST /sell
GET /order/{id}
POST /webhooks/test
PIX to USDT wallet
To generate a real PIX QR Code, create a buy order with BRL amount, USDT asset, destination BSC wallet and optional customer audit fields. Each request creates a unique buy order and returns the PIX payload, QR Code, status URL and access token.
POST /buy
Copy
POST /buy
Authorization: Bearer sk_live_xxx
Content-Type: application/json
{
"fiat": "BRL",
"asset": "USDT",
"amount": 500,
"wallet": "0x174208255ECc40481f7fD7c34EE6a9A5B66B4339",
"paymentMethod": "pix",
"customer": {
"name": "Maria Silva",
"email": "maria@example.com",
"cpf": "12345678909",
"phone": "11999999999",
"birthDate": "1990-05-20",
"address": {
"line1": "Av Paulista",
"number": "1000",
"line2": "Apto 101",
"district": "Bela Vista",
"city": "Sao Paulo",
"state": "SP",
"postalCode": "01310100",
"country": "BR"
}
}
}
Response 201
{
"id": "buy_order_id",
"buyId": "buy_order_id",
"accessToken": "customer_access_token",
"status": "aguardando_pix",
"fiatCurrency": "BRL",
"paymentMethod": "pix",
"totalFiat": 510.30,
"cryptoAmount": 96.52,
"asset": "USDT",
"network": "BSC",
"destAddress": "0x174208255ECc40481f7fD7c34EE6a9A5B66B4339",
"qrCodeUrl": "https://...",
"payment": {
"provider": "pagseguro",
"pixKey": "...",
"qrCodeUrl": "https://..."
},
"statusUrl": "/api/buy/buy_order_id?accessToken=customer_access_token"
}
Consolidated with the backend path: /buy accepts customer name, email, CPF, phone, birth date and address, forwards those fields to the PIX provider when creating the charge, stores audit hashes locally, and returns the PIX QR payload. Available buy assets and networks come from /api/buy/pairs.
Crypto to PIX BRL
For sell flows, the customer sends USDT on BSC/Polygon, BTC on native Bitcoin, or ETH on Ethereum/BSC to the deposit wallet and receives BRL via PIX after confirmation.
POST /sell
Copy
POST /sell
Authorization: Bearer sk_live_xxx
{
"asset": "USDT",
"network": "POLYGON",
"amount": 500,
"depositAddress": "0x174208255ECc40481f7fD7c34EE6a9A5B66B4339",
"pixCpf": "12345678909",
"pixPhone": "11999999999"
}
Webhooks
Use webhooks to automate fulfillment when a payment is completed or crypto is sent.
payment.completed
Copy
{
"event": "payment.completed",
"orderId": "ord_123",
"status": "paid",
"asset": "USDT",
"amount": "96.52",
"timestamp": "2026-07-04T00:00:00Z"
}
payment.created
payment.completed
payment.failed
order.confirmed
crypto.sent
crypto.confirmed
order.failed
Pricing
API access Included for approved merchants
Transaction fee 2% + network/payment rail costs
Sandbox Free test keys and simulated PIX
Start free. Pay only when an order is completed.
Production access starts with no activation fee. ChainFX earns from successful transactions through a fixed fee, percentage fee and FX spread.
Sandbox
Free
Build and test your integration with fake PIX, fake QR Codes and test API keys.
pk_test / sk_test keys
Simulated PIX payments
Webhook test events
No production settlement
Start Sandbox
Live Starter
Free activation
Designed for developers launching real PIX to USDT flows without upfront cost.
4.5%-7.5% + R$ 1,99
Charged only on completed orders
Initial limit: R$ 2.000/day
USDT delivery on BSC
Minimum fee R$ 4,99
FX spread included in quote
Start Live
Growth
R$ 299/mo
Lower fees for teams with steady payment volume and operational needs.
1.8% + R$ 0,99
Higher transaction limits
Webhook retry and logs
Priority support
Volume review available
Select Growth
How ChainFX charges
Fees are deducted inside the payment flow before crypto delivery. The developer does not need to pay invoices after each transaction.
{
"fiatAmount": 500,
"feeRate": "4.5%-7.5%",
"networkFee": 1.99,
"minFee": 4.99,
"feeAmount": 29.49,
"totalFiat": 529.49,
"rate": 5.53,
"cryptoAmount": 90.42
}
Enterprise
Custom limits, negotiated fees, SLA and dedicated operational support for high-volume partners.