ドラランプ・デジタルドル
dolaramp
blog
pt
← todos os posts

api completa para dólar digital.

// resumo uma API de dólar digital é completa quando cobre a vida inteira de um pagamento, e não só "gerar endereço". são seis tarefas: dar um endereço a cada cliente, avisar quando o dinheiro chegou, juntar os saldos, pagar, mover entre redes e fechar a contabilidade. a API da dolaramp faz as seis com uma chave, em Solana, TRON, gram(TON), Base e Arbitrum, com USDT, USDC e PYUSD. você nunca compra SOL, TRX, TON ou ETH: a taxa sai da própria stablecoin, a partir de US$ 0,10 por operação no plano free. receber é grátis. este texto passa por cada tarefa com as chamadas reais, quanto custa e o que a API não faz.

o que "completa" quer dizer

quase todo time começa com uma necessidade só, em geral "mostrar um endereço de depósito no checkout". um mês depois está cuidando de um nó, um indexador, uma carteira de gás por rede e uma planilha para conciliar tudo. estas são as tarefas que aparecem cedo ou tarde:

tarefaa pergunta que ela respondechamada
endereçosonde este cliente paga?POST /hotwallets/{rede}/children
detecçãoo dinheiro chegou, e é definitivo?webhook deposit.confirmed · GET /deposits
consolidaçãocomo junto 500 saldos pequenos?POST /sweep
pagamentocomo pago um fornecedor ou um lojista?POST /hotwallet/withdraw
troca de redemeu USDC está na Solana e preciso dele na BasePOST /bridge
contabilidadeo que movimentou no mês, e quanto custou?GET /ledger · GET /statement

em volta delas ficam as chamadas pequenas que evitam chamado no suporte: POST /address/validate e POST /address/detect antes de pagar, GET /balance/{rede}/{endereço}/{token} para o saldo na hora e GET /quote para a taxa exata antes de mover qualquer coisa.

do cadastro ao primeiro endereço

crie a conta no painel com Google, GitHub ou código por e-mail. a primeira chave (dr_live_...) sai ali, no plano free, e vai no cabeçalho X-Api-Key de toda chamada. a URL base é https://api.dolaramp.com/v1.

1. crie uma hotwallet, uma por rede:

curl https://api.dolaramp.com/v1/hotwallets \
  -H "X-Api-Key: dr_live_..." \
  -H "Content-Type: application/json" \
  -d '{"network":"base","label":"acme main"}'

a resposta traz um wallet_secret (ws_...) uma única vez. ele cifra a chave da hotwallet e de todos os filhos; nós guardamos só o texto cifrado. sem ele, nem a dolaramp consegue mover os fundos, então guarde fora do servidor da aplicação. em Base e Arbitrum a hotwallet é um endereço só, válido nas duas redes.

2. gere um endereço de depósito e marque com o seu identificador:

curl https://api.dolaramp.com/v1/hotwallets/base/children \
  -H "X-Api-Key: dr_live_..." \
  -H "Content-Type: application/json" \
  -d '{"wallet_secret":"ws_...","count":1,"external_refs":["order-10432"]}'

até 100 filhos por chamada. o external_ref é seu: número do pedido, id do usuário, lojista:cobrança. ele volta em todo depósito, e você credita o cliente certo sem consulta extra.

a caminho não é confirmado

esta é a parte que custa dinheiro quando sai errada. um depósito tem dois momentos:

  • a caminho (arriving): a transferência foi vista na rede. quer dizer "existe uma transação", não "não tem volta". webhook deposit.detected.
  • confirmado (confirmed): a regra da própria rede foi cumprida. webhook deposit.confirmed. libere o pedido aqui, nunca antes.
redeo que "confirmado" espera
tronsolidificação
solanafinalized
base · arbitrumsafe head
gram (ton)definitivo na inclusão

um depósito que não liquida dentro do prazo dispara deposit.abandoned: trate como não recebido.

webhook só em HTTPS, com até 8 tentativas em intervalo crescente (30 segundos, depois dobrando) e assinatura HMAC-SHA256. o segredo aparece uma vez, quando você registra o endpoint em POST /webhooks. a assinatura chega no cabeçalho X-DolaRamp-Signature, como o HMAC em hexadecimal do corpo bruto. confira antes de acreditar no conteúdo:

import { createHmac, timingSafeEqual } from 'node:crypto';

function isFromDolaramp(rawBody, header, secret) {
  const expected = createHmac('sha256', secret).update(rawBody).digest('hex');
  const a = Buffer.from(expected);
  const b = Buffer.from(header ?? '');
  return a.length === b.length && timingSafeEqual(a, b);
}

calcule sobre os bytes que chegaram, não sobre um JSON remontado. se a sua fila caiu, GET /webhooks/deliveries mostra o que foi enviado e GET /deposits entrega os mesmos fatos por consulta.

varredura e saque, sem tanque de gás

a dor clássica de endereço de depósito: para tirar 20 USDT de um filho, o filho precisa da moeda da rede. multiplique por alguns milhares de endereços e você tem uma operação de gás para cuidar. aqui o gás é patrocinado e a taxa sai de dentro da transferência, em stablecoin.

POST /sweep junta os filhos na hotwallet em lote: por padrão os 20 mais recentes, ou até 20 que você indicar em child_addresses. em Solana, gram(TON), Base e Arbitrum ele responde confirmed com o tx_hash. na TRON responde accepted em 1 a 2 segundos e a confirmação vem por webhook (sweep.confirmed).

um pagamento é uma chamada:

curl https://api.dolaramp.com/v1/hotwallet/withdraw \
  -H "X-Api-Key: dr_live_..." \
  -H "Content-Type: application/json" \
  -d '{"network":"base","token":"USDC","to":"0x...","amount":"10000000",
       "wallet_secret":"ws_...","idempotency_key":"payout-inv-10432"}'

