Skip to content

Enlaces de pago ​

Endpoints públicos que respaldan un enlace de pago (link_...) creado desde el panel de Paytami. Ninguno requiere api_key — los llama el navegador del cliente final, no tu backend.

Para el flujo normal (compartir el link generado por el panel) no necesitas llamar estos endpoints directamente — son para cuando quieres construir tu propia página alrededor de un link existente.

Datos públicos del link, para renderizar una página de pago propia.

bash
curl https://app.paytami.com/api/v1/payment_links/link_9a1b2c3d4e5f60718293a4b5

Respuesta ​

json
{
  "title": "Colegiatura mensual",
  "description": "Incluye materiales del curso",
  "merchant_trade_name": "Goclases",
  "currency": "GTQ",
  "amount_type": "fixed",
  "fixed_amount_minor": "25000",
  "min_amount_minor": null,
  "max_amount_minor": null,
  "payable": true,
  "not_payable_reason": null
}
CampoDescripción
amount_typefixed (monto fijo) o variable (el cliente lo indica dentro de min_amount_minor/max_amount_minor).
payablefalse si el link ya no admite pago.
not_payable_reasonexpired, inactive o exhausted cuando payable es false; null en caso contrario.

Un link que ya no admite pago sigue respondiendo 200 con payable: false — 404 es exclusivo de un link que nunca existió, para que tu página pueda distinguir "esto venció" de "esto nunca fue real".

Errores posibles: 404 unknown_payment_link.

POST /v1/payment_links/{id}/pay ​

Crea el cobro asociado a este link. Reutiliza exactamente la misma lógica financiera que POST /v1/payments — el resultado es el mismo objeto Payment, con su checkout_url listo para redirigir.

Headers: Idempotency-Key requerido, igual que POST /v1/payments.

Cuerpo de la petición ​

CampoTipoRequeridoDescripción
amountstringSolo si el link es de monto variableEntero en unidad mínima. Se valida contra min_amount_minor/max_amount_minor del link.
method_typestringSícard o bank_transfer.
success_urlstringNoSi se omite, usa la configurada en el link o una por omisión.
cancel_urlstringNoIgual que success_url.
customer.email / customer.namestringNoDatos del cliente final.
bash
curl https://app.paytami.com/api/v1/payment_links/link_9a1b2c3d4e5f60718293a4b5/pay \
  -X POST \
  -H "Idempotency-Key: 6e4b6f0a-a5f0-4b9a-9b8b-1a2b3c4d5e6f" \
  -H "Content-Type: application/json" \
  -d '{ "method_type": "card", "customer": { "email": "cliente@ejemplo.com" } }'

Respuesta: 201 Created con el objeto Payment — ver el esquema completo.

Errores posibles: 404 unknown_payment_link, 400 idempotency_key_required, 400 validation_error, 429 rate_limited (demasiados intentos sobre el mismo link en poco tiempo), 409 payment_link_not_payable, 400 amount_required (link de monto variable sin amount), 400 amount_below_minimum, 400 amount_above_maximum.

Ver también ​

Documentación oficial de Paytami