POST a la callback_url configurada por el comercio. Este canal es clave para confirmar estados finales desde backend, especialmente en métodos asíncronos o en flujos donde el usuario puede abandonar el frontend.
Panorama general
Registro del endpoint
Comparte tu URL S2S con el equipo de Pay-me o Alignet para que pueda quedar registrada y validada en la configuración del merchant cuando aplique.
Canal backend
La notificación viaja de servidor a servidor y no depende del navegador del comprador.
Firma digital
Cada notificación incluye un header
signature que debes validar con la llave pública del ambiente.Fuente de confirmación
Usa este canal para confirmar el resultado final de la autorización junto con Consulta.
Reintentos
Tu endpoint debe responder
HTTP 200 en menos de 10 segundos o Pay-me reintentará más adelante.Si el método usa
callback_url, prepara un endpoint backend público y accesible por HTTPS. Además, según el esquema de integración, esa URL puede ser compartida con Pay-me o Alignet para configurarla también a nivel del merchant del comercio. No dependas solo del retorno del usuario para cambiar el estado de la orden.Flujo general
Configura tu callback
Define una URL S2S pública y compártela con el equipo de Pay-me o Alignet. En los flujos que lo soportan puedes enviarla como
callback_url, y cuando aplique también puede quedar registrada a nivel del merchant del comercio.Recibe el POST
Pay-me enviará el resultado final de la autorización en formato
application/json al endpoint configurado.Valida la firma
Verifica el header
signature con la llave pública del ambiente usando el body crudo recibido.Procesa con idempotencia
Guarda el evento, valida el estado y evita procesar dos veces la misma transacción.
Qué conviene validar
Campos mínimos
Campos mínimos
Confirma la presencia de
success, action, merchant_code, merchant_operation_number, transaction.transaction_id, transaction.state, transaction.amount, transaction.currency y meta.status.Body crudo
Body crudo
Para verificar la firma usa el body exactamente como llegó por HTTP. No reserialices el JSON ni reordenes llaves antes de validar, porque eso cambia los bytes firmados.
Idempotencia
Idempotencia
Usa
merchant_operation_number y transaction.transaction_id como claves de correlación para ignorar duplicados y soportar reintentos.Confirmación backend
Confirmación backend
Si tu sistema rechaza la notificación o tienes dudas sobre el estado, realiza una verificación adicional con API de Consulta.
Verificación del signature
El signature es una firma digital generada por Pay-me con una llave privada asimétrica. Su objetivo es proteger la integridad del contenido enviado al comercio tanto en ServerToServer como en flujos de redirect.
Especificaciones técnicas
| Propiedad | Valor |
|---|---|
| Tipo de llave | Asimétrica |
| Especificación | RSA_2048 |
| Longitud | 2048 bits |
| Uso | Firma y verificación |
| Algoritmo | SHA512withRSA |
Longitud del signature | Hasta 512 caracteres |
Paso 1: identifica el contenido firmado
| Flujo | Dato que debes verificar |
|---|---|
Redirect | El valor de authorization_result recibido en el retorno del comercio |
ServerToServer | El body completo y crudo de la petición recibida |
Paso 2: usa la llave pública del ambiente
- Pre-Producción
- Producción
Archivo:
Publickey-6f031bb8-45cb-4aed-9375-80d8dbb9c8fd.pemEjemplo de verificación en Python
Pruebas y simulación
Para pruebas de integración conviene separar dos escenarios:- Validar que tu endpoint reciba el
POST, procese JSON, registre el evento y respondaHTTP 200. - Validar la firma digital con un payload real emitido por Pay-me en el ambiente correspondiente.
Si modificas aunque sea un carácter del body, el
signature dejará de coincidir. Por eso una simulación manual sirve para probar parsing, ruteo e idempotencia, pero no reemplaza una prueba criptográfica real.Simulación manual con curl
Usa un body como el siguiente para probar el contrato de tu endpoint:
Recomendación de prueba real
Sandbox real
Ejecuta una autorización en preproducción con
callback_url y captura la notificación real para validar firma, logging e idempotencia.Consulta como respaldo
Si el callback no llega o la prueba se corta, usa API de Consulta para verificar el estado final de la operación.
Respuesta esperada por Pay-me
Luego de enviar la notificación hacia tu callback, Pay-me esperará hasta10 segundos por una respuesta HTTP 200. Si no la recibe, reintentará el envío según la configuración del comercio.
| Respuesta de tu endpoint | Comportamiento esperado |
|---|---|
HTTP 200 | La notificación se considera recibida |
| Cualquier otro código o timeout | El envío puede reintentarse posteriormente |
La cantidad y ventana de reintentos es configurable por comercio. Diseña el endpoint para soportar notificaciones duplicadas o fuera de orden.
Siguiente paso
API de Consulta
Usa consulta para reconciliar estados cuando necesites una segunda validación backend.
Referencia
Revisa estados de transacción, códigos de respuesta y datos de prueba del ambiente sandbox.

