Pular para o conteúdo principal

Perguntas frequentes

Integração & API​

O que preciso para começar?​

Você precisa de uma API Key (da página de gerenciamento, sob Store) e uma URL de callback (um endpoint POST público) para receber webhooks. Depois, chame POST https://api.payerscan.com/payment/crypto para criar uma fatura e redirecione o cliente para url_payment. Veja Início rápido.

Qual é o Base URL da API?​

O Base URL oficial da API é https://api.payerscan.com. Todas as requisições da API devem usar HTTPS.

Posso criar uma fatura sem enviar callback_url?​

Sim. Mas você não receberá webhooks de completed/expired. Só poderá verificar o status via GET https://api.payerscan.com/invoice/:trans_id (polling).

Qual é o limite de taxa?​

  • POST /payment/crypto: 5 requisições/segundo, máximo 60 requisições/minuto (por API Key, fallback para IP).
  • GET /invoice/:trans_id: 20 requisições/segundo, máximo 200 requisições/minuto.

Exceder o limite → HTTP 429, com retry_after_seconds no body. Veja Limites de taxa.

O que é request_id e como funciona a idempotência?​

request_id é um campo opcional que você inclui ao criar uma fatura — geralmente seu ID de pedido interno (por exemplo: "ORDER-12345") ou uma string aleatória única que só o seu backend e o PayerScan conhecem.

Por que usar? Se o seu servidor travar ou der timeout durante a requisição, você pode retentá-la com segurança usando o mesmo request_id. A API garante que nenhuma fatura duplicada será criada — em vez disso, retorna a fatura existente com "idempotent": true na resposta.

Associar webhooks a pedidos: O request_id também é incluído nos callbacks webhook (completed / expired), permitindo que seu backend identifique a qual fatura (transação, pedido) o pagamento pertence.

Sem request_id: Cada POST cria uma nova fatura, mesmo que o body seja idêntico. Você corre o risco de criar faturas duplicadas para o mesmo pedido ao retentar.

Em qual moeda é o amount?​

O campo amount é sempre em USD (dólares americanos). O sistema converte automaticamente para o valor correspondente em criptomoeda com base na taxa de câmbio em tempo real no momento do pagamento.

Nota: A taxa de câmbio é obtida de uma das quatro fontes — Binance, Coinbase, CoinGecko ou CoinMarketCap — selecionada pelo cliente na página de pagamento.

Quais são os limites de amount?​

O amount da fatura (em USD) deve ser um número positivo e não pode exceder 1.000.000. Valores podem ser enviados como string ou número.

O que são completed_url e expired_url?​

São URLs de redirecionamento opcionais para o navegador do cliente:

  • completed_url — o cliente é redirecionado aqui após pagamento bem-sucedido.
  • expired_url — o cliente é redirecionado aqui se a fatura expirar.

São apenas para redirecionamento frontend e não substituem o webhook callback_url.


Pagamentos & Confirmação​

O que acontece se o cliente envia o valor errado?​

O sistema só confirma quando a transação blockchain corresponde exatamente ao valor (token_amount), endereço correto e dentro da janela de tempo. Enviar muito pouco ou muito não será considerado pagamento bem-sucedido; a fatura pode expirar ou o cliente precisa criar uma nova.

Quanto tempo leva a confirmação?​

Geralmente alguns segundos a alguns minutos, dependendo da rede e método:

  • EVM (BSC, ETH, Polygon, ...): 3-15 segundos
  • Tron (TRC20): 3-5 segundos
  • Depósitos via exchange (Binance, OKX, Bybit, ...): Quase instantâneo
  • Binance Pay: Quase instantâneo

Quando uma transação correspondente é encontrada, o sistema atualiza a fatura e envia o webhook imediatamente.

Quando uma fatura expira?​

Por padrão, conforme configuração do Store (ex.: 15 minutos). Ao criar a fatura, a resposta inclui expires_in_minutes. Após esse tempo, a fatura muda para expired e (se callback_url foi fornecido) você recebe um webhook com status: "expired".

Quais são os possíveis status de uma fatura?​

