Documentación de la API

Todo lo que necesitas para integrar Payman en tu aplicación.

Introducción

La API de Payman es una API REST en JSON. Todas las solicitudes van a https://payman33.com/v1 por HTTPS.

Autenticación

Envía como token bearer el token de acceso que recibiste al crear tu cuenta. Se muestra una sola vez y no se puede volver a emitir, así que mantenlo en secreto y nunca lo pongas en código del lado del cliente.

Authorization: Bearer pm_live_xxxxxxxxxxxxxxxx

Enviar un mensaje

POST /messages

CampoTipoDescripción
tostring[]Destinatarios en formato E.164. Hasta 10,000 por petición.
textstringCuerpo del mensaje: un SMS, hasta 160 caracteres (GSM-7), o 70 si contiene cualquier otra letra o emojis. Un texto más largo se rechaza.
schedule_atstringOpcional. Hora ISO-8601 para enviar más tarde, hasta con 30 días de antelación.
callback_urlstringURL HTTPS opcional que recibe los informes de entrega.
{
  "id": "msg_01J9Z3K8V2",
  "status": "queued",
  "recipients": 1,
  "segments": 1,
  "cost": 0.0063
}

Añade un encabezado Idempotency-Key para reintentar de forma segura: la misma clave en un plazo de 24 horas devuelve la respuesta original en lugar de volver a enviar.

Estado del mensaje

GET /messages/{id}

Estados: queued, luego sent y después delivered o failed. Un mensaje programado permanece en scheduled hasta que se envía; puedes cancelarlo (y recuperar el cargo) con POST /messages/{id}/cancel.

Webhooks

Cuando llega un informe de entrega, lo enviamos con POST a tu callback_url. Cada solicitud lleva una cabecera X-Payman-Signature: el HMAC-SHA256 del cuerpo con tu secreto de webhook (Panel, pestaña API), para que puedas verificarla. Las entregas fallidas se reintentan hasta 3 veces.

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

Saldo

GET /balance

Devuelve tu saldo actual en USDT. Los precios se indican en USD; 1 USDT = 1 USD.

Errores

HTTPCódigoSignificado
400invalid_requestFalta un campo o tiene un formato incorrecto.
401unauthorizedClave API ausente o no válida.
402insufficient_balanceRecarga saldo para seguir enviando.
403verification_requiredLas cuentas no verificadas han alcanzado el límite de destinatarios de hoy.
404not_foundNo existe ese mensaje en tu cuenta.
429rate_limitedDemasiadas solicitudes. Vuelve a intentarlo cuando indique la cabecera Retry-After.

Límites de peticiones

El límite predeterminado es de 50 solicitudes por segundo por cuenta. Usa envíos masivos (varios números en to) para campañas grandes. Las cuentas no verificadas pueden enviar a hasta 500 destinatarios al día.