API de gateway de pagamento cripto: 12 pontos para checar antes de integrar

Toda API de pagamento cripto cria uma cobrança. As diferenças aparecem nos reenvios, nos pagamentos parciais e nos webhooks que falham. Um checklist de 12 pontos para desenvolvedores, com a forma como a API do mistKET trata cada um.

Atualizado: 6 min de leitura
Checklist de API de gateway de pagamento cripto — requisições assinadas, status de cobrança e reenvios de webhook

Toda API de gateway de pagamento cripto promete a mesma coisa: criar uma cobrança, receber o pagamento, receber um callback. As diferenças só aparecem depois — quando duas requisições disputam o mesmo pedido, quando o cliente envia um pouco menos que o valor da cobrança, quando seu servidor fica uma hora fora do ar ou quando um atacante repete uma requisição interceptada. Escolher a API com cuidado economiza muito mais tempo do que integrá-la às pressas.

Este é um checklist para desenvolvedores e CTOs que comparam APIs de pagamento cripto antes de escrever qualquer código. Para cada ponto, você vê o que procurar, por que isso importa e como a API do mistKET resolve. Se já escolheu e quer o código passo a passo, vá direto para o nosso guia de integração de API de pagamento cripto.

O conjunto mínimo de endpoints

Uma API de pagamento cripto utilizável precisa de mais do que “criar pagamento”. No mínimo, procure:

RecursoPor que você precisaEndpoint do mistKET
Criar cobrançaUma solicitação de pagamento por pedido, com validadePOST /invoices
Consultar cobrançaConciliar quando um webhook se perdeGET /invoices/{uuid}
Listar e filtrar cobrançasTelas de back-office e conciliação noturnaGET /invoices
Cancelar cobrançaLiberar estoque quando um pedido é abandonadoPOST /invoices/{uuid}/cancel
Ativos suportadosMostrar apenas as redes que podem ser pagas agoraGET /assets
CotaçãoExibir o valor em cripto antes de criar a cobrançaGET /rate
Health checkMonitoramento e fallbacks controladosGET /health

Se o provedor não permite consultar nem listar cobranças, você é obrigado a confiar cegamente nos webhooks — uma posição ruim na primeira vez que uma entrega falhar.

1. Autenticação: toda requisição é assinada?

Uma API key enviada num cabeçalho é a opção mais fraca: quem interceptar ou vazar essa chave pode criar e cancelar cobranças. Prefira uma API em que cada requisição é assinada com um segredo que nunca trafega pela rede. As requisições ao mistKET levam X-Api-Key, X-Api-Timestamp e uma assinatura HMAC-SHA256 do timestamp e do corpo bruto. A secret é exibida uma única vez no painel do lojista.

2. Proteção contra replay

A assinatura sozinha não impede que alguém reenvie uma requisição interceptada. Procure uma janela de timestamp e suporte a nonce. O mistKET rejeita timestamps com diferença maior que ±300 segundos em relação ao horário do servidor e recusa a mesma assinatura duas vezes em requisições que alteram estado. A versão 2 da assinatura acrescenta um nonce por requisição e assina também o método e o caminho, de modo que uma assinatura não pode ser reaproveitada em outro endpoint.

3. Idempotência na criação de cobranças

Conexões dão timeout. Se o seu checkout repetir uma chamada de “criar cobrança”, você não pode acabar com duas cobranças para um pedido. Uma boa API oferece uma chave de idempotência. No mistKET, o seu próprio order_id cumpre esse papel: chamar de novo com o mesmo ID de pedido devolve a cobrança existente com "idempotent": true em vez de criar uma nova.

4. Um modelo de status que cobre pagamentos reais

“Pago / não pago” não basta. Clientes enviam um pouco menos porque a corretora descontou uma taxa, ou enviam a mais, ou pagam depois do vencimento. Confira se a API expõe esses casos de forma explícita. As cobranças do mistKET passam por new, pending, underpaid, paid, confirmed, overpaid, expired e cancelled, com campos como paid_amount, remaining_amount, can_pay_remaining e under_review, para que o seu código nunca precise adivinhar.

Ponto-chave: garanta que a API separe “transação vista” de “transação definitiva”. No mistKET, paid significa que a transferência foi detectada e aguarda confirmações; só entregue pedidos em confirmed ou overpaid.

5. Confirmações visíveis

A API deve informar quantas confirmações de bloco um pagamento tem e quantas são exigidas, além do hash da transação e de um link para o explorador. Isso transforma chamados de suporte sobre pagamentos em consultas rápidas. O mistKET retorna confirmations, required_confirmations e um array transactions[] com hash, valor, status e URL do explorador para cada cobrança.

6. Trava de cotação e moedas de preço

Você define o preço em moeda fiduciária; o cliente paga em cripto. Pergunte quais moedas fiduciárias são aceitas e por quanto tempo a cotação fica garantida. O mistKET aceita preços em USD, EUR, TRY, RUB, GBP e AED (ou diretamente no símbolo da cripto), trava a cotação durante toda a validade da cobrança e permite definir essa validade entre 5 e 1.440 minutos por cobrança.

7. Seleção de rede

Dá para fixar a rede na chamada da API ou deixar o cliente escolher na página hospedada? As duas opções são úteis: fixar serve para bots e fluxos automatizados; deixar o cliente escolher reduz pagamentos na rede errada. O mistKET suporta as duas via pay_currency + network ou asset_id, e GET /assets informa available: false quando uma rede não tem endereço livre. Hoje está habilitado o USDT na TRON (TRC-20); outros ativos e redes são habilitados por lojista, sob pedido. Veja USDT TRC20 vs ERC20 para entender por que a TRON é o padrão mais comum.