amount vai em microunidades (6 casas), então 10000000 são 10 USDC, e quem recebe fica com o valor menos a taxa. três comportamentos para conhecer antes de produção:

  • idempotência. repita com a mesma idempotency_key e volta a operação original, com replayed: true. timeout seguido de nova tentativa nunca paga duas vezes.
  • sem pagamento parcial escondido. saque maior que o saldo é recusado com 400 insufficient_balance. na TRON dá para mandar allow_partial: true e enviar o que couber.
  • 202 pendente. se a transferência foi entregue à rede mas a chegada não foi vista a tempo, a chamada responde 202 com status: pending. o resultado vem como withdraw.confirmed ou withdraw.failed, em geral dentro de um minuto.

mover usdc entre redes

POST /bridge move USDC entre Solana, Base e Arbitrum pelo CCTP da Circle: queimado na origem, emitido pela Circle no destino, um para um. é troca de rede, não é câmbio: sem pool, sem slippage. o caminho rápido leva de 8 a 20 segundos. o teto é de US$ 10.000.000 por operação e o valor mínimo é US$ 10.

GET /bridge/quote detalha a operação antes de executar: a nossa taxa, a taxa da Circle (repassada sem acréscimo) e quanto chega no destino. a história completa, com tempos medidos, está em mover USDC da Solana para a Base.

quanto custa

o plano free não tem mensalidade, e receber é grátis em todos os planos. você paga por varredura ou saque, em stablecoin, dentro da operação:

rede · tokenfreeproo que tem dentro
tron · USDTUS$ 1,60US$ 1,551,50 de taxa da rede + nossos 0,10 / 0,05
base · USDCUS$ 0,10US$ 0,05só a nossa taxa, o gás é por nossa conta
arbitrum · USDC, USD₮0US$ 0,10US$ 0,05só a nossa taxa, o gás é por nossa conta
solana · USDT, USDC, PYUSD~US$ 0,10~US$ 0,05custo da rede + 10% + nossos 0,10 / 0,05
gram (ton) · USDT~US$ 0,18~US$ 0,13custo da rede + 10% + nossos 0,10 / 0,05

o plano free acompanha 1.000 endereços e o pro, 50.000. a ponte custa US$ 2 + 0,3% no free e US$ 2 + 0,2% no pro.

dois custos que pegam de surpresa: a primeira saída de um endereço novo na Solana também paga as contas de token (~US$ 0,65 no free), e um endereço inativo na TRON paga uma ativação única de 1,50 USDT. se os seus clientes pagam pela TRON, prefira um endereço fixo por cliente a um endereço descartável por pedido. de onde vem esse 1,50 está em enviar USDT sem TRX.

valores de pricing a preços de 25/09/2026. Solana e gram(TON) seguem o preço de SOL e TON. GET /v1/quote devolve a taxa exata do seu plano.

o que a api não faz

melhor saber antes de desenhar o sistema em cima dela:

  • não mexe com real. a dolaramp não converte moeda, não guarda saldo em banco e não faz PIX. a ponta em reais passa por uma exchange ou PSP autorizado. GET /rates/BRL dá uma referência de mercado do USDT em real; não é cotação executável, então aplique o seu spread. o desenho completo para o Brasil está no guia do gateway de USDT.
  • não troca um token por outro. USDT não vira USDC aqui. a ponte move o mesmo ativo, USDC, entre redes.
  • não tem ponte para TRON nem gram(TON). a ponte cobre só Solana, Base e Arbitrum.
  • uma hotwallet por rede, e 20 filhos por chamada de varredura. para milhares de filhos, faça em laço.
  • limite de uso: 120 requisições por minuto por chave.
  • não tem rede de teste. a API roda nas redes reais. um jeito barato de ensaiar é usar poucos dólares de USDC na Base, onde a operação custa US$ 0,10.

chaves e segurança

cada chave de API tem um escopo: read (listar, cotar, consultar) ou operate (tudo, inclusive varredura, saque e ponte). uma escrita com chave read responde 403 insufficient_scope, então painéis e relatórios podem rodar com uma chave que não move dinheiro. a chave também pode ser presa a IPs específicos.

o modelo de custódia é o ponto central: as chaves da hotwallet ficam num envelope que só abre com o seu wallet_secret, e toda chamada que move fundos precisa levar esse segredo. mais em security.

os sete perfis de integração (loja, gateway, exchange, só entrada, só saída, pagamentos em massa, cartão cripto) estão desenhados chamada por chamada nos fluxos de integração, e cada endpoint está na referência da API.

perguntas frequentes

O que é uma API de dólar digital?

É uma API REST que deixa o seu sistema receber, guardar e pagar stablecoins de dólar, como USDT e USDC, sem você rodar nó nem indexador. Uma API completa cobre endereço de depósito, detecção, consolidação, pagamento e conciliação.

Preciso comprar TRX, SOL, TON ou ETH para usar a API?

Não. O gás é patrocinado e a taxa sai de dentro da operação, na própria stablecoin. Na TRON, a taxa da rede de 1,50 USDT também é paga em USDT.

Quanto custa a API da dolaramp?

Receber é grátis e o plano free não tem mensalidade. Uma varredura ou saque custa US$ 0,10 em Base e Arbitrum e US$ 1,60 na TRON no plano free; US$ 0,05 e US$ 1,55 no pro.

A API converte dólar digital em real ou faz PIX?

Não. Ela cuida só da ponta em stablecoin. A conversão para real e o PIX passam por uma exchange ou PSP autorizado.

fontes: referência da API dolaramp (OpenAPI 1.1) · fluxos de integração · pricing (25/09/2026) · developers · documentação do CCTP da Circle · conferido em 28/09/2026.