StatusDescrição
waitingFatura criada, aguardando pagamento do cliente.
completedPagamento confirmado na blockchain.
expiredFatura expirada sem receber pagamento.

Posso cancelar uma fatura?​

Não. Faturas não podem ser canceladas via API. Elas expiram automaticamente após o tempo configurado (expires_in_minutes). Se o cliente não pagar, deixe expirar.


Webhook​

Quais eventos disparam um webhook?​

O sistema envia webhooks para dois eventos:

  • completed — quando um pagamento correspondente é confirmado na blockchain.
  • expired — quando a fatura expira sem receber pagamento.

Qual é o timeout do webhook?​

10 segundos. Se o servidor do comerciante não retornar HTTP 2xx nesse tempo, a requisição é considerada falha e será retentada.

Preciso retornar um body específico?​

Não. Basta retornar um status HTTP 2xx (ex.: 200 OK). O body é livre (pode ser vazio ou "OK").

Webhooks são retentados em caso de falha?​

Sim. Em caso de erro ou timeout, o sistema retenta neste cronograma: 10s → 30s → 30s → 60s → 60s (máximo 5 tentativas). Garanta que seu endpoint trate de forma idempotente (chamar com o mesmo trans_id várias vezes é seguro).


Erros & Solução de problemas​

O que significa NO_PAYMENT_METHOD?​

Seu Store não tem método de pagamento configurado. Vá ao gerenciamento do Store → adicione pelo menos um endereço de carteira ou conecte uma plataforma de câmbio antes de criar faturas.

O que significa INSUFFICIENT_BALANCE?​

O saldo da sua conta é insuficiente para cobrir a taxa de serviço dessa fatura. A taxa é calculada com base no amount (USD) da fatura com a taxa de serviço aplicável à sua conta (descontos podem reduzir a taxa). Recarregue no Dashboard e tente novamente. Verifique o campo details na resposta de erro para o valor exato em falta.

Nota: Durante o período de teste gratuito (primeiros 7 dias), INSUFFICIENT_BALANCE não aparecerá — todas as taxas de serviço são isentas.

O que é INVALID_MERCHANT_ID?​

O merchant_id no body não corresponde ao Store da API Key sendo usada. Verifique o merchant_id no gerenciamento do Store e envie o correto na requisição.

Consulta de fatura retorna 404?​

Causas possíveis: (1) trans_id errado, (2) fatura pertence a outro Store (API Key diferente), ou (3) não existe. Verifique o trans_id e a API Key.


Métodos de pagamento​

Quais métodos de pagamento o sistema suporta?​

PayerScan suporta vários métodos de pagamento:

  • Carteiras on-chain: EVM (BSC, Ethereum, Polygon, Base, Arbitrum), Tron (TRC20), Solana
  • Plataformas de câmbio: Binance Pay, Binance Deposit, OKX, Bybit, MEXC, Gate.io, Bitget, Upbit, Bitkub

Veja Redes & Tokens para a lista completa.

Como funciona o Binance Pay?​

Binance Pay permite que clientes paguem via Binance — sem taxas de gas, confirmação instantânea. Comerciantes precisam configurar Binance API Key e Secret Key na página de gerenciamento.

O que precisa ser configurado para plataformas de câmbio?​

  1. Crie uma API Key na exchange (ative as permissões necessárias)
  2. Na página de gerenciamento → configure API Key, Secret Key e ID da plataforma para o Store

Detalhes: Configuração Binance Pay.


Segurança​

A API Key deve ser enviada do frontend?​

Não. A API Key deve ser usada apenas no servidor (backend do comerciante). Chame POST /payment/crypto e GET /invoice do servidor; o frontend recebe apenas url_payment para redirecionamento e não precisa da API Key.

A URL de callback precisa de autenticação?​

Recomendado: verifique merchant_id ou trans_id com dados internos para garantir que a requisição é legítima. Use HTTPS para prevenir escutas.

Posso ter múltiplos Stores?​

Sim. Cada Store tem sua própria API Key, merchant_id, métodos de pagamento e configurações. Você pode criar múltiplos Stores para separar diferentes negócios ou ambientes (por exemplo, produção vs. teste).