Skip to content

Primeros pasos ​

Paytami procesa cobros para comercios de Guatemala y Centroamérica. Tu integración habla siempre con la API de Paytami: un solo contrato, estable en el tiempo, para todos tus cobros.

Cómo integrar ​

Hay tres formas de cobrar, de la más simple a la más flexible:

MétodoCuándo usarloGuía
Enlaces de pagoQuieres cobrar sin escribir código: generas un link desde el panel y lo compartes.Enlaces de pago
Checkout hospedadoTu backend ya sabe crear el cobro; rediriges al cliente a una página de pago de Paytami.Checkout hospedado
Checkout embebidoQuieres el formulario de pago dentro de tu propio sitio, sin sacar al cliente.Checkout embebido

Las tres opciones comparten la misma API pública y el mismo modelo de datos: un pago (pay_...) es el recurso central, y todo lo demás (checkout, enlaces, webhooks) gira alrededor de él.

URL base ​

https://app.paytami.com/api/v1

Todos los endpoints de este documento son relativos a esa base.

Ambientes: prueba y producción ​

Cada comercio tiene dos ambientes completamente separados, cada uno con sus propias llaves y sus propios datos — nunca se mezclan:

  • Prueba (sk_test_...): para desarrollar e integrar sin mover dinero real.
  • Producción (sk_live_...): cobros reales.

El ambiente en el que opera cada petición lo decide la llave que usas, no un parámetro ni una configuración aparte — mándale a /v1 la llave de prueba y todo lo que hagas (crear pagos, consultarlos) queda en el ambiente de prueba, automáticamente.

Autenticación ​

Toda petición autenticada lleva tu llave secreta en el header Authorization:

Authorization: Bearer sk_test_...

Ver Autenticación para cómo obtener tu llave y las buenas prácticas de manejo.

Tu primer cobro ​

bash
curl https://app.paytami.com/api/v1/payments \
  -X POST \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: 6e4b6f0a-a5f0-4b9a-9b8b-1a2b3c4d5e6f" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "15000",
    "currency": "GTQ",
    "method_type": "card",
    "success_url": "https://tu-sitio.com/gracias",
    "cancel_url": "https://tu-sitio.com/carrito"
  }'

La respuesta trae un checkout_url en el dominio de Paytami — es a donde mandas al cliente a pagar:

json
{
  "id": "pay_8f2c1a9d4e6b7c0a1d2e3f40",
  "status": "created",
  "currency": "GTQ",
  "amount": "15000",
  "checkout_url": "https://app.paytami.com/api/v1/checkout/pay_8f2c1a9d4e6b7c0a1d2e3f40",
  "created_at": "2026-08-28T15:04:00.000Z"
}

Sigue en Checkout hospedado para el flujo completo, o en la referencia de POST /v1/payments para todos los campos disponibles.

Los montos son enteros

amount viaja siempre como cadena de texto en la unidad mínima de la moneda (centavos): "15000" es Q150.00 o $150.00, nunca 150.00 ni un number. Evita errores de redondeo de punto flotante con dinero real.

Documentación oficial de Paytami