8. Webhooks assinados, com reenvio e rastreáveis

É nos webhooks que a maioria das integrações quebra. Verifique quatro coisas: o payload é assinado, há um timestamp para rejeitar entregas antigas, entregas com falha são reenviadas por horas (não segundos) e cada entrega tem um ID que você pode usar para deduplicação. O mistKET assina os webhooks com uma webhook secret separada, envia os cabeçalhos X-Mistket-Delivery e X-Mistket-Event e reenvia respostas não-2xx após 10 s, 30 s, 2 min, 10 min, 30 min, 1 h, 2 h e 3 h, com o histórico de entregas visível no painel. Nosso artigo sobre webhooks de pagamento cripto aprofunda o design do handler.

9. Erros e limites de requisição documentados

Você deve saber de antemão como é uma assinatura inválida, um IP bloqueado ou um erro de validação. O mistKET retorna um corpo consistente { "success": false, "error": … } com detalhes por campo nos erros de validação, usa códigos padrão (401, 403, 404, 422, 429, 503) e documenta seu limite: 120 requisições por minuto por API key.

10. Controles no nível de rede

Uma lista de IPs permitidos faz com que uma chave vazada não sirva para nada fora dos seus servidores. O mistKET permite configurá-la no painel; requisições de outros endereços recebem 403. Somado às requisições assinadas e às janelas curtas de timestamp, isso fecha os caminhos de ataque mais comuns.

11. Sem dependência de SDK

SDKs são práticos até ficarem para trás em relação à versão da sua linguagem. Uma API baseada em HTTPS e JSON simples, em que assinar é uma única chamada HMAC, funciona em PHP, Node.js, Python, Go ou num script shell. O mistKET publica clientes prontos para copiar e colar em PHP, Node.js e Python na sua documentação da API, mas nenhum deles é obrigatório.

12. Um caminho manual para quem não programa

Mesmo empresas API-first precisam cobrar um cliente avulso de vez em quando. Verifique se as cobranças também podem ser criadas num painel e compartilhadas como link, para que vendas e suporte não precisem acionar os desenvolvedores. No mistKET, as mesmas cobranças ficam disponíveis no painel do lojista, e toda página de checkout hospedado funciona como link de pagamento.

Dica: antes de entrar em produção, faça uma cobrança real pequena de ponta a ponta — crie, pague, receba o webhook, depois chame GET /invoices/{uuid} e compare. Isso valida a assinatura, o handler de webhook e a conciliação de uma só vez.

Sinais de alerta ao avaliar uma API de pagamento cripto

  • Webhooks sem assinatura ou “protegidos” apenas por uma URL secreta.
  • Nenhuma forma de consultar uma cobrança depois de criada.
  • Nenhum status de pagamento a menor ou a maior — os casos especiais vão parar no chat de suporte.
  • Reenvios por apenas alguns minutos, ou nenhum log de entregas.
  • Limites de requisição e formatos de erro sem documentação.
  • Preço pouco claro por transação — compare com o nosso guia de taxas de gateway de pagamento cripto.

Como obter acesso à API do mistKET

Os lojistas são aprovados pela equipe do mistKET: mande uma mensagem para @mistnetwork no Telegram com o seu site, o tipo de negócio e o volume esperado. Depois da aprovação, você cria sua API key, sua secret e as configurações de webhook no painel do lojista. Uma integração típica leva uma tarde.

7endpoints REST
8reenvios de webhook em ~7 horas
HMACassinatura nos dois sentidos

Veja a seção para desenvolvedores, os preços e a referência completa da API antes de começar.

Perguntas frequentes

O que uma API de gateway de pagamento cripto deve incluir?
No mínimo: criar, consultar, listar e cancelar cobranças, uma lista de ativos suportados, cotação, webhooks assinados com reenvio, erros e limites de requisição documentados. Sem os endpoints de consulta e listagem, não dá para conciliar webhooks perdidos.
Como a API do mistKET é autenticada?
Cada requisição leva uma API key, um timestamp Unix e uma assinatura HMAC-SHA256 do timestamp e do corpo bruto, gerada com a sua API secret. A versão 2 da assinatura acrescenta um nonce e assina também o método e o caminho.
Como evito cobranças duplicadas quando uma requisição dá timeout?
Envie o seu próprio order_id em toda cobrança. Se você chamar de novo com o mesmo ID de pedido, o mistKET devolve a cobrança existente marcada como idempotente em vez de criar uma segunda.
Quando devo entregar o pedido?
Somente quando a cobrança estiver confirmed ou overpaid. O status paid significa que a transferência foi vista, mas ainda aguarda as confirmações de bloco exigidas.
Quais moedas posso aceitar pela API do mistKET?
Hoje, o USDT na TRON (TRC-20) está habilitado na página de pagamento. Outros ativos e redes são habilitados por lojista, sob pedido; GET /assets sempre mostra o que está disponível para a sua loja.
A API do mistKET tem limite de requisições?
Sim, 120 requisições por minuto por API key. Ao ultrapassar, a API retorna HTTP 429; por isso, guarde em cache a lista de ativos e use webhooks em vez de polling constante.

Artigos relacionados

Artigos recentes

Todos os artigos