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étodo | Cuándo usarlo | Guía |
|---|---|---|
| Enlaces de pago | Quieres cobrar sin escribir código: generas un link desde el panel y lo compartes. | Enlaces de pago |
| Checkout hospedado | Tu backend ya sabe crear el cobro; rediriges al cliente a una página de pago de Paytami. | Checkout hospedado |
| Checkout embebido | Quieres 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/v1Todos 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
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:
{
"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.

