Partner API - BrSwap

Partner API

Overview

Integre swaps de DePiX/USDT Liquid para dezenas de tokens em 20+ blockchains no seu app com uma API REST simples e segura.

The BrSwap Partner API allows you to create crypto swap orders programmatically. Your users deposit DePiX or USDT on the Liquid Network and receive tokens on their destination chain.

Base URL

https://brswap.me/api/v1/

Highlights

  • Simple REST API with JSON responses
  • Dezenas de tokens em 20+ blockchains
  • Autenticação por API Key + Secret, com IP whitelist opcional
  • Fast path (Polygon USDT): ~15 segundos

Supported Pairs

BrSwap accepts DePiX or USDT Liquid as input and converts to tokens on the following chains:

Source Assets (Input)

Asset Network Fee
depixLiquid Network2%
usdt_liquidLiquid Network1%

Destination Chains & Tokens

Chain Code Tokens (principais)
PolygonpolUSDT (direct), USDC
EthereumethETH, USDT, USDC, WBTC
BasebaseETH, USDC
ArbitrumarbETH, USDT, USDC
OptimismopETH, USDC
BSCbscBNB, USDT, USDC
AvalancheavaxAVAX, USDT, USDC
SolanasolSOL, USDT, USDC
TrontronTRX, USDT
NEAR ProtocolnearNEAR, USDC
TONtonTON, USDT
BitcoinbtcBTC
LitecoinltcLTC
DogecoindogeDOGE
XRP (Ripple)xrpXRP
StellarstellarXLM, USDC
+ outras chains disponíveis — use o endpoint /tokens para a lista completa e atualizada

Note

Use the /tokens endpoint to get the full list of asset_id values needed for quotes and orders. The fastest route is direct:pol:usdt (Polygon USDT) with ~15 second delivery.

Authentication

Requests are authenticated with credentials sent via headers. New partner accounts require two headers: X-API-Key and X-API-Secret.

curl -H "X-API-Key: your_api_key_here" \ -H "X-API-Secret: your_api_secret_here" \ https://brswap.me/api/v1/tokens.php

O API Secret pode ser gerado/regerado a qualquer momento no Painel de Parceiro (ao gerar um novo, o anterior deixa de funcionar). Contas legadas (criadas antes desta mudança) seguem autenticando só com a API Key.

Ativando sua API

Para a API liberar, sua conta de parceiro precisa estar (1) vinculada à sua conta BrSwap e (2) com a wallet de recebimento (Liquid) configurada no painel. Enquanto faltar a wallet, as chamadas retornam 403. Configure tudo em segundos no Painel de Parceiro.

Cada conta de API inclui:

  • Rate limit configurável por minuto
  • Valor máximo por ordem (USD)
  • IP whitelist opcional (segurança extra)
  • Sua própria taxa de parceiro (comissão por swap)

Integration Flow

The typical integration follows 4 steps:

Step 1 List Tokens
Step 2 Get Quote
Step 3 Create Order
Step 4 Poll Status

After creating an order, the user deposits to the provided Liquid address. BrSwap detects the deposit automatically and sends the output token to the recipient address.

GET /api/v1/tokens.php

Returns all available destination tokens and supported source assets.

Response

{ "success": true, "tokens": [ { "asset_id": "direct:pol:usdt", "symbol": "USDT", "chain": "pol", "chain_name": "Polygon", "decimals": 6 } ], "total": 20, "source_assets": [ { "id": "depix", "name": "DePiX", "network": "Liquid" }, { "id": "usdt_liquid", "name": "USDT Liquid", "network": "Liquid" } ] }

GET /api/v1/quote.php

Get a real-time quote for a swap. Quotes are valid for ~30 seconds.

Parameters

Param Type Description
amount requiredfloatAmount in source asset (e.g. 100 DePiX)
source_assetstringdepix or usdt_liquid. Default: depix
destination_asset requiredstringToken asset_id from /tokens
destination_chain requiredstringChain code (e.g. pol, eth, sol)

Example

curl -H "X-API-Key: YOUR_KEY" \ -H "X-API-Secret: YOUR_SECRET" \ "https://brswap.me/api/v1/quote.php?amount=100&source_asset=depix&destination_asset=direct:pol:usdt&destination_chain=pol"

Response

