Documentação da API

Tudo o que você precisa para integrar o Payman ao seu app.

Introdução

A API do Payman é uma API REST em JSON. Todas as solicitações vão para https://payman33.com/v1 via HTTPS.

Autenticação

Envie como token bearer o token de acesso que você recebeu ao criar sua conta. Ele é exibido apenas uma vez e não pode ser emitido novamente, então mantenha-o em segredo e nunca o coloque em código do lado do cliente.

Authorization: Bearer pm_live_xxxxxxxxxxxxxxxx

Enviar uma mensagem

POST /messages

CampoTipoDescrição
tostring[]Destinatários no formato E.164. Até 10.000 por requisição.
textstringCorpo da mensagem: um SMS, até 160 caracteres (GSM-7), ou 70 se contiver quaisquer outras letras ou emojis. Textos mais longos são rejeitados.
schedule_atstringOpcional. Horário ISO-8601 para envio posterior, até 30 dias à frente.
callback_urlstringOpcional. URL HTTPS que recebe os relatórios de entrega.
{
  "id": "msg_01J9Z3K8V2",
  "status": "queued",
  "recipients": 1,
  "segments": 1,
  "cost": 0.0063
}

Adicione um header Idempotency-Key para repetir com segurança: a mesma chave em até 24 horas retorna a resposta original em vez de enviar novamente.

Status da mensagem

GET /messages/{id}

Status: queued, depois sent e então delivered ou failed. Uma mensagem agendada fica em scheduled até ser enviada; cancele-a (e receba o valor de volta) com POST /messages/{id}/cancel.

Webhooks

Quando chega um relatório de entrega, nós o enviamos com POST para a sua callback_url. Cada solicitação traz um cabeçalho X-Payman-Signature: o HMAC-SHA256 do corpo com o seu segredo de webhook (Painel, aba API), para que você possa verificá-la. Entregas com falha são reenviadas até 3 vezes.

{
  "id": "msg_01J9Z3K8V2",
  "to": "+14155550123",
  "status": "delivered",
  "delivered_at": "2026-10-09T08:12:03Z"
}

Saldo

GET /balance

Retorna seu saldo atual em USDT. Os preços são informados em USD; 1 USDT = 1 USD.

Erros

HTTPCódigoSignificado
400invalid_requestCampo ausente ou malformado.
401unauthorizedChave de API ausente ou inválida.
402insufficient_balanceRecarregue para continuar enviando.
403verification_requiredA conta não verificada atingiu o limite de destinatários de hoje.
404not_foundMensagem não encontrada na sua conta.
429rate_limitedMuitas solicitações. Tente novamente após o tempo indicado no cabeçalho Retry-After.

Limites de requisição

O limite padrão é de 50 requisições por segundo por conta. Use envios em massa (vários números em to) para campanhas grandes. Contas não verificadas podem enviar para até 500 destinatários por dia.