Servicios Paynet
Con la finalidad de ofrecer a los clientes una forma de pago rápida y sin complicaciones, Openpay expone los servicios Paynet que permiten interactuar directamente con las cadenas de tiendas de conveniencia al momento de procesar pagos.
En está guía te explicamos detalladamente la manera en que funcionan nuestros servicios para que puedas integrarlos de forma sencilla y rapida, y de esta forma tus sistemas queden conectados con la red Paynet.
Pasos de flujo
El proceso de autorización de una referencia sigue los pasos descritos a continuación:

- El cliente acude a realizar un pago a una tienda de tu cadena.
- La cadena solicita la autorización del pago a los servicios Paynet.
- Openpay realiza una validación online con los servicios autorizadores de los comercios si es que se requiere.
- El comercio efectúa la validación de la referencia correspondiente e informa a Paynet si se autoriza o se rechaza la operación.
- Openpay responderá a tu tienda si la transacción debe ser aceptada o rechazada.
En caso de haber algún problema al realizar la autorización del pago, es posible ejecutar el proceso de cancelación el cual se describe a continuación:

- El cliente acude a realizar un pago en cualquier tienda de tu cadena.
- La cadena solicita la autorización del pago a los servicios Paynet.
- La tienda pierde la comunicación con Paynet.
- La tienda realiza la petición de Cancelación.
- Paynet realiza la validación de la petición de cancelación y responde si ha sido cancelada o no la transacción.
API Endpoints
La API REST de Paynet tiene un ambiente de pruebas (sandbox) y un ambiente de producción. La siguientes URIs forman la base de los endpoints para los ambientes soportados:
Pruebas, URI base:
https://sandbox-api.paynet.com.mx
Producción, URI base:
https://production-api.paynet.com.mx
Un endpoint completo esta formado por la URI base del ambiente, el identificador de la cadena y el recurso.
Por ejemplo, para enviar una petición de autorización de pago, el endpoint sería:
https://sandbox-api.paynet.com.mx/v1/mzdtln0bmtms6o3kck8f/payment
Para crear una petición completa es necesaria envíar las cabeceras HTTP correctas y la información en formato JSON.
Autenticación
Para realizar peticiones a la API de Paynet, es necesario enviar la llave de API (API Key) en todas tus llamadas a nuestros servidores. La llave será generada y entregada por Openpay.
Para la autenticación al API debes usar autenticación de acceso básica, donde la llave de API es el nombre de usuario. La contraseña no es requerida y debe dejarse en blanco por fines de simplicidad.
Integración de servicios Paynet.
Para que la cadena pueda interactuar con Paynet y procesar los pagos, es necesarío integrar los siguientes servicios:
- Servicio de autorización de pago
- Servicio de cancelación de pago
Servicio de autorización de pago
El servicio de autorización será llamado cuando un cliente intente pagar su referencia en la tienda. Paynet procesará la petición y responderá a la cadena el resultado de la autorización.
Petición de Autorización
La petición debe ser un HTTPS POST con contenido de tipo application/json, codificado en UTF-8.
El cuerpo de la petición contendrá un objeto JSON con los siguientes atributos:
Nombre | Tipo | Longitud | Requerido | Descripcion |
---|---|---|---|---|
idGroup | Numérico | 1 - 11 | Sí | Identificador de la cadena en Paynet |
idChain | Numérico | 1 - 11 | Sí | Identificador de la sub-agrupación de la cadena. |
idStore | Numérico | 1 - 11 | Sí | Identificador de la tienda donde se esta realizando el pago. |
idPos | Numérico | 1 - 11 | Sí | Identificador de la caja o punto de venta en donde se realiza el pago. |
idEmployee | Numérico | 1 - 11 | Sí | Identificador del empleado que realiza el cobro al cliente. |
chainTransactionId | Numérico | 1 - 45 | Sí | Identificador generado por la cadena asociada a la operación. |
reference | Alfanumérico | 1 - 40 | Sí | Referencia la cual esta asociada al pago o cuenta de depósito. |
amount | Numérico | 1 - 15 | Sí | El monto por el que se esta efectuando el pago. |
operationDate | Fecha | -- | Sí | La fecha y hora del pago efectuado, en formato Unix en milisegundos. |
sku | Numérico | 1 - 250 | No | Código del servicio el cual está siendo pagado. |
paymentType | Numérico | 1 - 3 | No | Forma de pago |
Serán ignorados los atributos que no esten listados en la tabla.
No importa el orden de los atributos.
Ejemplo de la petición HTTP:
POST https://sandbox-api.paynet.com.mx/v1/{CHAIN_ID}/payment HTTP/1.1
Content-Type: application/json
{
"idGroup":555,
"idChain":1,
"idStore":1292,
"idPos":1,
"idEmployee":2,
"reference":"OPENPAY00FUCDZDQ9",
"amount":10.00,
"operationDate":1509053135780,
"chainTransactionId":170911001,
"sku":34123412341234,
"paymentType":1
}
Ejemplo usando curl:
curl https://sandbox-api.paynet.com.mx/v1/{CHAIN_ID}/payment \
-H "Content-type: application/json" \
-d '{
"idGroup":555,
"idChain":1,
"idStore":1292,
"idPos":1,
"idEmployee":2,
"reference":"OPENPAY00FUCDZDQ9",
"amount":10.00,
"operationDate":1509053135780,
"chainTransactionId":170911001,
"sku":34123412341234,
"paymentType":1
}' \
-X POST
Respuesta del servicio de autorización
El servicio responderá HTTP 200 OK, con un cuerpo de tipo application/json con los siguientes campos:
Nombre | Tipo | Descripcion |
---|---|---|
requestId | Alfanumérico | Identificador del la petición |
chainTransactionId | Numérico | Identificador generado por la cadena asociada a la operación. |
authorization | Numérico | Número de autorización de la transacción. |
operationDate | Fecha | La fecha y hora del pago efectuado, en formato Unix en milisegundos. |
responseCode | Numérico | Código de respuesta |
descriptionCode | Cadena | Descripción del código de la respuesta. |
customerInstructions | Cadena | Instrucciones para que el cliente realice aclaraciones con el comercio a cerca del pago. |
Ejemplo de respuesta exitosa:
{
"requestId":"kuysdtcaygs67asd6",
"operationDate":1505171988,
"chainTransactionId":170911001,
"authorization":"124242",
"responseCode":0,
"descriptionCode":"Success",
"customerInstructions":"ESTIMADO CLIENTE PARA CUALQUIER DUDA O ACLARACION FAVOR DE COMUNICARSE A AL CORREO example@email.com O AL TELEFONO 0180012345678 "
}
Ejemplo de respuesta fallida:
{
"requestId":"kuysdtcaygs67asd6",
"operationDate":1505171988,
"chainTransactionId":170911001,
"responseCode":12,
"descriptionCode":"Transacción inválida."
}
Servicio de cancelación de pago
El servicio de cancelación identifica un único pago, utilizando los datos de la petición de autorización para cancelarlo en el sistema. En general deben enviarse los mismos datos de la autorización.
En caso de ocurrir un error de conexión durante la autorización del pago, se debe lanzar posteriormente una petición de cancelación utilizando los datos de la petición de autorización. Si no hubiera ningún problema al realizar la autorización de la referencia pero si por alguna razón se debiera realizar una cancelación, es preferible que se incluya adicionalmente el número de autorización del pago.
Petición de Cancelación
La petición debe ser un HTTPS POST con contenido de tipo application/json, codificado en UTF-8.
El cuerpo de la petición contendrá un objeto JSON con los siguientes atributos:
Nombre | Tipo | Longitud | Requerido | Descripción |
---|---|---|---|---|
idGroup | Numérico | 1 - 11 | Sí | Identificador de la cadena en Paynet |
idChain | Numérico | 1 - 11 | Sí | Identificador de la sub-agrupación de la cadena. |
idStore | Numérico | 1 - 11 | Sí | Identificador de la tienda donde se está realizando el pago. |
idPos | Numérico | 1 - 11 | Sí | Identificador de la caja o punto de venta en donde se realiza el pago. |
idEmployee | Numérico | 1 - 11 | Sí | Identificador del empleado que realiza el cobro al cliente. |
chainTransactionId | Numérico | 1 - 45 | Sí | Identificador generado por la cadena asociada a la operación. |
reference | Alfanumérico | 1 - 40 | Sí | Referencia la cual esta asociada al pago o cuenta de depósito. |
amount | Numérico | 1 - 15 | Sí | El monto por el que se está efectuando el pago. |
operationDate | Fecha | -- | Sí | La fecha y hora del pago efectuado, en formato Unix en milisegundos. |
sku | Numérico | 1 - 250 | No | Código del servicio el cual está siendo pagado. |
paymentType | Numérico | 1 - 3 | No | Forma de pago |
authorization | Numérico | 1 - 20 | No | Número de autorización de la transacción de pago. |
Serán ignorados los atributos que no esten listados en la tabla.
No importa el orden de los atributos.
Ejemplo de la petición HTTP:
POST https://sandbox-api.paynet.com.mx.mx/v1/{CHAIN_ID}/reverse HTTP/1.1
Content-Type: application/json
{
"idGroup":555,
"idChain":1,
"idStore":1292,
"idPos":1,
"idEmployee":2,
"reference":"OPENPAY00FUCDZDQ9",
"amount":10.00,
"authorization":"9882347",
"operationDate":1509053135780,
"chainTransactionId":170911001,
"sku":34123412341234,
"paymentType":1
}
Ejemplo usando curl:
curl https://sandbox-api.paynet.com.mx.mx/v1/{CHAIN_ID}/reverse \
-H "Content-type: application/json" \
-d '{
"idGroup":555,
"idChain":1,
"idStore":1292,
"idPos":1,
"idEmployee":2,
"reference":"OPENPAY00FUCDZDQ9",
"amount":10.00,
"authorization":"9882347",
"operationDate":1509053135780,
"chainTransactionId":170911001,
"sku":34123412341234,
"paymentType":1
}' \
-X POST
Respuesta del servicio de cancelación
El servicio responderá HTTP 200 OK, con un cuerpo de tipo application/json con los siguientes campos:
Nombre | Tipo | Descripción |
---|---|---|
requestId | Alfanumérico | Identificador del la petición |
chainTransactionId | Numérico | Identificador generado por la cadena asociada a la operación. |
authorization | Numérico | Número de autorización de la transacción. |
operationDate | Fecha | La fecha y hora del pago efectuado, en formato Unix en milisegundos. |
responseCode | Numérico | Código de respuesta |
descriptionCode | Cadena | Descripción del código de la respuesta. |
Ejemplo de respuesta exitosa:
{
"requestId":"kuysdtcaygs67asd6",
"operationDate":1509053135780,
"chainTransactionId":170911001,
"authorization":"124242",
"responseCode":0,
"descriptionCode":"Success"
}
Ejemplo de respuesta fallida:
{
"requestId":"kuysdtcaygs67asd6",
"operationDate":1509053135780,
"chainTransactionId":170911001,
"responseCode":12,
"descriptionCode":"Transacción inválida."
}
Códigos de respuesta
Los códigos de respuesta del servicio para la Autorización o la Cancelación son:
Código | Descripción | Causa |
---|---|---|
0 | Operación exitosa | Transacción autorizada. El pago en la tienda será aceptado. |
12 | Transacción inválida | Transacción rechazada. |
30 | Error de formato | El formato de la referencia es incorrecto. |
88 | Monto inválido | El monto de la transacción es inválido. |
93 | Adquiriente inválido | El sistema no reconoce la referencia. |
96 | Error de sistema | Ocurrió un error en el servicio |
Códigos de formas de pago
Los códigos de formas de pago son:
Código | Descripción |
---|---|
1 | Efectivo |
2 | Débito |
3 | Crédito |
4 | Monedero electrónico |