{ "success": true, "quote": { "input_amount": 100, "source_asset": "depix", "output_amount": 18.94, "destination_asset": "direct:pol:usdt", "destination_symbol": "USDT", "destination_chain": "pol", "exchange_rate_brl_usd": 5.2935, "fee_percent": 3, // total = BrSwap + parceiro "brswap_fee_percent": 2, "partner_fee_percent": 1, // sua comissão "fee_amount": 1.96, "net_amount_usd": 18.94, "estimated_time_seconds": 15, "expires_in_seconds": 30 // quote valid for 30s } }

Comissão de parceiro

Você define sua própria taxa no Painel de Parceiro. Ela é somada em cima da taxa da BrSwap (fee_percent = brswap_fee_percent + partner_fee_percent) e o valor acumula como seu ganho, sacável em DePiX na rede Liquid.

POST /api/v1/order.php

Create a new swap order. Returns a Liquid deposit address. The order expires in 30 minutes.

Body (JSON)

Field Type Description
amount requiredfloatAmount in source asset
source_assetstringdepix or usdt_liquid. Default: depix
recipient_address requiredstringDestination wallet address
destination_chain requiredstringChain code
destination_asset requiredstringToken asset_id from /tokens
destination_symbol optionalstringToken symbol (auto-resolved)
refund_address optionalstringLiquid address for refund if the swap fails. Formats: lq1..., VJL..., Q...
ref_id optionalstringYour internal reference ID

Example

curl -X POST \ -H "X-API-Key: YOUR_KEY" \ -H "X-API-Secret: YOUR_SECRET" \ -H "Content-Type: application/json" \ -d '{ "amount": 100, "source_asset": "depix", "recipient_address": "0xYourWallet...", "destination_chain": "pol", "destination_asset": "direct:pol:usdt", "refund_address": "lq1qq..." }' \ https://brswap.me/api/v1/order.php

Response 201 Created

{ "success": true, "order": { "id": "B5B455D99F0E", "status": "waiting_deposit", "deposit_address": "lq1qq...", // Envie DePiX/USDT aqui "deposit_amount": 100, "source_asset": "depix", "output_amount": 18.94, "destination_chain": "pol", "destination_symbol": "USDT", "recipient_address": "0xYourWallet...", "exchange_rate": 5.2935, "fee_percent": 3, "brswap_fee_percent": 2, "partner_fee_percent": 1, "expires_in_seconds": 1800 } }

Idempotência (opcional)

Para evitar ordens duplicadas em caso de retry/timeout, envie o header Idempotency-Key (até 128 caracteres). Reenvios com a mesma chave retornam a mesma ordem em vez de criar outra (com idempotent_replay: true na resposta).

curl -X POST \ -H "X-API-Key: YOUR_KEY" \ -H "X-API-Secret: YOUR_SECRET" \ -H "Idempotency-Key: pedido-12345" \ -H "Content-Type: application/json" \ -d '{ "amount": 100, "recipient_address": "0x...", "destination_chain": "pol", "destination_asset": "direct:pol:usdt" }' \ https://brswap.me/api/v1/order.php

GET /api/v1/order.php?id={order_id}

Check the status of an existing order. Poll this endpoint to track progress.

Example

curl -H "X-API-Key: YOUR_KEY" \ -H "X-API-Secret: YOUR_SECRET" \ "https://brswap.me/api/v1/order.php?id=B5B455D99F0E"

Order Status Values

Status Description
waiting_depositAguardando depósito no endereço Liquid
partial_depositDepósito parcial recebido, aguardando o restante
processingDepósito confirmado, swap em andamento
pending_reviewOrdem em revisão manual pela equipe BrSwap
completedSwap concluído, token enviado ao destinatário
expiredOrdem expirada (sem depósito em 30 min)
cancelledOrdem cancelada
failedSwap falhou — contate o suporte
refundReembolso em andamento — será enviado ao refund_address na rede Liquid. Acompanhe o campo refund_txid.
refundedReembolso concluído — verifique o campo refund_txid para o TX.

Response

{ "success": true, "order": { "id": "B5B455D99F0E", "status": "completed", "deposit_address": "lq1qq...", "deposit_amount": 100, "source_asset": "depix", "output_amount": 18.94, "destination_chain": "pol", "destination_symbol": "USDT", "recipient_address": "0xYourWallet...", "exchange_rate": 5.2935, "fee_percent": 3, "liquid_txid": "abc123...", // TX do depósito "output_txid": "def456...", // TX do envio ao destinatário "refund_address": "lq1qq...", // Endereço de reembolso (se informado) "refund_txid": null, // TX Liquid do reembolso (quando status=refund/refunded) "expires_in_seconds": 0, "created_at": "2026-03-08 20:40:08", "updated_at": "2026-03-08 20:45:12" } }

Error Codes

Code Meaning
400Invalid request (missing or invalid parameters)
401API Key ou API Secret inválido/ausente
403API desativada, IP fora da whitelist, limite excedido, ou conta não habilitada (configure a wallet de recebimento no painel)
404Order not found
405Method not allowed (e.g. GET em endpoint que exige POST)
429Rate limit exceeded
500Internal error (retry)
503Service unavailable (maintenance or insufficient liquidity)

Error Response Format

{ "success": false, "error": "Description of the error", "code": 400 }

Rate Limits

Rate limits are per API key. Current limits are returned in response headers:

X-RateLimit-Limit: 60 X-RateLimit-Remaining: 58

When rate limited, the API returns 429 with a Retry-After: 60 header.

Need higher limits?

Contact us at [email protected] to request a custom plan.

Widget Pronto (PHP)

Não quer programar? No seu Painel de Parceiro você baixa um arquivo brswap-widget.php com sua chave já embutida.

1 Baixe o .php
2 Suba no seu site
3 Pronto

Por que PHP e não iframe?

  • Sua API key e secret ficam no seu servidor, nunca expostas ao navegador
  • Tela de swap completa: cotação, criação de ordem e status
  • Tema dark, responsivo, sem dependências
  • Sua comissão de parceiro é aplicada automaticamente em cada swap

Requer apenas um servidor com PHP e a extensão cURL (padrão na maioria das hospedagens).