POST /authorize.
Con POST /reversals, Pay-me PinPAD determina la acción a partir del estado actual de la operación:
- si la autorización sigue en curso, interrumpe el flujo activo y la cancela;
- si la venta ya fue aprobada, ejecuta un extorno total.
operationNumber utilizado en la autorización original.
endpoint
El sistema central no elige la acción mediante un parámetro. Pay-me PinPAD evalúa el estado que tenga la operación cuando procesa
POST /reversals y aplica la transición correspondiente.¿Qué cubre esta operación?
Cancelación
Si
POST /authorize todavía está en curso, Pay-me PinPAD corta el flujo activo de la transacción y devuelve un resultado final CANCELLED.Extorno
Si la venta ya está
APPROVED, Pay-me PinPAD busca la operación original y ejecuta una reversa total. El resultado aprobado es REVERSED con resultCode: "00".Misma referencia
Las dos acciones reutilizan exactamente el
operationNumber enviado en POST /authorize.Decisión por estado
El mismo endpoint puede cancelar o extornar. El resultado depende del estado real de la operación al procesar la solicitud.
Cancelación y extorno no son sinónimos
Este endpoint pertenece a la interfaz local entre el sistema central y Pay-me PinPAD. No corresponde a
DELETE /charges de la API de e-commerce.Solicitud
Cuerpo JSON
No incluyas
amount, currency, medio de pago ni datos de tarjeta. Cuando corresponde un extorno, este es total.
cURL
operationNumber de la autorización.
Respuestas de POST /reversals
Usa primero el código HTTP para identificar el tipo de respuesta. Después evalúa status y resultCode.
Ejemplos de respuesta
Cancelación confirmada — 200 CANCELLED
Cancelación confirmada — 200 CANCELLED
Una autorización que todavía estaba en curso fue interrumpida:
CANCELLED confirma que Pay-me PinPAD interrumpió la autorización antes de que terminara aprobada. No envíes un extorno adicional para esa operación.El valor
null de resultCode en este ejemplo es ilustrativo. Los códigos 14 y 15 todavía no están confirmados para la respuesta HTTP de Transit. Decide por status: "CANCELLED" y no programes lógica basada en esos códigos hasta validarlos con Alignet.Extorno aprobado — 200 REVERSED
Extorno aprobado — 200 REVERSED
La venta ya estaba aprobada y la reversa terminó correctamente:Registra el extorno únicamente cuando se cumplan ambas condiciones:
Extorno denegado — 200 DENIED
Extorno denegado — 200 DENIED
El endpoint respondió correctamente, pero el procesador no aprobó el extorno:
DENIED es un resultado de negocio. No lo interpretes como una falla HTTP ni reintentes automáticamente.Resultado pendiente — 202 PENDING
Resultado pendiente — 202 PENDING
La espera HTTP terminó, pero la operación puede continuar:Consulta la operación. No crees otra solicitud ni una nueva venta en paralelo.
Errores de solicitud — 400 y 404
Errores de solicitud — 400 y 404
Terminal ocupado o no disponible — 409 y 503
Terminal ocupado o no disponible — 409 y 503
Terminal ocupado — 409 Conflict
operationNumber de la autorización activa para dirigirse a ese flujo. Ante POS_BUSY, espera a que el terminal se libere antes de reintentar la solicitud que no fue aceptada.Terminal no disponible — 503 Service Unavailable
Estado indeterminado — 502 UNKNOWN
Estado indeterminado — 502 UNKNOWN
Pay-me PinPAD no pudo determinar de forma inequívoca el estado de la venta original:Esta respuesta usa un cuerpo compacto. Cuando
UNKNOWN proviene de la búsqueda ambigua de la venta original, Pay-me PinPAD no inicia la reversa. No reintentes en bucle; conserva la evidencia y escala a Alignet.Consultar el resultado final
Después de HTTP202, un timeout o una conexión interrumpida, conserva la misma referencia y consulta:
Ir a Consulta de estado
Consulta la autorización original mediante
GET /payments/{operationNumber} y confirma su estado antes de iniciar otra venta.GET /payments/{operationNumber} consulta la autorización original. GET /reversals/{operationNumber} consulta la solicitud de cancelación o extorno. Usa ambas vistas para conciliar una operación incierta.
Estados
Tratamiento de UNKNOWN
La guía técnica confirma que un 502 UNKNOWN originado durante la búsqueda de la venta significa que Pay-me PinPAD no ejecutó la reversa. La misma guía indica que un reinicio durante un extorno puede dejarlo en UNKNOWN, pero no define si el procesador llegó a recibir la reversa ni un mecanismo automático de conciliación.
Códigos de resultado
Trata
CANCELLED como cancelación confirmada de una autorización en curso. Trata únicamente REVERSED junto con "00" como extorno aprobado. Conserva cualquier código desconocido y escálalo sin asignarle un significado.
Timeouts y reintentos
La guía proporciona 90 segundos como espera interna de referencia en desarrollo. ConfiguraPOST /reversals con al menos 100 a 110 segundos para que el timeout del sistema central sea mayor, tanto para cancelación como para extorno.
Ante 202, respeta Retry-After. Si el header no está presente, la guía propone aproximadamente 2 segundos como referencia inicial. El timeout definitivo, el backoff y el tiempo máximo de consulta deben acordarse antes de producción.
Idempotencia y concurrencia
operationNumber es la clave de idempotencia de la solicitud:
- si la misma cancelación o reversa está en proceso, Pay-me PinPAD devuelve HTTP
202con su estado y no inicia otro flujo; - si ya finalizó, devuelve el resultado almacenado y no repite la acción;
- si otro
operationNumberocupa el terminal, responde HTTP409conPOS_BUSY; - la venta y el extorno se almacenan por separado aunque compartan la referencia.
POST, conserva exactamente el mismo body y operationNumber.
Flujo recomendado para el sistema central
1
Conserva la referencia original
Recupera el mismo
operationNumber que utilizaste en POST /authorize. No generes una referencia nueva.2
Solicita la cancelación o extorno
Envía
POST /reversals con el mismo operationNumber y un timeout HTTP mayor que la espera interna del terminal.3
Interpreta la transición aplicada
CANCELLED indica que se interrumpió una autorización activa. REVERSED junto con 00 indica que se extornó una venta que ya estaba aprobada.4
Recupera un resultado incierto
Ante HTTP
202, timeout o pérdida de conexión, consulta GET /reversals/{operationNumber} y GET /payments/{operationNumber}. No inicies otra venta en paralelo.5
Escala estados indeterminados
Ante
UNKNOWN o un límite de consulta agotado, conserva la referencia, evita reintentos en bucle y coordina la conciliación con Alignet.Garantías y limitaciones
CANCELLEDconfirma que se detuvo el flujo activo de autorización. No lo declares exitoso hasta recibir ese estado final.REVERSEDjunto conresultCode: "00"confirma que el procesador aprobó el extorno.- Si la venta se aprueba antes de que Pay-me PinPAD procese la solicitud, el mismo endpoint ejecuta el flujo de extorno en lugar de la cancelación.
- Un extorno aprobado revierte una venta existente; no equivale a haber impedido la autorización original.
- La guía no confirma cuándo se reflejará la reversa para el tarjetahabiente ni su efecto contable después del cierre o liquidación.
- No está confirmada la ventana máxima para extornar, el tratamiento de ventas liquidadas ni la respuesta ante una venta ya extornada.
- El catálogo completo de códigos del procesador y los códigos que permiten reintento están pendientes de confirmación.
- El timeout definitivo de Pay-me PinPAD y el límite de consultas deben validarse en el ambiente objetivo.
Solicitud de autorización
Revisa
POST /authorize y la creación del operationNumber original.Operación y recuperación
Aplica las reglas generales de persistencia, timeout y recuperación del sistema central.

