Este documento es completo por sí soloReúne todo lo que la certificación evalúa, de modo que no necesitará ningún otro material para prepararse. Si dispone de poco tiempo, el último apartado concentra lo que con mayor frecuencia obliga a repetir una prueba o a reabrir un punto, y le sugerimos leerlo antes de comenzar. Cuando NetPay le entregue su matriz de pruebas, todo esto le llegará ya filtrado para su integración, y a partir de ese momento el documento que le corresponderá es Siguientes pasos tras recibir su matriz de pruebas.
Forma parte de la Guía de Certificación de Integración NetPay.
1. El alcance se ajusta a su integración
No todos los comercios certifican lo mismo. El alcance se define con tres datos: cómo integró, qué APIs adicionales utiliza y con qué marca de terminal trabaja. A partir de ellos se determinan las preguntas que deberá responder y los escenarios que deberá ejecutar.
Identificación de su modalidad
NetPay identifica cada modalidad con un nombre técnico. A continuación se describen en lenguaje natural, para que pueda ubicar la que corresponde a su implementación:
| Descripción de su implementación | Cómo se denomina |
|---|---|
| La terminal opera en red y su sistema le envía la venta por internet; la respuesta se recibe en su webhook. | API |
| Equivalente a la anterior, con la diferencia de que el comercio registra sus propias URLs de OAuth. | API-Oauth-1.0 o API-Oauth-2.0 |
| Equivalente a API, con la particularidad de que una misma terminal opera con varios StoreId de un mismo grupo. | API (con Smart Accounts) |
| La terminal se conecta por cable USB a un punto de venta Windows, a través de la DLL. | COM |
| Equivalente a la anterior, e incluye además el retiro de efectivo durante la venta. | COM (con cashback) |
| El comercio desarrolló su propia aplicación Android, que se ejecuta dentro de la terminal. | SDK |
| Su aplicación se ejecuta en una terminal IM30, orientada a autoservicio y vending. | SDK (con MDB IM30) |
| Realiza una preautorización (check-in) y posteriormente cierra el monto final (check-out). El cierre siempre se efectúa por API; la variante depende del canal por el que se realiza el check-in. | checkinAPI-checkoutAPI, checkinSDK-checkoutAPI o checkinCOM-checkoutAPI |
Las APIs adicionales
Puede utilizar más de una. Cada una añade escenarios concretos a su certificación:
| API adicional | Qué añade |
|---|---|
Ninguna | Solo el flujo de venta. |
Print-Ticket | Las consultas de Print-Ticket que acompañan a otros bloques de pruebas. |
Devoluciones-PrintTicket | El bloque completo de devoluciones: devolución total, parcial, sus Print-Ticket y el escenario de error. Las devoluciones requieren Print-Ticket de forma obligatoria. |
Checkout | Se conserva por compatibilidad. El cierre de check-out se determina por el tipo de integración, no por esta opción. |
La marca de la terminal
Pax, Urovo o Kozen. Conviene conocer el alcance real de cada una:
- Pax es la marca con mayor cobertura: prácticamente todos los escenarios existen para ella.
- Urovo cubre un conjunto más acotado, centrado en venta, promociones, reimpresiones y reversos, e incorpora escenarios propios como la validación de reversos en CoreX.
- Kozen es una integración reciente y todavía no tiene escenarios definidos. Si su terminal es de esta marca, le sugerimos acordar el alcance de las pruebas con el equipo de integraciones antes de la sesión.
Esta guía describe el comportamiento de las terminales PaxTanto la documentación publicada como los escenarios de prueba se construyeron sobre terminales Pax, que es la marca con mayor cobertura y sobre la que se apoya la mayoría de las integraciones. En Urovo y en Kozen, algunos flujos —de forma señalada el de reversos— pueden comportarse de manera distinta: cambian los mensajes en pantalla, los tiempos o los valores devueltos. Si su terminal es de alguna de estas dos marcas, le sugerimos confirmar por correo con el equipo de integraciones las diferencias que apliquen a su modelo antes de ejecutar las pruebas.
2. Material que debe preparar
Le recomendamos reunir los siguientes elementos antes de comenzar. Su ausencia es la causa más frecuente de retraso en una certificación.
La terminal de pruebas
La solicita su asesor comercial o distribuidor de NetPay, no el equipo de integraciones, y debe entregarse en modo de pruebas.
La configuración exacta no es única: depende del modelo, de la marca, de la versión del procesador de pagos y del tipo de integración, y la combinación varía de un caso a otro. Por eso el equipo de integraciones indica en cada solicitud qué versiones corresponden. En términos generales, al recibir la terminal conviene tener identificado y confirmado lo siguiente:
- El modelo y la marca del equipo.
- La versión de Smart PinPad instalada.
- La versión de la aplicación de soporte y del launcher.
- Los servicios de Google instalados, cuando el tipo de integración lo requiera.
- Si la terminal debe entregarse en modo debug, como ocurre en las integraciones por SDK.
La terminal no debe tener instalada la App de PagosEs el error de configuración que con más frecuencia impide iniciar una certificación. Si la terminal llega con la App de Pagos instalada, o con versiones distintas de las indicadas para su caso, le sugerimos reportarlo con su asesor comercial o distribuidor sobre el mismo ticket en el que se solicitó, para que el área de almacén de NetPay pueda revisarlo. Una vez recibida la terminal, es recomendable contactar al equipo de integraciones para verificar que la configuración sea la correcta antes de comenzar.
Credenciales de prueba
Las credenciales de acceso a la aplicación Smart PinPad Dev y las de generación del token no se publican en la documentación. Por política de seguridad, el equipo de integraciones las envía por correo únicamente a los prospectos que han seguido el proceso comercial correspondiente. Si aún no las ha recibido, puede solicitarlas por ese mismo medio.
Material complementario
| Elemento | Detalle |
|---|---|
| StoreId de pruebas | El o los StoreId asignados. Cada uno tiene un propósito: base, factura, fraude, CheckIO, Smart Accounts. |
| Tarjetas físicas | Débito con NIP, crédito con NIP, una tarjeta sin NIP para firma autógrafa, contactless VISA y contactless MASTERCARD. |
| Tarjetas de cashback | Únicamente si aplica, con alguno de los BINes autorizados. |
| Datos del proyecto | Lenguaje o framework de frontend y de backend, IDE, nombre y versión de su sistema, packageName, versión mínima y máxima de Android, o versión de .NET Framework y arquitectura de Windows. En integraciones por COM, la versión de .NET Framework debe ser 3.5 o superior. |
| Número de serie de la terminal | Se encuentra en la parte inferior trasera del equipo. Es el dato que el equipo de integraciones solicita en primer lugar ante cualquier consulta de soporte. |
Ambiente: las pruebas se ejecutan en el ambiente de PRUEBAS. Su sistema debe poder alternar entre los ambientes de pruebas y producción mediante configuración (URL base, path y body del token), sin necesidad de recompilar.
Sobre el NIP durante las pruebasSiguiendo la documentación, ningún cobro del ambiente de pruebas es real y no se genera cargo alguno a las tarjetas utilizadas. El NIP es la única excepción: se valida directamente con el banco emisor, por lo que debe ingresarse correctamente. Tres o más intentos incorrectos pueden ocasionar el bloqueo de la tarjeta.
3. La documentación de referencia, por canal
La mayor parte de lo que la certificación evalúa ya se encuentra documentada. Dado que la documentación está organizada por canal, esta guía mantiene la misma separación: le sugerimos consultar únicamente la pestaña correspondiente a su implementación. Una integración por SDK no configura una URL de regreso, y una integración por API no compila una aplicación para la terminal.
Si alguna de sus respuestas no coincide con lo indicado en la página correspondiente, es probable que ese punto se reabra durante la revisión.
Este es el orden de lectura que sigue el equipo de integraciones al entregar la documentación:
| # | Tema | Página |
|---|---|---|
| 1 | Panorama de la integración por API | Introducción |
| 2 | Configurar la terminal y la URL de regreso | Configuración inicial de la terminal — incluye los certificados SSL: ISRG ROOT X1 no funciona en Android 7 o inferior |
| 3 | Generar el token de acceso | Autorización y generación de token |
| 4 | Enviar una venta y sus campos | Venta |
| 5 | Cancelar una venta | Cancelación — el límite es a las 20:00, hora de Ciudad de México, del mismo día |
| 6 | Reimprimir por orderId | Reimpresión por orderId |
| 7 | Reimprimir por folio | Reimpresión por folio |
| 8 | Recibir la respuesta en su webhook | Recibiendo la respuesta — su webhook debe responder HTTP 200 con {"code":"00","message":"Recibido"}, o la terminal dejará de recibir transacciones |
| 9 | Recuperar una venta que no llegó a su sistema | Recuperación de información no entregada |
| 10 | Reversos | Manejo de reversos por integración API |
| 11 | Check-in y check-out por API (si aplica) | Integración Checkin API / Checkout API |
Si su integración opera con varios StoreId de un mismo grupo, la referencia correspondiente es Smart Accounts.
Las páginas de check-in/check-out y de Smart Accounts no aparecen listadas en el índice público: se consultan por enlace directo.
| # | Tema | Página |
|---|---|---|
| 1 | Panorama de la integración por SDK | Introducción SDK |
| 2 | Preparar la terminal | Configuración inicial de la terminal |
| 3 | Instalar su APK y mover archivos a la terminal | Configuraciones adicionales de la terminal |
| 4 | Métodos, versiones y manejo de la respuesta | Smart SDK Terminales |
| 5 | Reimprimir por folio y leer reprintModule | Reimpresión por folio en integración SDK — el folio debe ser único, incluso en las declinadas |
| 6 | Reversos | Manejo de reversos por integración SDK |
| 7 | Lectura NFC, QR en el ticket y bloqueo de botones (si aplica) | Características adicionales |
| 8 | Propina (si aplica) | Propina |
| 9 | Check-in por SDK y check-out por API (si aplica) | Integración de Check-in SDK · Cómo validarlo desde la terminal |
| 10 | Después de certificar: publicar su aplicación | Subir la app a PAX STORE |
Para kioscos y autoservicio: Cómo deshabilitar los botones de navegación.
| # | Tema | Página |
|---|---|---|
| 1 | Métodos, versiones de la DLL y manejo de la respuesta | Smart COMM .Net |
| 2 | Reimprimir por folio y leer reprintModule | Reimpresión por folio para integración COM — es la única página que publica la tabla completa de valores |
| 3 | Reversos | Manejo de reversos por integración COM |
| 4 | Certificación para .Net y VB6 | Certificación .Net y VB6 |
Si su desarrollo es en VB6, la referencia es Smart COMM VB6. Existen además librerías y aplicaciones demo para Delphi, Visual FoxPro y Java; el equipo de integraciones las entrega junto con el driver y la versión de DLL que corresponda a su proyecto.
La guía de Smart COMM .Net documenta hasta la versión 1.6 de la DLL. Si su proyecto utiliza una versión posterior, existen métodos como testConnection() y setBankOnly que forman parte de las pruebas sin estar aún descritos en la guía; puede consultar tanto la versión que le corresponde como esos métodos por correo con el equipo de integraciones antes de la sesión.
El check-in por COM existe como funcionalidad, pero todavía no cuenta con una página propia. Si su proyecto lo requiere, puede solicitarlo por correo al equipo de integraciones.
Temas cubiertos exclusivamente en esta guíaAlgunos temas que la certificación evalúa aún no cuentan con una página propia: el cashback y sus condiciones mínimas, los tiempos de espera, el bloqueo de multi-instancias y el check-in por COM. En estos casos, la presente guía constituye la referencia aplicable, y cualquier detalle adicional puede solicitarse por correo al equipo de integraciones.
4. El ticket personalizado
Este apartado va al principio por una razón práctica: cuando el ticket personalizado aplica, se certifica antes que el resto de las pruebas. Si más adelante se modifica, las evidencias ya entregadas deben repetirse. Si mantiene el voucher oficial de NetPay, puede pasar directamente al apartado 5.
Casos en los que aplica
flowchart TD
A{"¿Aplica el ticket<br/>personalizado?"}
A -->|"mantiene el voucher<br/>oficial de NetPay"| Z["No se evalúa"]
A -->|"lo desactiva, o la<br/>terminal no imprime"| B{"¿Cumple la<br/>versión mínima?"}
B -->|"por debajo"| N["Ticket Personalizado<br/>No Certificado"]
B -->|"SDK 1.1.9<br/>DLL 1.6.0"| C{"¿Smart PinPad<br/>2.0 o mayor?"}
C -->|"no"| N
C -->|"sí"| D{"¿Certificado antes<br/>y sin cambios?"}
D -->|"sí"| E["Se puede omitir"]
D -->|"no"| F["Debe certificar<br/>su ticket personalizado"]
Dos condiciones encadenadas: primero la versión correspondiente a su canal y después la de la terminal. El incumplimiento de cualquiera de ellas no deja el punto pendiente, sino que lo registra como «No Certificado».
Los cuatro requisitos aplicables
| # | Condición |
|---|---|
| 1 | Integración SDK → versión 1.1.9 en adelante. |
| 2 | Integración COM → versión 1.6.0 en adelante. |
| 3 | Terminal IM30 o Aries8 → certificar ticket personalizado es obligatorio. |
| 4 | Todas las integraciones con ticket personalizado → Smart PinPad 2.0 en adelante. |
Consecuencia de no cumplir los requisitosCuando el ticket personalizado no puede certificarse, NetPay lo registra explícitamente como «Ticket Personalizado 'No Certificado'». Deshabilitar el voucher oficial sin haber certificado el propio implica asumir los riesgos operativos correspondientes, así como las implicaciones frente a la normativa bancaria vigente.
Detalle para quienes deben certificarlo
Si tras el diagrama anterior confirmó que debe certificar su ticket, despliegue lo que sigue. Si mantiene el voucher oficial de NetPay, puede omitirlo por completo.
Campos que se revisan en el ticket
Se valida que su ticket impreso contenga la misma información que el voucher oficial. Cada campo se marca como OK cuando el ticket lo cumple, y se adjunta la captura del ticket junto con el JSON de respuesta correspondiente.
| Qué se imprime | Campo de la respuesta | Regla | Restricción |
|---|---|---|---|
| Logotipo | — | El del comercio. | Opcional |
AFILIACIÓN: <valor> | affiliation | — | Obligatorio |
TIPO DE TRANSACCIÓN: <valor> | transType | Se traduce el valor: A → VENTA, V → CANCELACIÓN, PRE → CHECK IN, POA → CHECK OUT. PRE y POA solo se devuelven en la operativa de check-in y check-out. | Obligatorio |
| Dirección del comercio | streetName | Solo el valor, sin etiqueta. | Obligatorio |
NÚMERO DE COMERCIO: <valor> | storeId | — | Obligatorio |
| Población del comercio | cityName | Solo el valor, sin etiqueta. | Obligatorio |
NÚMERO DE CUENTA: ************<valor> | cardNumber · spanRoute | Prioridad a cardNumber; si no trae valor, se usa spanRoute. 12 asteriscos para VISA y MasterCard, 11 para AMEX; se distingue con cardTypeName cuando devuelve AMEX o AmericanExpress. | Obligatorio |
<valor> / <valor> / <valor> | cardTypeName · bankName · cardType | Los tres, separados por diagonal y en ese orden. cardType se traduce: C → CRÉDITO, D → DÉBITO, V → VALERA. Si alguno llega vacío, nulo o con valor U, no se imprime. | Obligatorio |
RETIRO DE EFECTIVO: $<valor> | cashbackAmount | — | Obligatorio si aplica |
COMISIÓN POR RETIRO: $<valor> | cashbackFee | — | Obligatorio si aplica |
SUBTOTAL: $<valor> | calculado | Con cashback: amount − cashbackAmount − cashbackFee. Con propina: se usa tipLessAmount. | Obligatorio si aplica |
PROPINA: $<valor> | tipAmount | — | Obligatorio si aplica |
<valor> MESES SIN INTERESES | promotion | El número de meses es dinámico. | Obligatorio si aplica |
TOTAL: M.N. $<valor> | amount | En negritas, con el símbolo de moneda (M.N. para moneda nacional) y de uno a dos puntos más de tamaño de letra. | Obligatorio |
FOLIO: <valor> | folioNumber | — | Obligatorio |
LOT NUM: <valor> | moduleLote | — | Obligatorio |
CARGO: <valor> | moduleCharge | — | Obligatorio |
TERMINAL: <valor> | terminalId | — | Obligatorio |
RRN: <valor> | rrnNumber | — | Obligatorio |
ORDERID: <valor> | orderId | — | Obligatorio |
APROBACIÓN: <valor> | authCode | — | Obligatorio |
FECHA Y HORA: <valor> | transDate · ticketDate | Prioridad a transDate; si no trae valor, se usa ticketDate. | Obligatorio |
ARQC: ************<valor> | arqc | Se ocultan todos los dígitos salvo los cuatro últimos. Si llega vacío o nulo, no se imprime. | Obligatorio |
TC: ************<valor> | transactionCertificate | Se ocultan todos los dígitos salvo los cuatro últimos. | Obligatorio |
AID: <valor> | aid | — | Obligatorio |
APP LABEL: <valor> | applicationLabel | Si llega vacío o nulo, no se imprime. | Obligatorio |
| Leyenda de verificación del tarjetahabiente | hasPin · hexSign | Solo el valor, sin etiqueta. La regla completa está en el diagrama de abajo. | Obligatorio |
| Nombre del tarjetahabiente | customerName | Solo el valor, sin etiqueta. Si llega vacío o nulo, no se imprime. | Obligatorio |
COPIA CLIENTE | — | Leyenda de la primera impresión del ticket. | Obligatorio |
COPIA NEGOCIO | — | Leyenda de la segunda impresión del ticket. | Opcional |
| Leyenda de NetPay | — | «RECUERDA QUE EN TU ESTADO DE CUENTA EL CARGO APARECERÁ A NOMBRE DE NETPAY». | Obligatorio |
| Versión de la aplicación | rePrintDate | Solo el valor, sin etiqueta. | Obligatorio |
Ticket Personalizado de <nombreComercio> | — | Con el nombre del comercio que se certifica. | Obligatorio |
Leyenda de verificación del tarjetahabiente: los tres casos posibles
flowchart TD
A["Respuesta de la venta"] --> B{"¿hasPin<br/>es true?"}
B -->|"sí"| C["FIRMADO<br/>ELECTRÓNICAMENTE"]
B -->|"no"| D{"¿hexSign trae<br/>algún valor?"}
D -->|"sí"| E["FIRMA<br/>DIGITALIZADA"]
D -->|"no"| F["AUTORIZADO<br/>SIN FIRMA"]La leyenda no se elige: se determina a partir de esos dos campos, evaluados en este orden.
El tercer caso se presenta porque, en operaciones contactless por debajo de ciertos montos que varían según la marca, no se solicita NIP ni firma.
Tickets que se certifican
Se revisan cuatro tickets, y el de venta se valida en ocho variantes. Cada una requiere su captura y su JSON.
| Ticket | Variantes que se revisan |
|---|---|
| Venta | Con NIP débito · Sin NIP, con firma digital · Contactless MasterCard mayor a $1,501 · Contactless MasterCard menor a $10 · A meses sin intereses · Con propina · Con cashback · Check-in |
| Reimpresión | Reimpresión, por folio o por orderId, de una venta exitosa. |
| Cancelación | Cancelación de una venta. |
| Declinación | Declinación de una transacción, por cualquier motivo. |
Lo que cambia en cada uno respecto del ticket de venta
| Ticket | Diferencia |
|---|---|
| Reimpresión | Añade la leyenda -----DUPLICADO-----, con cinco guiones antes y cinco después, a partir del campo isRePrint cuando devuelve true. Es obligatoria en el escenario de reimpresión de una declinación. |
| Cancelación | El total se imprime en negativo: TOTAL: M.N. -$<valor>. |
| Declinación | Es el ticket más corto de los cuatro: 22 campos frente a los 33 de la venta. Añade tres elementos —la leyenda -----DUPLICADO----- a partir de isRePrint, el responseCode y el message, estos dos impresos solo con su valor y sin etiqueta— y omite los que no existen en una transacción rechazada: retiro de efectivo, comisión por retiro, subtotal, propina, RRN, ORDERID, APROBACIÓN, ARQC, TC, AID, APP LABEL, la leyenda de verificación del tarjetahabiente, el nombre del tarjetahabiente y la leyenda de NetPay. |
5. La información que se registra de su proyecto
Antes de evaluar nada técnico, NetPay levanta el expediente de su proyecto: contactos, datos de la integración y datos de la terminal. No son pruebas, pero es la información que el equipo de integraciones consulta al atender un caso posterior.
Detalle del expediente
Se le solicitará la siguiente información, agrupada en cuatro bloques:
| Bloque | Qué se registra |
|---|---|
| Información de contactos | Nombre, giro y razón social del comercio; correos de contacto; estado y ciudad de operación; empresa desarrolladora y sus contactos de soporte; asesor comercial o distribuidor NetPay. |
| Información de la integración | Tipo de integración, APIs adicionales, versión de librería (SDK/COM), tipo de sistema, StoreId de pruebas, stack de frontend y backend, IDE, nombre y versión del sistema, tipo y número de certificación, certificaciones previas con NetPay. |
| Información de la terminal certificada | Serie, marca, modelo, firmware, Smart PinPad/CoreX, versión de Android, servicios de Google y aplicaciones adicionales de NetPay. |
| Cierre | Notas finales de NetPay y bitácora de sesiones. |
Declaración de veracidadSe le pedirá declarar que la información entregada es veraz y conforme a las normas de NetPay. Sus respuestas quedan registradas y se utilizan como referencia en la atención de casos productivos.
6. Puntos que se validan de su sistema
Antes de iniciar las pruebas con la terminal, NetPay le pedirá por escrito cómo resolvió una serie de puntos. No son preguntas de opinión: cada una tiene un resultado esperado con el que se contrasta su respuesta. El listado completo, ya filtrado para su integración, está en el apartado 9.
Dos precisiones aplican a los tres canales por igual y conviene leerlas antes de contestar.
Alcance de los registros solicitadosNo se solicitan los registros que la terminal envía a soporte ante una falla. La certificación revisa los registros de su punto de venta, y estos deben acreditar que su sistema recibe la respuesta completa y sin alteraciones: sin filtrar campos, sin descartar aquellos que actualmente no utiliza y sin truncarla al almacenarla. Según su canal, la respuesta se recibe por el webhook (API), por la librería
.aar(SDK) o por la.dll(COM); en los tres casos debe registrarse íntegra antes de que su sistema realice cualquier procesamiento sobre ella.El motivo es operativo: ante un caso de soporte productivo, la primera comparación que se realiza es entre lo que NetPay envió y lo que su sistema registró. Si el registro se encuentra truncado, esa comparación no es posible.
Las páginas que documentan cada uno de estos puntos son las mismas que se listan en el apartado 3, ordenadas por canal. Si al responder alguna de las preguntas necesita revisar la referencia, ese es el índice a consultar.
7. Reglas transversales que su sistema debe cumplir
Estas reglas se repiten a lo largo del cuestionario y de varios escenarios. Conviene resolverlas desde el principio, ya que cada una de ellas afecta a un bloque completo de la certificación.
Tiempos de espera
| Dónde | Lo que se espera de su sistema |
|---|---|
| Backend | Un webhook, o hilos que permanezcan a la espera de la respuesta. Si en su lugar utiliza un temporizador, debe ser de 3 minutos para venta normal y 5 minutos para venta con cashback, con un intervalo que consulte de forma continua si la respuesta ya llegó. |
| Frontend | Un indicador de carga que permanezca en espera. Si utiliza un temporizador, los mismos 3 y 5 minutos, o bien espera sin límite de tiempo. Si el usuario completa la transacción antes, su sistema debe recibir la respuesta antes de que expire esa espera. |
| SDK | Los métodos nativos onActivityResult o registerForActivityResult(). Si en su lugar utiliza un temporizador, aplican los mismos tiempos. |
| COM | El intervalo con el que consulta getResponse debe estar entre 500 ms y 2 000 ms, y el tiempo total de espera recomendado es de 3 minutos como mínimo. |
Bloqueo de multi-instancias
Su sistema no debe permitir enviar dos ventas al mismo tiempo: tras el primer envío, el control debe quedar bloqueado hasta recibir la respuesta, y la operación no debe generar ventas duplicadas. La misma regla aplica a la cancelación: pulsar el botón varias veces seguidas no debe producir intentos duplicados.
El campo con el que se valida el resultado
responseCode con valor 00 indica transacción aprobada; cualquier otro valor representa un error o una declinación. En SDK también es válido el campo success. El texto impreso en el ticket no es una fuente válida para determinar el resultado.
Cancelación
Debe realizarse el mismo día de la venta y, como referencia, antes de las 20:00 hora de Ciudad de México.
Restricciones de red en sus sucursales
El firewall de sus sucursales puede bloquear las transaccionesEs una causa frecuente de fallas que aparecen solo en algunas sucursales y no en el ambiente de desarrollo. Si su red aplica controles de acceso o filtrado de tráfico, deben habilitarse las URLs, los puertos y las direcciones IP que utiliza la comunicación con NetPay, tanto en pruebas como en producción.
Por tratarse de información sensible, el listado vigente se mantiene en un documento de acceso restringido: matriz de URLs y puertos. Al abrirlo se le pedirá solicitar acceso; la autorización la otorga el equipo de integraciones. Conviene aplicar la configuración antes de la sesión de certificación, ya que una restricción de red no detectada a tiempo detiene la ejecución de los escenarios.
Autenticación · solo en integraciones por API
El token de acceso debe regenerarse de forma periódica —por ejemplo, cada 6 u 11 horas—. El refresh token no está disponible actualmente, por lo que no debe utilizarse ni implementarse.
Desconexión del cable · solo en integraciones por COM
El método depende de la versión de la DLL: con la 1.5.5.2 el puerto COM asignado se valida con findPortByDescription(); a partir de la 1.7.0 se dispone de testConnection(). Es lo que se comprueba en el escenario de desconexión de cable, por lo que le sugerimos confirmar por correo con el equipo de integraciones qué versión corresponde a su proyecto.
Recuperación de una venta por orderId
orderIdCuando recupere mediante la reimpresión por orderId una venta que no llegó a su sistema, ese valor debe tomarse del ticket físico impreso, nunca de otra fuente.
8. Escenarios que deberá ejecutar
Cada escenario se ejecuta en la terminal y se respalda con la captura del ticket y el JSON de respuesta de esa misma transacción.
Criterio de evaluación de cada escenario
flowchart TD
A["Consulta el escenario<br/>que le corresponde"] --> B["Ejecuta la prueba<br/>en la terminal"]
B --> C["Resguarda el ticket<br/>y el JSON"]
C --> D["Los entrega<br/>como evidencia"]
D --> E{"NetPay contrasta<br/>con lo esperado"}
E -->|"cumple"| F["Realizado"]
E -->|"parcial"| G["A<br/>Mejorar"]
E -->|"no<br/>existe"| H["No<br/>Implementado"]
E -->|"faltó<br/>material"| I["No<br/>realizado"]
Los cuatro estatus posibles no representan grados de una misma condición: dos se refieren al alcance de su sistema y dos a la ejecución de la prueba. De ahí la importancia de contar con todo el material antes de iniciar.
Niveles de obligatoriedad
| Nivel | Qué significa |
|---|---|
Obligatoria · Condición obligatoria. | Se ejecuta o se responde en todos los casos. Es indispensable para concluir la certificación. |
Obligatoria solo si aplica | Aplica únicamente si su sistema ofrece esa funcionalidad (MSI, propina, cancelación, NFC…). Si no la ofrece, se registra como No Implementado, y eso no impide cerrar la certificación. |
Recomendada · Recomendada. | No condiciona la certificación, aunque NetPay sugiere su ejecución. |
Opcional. | Su ejecución queda a criterio del comercio. |
Evidencia que debe entregar
Para cada escenario que así lo requiere, se adjunta:
- La captura del ticket impreso por la terminal.
- El JSON de respuesta recibido por su sistema.
Ambos elementos deben corresponder a la misma transacción. La discrepancia entre ellos —el ticket de una prueba acompañado del JSON de otra— es la observación más frecuente de todo el proceso.
Reversos, de implementación obligatoria
Un reverso se produce cuando la comunicación se interrumpe a mitad de una transacción. Aplica a los tres canales y su manejo mediante la reimpresión por folio es de implementación obligatoria. Es un flujo poco frecuente, pero conviene dejarlo resuelto durante la certificación: cuando está bien implementado, el propio sistema del comercio resuelve el caso sin necesidad de consultarlo con NetPay. Existen dos tipos, con comportamientos distintos: el automático, que la terminal resuelve por sí sola, y el manual, que necesita una transacción posterior para completarse.
Los pasos y los mensajes descritos en este bloque corresponden a terminales Pax. En Urovo y en Kozen el flujo de reversos puede diferir; le sugerimos confirmarlo con el equipo de integraciones si su terminal es de alguna de esas marcas.
flowchart TD
S["Venta en curso<br/>tarjeta y NIP"]
S --> P["Procesando<br/>Autorización"]
P -->|"se<br/>completa"| A["APROBADA"]
P -->|"se retira<br/>la tarjeta"| DEC["DECLINADA<br/>código 05"]
P -->|"se apaga<br/>la terminal"| SIN["SIN<br/>RESPUESTA"]
A --> AC["Reimpresión:<br/>Aprobada · C"]
DEC --> RC["Reimpresión:<br/>Reversada · RV"]
RC --> FIN1["Reverso automático<br/>concluido"]
SIN --> PC["Reimpresión:<br/>Pendiente · PRV"]
PC --> V2["Venta normal<br/>el mismo día"]
V2 --> RC2["Reimpresión:<br/>PRV pasa a RV"]
RC2 --> FIN2["Reverso manual<br/>concluido"]
classDef ok fill:#e8f5e9,stroke:#43a047,color:#1b5e20
classDef ko fill:#fff3e0,stroke:#fb8c00,color:#e65100
classDef nd fill:#ffebee,stroke:#e53935,color:#b71c1c
class A,AC,FIN1,FIN2,RC,RC2 ok
class DEC,PC ko
class SIN nd
Los tres desenlaces de una venta y el valor que devuelve la reimpresión por folio en cada uno. La rama central corresponde al reverso automático y la rama derecha al reverso manual: en esta última, la transacción permanece en «Pendiente por Reversar» hasta que una venta posterior del mismo día detona el reverso. Los pasos exactos para provocar cada rama se detallan a continuación.
Cómo reproducir cada escenario
Los pasos exactos están abajo. Despliéguelos cuando vaya a ejecutar las pruebas.
Pasos para reproducir el reverso automático
- Lance una venta por cualquier monto.
- Inserte la tarjeta para iniciar el flujo de autorización.
- Ingrese el NIP cuando la terminal lo solicite, pero no presione «Enviar».
- Presione el botón verde para continuar con la autorización, cuente dos segundos y retire la tarjeta de inmediato.
- Obtendrá una declinación por «Error de lectura» o «Error de conexión», acompañada de
responseCodecon valor05. - Su sistema debe poder reimprimir declinaciones, al menos para este tipo de casos.
- Reimprima el voucher de esa transacción: debe obtener el mensaje «Transacción Reversada».
Pasos para reproducir el reverso manual
- Lance una venta por cualquier monto.
- Inserte la tarjeta e ingrese el NIP, presionando el botón verde para continuar.
- Cuando la terminal solicite retirar la tarjeta, no la retire.
- Apague la terminal por completo. Puede hacerlo desde el botón de apagado o retirando la fuente de alimentación; lo importante es que el equipo quede sin energía en ese momento. Su punto de venta no recibirá respuesta alguna, y por eso debe estar preparado para reimprimir en estos escenarios.
- Con la terminal apagada, retire la tarjeta y vuelva a encenderla.
- Realice una reimpresión: obtendrá «Transacción Pendiente por Reversar», lo que indica que la venta aún no se ha reversado.
- Para forzar el reverso, lance una venta normal por cualquier monto y complete la autorización hasta obtener el voucher de venta. Esa transacción detona el reverso pendiente.
- Reimprima desde su punto de venta la transacción que quedó pendiente: ahora obtendrá «Transacción Reversada».
El voucher personalizado en los escenarios de reverso: son dos impresionesSi su integración emite su propio voucher, cada uno de estos escenarios produce dos tickets distintos, y ambos se entregan como evidencia.
1 · El de la venta declinada. Es la variante de declinación de su voucher, e incluye el
responseCodeoriginal —05o el que entregue la terminal para ese error— y el mensaje original del error en una línea.2 · El de la reimpresión por folio. Es un ticket aparte, con la leyenda
-----DUPLICADO-----cuandoisRePrintdevuelvetrue, y con el mensaje que entrega la reimpresión: «Transacción Reversada» o «Transacción Pendiente por Reversar».Sus campos son los de la tabla Revisión de ticket de Declinación de la hoja TICKET-PERSONALIZADO, que es una de las cuatro que se certifican.
Los escenarios que se ejecutan y se evalúan
| Escenario | Criterio de aprobación |
|---|---|
| Reverso automático | La declinación llega con responseCode 05 y el reverso se realiza de forma automática. |
| Reimpresión por folio del reverso automático | Mensaje «Transacción Reversada» y reprintModule con valor RV. |
| Reverso manual | La transacción queda en «Pendiente por reversar». |
| Reimpresión por folio del reverso manual | Mensaje «Transacción Pendiente por Reversar» y reprintModule con valor PRV. |
| Venta posterior al reverso manual | La nueva venta se aprueba y detona el reverso de la anterior. |
| Reimpresión por folio después del reverso | La transacción que estaba pendiente ya aparece como reversada: el mensaje cambia a «Transacción Reversada» y reprintModule pasa de PRV a RV. |
| Reimpresión por folio del reverso en Urovo CoreX · solo SDK en terminal Urovo | Además de RV, devuelve responseCode con valor R. |
| Voucher personalizado de la declinación | Solo si genera su propio voucher: se entregan los dos tickets descritos arriba, el de la venta declinada y el de la reimpresión. |
Los valores que devuelve la reimpresión por folio
Si almacena estos escenarios en su base de datos, los estatus de esas ventas deben actualizarse. El campo que debe consultar es reprintModule dentro del objeto JSON de respuesta, no responseCode:
| Valor | Significa |
|---|---|
C | Transacción aprobada |
V | Transacción cancelada |
D | Transacción declinada |
RV | Transacción reversada |
PRV | Pendiente por reversar: se requiere una transacción más en el mismo día |
En terminales Urovo con CoreX, la reimpresión posterior al reverso devuelve además responseCode con valor R. En el escenario de reverso automático sobre CoreX en integraciones SDK, la respuesta llega con message «Transacción Reversada», reprintModule con valor RV y responseCode con valor R40.
La terminal es la fuente de verdadAnte cualquier discrepancia de estatus entre NetPay Manager y la terminal, debe prevalecer el resultado de la reimpresión por folio en la terminal. Ninguna otra consulta es una fuente válida para determinar el estatus de un reverso.
Check-in y check-out, si su integración lo incluye
Aplica únicamente a las modalidades checkinAPI-checkoutAPI, checkinSDK-checkoutAPI y checkinCOM-checkoutAPI. Si la suya no es una de ellas, puede omitir este apartado.
Cómo funcionan el check-in y el check-out
El check-in se envía desde su propio canal —API, SDK o COM— con la misma petición de venta de siempre, activando la bandera checkIn en true. Lo procesa la terminal como cualquier venta, así que imprime el ticket oficial de NetPay, y la respuesta llega por su vía habitual: el webhook en API, el onActivityResult en SDK. En esa respuesta, transType devuelve PRE y preAuth devuelve 1.
El check-out es distinto: se consume en una API independiente de la terminal. El equipo no interviene, no imprime nada, y por eso el comprobante del cierre se obtiene con la reimpresión por folio.
flowchart TD
A["Check-in desde su canal<br/>checkIn: true"] --> B["La terminal procesa<br/>la preautorización"]
B --> C["Imprime el ticket oficial<br/>de NetPay"]
C --> D["Respuesta con transType PRE<br/>y transactionId"]
D --> E["Check-out por la API CheckIO<br/>con storeId, transactionId<br/>y totalAmount"]
E --> F["La API confirma el cierre<br/>sin imprimir ticket"]
F --> G["Reimpresión por folio<br/>para obtener el comprobante"]
classDef term fill:#e8f0fe,stroke:#4a6fa5,color:#12233d
classDef api fill:#fff4e5,stroke:#c98a2e,color:#4a3208
class A,B,C,D,G term
class E,F apiEn azul, lo que pasa por la terminal; en ámbar, lo que ocurre fuera de ella. El check-out siempre es por API, sea cual sea el canal del check-in, y es el único paso que no deja ticket impreso.
El campo que enlaza las dos operaciones estransactionIdNo es el folio ni el
orderId. EltransactionIdviene en la respuesta del check-in y es el valor con el que después se cierra el check-out, así que su sistema debe guardarlo. El cuerpo del check-out lleva únicamentestoreId,transactionIdytotalAmount.
Lo que responde la API de check-out
El servicio se autentica con una api-key que se envía en el encabezado Authorization. Es única por COMPANY y solo sirve para los STORE que pertenecen a esa COMPANY; NetPay entrega la URL y la clave por correo, distintas en pruebas y en producción.
| Respuesta | Qué significa |
|---|---|
202 · code 00 | Cierre aprobado. Devuelve el transactionId de la nueva transacción. |
202 · code 05 | Ese check-in ya tenía un check-out: no se puede volver a cerrar. |
409 · code 04 | No se encontró el check-in con ese transactionId. |
409 · code 06 | El StoreId no tiene habilitada la operativa de check-in y check-out. |
409 · code 08 | Error de NetPay: debe reportarse al equipo de soporte. |
409 · code 09 | El monto excede lo permitido para cerrar. |
401 · sin code | La api-key no tiene permisos sobre ese StoreId. |
Un200 OKsin contenido no es un cierre exitosoCuando la petición viene mal formada, el servicio responde
200pero con el cuerpo vacío, y su sistema no debe interpretarlo como una transacción aprobada. Conviene validar que el JSON sea sintácticamente correcto, questoreId,transactionIdytotalAmountestén presentes, y que el tipo de dato de cada uno sea el esperado.
Un check-out con monto $0 actúa como una cancelaciónNo es un error del servicio: se acepta, y en NetPay Manager la operación queda registrada como un check-out con monto $0. Le sugerimos que su sistema impida enviarlo de forma accidental —por un campo vacío o un total sin calcular—, ya que el efecto es cerrar la preautorización sin cobro.
Sobre el monto del check-outEl límite depende del giro del comercio. En giros gasolineros no se permite cerrar por encima del 100 % del monto preautorizado. Para el resto de los giros, la operativa admite hasta el monto original más un 20 %, y un intento superior se rechaza con el código
09.A efectos de la certificación, conviene tener presente que el ambiente de pruebas hoy solo permite validar hasta el 100 %. Si su caso requiere cerrar por encima de ese porcentaje, le sugerimos confirmarlo por correo con el equipo de integraciones antes de la sesión.
La validación no debe quedar únicamente del lado de NetPay: el sistema del comercio también debe impedir el envío de un monto superior al permitido.
Las referencias publicadasIntegración Checkin API / Checkout API para el check-in por API, e Integración de Check-in SDK para el check-in por SDK. El check-in por COM existe como funcionalidad, pero todavía no cuenta con una página propia: si su proyecto lo requiere, puede solicitarlo por correo al equipo de integraciones.
9. Su alcance según su integración
Los apartados anteriores explican qué se valida y por qué. Este le dice cuánto le corresponde a usted. Es el mismo contenido que recibirá dentro de su matriz de pruebas, aquí sin filtrar.
Cada pestaña muestra el alcance de una integración estándar en ese canal. Si además utiliza OAuth, Smart Accounts, cashback, MDB IM30 o check-in y check-out, la variante correspondiente detalla únicamente lo que cambia respecto de esa base.
Una integración API estándar comprende 41 preguntas y 43 escenarios, de los cuales 22 son obligatorios. Si su integración incluye alguna de las variantes que aparecen abajo, despliéguela para ver qué cambia.
Preguntas que se responden siempre
Son 32 preguntas y todas son de respuesta obligatoria.
Autenticación y ambientes
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Cómo es el proceso de login del sistema del comercio? | El login no debe depender de la generación del token de NetPay, ni estar vinculado a un solo storeId de la terminal. |
| ¿Su sistema permite cambiar entre diversos números de series de terminales y storeIds a enviar? | En producción, cada terminal tendrá un storeId único, por lo que el sistema debe poder cambiar estos valores dinámicamente. |
| ¿Cómo manejarán el cambio de ambiente entre pruebas y producción? | El sistema debe poder cambiar entre ambiente de pruebas y producción (por ejemplo, mediante variables de entorno para la URL base, el path y el body del request del token). |
| Proceso de generación del token de NetPay | El token debe regenerarse periódicamente (por ejemplo, cada 6 u 11 horas). El refresh token no está disponible actualmente, por lo que no debe utilizarse ni implementarse. |
Webhook, red y códigos HTTP
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Su URL de regreso / API / Webhook / Servicio Web donde reciben la respuesta de la transacción se encuentra sobre un servidor local? | Actualmente no está permitido usar http por seguridad y restricciones de Android: debe usarse https de forma obligatoria. Además, el webhook debe contar con SSL conforme a los certificados de confianza de la versión de Android de la terminal. |
| ¿Su sistema utiliza un webhook o API pública para recibir respuestas de la terminal y transferir esa información a un servidor local? | Describir cómo manejan errores de comunicación entre el webhook/API y el servidor local. Ejemplo: si el webhook no logra conectar con el servidor local, debe notificarlo a la terminal en el response body. |
| ¿El backend cuenta con un timer para recibir la respuesta? | 1) Puede usarse un webhook o threads que permanezcan en espera de la respuesta. 2) Si se usa un timer, debe ser de 3 minutos para venta normal y 5 minutos para venta con cashback, con un intervalo que consulte constantemente si la respuesta ya llegó. |
| ¿En qué dispositivos se utilizará el sistema o aplicación? | Especificar si el sistema operará en computadoras con Windows, dispositivos Android, terminales NetPay, etc. |
| ¿Utilizarán VPN o alguna otra aplicación adicional en la terminal? | Indicar si se utilizará una VPN u otra aplicación adicional en la terminal. |
| ¿En sus sucursales utilizarán controles de acceso y filtrado de tráfico, como un firewall? | Se debe especificar cualquier restricción que impida que NetPay se comunique al 100% con su sistema. El listado vigente de URLs, puertos y direcciones IP se solicita al equipo de integraciones. |
| ¿Manejan correctamente los códigos HTTP en su webhook/API? | 1) Códigos 2xx: éxito (recibido, entendido y aceptado). 2) Códigos 3xx: redirección (se requiere una acción adicional). 3) Códigos 4xx: error del cliente (petición incorrecta o no encontrada). 4) Códigos 5xx: error del servidor. |
Tiempos de espera
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿El frontend maneja un timer al recibir la respuesta? | 1) Debe usarse un loading que permanezca en espera de la respuesta. 2) Si se usa un timer en la interfaz, debe ser de 3 minutos para venta normal y 5 minutos para venta con cashback, o permanecer en espera sin límite de tiempo. 3) Si el usuario completa la transacción en menos tiempo, el sistema debe recibir la respuesta antes de que termine la espera. |
Folio, trazabilidad y registros
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Crean un PRE-REGISTRO ante una falta de respuesta de la terminal? | Describir si generan un pre-registro en su sistema cuando no reciben respuesta de la terminal. Usar un folio único permite recuperar transacciones pendientes o perdidas mediante la reimpresión por folio. |
| ¿Su folio se envía en el campo folioNumber al momento de enviar la venta, o se genera después de procesada la venta? | Es obligatorio enviar en el campo folioNumber un identificador único generado por su sistema antes de enviar la venta. Se admite que su folio definitivo se genere después —por ejemplo, al facturar—, pero en ese caso debe enviar de todas formas un identificador propio previo que permita vincularla después con la transacción de NetPay. Sin ese identificador previo no es posible consultar la transacción por folio ni conciliarla. |
| ¿Cuál es la estructura de su folio? ¿Cuentan con un prefijo/sufijo? | Debe indicarse la estructura del folio; se recomienda incluir un prefijo o sufijo. No se recomienda usar solo números consecutivos. |
| ¿Su folio es único por sucursal? | Debe ser completamente único: no debe repetirse por sucursal ni por ninguna otra condición. |
| ¿Su folio se duplica en declinados? | Es obligatorio que el folio permanezca único también en las declinaciones. Si se duplica, la reimpresión por folio deja de ser una vía fiable para consultar o recuperar el estatus, que es justamente el mecanismo con el que se resuelven los reversos. |
| Ante una transacción perdida, ¿usan la reimpresión por folio u orderId solo como consulta, o la automatizan para recuperar y guardar la venta si no existe en su sistema? | Debe responderse indicando si se usa folio u orderId. Esta operativa ayuda a recuperar transacciones perdidas por causas externas, como desconexión de cable, caídas del sistema o intermitencias. |
| ¿Ejecutan AUTOMÁTICAMENTE en la terminal la REIMPRESIÓN por FOLIO al recibir una DECLINACIÓN? | Especificar si utilizan la reimpresión por folio como una doble validación de estatus; esta práctica beneficia principalmente en los reversos. |
| ¿Se controlan los estatus finales de los REVERSOS por medio de la REIMPRESIÓN por FOLIO? | Los reversos se generan por cortes de comunicación, lo que puede provocar incongruencias en el estatus de las transacciones entre Manager y la terminal. Por ello, debe darse total prioridad a lo que indique la terminal y consultarse el estatus final mediante la reimpresión por folio. |
| ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus RECHAZADA / DECLINADA? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus APROBADO? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus REVERSADA o PENDIENTE POR REVERSAR? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una REIMPRESIÓN de NetPay? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una CANCELACIÓN DE VENTA de NetPay? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
Resultado de la transacción y base de datos
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Qué campo utilizan para validar una transacción exitosa? | Deben utilizar el campo responseCode, donde el valor 00 indica una transacción aprobada y cualquier valor diferente representa un error o declinación. En SDK también es válido usar el campo success. |
| ¿Almacenan declinaciones en su base de datos? | Es obligatorio almacenar las declinaciones y rechazos en su base de datos. Permite a los usuarios finales identificar el estatus de inmediato, sin levantar un caso de soporte, y es el registro con el que se contrasta un reverso posterior. |
| ¿Confirman que almacenan correctamente en su sistema los valores recibidos por parte de NetPay? | Es responsabilidad del usuario validar que los valores coincidan y se almacenen correctamente en su sistema. NetPay no se hará responsable por incidentes derivados de esta situación; esta respuesta quedará registrada como referencia para futuros casos de soporte productivo. |
Recuperación, reversos y multi-instancias
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Su sistema evita multi-instancias al presionar los botones de venta, reimpresión y cancelación? | Debe bloquearse el botón para evitar enviar múltiples procesos al mismo tiempo. Adjuntar un fragmento de código que muestre el bloqueo del botón, el bloqueo de la interfaz, un diálogo, o cualquier otro mecanismo que evite la multi-instancia. |
Voucher y ticket personalizado
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Mantienen activo el voucher oficial de NetPay? | Esta pregunta se refiere al uso de DisablePrintAnimation. Si se deshabilita (valor true), primero debe certificarse el ticket personalizado propio; el formato aparece al seleccionar 'No' en esta pregunta. Condiciones para certificar ticket personalizado: 1) Integración SDK: versión 1.1.9 o superior. 2) Integración COM: versión 1.6.0 o superior. 3) Terminal IM30: es obligatorio certificar ticket personalizado. 4) Toda integración con ticket personalizado debe ser Smart PinPad 2.0 o superior. |
| ¿Imprimen algún ticket adicional y en impresora propia? | Indicar si el ticket adicional se imprime en una impresora externa propia del comercio. |
Otros
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Implementaron alguna API o funcionalidad nueva y que esté relacionada con NetPay? | Describir si se les proporcionó alguna API o funcionalidad nueva de NetPay de la que el equipo de integraciones no tenga contexto. |
Preguntas condicionadas
Estas solo aplican en los casos que se indican; puede desplegar únicamente las que le correspondan.
Print-Ticket y devoluciones · 6 preguntas, solo si declaró esas APIs adicionales
La referencia de la API de Devoluciones es 11. API Devoluciones; no aparece en el índice público y se consulta por enlace directo. La consulta de Print-Ticket se emplea únicamente para obtener el orderId largo que esa API requiere: no es una fuente válida para verificar el estatus de un reverso.
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Cuál es el proceso de uso de la API Print-Ticket? | Debe usarse únicamente de forma informativa, para consultar el transactionId o el orderId del adquirente. No se recomienda utilizarla para conocer el estatus de reversos. |
| ¿Se realizó el proceso de certificación de ticket personalizado? | Es importante validar la opción correcta: 1) Si es la primera vez, es obligatorio certificar primero el ticket personalizado. 2) Si ya se realizó previamente con NetPay, puede omitirse el proceso. 3) Si es necesario, o hay ajustes importantes, debe repetirse el proceso. |
| ¿Cómo realizan el proceso de devolución? | Indicar si lo realizan desde su sistema y si es posterior al mismo día de la venta. Recordatorio: 1) La cancelación se realiza desde la terminal el mismo día, antes de las 8pm hora CDMX. 2) La devolución aplica cuando el límite de la cancelación ya venció. |
| ¿Utilizas la API Print-Ticket para una devolución? | La API Print-Ticket es indispensable para utilizar la API de devoluciones. No debe usarse para consultar el estatus de transacciones, ya que puede traer información distinta en reversos (transacciones con cortes de comunicación). |
| ¿Toman en cuenta la diferencia entre el campo orderId de la API Print-Ticket y el campo orderId devuelto en la respuesta de la venta de la terminal? | La terminal devuelve, en la venta, un orderId más corto. La API Print-Ticket devuelve un orderId más largo, el cual es obligatorio utilizar para la API de devoluciones. |
| ¿Cuál es el campo y valor que evalúan para considerar una devolución exitosa? | Para una devolución completa o parcial, debe ser el campo code con valor 02. |
Ticket propio y kioscos · 1 pregunta, solo si aplica a su caso
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Su sistema se instalará en algún kiosco autoatendido? | Si es autoatendido, se recomienda una de las siguientes opciones: 1) Esperar la nueva versión de Smart PinPad (versión pendiente). 2) Utilizar la terminal IM30, enfocada en integraciones de autoservicio y kioscos; si se usa esta terminal, debe certificarse la generación de su propio ticket personalizado. 3) Deshabilitar la impresión del ticket predeterminado (disablePrintAnimation), lo cual implica certificar y generar su propio ticket personalizado. |
Preguntas recomendadas y opcionales · 2 preguntas
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Se implementó el campo trazabilidad (traceability)? | Es un objeto que puede contener otros objetos anidados; funciona únicamente como medio de comunicación y sus valores no se almacenan en NetPay. |
| ¿Tienen implementados logs en su punto de venta? | Especificar si manejan logs internos, locales o en servidor, y si registran excepciones, errores y/o peticiones. |
Escenarios obligatorios
Estos 22 escenarios se ejecutan siempre, sin importar qué funcionalidades tenga implementadas.
Venta en mostrador
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta normal con NIP (tarjeta de débito) | Tarjeta Débito - NIP | La transacción de venta se debe realizar correctamente. | Obligatoria |
| Venta normal con NIP (tarjeta de crédito) con multi-instancias | Tarjeta Crédito-NIP | El sistema no debe permitir enviar dos ventas al mismo tiempo: debe bloquear el botón después de la primera. La transacción debe completarse exitosamente y sin generar ventas duplicadas. | Obligatoria |
| Venta normal con firma autógrafa (tarjeta sin NIP) | 1.- Tarjeta con CHIP sin NIP 2.- Cualquier tarjeta sin NIP 3.- Tarjeta CONTACTLESS MASTERCARD (monto mayor a $1,000) | Al insertar la tarjeta, la terminal debe pedir firma autógrafa (firma en pantalla) y la venta debe completarse correctamente. Si no se cuenta con tarjeta sin NIP, puede usarse en su lugar una tarjeta CONTACTLESS MASTERCARD con monto mayor a $1,000. | Obligatoria |
| Venta normal por CONTACTLESS MASTERCARD (Monto Mayor +$10,001) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina (por ejemplo, por restricción del banco emisor), la terminal debe mostrar: con MASTERCARD, "ERROR AL LEER TARJETA"; con VISA, "TARJETA NO SOPORTADA". | Obligatoria |
| Venta normal por CONTACTLESS MASTERCARD (Monto Menor entre $1 y $999) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Hoy en día debe quedar APROBADA, aunque la decisión final siempre depende del banco emisor. | Obligatoria |
| Venta normal por CONTACTLESS VISA (Monto Mayor +$1,200) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina, la terminal debe mostrar “INTENTE OTRA INTERFAZ”. | Obligatoria |
| Venta normal por CONTACTLESS VISA (Monto Menor entre $1 y $999) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Hoy en día debe quedar APROBADA, aunque la decisión final siempre depende del banco emisor. | Obligatoria |
| Cancelado por el usuario | Cualquier Tarjeta | Enviar una venta sin insertar la tarjeta y cancelar/omitir la operación desde la terminal. El sistema debe devolver el mensaje "Cancelado por el usuario". | Obligatoria |
| Regla de fraude | Cualquier Tarjeta | En ambiente de PRUEBAS: enviar una venta con monto MAYOR a $12,000 para simular una declinación. Nota: en PRODUCCIÓN la regla real se activa así — mismo monto y misma tarjeta el mismo día (declina en la segunda transacción), o diferente monto y misma tarjeta el mismo día (declina en la tercera transacción). | Obligatoria |
Reimpresión y recuperación
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta esperando 3min en segundo voucher oficial de venta NetPay | Cualquier Tarjeta | Pasos: 1) Iniciar un temporizador de 3 minutos. 2) Enviar una venta e insertar la tarjeta. 3) La transacción debe aprobarse e imprimir el primer voucher oficial de NetPay. 4) El segundo voucher oficial debe quedar en espera. 5) Antes de que termine el temporizador, finalizar la venta — debe recibirse la respuesta exitosamente. Nota: si el voucher oficial de NetPay está desactivado, el tiempo de espera puede ser bastante menor a 3 minutos. | Obligatoria |
| Venta esperando más del tiempo límite del sistema durante el segundo voucher oficial de NetPay (+4min) | Cualquier Tarjeta | Pasos: 1) Iniciar un temporizador de 4 minutos. 2) Enviar una venta e insertar la tarjeta. 3) La transacción debe aprobarse e imprimir el primer voucher oficial de NetPay. 4) El segundo ticket debe quedar en espera. 5) Antes de que termine el temporizador, finalizar la venta y observar qué hace el sistema; si no llega respuesta, el comercio debe tener definido cómo manejarlo. Nota: si el voucher oficial está desactivado, esta prueba no aplica. | Obligatoria |
Reversos
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| *Reverso automático (Reversada): venta retirando la tarjeta antes de aprobarse | Tarjeta con NIP | Pasos: 1) Enviar una venta e ingresar la tarjeta y el NIP. 2) Avanzar hasta que aparezca la pantalla "Procesando Autorización". 3) Después de 1-2 segundos, retirar la tarjeta antes de que se apruebe la venta. Resultado esperado: El reverso se realiza automáticamente. El estatus final (Reversada o RV) solo puede consultarse mediante reimpresión por folio o en NetPay Manager. | Obligatoria |
| Reimpresión por folio del reverso automático | — | Debe regresar el mensaje "Transacción Reversada" y el campo reprintModule con valor RV. | Obligatoria |
| *Reverso manual (Pendiente por reversar): venta apagando la terminal o retirando la batería | Cualquier Tarjeta | Pasos: 1) Enviar la venta e ingresar la tarjeta y el NIP. 2) Esperar a que aparezca el mensaje "Retire la tarjeta" en pantalla. 3) Apagar la terminal (por botón o retirando la batería) justo en ese momento. Resultado esperado: La terminal se apaga a mitad de la transacción y no llega respuesta; en NetPay Manager la transacción queda con estatus APROBADO. Importante: si la terminal nunca confirmó que la venta se aprobó, no debe darse por aprobada — se reversará automáticamente el mismo día en la siguiente transacción. Lo que indique la terminal tiene siempre prioridad sobre cualquier otro medio de consulta. | Obligatoria |
| Reimpresión por folio del reverso manual (prueba anterior) | Cualquier Tarjeta | Debe regresar el mensaje "Transacción Pendiente Por Reversar" y el campo reprintModule con valor PRV, indicando que se necesita una siguiente transacción el mismo día para que se reverse. | Obligatoria |
| Venta posterior al reverso manual | Cualquier Tarjeta | Esta venta debe aprobarse correctamente y, al hacerlo, provocar internamente que la transacción anterior se reverse. La respuesta de esa venta anterior ya reversada (RV) solo puede consultarse por reimpresión por folio o en NetPay Manager, y únicamente después de esta nueva transacción. | Obligatoria |
| Reimpresión por folio del reverso manual | — | Debe regresar el mensaje "Transacción Reversada" y el campo reprintModule con valor RV. | Obligatoria |
Cancelación y devolución
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Devolución completa de venta | — | Debe ejecutarse desde la API de devoluciones y recibir el código 02, indicando que el proceso fue exitoso. | Obligatoria |
| Respuesta del Print-Ticket de la devolución completa | — | Debe registrarse la respuesta obtenida de la API Print-Ticket. | Obligatoria |
| Devolución parcial de venta | — | Debe ejecutarse desde la API de devoluciones con un monto menor al de la venta original, y recibir el código 02, indicando que el proceso fue exitoso. | Obligatoria |
| Respuesta del Print-Ticket de la devolución parcial | — | Debe registrarse la respuesta obtenida de la API Print-Ticket. | Obligatoria |
| Error de devolución | — | Puede simularse con cualquiera de los siguientes casos: 1) orderId incorrecto durante la devolución. 2) Monto mayor al de la venta original. 3) Doble devolución consecutiva. 4) Request incompleto en la devolución. | Obligatoria |
Funcionalidades opcionales
Los 21 escenarios restantes solo aplican si su sistema ofrece esa funcionalidad; puede desplegar únicamente los que le correspondan.
Venta en mostrador · 2 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta parcial con varias formas de pago (Parte 1) | Tarjeta de Crédito | Enviar 1 venta pagada con 2 tarjetas distintas (pago dividido). Ejemplo: de una venta de $500, la primera tarjeta paga $200 (el resto se cobra en la siguiente prueba). Debe completarse exitosamente y sin folios duplicados. | Si aplica |
| Venta parcial con varias formas de pago (Parte 2) | Tarjeta de Débito | Continuación del ejemplo anterior: cobrar el monto restante ($300) de la venta de $500. Debe completarse exitosamente y sin folios duplicados. | Si aplica |
Meses sin intereses y propina · 9 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta a 3 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 6 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 9 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 12 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 18 Meses Sin Intereses (No aplica Amex) | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta a Meses Sin Intereses con tarjeta de débito | Tarjeta Débito | Con tarjeta de débito, la promoción a meses sin intereses no aplica: la prueba debe mostrar el mensaje “PROMOCIÓN NO VÁLIDA PARA EL TIPO DE TARJETA”. | Si aplica |
| Venta con propina (pre-propina DESACTIVADA en menú oculto) | Cualquier Tarjeta | La venta debe completarse correctamente. Con la pre-propina desactivada, el monto y la propina se muestran juntos (sin separar) en el voucher oficial de NetPay. La propina por defecto no debe superar el 25% del monto de venta. | Si aplica |
| Venta con propina (pre-propina ACTIVADA en menú oculto) | Cualquier Tarjeta | La venta debe completarse correctamente. Con la pre-propina activada, el monto y la propina se muestran por separado en el voucher oficial de NetPay. La propina por defecto no debe superar el 25% del monto de venta. | Si aplica |
| Venta con Pantalla Propina | Cualquier Tarjeta | En la terminal debe aparecer una pantalla para elegir el porcentaje de propina. La venta debe completarse exitosamente y la propina por defecto no debe superar el 25% del monto de venta. | Si aplica |
Reimpresión y recuperación · 5 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Reimpresión de una venta aprobada (orderId) con multi-instancias | — | Al guardar una transacción, el sistema debe poder reimprimirla usando el ORDERID de una venta existente, directo desde la terminal. Si se presiona el botón varias veces seguidas, debe bloquearse para impedir reimpresiones duplicadas. | Recomendada |
| Reimpresión de una venta aprobada o declinada (folioId) con multi-instancias | — | Al guardar una transacción, el sistema debe poder reimprimirla usando el FOLIO de una venta existente, directo desde la terminal. Si se presiona el botón varias veces seguidas, debe bloquearse para impedir reimpresiones duplicadas. | Recomendada |
| Recuperación manual de una transacción aprobada con reimpresión por orderId | — | Este escenario simula que una venta APROBADA no llegó al sistema del comercio. Si el comercio tiene una forma de capturar el orderId manualmente, debe usarlo para recuperar la información (vía reimpresión por ORDERID) y guardarla automáticamente. Importante: el orderId debe tomarse solo del ticket físico impreso, nunca de otra fuente. | Recomendada |
| Recuperación manual de una transacción aprobada con reimpresión por folio | — | Este escenario simula que una venta APROBADA no llegó al sistema del comercio. Debe recuperarse la información vía reimpresión por FOLIO y guardarse automáticamente. También es válido tener un PRE-REGISTRO que recupere esta información por el mismo medio. | Recomendada |
| Reimpresión de una venta cancelada | — | La operación debe reimprimir exitosamente y debe indicar que es el duplicado de una cancelación. | Si aplica |
Reversos · 3 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Print-Ticket del reverso automático | — | No se recomienda usar esta consulta para verificar el estatus de reversos. | Recomendada |
| Print-Ticket del reverso manual (antes de la siguiente transacción) | — | No se recomienda usar esta consulta para verificar el estatus PRV (Pendiente Por Reversar). | Recomendada |
| Print-Ticket del reverso manual (después de la siguiente transacción) | — | No se recomienda usar esta consulta para verificar el estatus de reversos. | Recomendada |
Cancelación y devolución · 2 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Cancelación de una venta con multi-instancias | — | La cancelación debe hacerse el mismo día de la venta, antes de las 8pm hora CDMX (como referencia). Presionar el botón varias veces seguidas para comprobar que el sistema bloquea intentos duplicados. | Si aplica |
| Evitar la cancelación de una venta cancelada desde el POS | — | El sistema del comercio debe rechazar esta operación (no permitir cancelar una venta ya cancelada desde el POS) y debe adjuntarse una captura de pantalla que lo demuestre. | Si aplica |
Variantes de este canal
Variante con OAuth 1.0
Su alcance total pasa a 45 preguntas y 43 escenarios, de los cuales 22 son obligatorios.
Se añaden 4 preguntas
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| URL de regreso OAuth en Smart PinPad (PRUEBAS) | Generado por NetPay con sus credenciales del comercio. |
| URL OAuth del comercio a dar de alta en NetPay (PRUEBAS) | Generado por el comercio. |
| URL de regreso OAuth en Smart PinPad (PRODUCCIÓN) | Generado por NetPay con sus credenciales del comercio. |
| URL OAuth del comercio a dar de alta en NetPay (PRODUCCIÓN) | Generado por el comercio. |
Variante con OAuth 2.0
Su alcance total pasa a 45 preguntas y 43 escenarios, de los cuales 22 son obligatorios.
Se añaden 4 preguntas
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| URL de regreso OAuth en Smart PinPad (PRUEBAS) | Generado por NetPay con sus credenciales del comercio. |
| URL OAuth del comercio a dar de alta en NetPay (PRUEBAS) | Generado por el comercio. |
| URL de regreso OAuth en Smart PinPad (PRODUCCIÓN) | Generado por NetPay con sus credenciales del comercio. |
| URL OAuth del comercio a dar de alta en NetPay (PRODUCCIÓN) | Generado por el comercio. |
Variante con Smart Accounts
Su alcance total pasa a 40 preguntas y 33 escenarios, de los cuales 27 son obligatorios.
Se añade 1 pregunta
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Envían siempre la bandera isSmartAccounts con valor true en la venta? | Enviar isSmartAccounts con valor false, vacío, nulo, o no enviarlo, puede afectar la integración: siempre debe enviarse con valor true. Los storeIds deben pertenecer a un grupo Smart Accounts para funcionar, y solo pueden intercambiarse entre storeIds del mismo grupo sobre la misma terminal enlazada. |
Se añaden 20 escenarios
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Realizar venta con SmartAccounts (StoreId 1) | Tarjeta de Débito con NIP | La venta debe realizarse correctamente, con el ticket y la respuesta mostrando el storeId 1. | Obligatoria |
| Realizar reimpresión por folio con SmartAccounts (StoreId 1) | — | La reimpresión debe realizarse correctamente. | Obligatoria |
| Realizar reimpresión por orderId con SmartAccounts (StoreId 1) | — | La reimpresión debe realizarse correctamente. | Obligatoria |
| Realizar cancelación con SmartAccounts (StoreId 1) | — | La cancelación debe realizarse correctamente. | Obligatoria |
| Realizar venta con SmartAccounts (StoreId 2) | Tarjeta SIN NIP | La venta debe realizarse correctamente, con el ticket y la respuesta mostrando el storeId 2. | Obligatoria |
| Realizar reimpresión por folio con SmartAccounts (StoreId 2) | — | La reimpresión debe realizarse correctamente. | Obligatoria |
| Realizar reimpresión por orderId con SmartAccounts (StoreId 2) | — | La reimpresión debe realizarse correctamente. | Obligatoria |
| Realizar cancelación con SmartAccounts (StoreId 2) | — | La cancelación debe realizarse correctamente. | Obligatoria |
| Venta a 3 Meses Sin Intereses (Smart Accounts StoreId 1) | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta a 6 Meses Sin Intereses (Smart Accounts StoreId 2) | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta a 9 Meses Sin Intereses (Smart Accounts StoreId 1) | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta a 12 Meses Sin Intereses (Smart Accounts StoreId 2) | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta a 18 Meses Sin Intereses (Smart Accounts StoreId 1) | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta a Meses Sin Intereses con tarjeta de débito (Smart Accounts) | Tarjeta Débito | Con tarjeta de débito, la promoción a meses sin intereses no aplica: la prueba debe mostrar el mensaje "PROMOCIÓN NO VÁLIDA PARA EL TIPO DE TARJETA". | Si aplica |
| Venta Smart Accounts por CONTACTLESS MASTERCARD (Monto Mayor +$10,001) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina (por ejemplo, por restricción del banco emisor), debe mostrarse: con MASTERCARD, "ERROR AL LEER TARJETA"; con VISA, "TARJETA NO SOPORTADA". | Obligatoria |
| Venta Smart Accounts por CONTACTLESS MASTERCARD (Monto Menor entre $1 y $999) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Hoy en día debe quedar APROBADA, aunque la decisión final siempre depende del banco emisor. | Obligatoria |
| Venta Smart Accounts por CONTACTLESS VISA (Monto Mayor +$1,200) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina, la terminal debe mostrar "INTENTE OTRA INTERFAZ". | Obligatoria |
| Venta Smart Accounts por CONTACTLESS VISA (Monto Menor entre $1 y $999) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Hoy en día debe quedar APROBADA, aunque la decisión final siempre depende del banco emisor. | Obligatoria |
| Venta Smart Accounts esperando 3min en segundo voucher oficial de venta NetPay | Cualquier Tarjeta | Pasos: 1) Iniciar un temporizador de 3 minutos. 2) Enviar una venta e insertar la tarjeta. 3) La transacción debe aprobarse e imprimir el primer voucher oficial de NetPay. 4) El segundo voucher oficial debe quedar en espera. 5) Antes de que termine el temporizador, finalizar la venta — debe recibirse la respuesta exitosamente. Nota: si el voucher oficial de NetPay está desactivado, el tiempo de espera puede ser bastante menor a 3 minutos. | Obligatoria |
| Venta Smart Accounts esperando más del tiempo límite del sistema durante el segundo voucher oficial de NetPay (+4min) | Cualquier Tarjeta | Pasos: 1) Iniciar un temporizador de 4 minutos. 2) Enviar una venta e insertar la tarjeta. 3) La transacción debe aprobarse e imprimir el primer voucher oficial de NetPay. 4) El segundo ticket debe quedar en espera. 5) Antes de que termine el temporizador, finalizar la venta y observar qué hace el sistema; si no llega respuesta, el comercio debe tener definido cómo manejarlo. Nota: si el voucher oficial está desactivado, esta prueba no aplica. | Obligatoria |
Dejan de aplicar
Preguntas:
- ¿En qué dispositivos se utilizará el sistema o aplicación?
- ¿En sus sucursales utilizarán controles de acceso y filtrado de tráfico, como un firewall?
Escenarios:
- Venta normal con NIP (tarjeta de débito)
- Venta normal con NIP (tarjeta de crédito) con multi-instancias
- Venta normal con firma autógrafa (tarjeta sin NIP)
- Venta normal por CONTACTLESS MASTERCARD (Monto Mayor +$10,001)
- Venta normal por CONTACTLESS MASTERCARD (Monto Menor entre $1 y $999)
- Venta normal por CONTACTLESS VISA (Monto Mayor +$1,200)
- Venta normal por CONTACTLESS VISA (Monto Menor entre $1 y $999)
- Venta a 3 Meses Sin Intereses
- Venta 6 Meses Sin Intereses
- Venta 9 Meses Sin Intereses
- Venta 12 Meses Sin Intereses
- Venta 18 Meses Sin Intereses (No aplica Amex)
- Venta a Meses Sin Intereses con tarjeta de débito
- Venta con propina (pre-propina DESACTIVADA en menú oculto)
- Venta con propina (pre-propina ACTIVADA en menú oculto)
- Venta con Pantalla Propina
- Venta parcial con varias formas de pago (Parte 1)
- Venta parcial con varias formas de pago (Parte 2)
- Reimpresión de una venta aprobada (orderId) con multi-instancias
- Reimpresión de una venta aprobada o declinada (folioId) con multi-instancias
- Recuperación manual de una transacción aprobada con reimpresión por orderId
- Recuperación manual de una transacción aprobada con reimpresión por folio
- Cancelación de una venta con multi-instancias
- Evitar la cancelación de una venta cancelada desde el POS
- Reimpresión de una venta cancelada
- Venta esperando 3min en segundo voucher oficial de venta NetPay
- Venta esperando más del tiempo límite del sistema durante el segundo voucher oficial de NetPay (+4min)
- Print-Ticket del reverso automático
- Print-Ticket del reverso manual (antes de la siguiente transacción)
- Print-Ticket del reverso manual (después de la siguiente transacción)
Variante con check-in y check-out
Su alcance total pasa a 41 preguntas y 72 escenarios, de los cuales 39 son obligatorios.
Se añaden 29 escenarios
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta check-in con NIP débito | Tarjeta Débito - NIP | La venta debe completarse correctamente. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 100% | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| Venta check-in con NIP crédito con multi-instancias | Tarjeta Crédito-NIP | La venta debe completarse correctamente. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 110% | — | No está permitido superar el 100%: el sistema del comercio también debe impedirlo. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| Venta check-in sin NIP Débito/Crédito | Tarjeta CNI sin chip por banda sin NIP | La venta debe completarse correctamente. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 90% | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| Venta check-in por CONTACTLESS VISA (Monto Mayor +$1,200) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina (por ejemplo, por restricción del banco emisor), debe mostrarse "INTENTE OTRA INTERFAZ". | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| Venta check-in por CONTACTLESS MASTERCARD (Monto Menor entre $1 y $999) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Puede APROBARSE o DECLINARSE; si se declina, puede deberse a una restricción del banco emisor. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 20% | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| Venta check-in por CONTACTLESS MASTERCARD (Monto Mayor +$10,001) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina (por ejemplo, por restricción del banco emisor), debe mostrarse: con MASTERCARD, "ERROR AL LEER TARJETA"; con VISA, "TARJETA NO SOPORTADA". | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 0% | — | Al enviarse con monto $0, actúa como una cancelación — en NetPay Manager se visualiza como un Checkout con monto $0. Debe tenerse precaución para evitar que los checkouts se realicen enviando monto $0 por error. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
Una integración SDK estándar comprende 40 preguntas y 49 escenarios, de los cuales 22 son obligatorios. Si su integración incluye alguna de las variantes que aparecen abajo, despliéguela para ver qué cambia.
Preguntas que se responden siempre
Son 30 preguntas y todas son de respuesta obligatoria.
Webhook, red y códigos HTTP
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Utilizan servidores locales para transaccionar con NetPay? | Se debe indicar cómo utilizan los servidores locales para transaccionar con NetPay. Se sugiere tener precaución con el certificado SSL en integraciones API. |
| ¿Manejan una API interna que envía la venta hacia su sistema o aplicación? | Si una API interna envía la venta a su sistema, deben evitar procesar múltiples ventas de forma simultánea (multi-instancias). |
| ¿En qué dispositivos se utilizará el sistema o aplicación? | Especificar si el sistema operará en computadoras con Windows, dispositivos Android, terminales NetPay, etc. |
| ¿Utilizarán VPN o alguna otra aplicación adicional en la terminal? | Indicar si se utilizará una VPN u otra aplicación adicional en la terminal. |
| ¿En sus sucursales utilizarán controles de acceso y filtrado de tráfico, como un firewall? | Se debe especificar cualquier restricción que impida que NetPay se comunique al 100% con su sistema. El listado vigente de URLs, puertos y direcciones IP se solicita al equipo de integraciones. |
Tiempos de espera
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Utilizan el método onActivityResult o registerForActivityResult()/ActivityResultLauncher para recibir la respuesta de la transacción? | Indicar si utilizan alguno de los métodos nativos de Android, o bien un timer, para recibir la respuesta. Si usan un timer, debe ser de 3 minutos para venta normal y 5 minutos para venta con cashback, con un intervalo que consulte constantemente si la respuesta ya llegó. |
Folio, trazabilidad y registros
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Crean un PRE-REGISTRO ante una falta de respuesta de la terminal? | Describir si generan un pre-registro en su sistema cuando no reciben respuesta de la terminal. Usar un folio único permite recuperar transacciones pendientes o perdidas mediante la reimpresión por folio. |
| ¿Su folio se envía en el campo folioNumber al momento de enviar la venta, o se genera después de procesada la venta? | Es obligatorio enviar en el campo folioNumber un identificador único generado por su sistema antes de enviar la venta. Se admite que su folio definitivo se genere después —por ejemplo, al facturar—, pero en ese caso debe enviar de todas formas un identificador propio previo que permita vincularla después con la transacción de NetPay. Sin ese identificador previo no es posible consultar la transacción por folio ni conciliarla. |
| ¿Cuál es la estructura de su folio? ¿Cuentan con un prefijo/sufijo? | Debe indicarse la estructura del folio; se recomienda incluir un prefijo o sufijo. No se recomienda usar solo números consecutivos. |
| ¿Su folio es único por sucursal? | Debe ser completamente único: no debe repetirse por sucursal ni por ninguna otra condición. |
| ¿Su folio se duplica en declinados? | Es obligatorio que el folio permanezca único también en las declinaciones. Si se duplica, la reimpresión por folio deja de ser una vía fiable para consultar o recuperar el estatus, que es justamente el mecanismo con el que se resuelven los reversos. |
| Ante una transacción perdida, ¿usan la reimpresión por folio u orderId solo como consulta, o la automatizan para recuperar y guardar la venta si no existe en su sistema? | Debe responderse indicando si se usa folio u orderId. Esta operativa ayuda a recuperar transacciones perdidas por causas externas, como desconexión de cable, caídas del sistema o intermitencias. |
| ¿Ejecutan AUTOMÁTICAMENTE en la terminal la REIMPRESIÓN por FOLIO al recibir una DECLINACIÓN? | Especificar si utilizan la reimpresión por folio como una doble validación de estatus; esta práctica beneficia principalmente en los reversos. |
| ¿Se controlan los estatus finales de los REVERSOS por medio de la REIMPRESIÓN por FOLIO? | Los reversos se generan por cortes de comunicación, lo que puede provocar incongruencias en el estatus de las transacciones entre Manager y la terminal. Por ello, debe darse total prioridad a lo que indique la terminal y consultarse el estatus final mediante la reimpresión por folio. |
| ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus RECHAZADA / DECLINADA? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus APROBADO? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus REVERSADA o PENDIENTE POR REVERSAR? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una REIMPRESIÓN de NetPay? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una CANCELACIÓN DE VENTA de NetPay? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
Resultado de la transacción y base de datos
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Qué campo utilizan para validar una transacción exitosa? | Deben utilizar el campo responseCode, donde el valor 00 indica una transacción aprobada y cualquier valor diferente representa un error o declinación. En SDK también es válido usar el campo success. |
| ¿Almacenan declinaciones en su base de datos? | Es obligatorio almacenar las declinaciones y rechazos en su base de datos. Permite a los usuarios finales identificar el estatus de inmediato, sin levantar un caso de soporte, y es el registro con el que se contrasta un reverso posterior. |
| ¿Confirman que almacenan correctamente en su sistema los valores recibidos por parte de NetPay? | Es responsabilidad del usuario validar que los valores coincidan y se almacenen correctamente en su sistema. NetPay no se hará responsable por incidentes derivados de esta situación; esta respuesta quedará registrada como referencia para futuros casos de soporte productivo. |
Recuperación, reversos y multi-instancias
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Su sistema evita multi-instancias al presionar los botones de venta, reimpresión y cancelación? | Debe bloquearse el botón para evitar enviar múltiples procesos al mismo tiempo. Adjuntar un fragmento de código que muestre el bloqueo del botón, el bloqueo de la interfaz, un diálogo, o cualquier otro mecanismo que evite la multi-instancia. |
Voucher y ticket personalizado
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Mantienen activo el voucher oficial de NetPay? | Esta pregunta se refiere al uso de DisablePrintAnimation. Si se deshabilita (valor true), primero debe certificarse el ticket personalizado propio; el formato aparece al seleccionar 'No' en esta pregunta. Condiciones para certificar ticket personalizado: 1) Integración SDK: versión 1.1.9 o superior. 2) Integración COM: versión 1.6.0 o superior. 3) Terminal IM30: es obligatorio certificar ticket personalizado. 4) Toda integración con ticket personalizado debe ser Smart PinPad 2.0 o superior. |
| ¿Modifican el voucher oficial de NetPay? | Indicar si agregan información adicional, como texto o logotipos, al voucher oficial de NetPay (aplica solo para integración SDK). |
| ¿Imprimen algún ticket adicional y en impresora propia? | Indicar si el ticket adicional se imprime en una impresora externa propia del comercio. |
Entorno técnico del proyecto
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| packageName de la aplicación | Valor interno de su proyecto. |
| Versión de Android MÍNIMA y MÁXIMA de la aplicación | Valor interno de su proyecto. |
| Propiedades y Gradle completo del proyecto. | Incluye las librerías externas implementadas en el proyecto; esta información permite detectar futuras incompatibilidades. |
Otros
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Implementaron alguna API o funcionalidad nueva y que esté relacionada con NetPay? | Describir si se les proporcionó alguna API o funcionalidad nueva de NetPay de la que el equipo de integraciones no tenga contexto. |
Preguntas condicionadas
Estas solo aplican en los casos que se indican; puede desplegar únicamente las que le correspondan.
Print-Ticket y devoluciones · 6 preguntas, solo si declaró esas APIs adicionales
La referencia de la API de Devoluciones es 11. API Devoluciones; no aparece en el índice público y se consulta por enlace directo. La consulta de Print-Ticket se emplea únicamente para obtener el orderId largo que esa API requiere: no es una fuente válida para verificar el estatus de un reverso.
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Cuál es el proceso de uso de la API Print-Ticket? | Debe usarse únicamente de forma informativa, para consultar el transactionId o el orderId del adquirente. No se recomienda utilizarla para conocer el estatus de reversos. |
| ¿Se realizó el proceso de certificación de ticket personalizado? | Es importante validar la opción correcta: 1) Si es la primera vez, es obligatorio certificar primero el ticket personalizado. 2) Si ya se realizó previamente con NetPay, puede omitirse el proceso. 3) Si es necesario, o hay ajustes importantes, debe repetirse el proceso. |
| ¿Cómo realizan el proceso de devolución? | Indicar si lo realizan desde su sistema y si es posterior al mismo día de la venta. Recordatorio: 1) La cancelación se realiza desde la terminal el mismo día, antes de las 8pm hora CDMX. 2) La devolución aplica cuando el límite de la cancelación ya venció. |
| ¿Utilizas la API Print-Ticket para una devolución? | La API Print-Ticket es indispensable para utilizar la API de devoluciones. No debe usarse para consultar el estatus de transacciones, ya que puede traer información distinta en reversos (transacciones con cortes de comunicación). |
| ¿Toman en cuenta la diferencia entre el campo orderId de la API Print-Ticket y el campo orderId devuelto en la respuesta de la venta de la terminal? | La terminal devuelve, en la venta, un orderId más corto. La API Print-Ticket devuelve un orderId más largo, el cual es obligatorio utilizar para la API de devoluciones. |
| ¿Cuál es el campo y valor que evalúan para considerar una devolución exitosa? | Para una devolución completa o parcial, debe ser el campo code con valor 02. |
Ticket propio y kioscos · 2 preguntas, solo si aplica a su caso
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| En caso de contar con ticket personalizado de venta, ¿lo imprimen en la terminal de NetPay? | Indicar si el ticket personalizado de la venta se imprime en la terminal (aplica solo para integración SDK). |
| ¿Su sistema se instalará en algún kiosco autoatendido? | Si es autoatendido, se recomienda una de las siguientes opciones: 1) Esperar la nueva versión de Smart PinPad (versión pendiente). 2) Utilizar la terminal IM30, enfocada en integraciones de autoservicio y kioscos; si se usa esta terminal, debe certificarse la generación de su propio ticket personalizado. 3) Deshabilitar la impresión del ticket predeterminado (disablePrintAnimation), lo cual implica certificar y generar su propio ticket personalizado. |
Preguntas recomendadas y opcionales · 2 preguntas
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Se implementó el campo trazabilidad (traceability)? | Es un objeto que puede contener otros objetos anidados; funciona únicamente como medio de comunicación y sus valores no se almacenan en NetPay. |
| ¿Tienen implementados logs en su punto de venta? | Especificar si manejan logs internos, locales o en servidor, y si registran excepciones, errores y/o peticiones. |
Escenarios obligatorios
Estos 22 escenarios se ejecutan siempre, sin importar qué funcionalidades tenga implementadas.
Venta en mostrador
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta normal con NIP (tarjeta de débito) | Tarjeta Débito - NIP | La transacción de venta se debe realizar correctamente. | Obligatoria |
| Venta normal con NIP (tarjeta de crédito) con multi-instancias | Tarjeta Crédito-NIP | El sistema no debe permitir enviar dos ventas al mismo tiempo: debe bloquear el botón después de la primera. La transacción debe completarse exitosamente y sin generar ventas duplicadas. | Obligatoria |
| Venta normal con firma autógrafa (tarjeta sin NIP) | 1.- Tarjeta con CHIP sin NIP 2.- Cualquier tarjeta sin NIP 3.- Tarjeta CONTACTLESS MASTERCARD (monto mayor a $1,000) | Al insertar la tarjeta, la terminal debe pedir firma autógrafa (firma en pantalla) y la venta debe completarse correctamente. Si no se cuenta con tarjeta sin NIP, puede usarse en su lugar una tarjeta CONTACTLESS MASTERCARD con monto mayor a $1,000. | Obligatoria |
| Venta normal por CONTACTLESS MASTERCARD (Monto Mayor +$10,001) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina (por ejemplo, por restricción del banco emisor), la terminal debe mostrar: con MASTERCARD, "ERROR AL LEER TARJETA"; con VISA, "TARJETA NO SOPORTADA". | Obligatoria |
| Venta normal por CONTACTLESS MASTERCARD (Monto Menor entre $1 y $999) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Hoy en día debe quedar APROBADA, aunque la decisión final siempre depende del banco emisor. | Obligatoria |
| Venta normal por CONTACTLESS VISA (Monto Mayor +$1,200) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina, la terminal debe mostrar “INTENTE OTRA INTERFAZ”. | Obligatoria |
| Venta normal por CONTACTLESS VISA (Monto Menor entre $1 y $999) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Hoy en día debe quedar APROBADA, aunque la decisión final siempre depende del banco emisor. | Obligatoria |
| Cancelado por el usuario | Cualquier Tarjeta | Enviar una venta sin insertar la tarjeta y cancelar/omitir la operación desde la terminal. El sistema debe devolver el mensaje "Cancelado por el usuario". | Obligatoria |
| Regla de fraude | Cualquier Tarjeta | En ambiente de PRUEBAS: enviar una venta con monto MAYOR a $12,000 para simular una declinación. Nota: en PRODUCCIÓN la regla real se activa así — mismo monto y misma tarjeta el mismo día (declina en la segunda transacción), o diferente monto y misma tarjeta el mismo día (declina en la tercera transacción). | Obligatoria |
Reimpresión y recuperación
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta esperando 3min en segundo voucher oficial de venta NetPay | Cualquier Tarjeta | Pasos: 1) Iniciar un temporizador de 3 minutos. 2) Enviar una venta e insertar la tarjeta. 3) La transacción debe aprobarse e imprimir el primer voucher oficial de NetPay. 4) El segundo voucher oficial debe quedar en espera. 5) Antes de que termine el temporizador, finalizar la venta — debe recibirse la respuesta exitosamente. Nota: si el voucher oficial de NetPay está desactivado, el tiempo de espera puede ser bastante menor a 3 minutos. | Obligatoria |
Reversos
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| *Reverso automático (Reversada): venta retirando la tarjeta antes de aprobarse | Tarjeta con NIP | Pasos: 1) Enviar una venta e ingresar la tarjeta y el NIP. 2) Avanzar hasta que aparezca la pantalla "Procesando Autorización". 3) Después de 1-2 segundos, retirar la tarjeta antes de que se apruebe la venta. Resultado esperado: El reverso se realiza automáticamente. El estatus final (Reversada o RV) solo puede consultarse mediante reimpresión por folio o en NetPay Manager. | Obligatoria |
| *Reverso automático (Reversada): venta retirando la tarjeta antes de aprobarse (CoreX) | Tarjeta con NIP | Pasos: 1) Enviar una venta e ingresar la tarjeta y el NIP. 2) Avanzar hasta que aparezca la pantalla "Procesando Autorización". 3) Después de 1-2 segundos, retirar la tarjeta. Resultado esperado: El reverso se realiza automáticamente de forma interna. El estatus final debe mostrar "Transacción Reversada" en el campo message, "RV" en reprintModule y "R40" en responseCode. | Obligatoria |
| Reimpresión por folio del reverso automático | — | Debe regresar el mensaje "Transacción Reversada" y el campo reprintModule con valor RV. | Obligatoria |
| *Reverso manual (Pendiente por reversar): venta apagando la terminal o retirando la batería | Cualquier Tarjeta | Pasos: 1) Enviar la venta e ingresar la tarjeta y el NIP. 2) Esperar a que aparezca el mensaje "Retire la tarjeta" en pantalla. 3) Apagar la terminal (por botón o retirando la batería) justo en ese momento. Resultado esperado: La terminal se apaga a mitad de la transacción y no llega respuesta; en NetPay Manager la transacción queda con estatus APROBADO. Importante: si la terminal nunca confirmó que la venta se aprobó, no debe darse por aprobada — se reversará automáticamente el mismo día en la siguiente transacción. Lo que indique la terminal tiene siempre prioridad sobre cualquier otro medio de consulta. | Obligatoria |
| Reimpresión por folio del reverso manual (prueba anterior) | Cualquier Tarjeta | Debe regresar el mensaje "Transacción Pendiente Por Reversar" y el campo reprintModule con valor PRV, indicando que se necesita una siguiente transacción el mismo día para que se reverse. | Obligatoria |
| Venta posterior al reverso manual | Cualquier Tarjeta | Esta venta debe aprobarse correctamente y, al hacerlo, provocar internamente que la transacción anterior se reverse. La respuesta de esa venta anterior ya reversada (RV) solo puede consultarse por reimpresión por folio o en NetPay Manager, y únicamente después de esta nueva transacción. | Obligatoria |
| Reimpresión por folio del reverso manual | — | Debe regresar el mensaje "Transacción Reversada" y el campo reprintModule con valor RV. | Obligatoria |
Cancelación y devolución
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Devolución completa de venta | — | Debe ejecutarse desde la API de devoluciones y recibir el código 02, indicando que el proceso fue exitoso. | Obligatoria |
| Respuesta del Print-Ticket de la devolución completa | — | Debe registrarse la respuesta obtenida de la API Print-Ticket. | Obligatoria |
| Devolución parcial de venta | — | Debe ejecutarse desde la API de devoluciones con un monto menor al de la venta original, y recibir el código 02, indicando que el proceso fue exitoso. | Obligatoria |
| Respuesta del Print-Ticket de la devolución parcial | — | Debe registrarse la respuesta obtenida de la API Print-Ticket. | Obligatoria |
| Error de devolución | — | Puede simularse con cualquiera de los siguientes casos: 1) orderId incorrecto durante la devolución. 2) Monto mayor al de la venta original. 3) Doble devolución consecutiva. 4) Request incompleto en la devolución. | Obligatoria |
Funcionalidades opcionales
Los 27 escenarios restantes solo aplican si su sistema ofrece esa funcionalidad; puede desplegar únicamente los que le correspondan.
Venta en mostrador · 2 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta parcial con varias formas de pago (Parte 1) | Tarjeta de Crédito | Enviar 1 venta pagada con 2 tarjetas distintas (pago dividido). Ejemplo: de una venta de $500, la primera tarjeta paga $200 (el resto se cobra en la siguiente prueba). Debe completarse exitosamente y sin folios duplicados. | Si aplica |
| Venta parcial con varias formas de pago (Parte 2) | Tarjeta de Débito | Continuación del ejemplo anterior: cobrar el monto restante ($300) de la venta de $500. Debe completarse exitosamente y sin folios duplicados. | Si aplica |
Meses sin intereses y propina · 9 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta a 3 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 6 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 9 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 12 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 18 Meses Sin Intereses (No aplica Amex) | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta a Meses Sin Intereses con tarjeta de débito | Tarjeta Débito | Con tarjeta de débito, la promoción a meses sin intereses no aplica: la prueba debe mostrar el mensaje “PROMOCIÓN NO VÁLIDA PARA EL TIPO DE TARJETA”. | Si aplica |
| Venta con propina (pre-propina DESACTIVADA en menú oculto) | Cualquier Tarjeta | La venta debe completarse correctamente. Con la pre-propina desactivada, el monto y la propina se muestran juntos (sin separar) en el voucher oficial de NetPay. La propina por defecto no debe superar el 25% del monto de venta. | Si aplica |
| Venta con propina (pre-propina ACTIVADA en menú oculto) | Cualquier Tarjeta | La venta debe completarse correctamente. Con la pre-propina activada, el monto y la propina se muestran por separado en el voucher oficial de NetPay. La propina por defecto no debe superar el 25% del monto de venta. | Si aplica |
| Venta con Pantalla Propina | Cualquier Tarjeta | En la terminal debe aparecer una pantalla para elegir el porcentaje de propina. La venta debe completarse exitosamente y la propina por defecto no debe superar el 25% del monto de venta. | Si aplica |
Reimpresión y recuperación · 5 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Reimpresión de una venta aprobada (orderId) con multi-instancias | — | Al guardar una transacción, el sistema debe poder reimprimirla usando el ORDERID de una venta existente, directo desde la terminal. Si se presiona el botón varias veces seguidas, debe bloquearse para impedir reimpresiones duplicadas. | Recomendada |
| Reimpresión de una venta aprobada o declinada (folioId) con multi-instancias | — | Al guardar una transacción, el sistema debe poder reimprimirla usando el FOLIO de una venta existente, directo desde la terminal. Si se presiona el botón varias veces seguidas, debe bloquearse para impedir reimpresiones duplicadas. | Recomendada |
| Recuperación manual de una transacción aprobada con reimpresión por orderId | — | Este escenario simula que una venta APROBADA no llegó al sistema del comercio. Si el comercio tiene una forma de capturar el orderId manualmente, debe usarlo para recuperar la información (vía reimpresión por ORDERID) y guardarla automáticamente. Importante: el orderId debe tomarse solo del ticket físico impreso, nunca de otra fuente. | Recomendada |
| Recuperación manual de una transacción aprobada con reimpresión por folio | — | Este escenario simula que una venta APROBADA no llegó al sistema del comercio. Debe recuperarse la información vía reimpresión por FOLIO y guardarse automáticamente. También es válido tener un PRE-REGISTRO que recupere esta información por el mismo medio. | Recomendada |
| Reimpresión de una venta cancelada | — | La operación debe reimprimir exitosamente y debe indicar que es el duplicado de una cancelación. | Si aplica |
Reversos · 4 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Print-Ticket del reverso automático | — | No se recomienda usar esta consulta para verificar el estatus de reversos. | Recomendada |
| Print-Ticket del reverso manual (antes de la siguiente transacción) | — | No se recomienda usar esta consulta para verificar el estatus PRV (Pendiente Por Reversar). | Recomendada |
| Reimpresión por folio del reverso manual (CoreX) | — | Debe regresar el mensaje "Transacción Reversada", el campo reprintModule con valor RV y el campo responseCode con valor R en Urovo CoreX. | Recomendada |
| Print-Ticket del reverso manual (después de la siguiente transacción) | — | No se recomienda usar esta consulta para verificar el estatus de reversos. | Recomendada |
Cancelación y devolución · 2 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Cancelación de una venta con multi-instancias | — | La cancelación debe hacerse el mismo día de la venta, antes de las 8pm hora CDMX (como referencia). Presionar el botón varias veces seguidas para comprobar que el sistema bloquea intentos duplicados. | Si aplica |
| Evitar la cancelación de una venta cancelada desde el POS | — | El sistema del comercio debe rechazar esta operación (no permitir cancelar una venta ya cancelada desde el POS) y debe adjuntarse una captura de pantalla que lo demuestre. | Si aplica |
Lectura NFC · 5 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Lectura de tag NFC con autorización | — | La lectura del tag debe ser exitosa. | Si aplica |
| Lectura de tag NFC sin autorización | — | La lectura del tag debe ser exitosa. | Si aplica |
| Lectura de tag NFC con información | — | La lectura debe ser exitosa. Puede validarse comparando con pruebas anteriores si el tag ya traía información previa. | Si aplica |
| Lectura de tag NFC sin información (Vacío) | — | Debe devolver success: false, ya que el tag no tiene información. En este caso, el campo value debe regresar el valor 4. | Si aplica |
| Error de lectura de tag NFC (success false en ambos métodos) | — | La lectura debe fallar (success: false en ambos métodos), indicando incompatibilidad u otro error. | Si aplica |
Variantes de este canal
Variante con MDB IM30
Su alcance total pasa a 3 preguntas y 28 escenarios, de los cuales 19 son obligatorios.
Se añade 1 escenario
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Prueba de timers (temporizador) | Cualquier Tarjeta | Pasos: 1) Enviar la venta y esperar a que aparezca el temporizador en la pantalla del kiosco. 2) Cuando llegue a la mitad, iniciar la transacción en la terminal. 3) Cuando el kiosco regrese a su pantalla principal, finalizar la transacción en la terminal. Resultado esperado: la transacción se aprueba, pero el sistema envía una cancelación automática. | Obligatoria |
Dejan de aplicar
Preguntas:
- ¿Utilizan servidores locales para transaccionar con NetPay?
- ¿Manejan una API interna que envía la venta hacia su sistema o aplicación?
- ¿Crean un PRE-REGISTRO ante una falta de respuesta de la terminal?
- ¿Implementaron alguna API o funcionalidad nueva y que esté relacionada con NetPay?
- ¿Su folio se envía en el campo folioNumber al momento de enviar la venta, o se genera después de procesada la venta?
- ¿Cuál es la estructura de su folio? ¿Cuentan con un prefijo/sufijo?
- ¿Su folio es único por sucursal?
- ¿Su folio se duplica en declinados?
- ¿Qué campo utilizan para validar una transacción exitosa?
- ¿Almacenan declinaciones en su base de datos?
- ¿Mantienen activo el voucher oficial de NetPay?
- ¿Utilizan el método onActivityResult o registerForActivityResult()/ActivityResultLauncher para recibir la respuesta de la transacción?
- ¿Modifican el voucher oficial de NetPay?
- En caso de contar con ticket personalizado de venta, ¿lo imprimen en la terminal de NetPay?
- ¿Imprimen algún ticket adicional y en impresora propia?
- ¿Se implementó el campo trazabilidad (traceability)?
- ¿Tienen implementados logs en su punto de venta?
- ¿Utilizarán VPN o alguna otra aplicación adicional en la terminal?
- Ante una transacción perdida, ¿usan la reimpresión por folio u orderId solo como consulta, o la automatizan para recuperar y guardar la venta si no existe en su sistema?
- ¿Ejecutan AUTOMÁTICAMENTE en la terminal la REIMPRESIÓN por FOLIO al recibir una DECLINACIÓN?
- ¿Se controlan los estatus finales de los REVERSOS por medio de la REIMPRESIÓN por FOLIO?
- ¿Su sistema evita multi-instancias al presionar los botones de venta, reimpresión y cancelación?
- packageName de la aplicación
- Versión de Android MÍNIMA y MÁXIMA de la aplicación
- Propiedades y Gradle completo del proyecto.
- ¿Cuál es el proceso de uso de la API Print-Ticket?
- ¿Se realizó el proceso de certificación de ticket personalizado?
- ¿Cómo realizan el proceso de devolución?
- ¿Utilizas la API Print-Ticket para una devolución?
- ¿Toman en cuenta la diferencia entre el campo orderId de la API Print-Ticket y el campo orderId devuelto en la respuesta de la venta de la terminal?
- ¿Cuál es el campo y valor que evalúan para considerar una devolución exitosa?
- ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus RECHAZADA / DECLINADA?
- ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus APROBADO?
- ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus REVERSADA o PENDIENTE POR REVERSAR?
- ¿Qué campos almacenan en su base de datos para una REIMPRESIÓN de NetPay?
- ¿Qué campos almacenan en su base de datos para una CANCELACIÓN DE VENTA de NetPay?
- ¿Confirman que almacenan correctamente en su sistema los valores recibidos por parte de NetPay?
Escenarios:
- Venta con propina (pre-propina DESACTIVADA en menú oculto)
- Venta con Pantalla Propina
- Reimpresión de una venta aprobada (orderId) con multi-instancias
- Reimpresión de una venta aprobada o declinada (folioId) con multi-instancias
- Recuperación manual de una transacción aprobada con reimpresión por orderId
- Recuperación manual de una transacción aprobada con reimpresión por folio
- Cancelación de una venta con multi-instancias
- Evitar la cancelación de una venta cancelada desde el POS
- Reimpresión de una venta cancelada
- *Reverso automático (Reversada): venta retirando la tarjeta antes de aprobarse (CoreX)
- Reimpresión por folio del reverso automático
- Print-Ticket del reverso automático
- Print-Ticket del reverso manual (antes de la siguiente transacción)
- Reimpresión por folio del reverso manual (prueba anterior)
- Reimpresión por folio del reverso manual
- Reimpresión por folio del reverso manual (CoreX)
- Print-Ticket del reverso manual (después de la siguiente transacción)
- Lectura de tag NFC con autorización
- Lectura de tag NFC sin autorización
- Lectura de tag NFC con información
- Lectura de tag NFC sin información (Vacío)
- Error de lectura de tag NFC (success false en ambos métodos)
Variante con check-in y check-out
Su alcance total pasa a 40 preguntas y 70 escenarios, de los cuales 38 son obligatorios.
Se añaden 23 escenarios
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta check-in con NIP débito | Tarjeta Débito - NIP | La venta debe completarse correctamente. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 100% | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Venta check-in con NIP crédito con multi-instancias | Tarjeta Crédito-NIP | La venta debe completarse correctamente. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 110% | — | No está permitido superar el 100%: el sistema del comercio también debe impedirlo. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Venta check-in sin NIP Débito/Crédito | Tarjeta CNI sin chip por banda sin NIP | La venta debe completarse correctamente. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 90% | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Venta check-in por CONTACTLESS VISA (Monto Mayor +$1,200) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina (por ejemplo, por restricción del banco emisor), debe mostrarse "INTENTE OTRA INTERFAZ". | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Venta check-in por CONTACTLESS MASTERCARD (Monto Menor entre $1 y $999) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Puede APROBARSE o DECLINARSE; si se declina, puede deberse a una restricción del banco emisor. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 20% | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Venta check-in por CONTACTLESS MASTERCARD (Monto Mayor +$10,001) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina (por ejemplo, por restricción del banco emisor), debe mostrarse: con MASTERCARD, "ERROR AL LEER TARJETA"; con VISA, "TARJETA NO SOPORTADA". | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 0% | — | Al enviarse con monto $0, actúa como una cancelación — en NetPay Manager se visualiza como un Checkout con monto $0. Debe tenerse precaución para evitar que los checkouts se realicen enviando monto $0 por error. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
Dejan de aplicar
Escenarios:
- *Reverso automático (Reversada): venta retirando la tarjeta antes de aprobarse (CoreX)
- Reimpresión por folio del reverso manual (CoreX)
Una integración COM estándar comprende 41 preguntas y 46 escenarios, de los cuales 22 son obligatorios. Si su integración incluye alguna de las variantes que aparecen abajo, despliéguela para ver qué cambia.
Preguntas que se responden siempre
Son 32 preguntas y todas son de respuesta obligatoria.
Webhook, red y códigos HTTP
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Utilizan servidores locales para transaccionar con NetPay? | Se debe indicar cómo utilizan los servidores locales para transaccionar con NetPay. Se sugiere tener precaución con el certificado SSL en integraciones API. |
| ¿Manejan una API interna que envía la venta hacia su sistema o aplicación? | Si una API interna envía la venta a su sistema, deben evitar procesar múltiples ventas de forma simultánea (multi-instancias). |
| ¿El backend cuenta con un timer para recibir la respuesta? | 1) Puede usarse un webhook o threads que permanezcan en espera de la respuesta. 2) Si se usa un timer, debe ser de 3 minutos para venta normal y 5 minutos para venta con cashback, con un intervalo que consulte constantemente si la respuesta ya llegó. |
| ¿En qué dispositivos se utilizará el sistema o aplicación? | Especificar si el sistema operará en computadoras con Windows, dispositivos Android, terminales NetPay, etc. |
| ¿Utilizarán VPN o alguna otra aplicación adicional en la terminal? | Indicar si se utilizará una VPN u otra aplicación adicional en la terminal. |
| ¿En sus sucursales utilizarán controles de acceso y filtrado de tráfico, como un firewall? | Se debe especificar cualquier restricción que impida que NetPay se comunique al 100% con su sistema. El listado vigente de URLs, puertos y direcciones IP se solicita al equipo de integraciones. |
Tiempos de espera
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿El frontend maneja un timer al recibir la respuesta? | 1) Debe usarse un loading que permanezca en espera de la respuesta. 2) Si se usa un timer en la interfaz, debe ser de 3 minutos para venta normal y 5 minutos para venta con cashback, o permanecer en espera sin límite de tiempo. 3) Si el usuario completa la transacción en menos tiempo, el sistema debe recibir la respuesta antes de que termine la espera. |
| Intervalo para obtener la respuesta de la transacción (getResponse). | El intervalo debe ser de 500ms a 2000ms como máximo. El sistema debe recibir la respuesta si el usuario completa la transacción antes del tiempo total recomendado (mínimo 3 minutos). |
Folio, trazabilidad y registros
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Crean un PRE-REGISTRO ante una falta de respuesta de la terminal? | Describir si generan un pre-registro en su sistema cuando no reciben respuesta de la terminal. Usar un folio único permite recuperar transacciones pendientes o perdidas mediante la reimpresión por folio. |
| ¿Su folio se envía en el campo folioNumber al momento de enviar la venta, o se genera después de procesada la venta? | Es obligatorio enviar en el campo folioNumber un identificador único generado por su sistema antes de enviar la venta. Se admite que su folio definitivo se genere después —por ejemplo, al facturar—, pero en ese caso debe enviar de todas formas un identificador propio previo que permita vincularla después con la transacción de NetPay. Sin ese identificador previo no es posible consultar la transacción por folio ni conciliarla. |
| ¿Cuál es la estructura de su folio? ¿Cuentan con un prefijo/sufijo? | Debe indicarse la estructura del folio; se recomienda incluir un prefijo o sufijo. No se recomienda usar solo números consecutivos. |
| ¿Su folio es único por sucursal? | Debe ser completamente único: no debe repetirse por sucursal ni por ninguna otra condición. |
| ¿Su folio se duplica en declinados? | Es obligatorio que el folio permanezca único también en las declinaciones. Si se duplica, la reimpresión por folio deja de ser una vía fiable para consultar o recuperar el estatus, que es justamente el mecanismo con el que se resuelven los reversos. |
| Ante una transacción perdida, ¿usan la reimpresión por folio u orderId solo como consulta, o la automatizan para recuperar y guardar la venta si no existe en su sistema? | Debe responderse indicando si se usa folio u orderId. Esta operativa ayuda a recuperar transacciones perdidas por causas externas, como desconexión de cable, caídas del sistema o intermitencias. |
| ¿Ejecutan AUTOMÁTICAMENTE en la terminal la REIMPRESIÓN por FOLIO al recibir una DECLINACIÓN? | Especificar si utilizan la reimpresión por folio como una doble validación de estatus; esta práctica beneficia principalmente en los reversos. |
| ¿Se controlan los estatus finales de los REVERSOS por medio de la REIMPRESIÓN por FOLIO? | Los reversos se generan por cortes de comunicación, lo que puede provocar incongruencias en el estatus de las transacciones entre Manager y la terminal. Por ello, debe darse total prioridad a lo que indique la terminal y consultarse el estatus final mediante la reimpresión por folio. |
| ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus RECHAZADA / DECLINADA? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus APROBADO? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una transacción de NetPay con estatus REVERSADA o PENDIENTE POR REVERSAR? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una REIMPRESIÓN de NetPay? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
| ¿Qué campos almacenan en su base de datos para una CANCELACIÓN DE VENTA de NetPay? | Especificar qué campo almacenan de NetPay y cómo lo almacenan; por ejemplo: referencia (comercio) → folioNumber (NetPay). |
Resultado de la transacción y base de datos
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Qué campo utilizan para validar una transacción exitosa? | Deben utilizar el campo responseCode, donde el valor 00 indica una transacción aprobada y cualquier valor diferente representa un error o declinación. En SDK también es válido usar el campo success. |
| ¿Almacenan declinaciones en su base de datos? | Es obligatorio almacenar las declinaciones y rechazos en su base de datos. Permite a los usuarios finales identificar el estatus de inmediato, sin levantar un caso de soporte, y es el registro con el que se contrasta un reverso posterior. |
| ¿Confirman que almacenan correctamente en su sistema los valores recibidos por parte de NetPay? | Es responsabilidad del usuario validar que los valores coincidan y se almacenen correctamente en su sistema. NetPay no se hará responsable por incidentes derivados de esta situación; esta respuesta quedará registrada como referencia para futuros casos de soporte productivo. |
Recuperación, reversos y multi-instancias
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Su sistema evita multi-instancias al presionar los botones de venta, reimpresión y cancelación? | Debe bloquearse el botón para evitar enviar múltiples procesos al mismo tiempo. Adjuntar un fragmento de código que muestre el bloqueo del botón, el bloqueo de la interfaz, un diálogo, o cualquier otro mecanismo que evite la multi-instancia. |
Voucher y ticket personalizado
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Mantienen activo el voucher oficial de NetPay? | Esta pregunta se refiere al uso de DisablePrintAnimation. Si se deshabilita (valor true), primero debe certificarse el ticket personalizado propio; el formato aparece al seleccionar 'No' en esta pregunta. Condiciones para certificar ticket personalizado: 1) Integración SDK: versión 1.1.9 o superior. 2) Integración COM: versión 1.6.0 o superior. 3) Terminal IM30: es obligatorio certificar ticket personalizado. 4) Toda integración con ticket personalizado debe ser Smart PinPad 2.0 o superior. |
| ¿Imprimen algún ticket adicional y en impresora propia? | Indicar si el ticket adicional se imprime en una impresora externa propia del comercio. |
Entorno técnico del proyecto
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Qué sistema operativo se estará usando para la integración (con arquitectura)? | Especificar la versión de Windows (7, 8, 8.1, 10 u 11) y la arquitectura (x86 o x64). |
| ¿Qué versión mínima y máxima de.Net Framework requiere su proyecto para funcionar? | Debe ser la versión 3.5 o superior. |
| ¿Qué sucede con el punto de venta si se desconecta el cable de la terminal durante una transacción? | Especificar si utilizan el método findPortByDescription() para validar el puerto COM asignado, o el método testConnection() (disponible en DLL 1.7.0 y superiores). |
| ¿Utilizan el método Version() para conocer la versión de la DLL implementada? | Si no lo utilizan, deben anexar una captura del archivo DLL importado en su proyecto, mostrando el número de versión. |
Otros
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Implementaron alguna API o funcionalidad nueva y que esté relacionada con NetPay? | Describir si se les proporcionó alguna API o funcionalidad nueva de NetPay de la que el equipo de integraciones no tenga contexto. |
Preguntas condicionadas
Estas solo aplican en los casos que se indican; puede desplegar únicamente las que le correspondan.
Print-Ticket y devoluciones · 6 preguntas, solo si declaró esas APIs adicionales
La referencia de la API de Devoluciones es 11. API Devoluciones; no aparece en el índice público y se consulta por enlace directo. La consulta de Print-Ticket se emplea únicamente para obtener el orderId largo que esa API requiere: no es una fuente válida para verificar el estatus de un reverso.
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Cuál es el proceso de uso de la API Print-Ticket? | Debe usarse únicamente de forma informativa, para consultar el transactionId o el orderId del adquirente. No se recomienda utilizarla para conocer el estatus de reversos. |
| ¿Se realizó el proceso de certificación de ticket personalizado? | Es importante validar la opción correcta: 1) Si es la primera vez, es obligatorio certificar primero el ticket personalizado. 2) Si ya se realizó previamente con NetPay, puede omitirse el proceso. 3) Si es necesario, o hay ajustes importantes, debe repetirse el proceso. |
| ¿Cómo realizan el proceso de devolución? | Indicar si lo realizan desde su sistema y si es posterior al mismo día de la venta. Recordatorio: 1) La cancelación se realiza desde la terminal el mismo día, antes de las 8pm hora CDMX. 2) La devolución aplica cuando el límite de la cancelación ya venció. |
| ¿Utilizas la API Print-Ticket para una devolución? | La API Print-Ticket es indispensable para utilizar la API de devoluciones. No debe usarse para consultar el estatus de transacciones, ya que puede traer información distinta en reversos (transacciones con cortes de comunicación). |
| ¿Toman en cuenta la diferencia entre el campo orderId de la API Print-Ticket y el campo orderId devuelto en la respuesta de la venta de la terminal? | La terminal devuelve, en la venta, un orderId más corto. La API Print-Ticket devuelve un orderId más largo, el cual es obligatorio utilizar para la API de devoluciones. |
| ¿Cuál es el campo y valor que evalúan para considerar una devolución exitosa? | Para una devolución completa o parcial, debe ser el campo code con valor 02. |
Ticket propio y kioscos · 1 pregunta, solo si aplica a su caso
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Su sistema se instalará en algún kiosco autoatendido? | Si es autoatendido, se recomienda una de las siguientes opciones: 1) Esperar la nueva versión de Smart PinPad (versión pendiente). 2) Utilizar la terminal IM30, enfocada en integraciones de autoservicio y kioscos; si se usa esta terminal, debe certificarse la generación de su propio ticket personalizado. 3) Deshabilitar la impresión del ticket predeterminado (disablePrintAnimation), lo cual implica certificar y generar su propio ticket personalizado. |
Preguntas recomendadas y opcionales · 2 preguntas
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| ¿Se implementó el campo trazabilidad (traceability)? | Es un objeto que puede contener otros objetos anidados; funciona únicamente como medio de comunicación y sus valores no se almacenan en NetPay. |
| ¿Tienen implementados logs en su punto de venta? | Especificar si manejan logs internos, locales o en servidor, y si registran excepciones, errores y/o peticiones. |
Escenarios obligatorios
Estos 22 escenarios se ejecutan siempre, sin importar qué funcionalidades tenga implementadas.
Venta en mostrador
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta normal con NIP (tarjeta de débito) | Tarjeta Débito - NIP | La transacción de venta se debe realizar correctamente. | Obligatoria |
| Venta normal con NIP (tarjeta de crédito) con multi-instancias | Tarjeta Crédito-NIP | El sistema no debe permitir enviar dos ventas al mismo tiempo: debe bloquear el botón después de la primera. La transacción debe completarse exitosamente y sin generar ventas duplicadas. | Obligatoria |
| Venta normal con firma autógrafa (tarjeta sin NIP) | 1.- Tarjeta con CHIP sin NIP 2.- Cualquier tarjeta sin NIP 3.- Tarjeta CONTACTLESS MASTERCARD (monto mayor a $1,000) | Al insertar la tarjeta, la terminal debe pedir firma autógrafa (firma en pantalla) y la venta debe completarse correctamente. Si no se cuenta con tarjeta sin NIP, puede usarse en su lugar una tarjeta CONTACTLESS MASTERCARD con monto mayor a $1,000. | Obligatoria |
| Venta normal por CONTACTLESS MASTERCARD (Monto Mayor +$10,001) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina (por ejemplo, por restricción del banco emisor), la terminal debe mostrar: con MASTERCARD, "ERROR AL LEER TARJETA"; con VISA, "TARJETA NO SOPORTADA". | Obligatoria |
| Venta normal por CONTACTLESS MASTERCARD (Monto Menor entre $1 y $999) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Hoy en día debe quedar APROBADA, aunque la decisión final siempre depende del banco emisor. | Obligatoria |
| Venta normal por CONTACTLESS VISA (Monto Mayor +$1,200) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina, la terminal debe mostrar “INTENTE OTRA INTERFAZ”. | Obligatoria |
| Venta normal por CONTACTLESS VISA (Monto Menor entre $1 y $999) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Hoy en día debe quedar APROBADA, aunque la decisión final siempre depende del banco emisor. | Obligatoria |
| Cancelado por el usuario | Cualquier Tarjeta | Enviar una venta sin insertar la tarjeta y cancelar/omitir la operación desde la terminal. El sistema debe devolver el mensaje "Cancelado por el usuario". | Obligatoria |
| Regla de fraude | Cualquier Tarjeta | En ambiente de PRUEBAS: enviar una venta con monto MAYOR a $12,000 para simular una declinación. Nota: en PRODUCCIÓN la regla real se activa así — mismo monto y misma tarjeta el mismo día (declina en la segunda transacción), o diferente monto y misma tarjeta el mismo día (declina en la tercera transacción). | Obligatoria |
Reimpresión y recuperación
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta esperando 3min en segundo voucher oficial de venta NetPay | Cualquier Tarjeta | Pasos: 1) Iniciar un temporizador de 3 minutos. 2) Enviar una venta e insertar la tarjeta. 3) La transacción debe aprobarse e imprimir el primer voucher oficial de NetPay. 4) El segundo voucher oficial debe quedar en espera. 5) Antes de que termine el temporizador, finalizar la venta — debe recibirse la respuesta exitosamente. Nota: si el voucher oficial de NetPay está desactivado, el tiempo de espera puede ser bastante menor a 3 minutos. | Obligatoria |
| Venta esperando más del tiempo límite del sistema durante el segundo voucher oficial de NetPay (+4min) | Cualquier Tarjeta | Pasos: 1) Iniciar un temporizador de 4 minutos. 2) Enviar una venta e insertar la tarjeta. 3) La transacción debe aprobarse e imprimir el primer voucher oficial de NetPay. 4) El segundo ticket debe quedar en espera. 5) Antes de que termine el temporizador, finalizar la venta y observar qué hace el sistema; si no llega respuesta, el comercio debe tener definido cómo manejarlo. Nota: si el voucher oficial está desactivado, esta prueba no aplica. | Obligatoria |
Reversos
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| *Reverso automático (Reversada): venta retirando la tarjeta antes de aprobarse | Tarjeta con NIP | Pasos: 1) Enviar una venta e ingresar la tarjeta y el NIP. 2) Avanzar hasta que aparezca la pantalla "Procesando Autorización". 3) Después de 1-2 segundos, retirar la tarjeta antes de que se apruebe la venta. Resultado esperado: El reverso se realiza automáticamente. El estatus final (Reversada o RV) solo puede consultarse mediante reimpresión por folio o en NetPay Manager. | Obligatoria |
| Reimpresión por folio del reverso automático | — | Debe regresar el mensaje "Transacción Reversada" y el campo reprintModule con valor RV. | Obligatoria |
| *Reverso manual (Pendiente por reversar): venta apagando la terminal o retirando la batería | Cualquier Tarjeta | Pasos: 1) Enviar la venta e ingresar la tarjeta y el NIP. 2) Esperar a que aparezca el mensaje "Retire la tarjeta" en pantalla. 3) Apagar la terminal (por botón o retirando la batería) justo en ese momento. Resultado esperado: La terminal se apaga a mitad de la transacción y no llega respuesta; en NetPay Manager la transacción queda con estatus APROBADO. Importante: si la terminal nunca confirmó que la venta se aprobó, no debe darse por aprobada — se reversará automáticamente el mismo día en la siguiente transacción. Lo que indique la terminal tiene siempre prioridad sobre cualquier otro medio de consulta. | Obligatoria |
| Reimpresión por folio del reverso manual (prueba anterior) | Cualquier Tarjeta | Debe regresar el mensaje "Transacción Pendiente Por Reversar" y el campo reprintModule con valor PRV, indicando que se necesita una siguiente transacción el mismo día para que se reverse. | Obligatoria |
| Venta posterior al reverso manual | Cualquier Tarjeta | Esta venta debe aprobarse correctamente y, al hacerlo, provocar internamente que la transacción anterior se reverse. La respuesta de esa venta anterior ya reversada (RV) solo puede consultarse por reimpresión por folio o en NetPay Manager, y únicamente después de esta nueva transacción. | Obligatoria |
| Reimpresión por folio del reverso manual | — | Debe regresar el mensaje "Transacción Reversada" y el campo reprintModule con valor RV. | Obligatoria |
Cancelación y devolución
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Devolución completa de venta | — | Debe ejecutarse desde la API de devoluciones y recibir el código 02, indicando que el proceso fue exitoso. | Obligatoria |
| Respuesta del Print-Ticket de la devolución completa | — | Debe registrarse la respuesta obtenida de la API Print-Ticket. | Obligatoria |
| Devolución parcial de venta | — | Debe ejecutarse desde la API de devoluciones con un monto menor al de la venta original, y recibir el código 02, indicando que el proceso fue exitoso. | Obligatoria |
| Respuesta del Print-Ticket de la devolución parcial | — | Debe registrarse la respuesta obtenida de la API Print-Ticket. | Obligatoria |
| Error de devolución | — | Puede simularse con cualquiera de los siguientes casos: 1) orderId incorrecto durante la devolución. 2) Monto mayor al de la venta original. 3) Doble devolución consecutiva. 4) Request incompleto en la devolución. | Obligatoria |
Funcionalidades opcionales
Los 24 escenarios restantes solo aplican si su sistema ofrece esa funcionalidad; puede desplegar únicamente los que le correspondan.
Venta en mostrador · 4 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta parcial con varias formas de pago (Parte 1) | Tarjeta de Crédito | Enviar 1 venta pagada con 2 tarjetas distintas (pago dividido). Ejemplo: de una venta de $500, la primera tarjeta paga $200 (el resto se cobra en la siguiente prueba). Debe completarse exitosamente y sin folios duplicados. | Si aplica |
| Venta parcial con varias formas de pago (Parte 2) | Tarjeta de Débito | Continuación del ejemplo anterior: cobrar el monto restante ($300) de la venta de $500. Debe completarse exitosamente y sin folios duplicados. | Si aplica |
| Venta con setBankOnly activo y valeras | Tarjeta de valeras | Solo aplica desde la versión DLL 1.7.0. Al activarse, no debe permitir tarjetas de valeras. | Si aplica |
| Venta con setBankOnly activo y tarjeta bancaria | Tarjeta Crédito o Débito | Solo aplica desde la versión DLL 1.7.0. Al activarse, debe permitir transaccionar con tarjetas bancarias. | Si aplica |
Meses sin intereses y propina · 9 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta a 3 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 6 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 9 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 12 Meses Sin Intereses | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta 18 Meses Sin Intereses (No aplica Amex) | Tarjeta de Crédito | La venta debe completarse correctamente y el ticket/respuesta debe mostrar los Meses Sin Intereses (MSI) aplicados. | Si aplica |
| Venta a Meses Sin Intereses con tarjeta de débito | Tarjeta Débito | Con tarjeta de débito, la promoción a meses sin intereses no aplica: la prueba debe mostrar el mensaje “PROMOCIÓN NO VÁLIDA PARA EL TIPO DE TARJETA”. | Si aplica |
| Venta con propina (pre-propina DESACTIVADA en menú oculto) | Cualquier Tarjeta | La venta debe completarse correctamente. Con la pre-propina desactivada, el monto y la propina se muestran juntos (sin separar) en el voucher oficial de NetPay. La propina por defecto no debe superar el 25% del monto de venta. | Si aplica |
| Venta con propina (pre-propina ACTIVADA en menú oculto) | Cualquier Tarjeta | La venta debe completarse correctamente. Con la pre-propina activada, el monto y la propina se muestran por separado en el voucher oficial de NetPay. La propina por defecto no debe superar el 25% del monto de venta. | Si aplica |
| Venta con Pantalla Propina | Cualquier Tarjeta | En la terminal debe aparecer una pantalla para elegir el porcentaje de propina. La venta debe completarse exitosamente y la propina por defecto no debe superar el 25% del monto de venta. | Si aplica |
Reimpresión y recuperación · 5 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Reimpresión de una venta aprobada (orderId) con multi-instancias | — | Al guardar una transacción, el sistema debe poder reimprimirla usando el ORDERID de una venta existente, directo desde la terminal. Si se presiona el botón varias veces seguidas, debe bloquearse para impedir reimpresiones duplicadas. | Recomendada |
| Reimpresión de una venta aprobada o declinada (folioId) con multi-instancias | — | Al guardar una transacción, el sistema debe poder reimprimirla usando el FOLIO de una venta existente, directo desde la terminal. Si se presiona el botón varias veces seguidas, debe bloquearse para impedir reimpresiones duplicadas. | Recomendada |
| Recuperación manual de una transacción aprobada con reimpresión por orderId | — | Este escenario simula que una venta APROBADA no llegó al sistema del comercio. Si el comercio tiene una forma de capturar el orderId manualmente, debe usarlo para recuperar la información (vía reimpresión por ORDERID) y guardarla automáticamente. Importante: el orderId debe tomarse solo del ticket físico impreso, nunca de otra fuente. | Recomendada |
| Recuperación manual de una transacción aprobada con reimpresión por folio | — | Este escenario simula que una venta APROBADA no llegó al sistema del comercio. Debe recuperarse la información vía reimpresión por FOLIO y guardarse automáticamente. También es válido tener un PRE-REGISTRO que recupere esta información por el mismo medio. | Recomendada |
| Reimpresión de una venta cancelada | — | La operación debe reimprimir exitosamente y debe indicar que es el duplicado de una cancelación. | Si aplica |
Reversos · 3 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Print-Ticket del reverso automático | — | No se recomienda usar esta consulta para verificar el estatus de reversos. | Recomendada |
| Print-Ticket del reverso manual (antes de la siguiente transacción) | — | No se recomienda usar esta consulta para verificar el estatus PRV (Pendiente Por Reversar). | Recomendada |
| Print-Ticket del reverso manual (después de la siguiente transacción) | — | No se recomienda usar esta consulta para verificar el estatus de reversos. | Recomendada |
Cancelación y devolución · 2 escenarios, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Cancelación de una venta con multi-instancias | — | La cancelación debe hacerse el mismo día de la venta, antes de las 8pm hora CDMX (como referencia). Presionar el botón varias veces seguidas para comprobar que el sistema bloquea intentos duplicados. | Si aplica |
| Evitar la cancelación de una venta cancelada desde el POS | — | El sistema del comercio debe rechazar esta operación (no permitir cancelar una venta ya cancelada desde el POS) y debe adjuntarse una captura de pantalla que lo demuestre. | Si aplica |
Conexión física · 1 escenario, solo si lo tiene implementado
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Prueba de desconexión de cable | — | Para validar este escenario: en DLL 1.5.5.2 usar el método findPortByDescription(); en DLL 1.7.0 o superior usar el método testConnection(). | Si aplica |
Variantes de este canal
Variante con cashback
Su alcance total pasa a 44 preguntas y 57 escenarios, de los cuales 31 son obligatorios.
Se añaden 3 preguntas
| Se le pregunta | Lo que NetPay espera leer |
|---|---|
| En los flujos donde se espera confirmar el cashback y recibir la respuesta final de la transacción, ¿lo manejan con un solo timer global o con varios timers distintos? | Especificar a detalle cómo se manejan los timers, ya sea uno o varios. La finalidad es validar que el sistema no se congele durante los distintos flujos y esperas de cashback. |
| ¿Cómo manejan el timer del frontend de su sistema al esperar la confirmación del cashback? | Si el usuario tarda más de 2 minutos en insertar la tarjeta, incluyendo varios reintentos de NIP, el sistema no debe verse afectado después de ese tiempo de espera de confirmación de cashback. |
| ¿Cómo manejan el timer del frontend de su sistema al esperar la respuesta final de la transacción? | Si el usuario tarda, por ejemplo, 1 minuto en insertar la tarjeta, 1 o 2 minutos en ingresar el NIP con un par de reintentos, y 1.5 minutos en confirmar el cashback, el sistema debe poder recibir la respuesta aun si ese tiempo de espera se prolonga. |
Se añaden 11 escenarios
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta con cashback confirmado. | Tarjeta con NIP y bines: 557910 415231 510125 51012525 41523133 | La venta debe aprobarse con cashback, sin contratiempos ni restricciones. | Obligatoria |
| Reimpresión de una venta con cashback. | — | Debe recibirse una respuesta similar a la de la venta original, pero con el campo isReprint en true. | Si aplica |
| Venta con cashback denegado en modal. | Tarjeta con NIP y bines: 557910 415231 510125 51012525 41523133 | Pasos: 1) Enviar la venta con cashback activo. 2) Al confirmar en el POS, denegar el cashback. Resultado esperado: La venta debe continuar automáticamente, sin cashback. | Obligatoria |
| Venta con cashback confirmado y venta rechazada | Tarjeta con NIP y bines: 557910 415231 510125 51012525 41523133 | Pasos: 1) Enviar la venta e insertar la tarjeta. 2) Mientras se espera la confirmación de cashback, retirar la tarjeta. 3) Confirmar en el sistema que SÍ se desea cashback. Resultado esperado: La venta continúa sin la tarjeta insertada y debe regresar el mensaje "Error de lectura". | Obligatoria |
| Venta con cashback sin confirmarlo en el POS | Tarjeta con NIP y bines: 557910 415231 510125 51012525 41523133 | Enviar la venta con cashback activo y no confirmarlo en el POS. Después de 2 minutos de espera debe recibirse una respuesta de timeout proveniente de la TPV. | Obligatoria |
| Venta con cashback (55seg de espera al ingresar tarjeta y 2 reintentos de ingreso de NIP de a 55seg cada 1) | Tarjeta con NIP y bines: 557910 415231 510125 51012525 41523133 | Esta espera no debe afectar ni la respuesta de confirmación de cashback ni la respuesta de finalización de la venta. Precaución: 3 intentos consecutivos de NIP pueden bloquear la tarjeta. | Obligatoria |
| Venta con cashback sin los requerimientos mínimos. | Tarjeta con NIP y bines: 557910 415231 510125 51012525 41523133 | La prueba debe omitir al menos una de las condiciones necesarias para cashback: 1) Monto mínimo de venta (ej. $1,100) 2) Monto mínimo de cashback (ej. $200) 3) storeId (ej. 550011) 4) Smart PinPad 2.4 5) Bin de tarjeta correspondiente. | Obligatoria |
| Venta con cashback con tarjetas no compatibles. | Tarjeta de Crédito Tarjeta Contactless Tarjeta de débito SIN NIP | La transacción debe continuar como venta sin cashback. | Obligatoria |
| Venta con cashback con funcionalidades no compatibles. | Tarjeta con NIP y bines: 557910 415231 510125 51012525 41523133 | Enviar la venta con cashback activo combinado con Meses Sin Intereses o con propina (ejecutar solo si el comercio tiene implementada esa funcionalidad). | Si aplica |
| Reverso automático de venta con cashback activo | Tarjeta con NIP y bines: 557910 415231 510125 51012525 41523133 | Pasos: 1) Enviar la venta e ingresar la tarjeta y el NIP. 2) Retirar la tarjeta cuando aparezca el mensaje "Procesando Autorización", después de unos segundos y justo antes de que se apruebe la transacción. Resultado esperado: El reverso se realiza automáticamente. El estatus final (Reversada o RV) solo puede consultarse mediante reimpresión por folio o en NetPay Manager. | Obligatoria |
| Venta con cashback desconectando o moviendo el cable | Tarjeta con NIP y bines: 557910 415231 510125 51012525 41523133 | No debe recibirse respuesta. El objetivo es validar que el POS del comercio no se congele y que cuente con un medio de recuperación de la venta, como la reimpresión por folio. | Obligatoria |
Variante con check-in y check-out
Su alcance total pasa a 41 preguntas y 72 escenarios, de los cuales 39 son obligatorios.
Se añaden 29 escenarios
| Escenario | Tarjeta | Resultado esperado | Nivel |
|---|---|---|---|
| Venta check-in con NIP débito | Tarjeta Débito - NIP | La venta debe completarse correctamente. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 100% | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| Venta check-in con NIP crédito con multi-instancias | Tarjeta Crédito-NIP | La venta debe completarse correctamente. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 110% | — | No está permitido superar el 100%: el sistema del comercio también debe impedirlo. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| Venta check-in sin NIP Débito/Crédito | Tarjeta CNI sin chip por banda sin NIP | La venta debe completarse correctamente. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 90% | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| Venta check-in por CONTACTLESS VISA (Monto Mayor +$1,200) | Tarjeta Contactless VISA | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina (por ejemplo, por restricción del banco emisor), debe mostrarse "INTENTE OTRA INTERFAZ". | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| Venta check-in por CONTACTLESS MASTERCARD (Monto Menor entre $1 y $999) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX. Puede APROBARSE o DECLINARSE; si se declina, puede deberse a una restricción del banco emisor. | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 20% | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| Venta check-in por CONTACTLESS MASTERCARD (Monto Mayor +$10,001) | Tarjeta Contactless MASTERCARD | La transacción debe procesarse según las reglas de VISA, MASTERCARD y AMEX, y puede terminar APROBADA o DECLINADA — ambos resultados son válidos. Si se declina (por ejemplo, por restricción del banco emisor), debe mostrarse: con MASTERCARD, "ERROR AL LEER TARJETA"; con VISA, "TARJETA NO SOPORTADA". | Obligatoria |
| Reimpresión por folio del Check-in | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
| API Checkout 0% | — | Al enviarse con monto $0, actúa como una cancelación — en NetPay Manager se visualiza como un Checkout con monto $0. Debe tenerse precaución para evitar que los checkouts se realicen enviando monto $0 por error. | Obligatoria |
| API Print-Ticket | — | Se realiza en una API independiente de la terminal y debe completarse correctamente. No se recomienda usar esta consulta para verificar el estatus de reversos. | Obligatoria |
| Reimpresión por folio después del Checkout | — | Debe recibirse una respuesta exitosa y el sistema debe validar correctamente el estatus de la transacción. | Si aplica |
Dejan de aplicar
Escenarios:
- Venta con setBankOnly activo y valeras
- Venta con setBankOnly activo y tarjeta bancaria
- Prueba de desconexión de cable
10. Interpretación de los estatus
Cada pregunta y cada escenario recibe un estatus durante la revisión. Esta tabla le será útil sobre todo cuando NetPay le devuelva sus resultados.
Significado de cada estatus
| Estatus | Quién lo pone | Qué significa |
|---|---|---|
| Pendiente / Pendiente ejecutar | Estado inicial | Aún no se contesta o no se ejecuta. |
| Falta validar si lo implementó el comercio | NetPay | Es el estatus inicial de los escenarios opcionales. NetPay aún no sabe si esa funcionalidad existe en su sistema y espera su confirmación para incluirlos o descartarlos. |
| En revisión | NetPay | Recibido y en evaluación. |
| Realizado ✔ / OK | NetPay | Cumple el resultado esperado. |
| A Mejorar | NetPay | Opera correctamente, aunque presenta áreas de oportunidad que deben atenderse. |
| No Implementado | NetPay | La funcionalidad no existe en su sistema. |
| No Aplica | NetPay | No corresponde a su tipo de integración. |
| No realizado debido a falta de insumos | NetPay | No fue posible ejecutarlo por ausencia de tarjeta, StoreId, versión o terminal. Es el estatus que con mayor frecuencia se evita reuniendo el material descrito en el apartado 2. |
| Ticket Personalizado 'No Certificado' | NetPay | El ticket propio no cumplió los requisitos del apartado 4. |
11. Puntos importantes que pueden retrasar la certificación
Este apartado reúne lo que con más frecuencia obliga a repetir una prueba o a reabrir un punto durante la revisión. Le sugerimos leerlo antes de ejecutar los escenarios, no después.
Lo que con más frecuencia genera retrasos
- Definir tarde el alcance. Cambiar el tipo de integración con el trabajo ya avanzado modifica las preguntas y los escenarios que aplican, y obliga a revisar de nuevo lo ya respondido.
- Responder el cuestionario sin verificar. Cada respuesta se contrasta con el comportamiento observado durante las pruebas, y cualquier incongruencia reabre el punto.
- Tiempos de espera insuficientes. Un temporizador de 60 segundos en el frontend compromete buena parte del bloque de esperas.
- Folio no único. Si el folio se repite entre sucursales o en operaciones declinadas, la recuperación por reimpresión deja de ser posible y varios escenarios quedan sin resolver.
- Evaluar el resultado con un campo distinto al indicado. El campo aplicable es
responseCode(00), osuccessen SDK; no el texto impreso en el ticket. - Utilizar Print-Ticket para consultar el estatus de reversos. La documentación indica que no es fiable para ese fin; debe emplearse la reimpresión por folio.
- Enviar el
orderIdcorto en devoluciones. La API de devoluciones requiere elorderIdlargo que devuelve Print-Ticket. - Evidencias cruzadas. El ticket de una prueba acompañado del JSON de otra.
- Iniciar la sesión sin el material requerido. Sin tarjeta contactless, sin un BIN habilitado para cashback o sin la versión mínima de Smart PinPad, la prueba se registra como No realizado por falta de insumos.
- Desactivar el voucher oficial sin certificar el propio. Conduce directamente al estatus Ticket Personalizado 'No Certificado'.
Precisiones sobre funcionalidades concretas
Los dos primeros aplican a cualquier integración; los siguientes solo si su sistema ofrece esa funcionalidad, por lo que se presentan plegados.
Aplica a toda integración
El manejo de reversos es de implementación obligatoriaNo es opcional ni depende de su tipo de integración: aplica a API, SDK y COM por igual, y se resuelve mediante la reimpresión por folio. Es un flujo poco frecuente y, precisamente por ello, suele quedar para el final y llegar sin implementar a la sesión de certificación. Los dos tipos de reverso, los pasos para provocar cada uno y los valores que devuelve la reimpresión están en el apartado 8.
Una venta de su sistema puede corresponder a varias transacciones en la terminalOcurre en las ventas parciales y en cualquier cobro que se liquide con más de una tarjeta o en más de un intento. Para su sistema es una sola venta, con un importe único y un solo registro en su base de datos; para la terminal son transacciones independientes, y cada una tiene su propia autorización y su propio resultado.
Por esa razón, cada transacción enviada a la terminal debe llevar un folio distinto. Si dos cobros comparten el mismo folio, la consulta por folio devolverá únicamente uno de ellos y el otro quedará sin trazabilidad. Ese es precisamente el punto que se valida.
Aplica solo si su integración lo incluye
Propina · valor por defecto
En todos los escenarios de propina, el valor propuesto por defecto debe ser inferior al 25 % del monto de la venta. Es el único requisito transversal del bloque: el resto de los escenarios de propina se listan, ya filtrados para su integración, en el apartado 9.
Devoluciones · si su integración las incluye
Una devolución, total o parcial, se considera exitosa cuando el campo code devuelve el valor 02. Cualquier otro valor debe tratarse como un error y así debe registrarlo su sistema.
Cashback · solo en integraciones por COM
El cashback está disponible únicamente en integraciones por COM, en la variante COM (con cashback). Si su integración es por API o por SDK, este apartado no le aplica.
Las cinco condiciones del cashback
Para que la terminal ofrezca cashback deben cumplirse las cinco de forma simultánea: monto mínimo de venta, monto mínimo de retiro, StoreId habilitado para la operativa, Smart PinPad 2.4 o superior, y un BIN de tarjeta incluido en la lista autorizada. Si alguna no se cumple, la venta continúa sin cashback, y precisamente ese comportamiento es el que se valida.
El flujo de cashback tiene dos respuestas
La primera confirma el cashback; la segunda cierra la venta. Su sistema debe estar preparado para ambas, y también para que el usuario demore entre una y otra: puede emplear un minuto en insertar la tarjeta, uno o dos en ingresar el NIP con algún reintento y minuto y medio en confirmar el retiro, y aun así su sistema debe recibir la respuesta.
Si el cashback no se confirma en el punto de venta
La terminal devuelve una respuesta de timeout a los 2 minutos. Es uno de los escenarios de la certificación, y su sistema debe procesar esa respuesta sin quedar bloqueado.
