Pular para o conteúdo

Checkout

  1. Seu backend gera um payload TRP com os dados do pagamento (em USDT)
  2. O payload é enviado para o frontend como link universal
  3. O comprador escaneia o QR code ou clica no link
  4. A página de checkout detecta a plataforma:
    • Telegram User-Agent → redireciona para o bot
    • Cookie de preferência → redireciona conforme salvo
    • Sem preferência → exibe página com botões (Telegram / Web)
  5. O comprador confirma o valor e assina a transferência USDT via TonConnect
  6. O merchant recebe USDT na wallet informada no payload
  7. Seu sistema consulta o status via API
Terminal window
curl -X POST https://api.tonramp.io/v1/wallet/trp/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer tonr_SUA_API_KEY" \
-d '{
"wallet": "UQBJ6gU8gh_jRrzYDlfw9cpCwHaSn2mrK4O-1h8CDENehGYJ",
"merchant": "store123",
"amount": "100.00",
"currency": "USDT",
"tx_id": "tx123456"
}'
import { generateTrpPayload } from '@/utils/trp'
const payload = generateTrpPayload(
'UQBJ6gU8gh_jRrzYDlfw9cpCwHaSn2mrK4O-1h8CDENehGYJ',
'store123',
'100.00',
'USDT',
'tx123456'
)
const checkoutUrl = `https://trp.tonramp.io/trp/${payload}`

A página de checkout em trp.tonramp.io/trp/\{payload\} exibe:

  • Seu logo, quando cadastrado, ou o logo TonRamp
  • Nome do estabelecimento
  • Valor formatado em USDT
  • QR code com o link universal
  • Botão “Pagar via Telegram”
  • Botão “Pagar via Navegador”
  • Status do pagamento (polling a cada 5 segundos)

No console, em Checkout, você define a marca que aparece na página de pagamento das suas cobranças:

  • Logo: PNG, JPEG ou WebP, até 96 KB. Fundo transparente funciona melhor, porque a página tem tema claro e escuro.
  • Cor da marca: usada no valor e no botão de pagar. A cor do texto sobre ela é escolhida automaticamente por contraste, então uma marca clara não gera botão ilegível.

Apenas o owner do parceiro altera a marca.

O que não muda: a assinatura “Powered by TonRamp” continua no rodapé, e o pagamento em si acontece no app do TonRamp, aberto pelos botões da página. A marca cobre a página de entrada, não o fluxo inteiro.

Domínio próprio (CNAME para hosted.tonramp.io), o que a marca não cobre e o passo a passo de DNS estão em White label.

Após o comprador acessar o link, você pode consultar o status:

Terminal window
curl "https://api.tonramp.io/v1/trp/status/{tx_id}?token={token}"

Resposta:

{
"status": "pending",
"amount": "10000",
"currency": "USDT",
"updated_at": "2025-03-05T12:00:00Z"
}

Status possíveis: pending (aguardando pagamento), error (falha no processamento), paid (pagamento recebido, processando a entrega), completed (USDT entregue, concluída), expired (expirou sem pagamento).

Antes de confirmar o pagamento, o mini app consulta a quote para obter valor final (com fee) e saldo:

Terminal window
curl -H "Authorization: Bearer {token}" \
https://api.tonramp.io/v1/trp/quote/{payload}

Resposta:

{
"merchant": "store123",
"wallet_dest": "UQBJ6gU8gh_...",
"amount_usdt": 100.00,
"fee_usdt": 1.0,
"total_required_usdt": 101.00,
"user_balance_usdt": 120.0,
"has_sufficient_balance": true,
"tx_id": "tx123456",
"quote_id": "abc123",
"quote_ttl_seconds": 120
}

Cada pagamento TRP cobra:

  • Taxa fixa: máx(1 USDT, 1% do valor cobrado)
  • Gas TON: pequeno custo on-chain de alguns milicentavos de TON, pago pelo comprador na wallet dele

Exemplo para cobrança de 100 USDT:

  • Valor para o merchant: 100,00 USDT
  • Taxa TonRamp: 1,00 USDT
  • Total debitado do comprador: 101,00 USDT

Quando o comprador clica em “Pagar via Telegram” ou “Pagar via Navegador”:

  1. O mini app lê o start_param do Telegram WebApp (ou ?startapp= da URL)
  2. Se o parâmetro começa com trp01, redireciona para a tela de confirmação
  3. A tela consulta GET /v1/trp/quote/{payload} para obter valor, fee, total e saldo
  4. Exibe: merchant, valor USDT, taxa, total, saldo do comprador
  5. Se saldo insuficiente: botão “Carregar com PIX” (fluxo de top-up em evolução)
  6. Se saldo suficiente: botão “Confirmar pagamento” gera a transação TonConnect
  7. O comprador assina a transferência na wallet dele
  8. USDT é transferido: valor para o merchant + taxa para a hot wallet TonRamp, de forma atômica em uma única assinatura