Tarjeta crédito y débito
Formulario embebido con tokenización: los datos de la tarjeta nunca pasan por tu servidor.
Cobra con tarjeta, transferencia SPEI, efectivo en tiendas y meses sin intereses directamente en tu tienda y portal de Odoo, con 3D Secure y la seguridad de Openpay.
La forma más simple de aceptar pagos en línea en México con Odoo.
Este módulo integra la pasarela Openpay (BBVA) con el framework de pagos nativo de Odoo. Tus clientes pagan en el eCommerce, en el portal de cliente o mediante enlaces de pago, y la operación se concilia sola en tu contabilidad. Ideal para cualquier negocio mexicano que vende en línea y quiere ofrecer tarjeta, SPEI, efectivo en tiendas y meses sin intereses sin desarrollos a la medida.
Una pasarela completa, pensada para el mercado mexicano.
Formulario embebido con tokenización: los datos de la tarjeta nunca pasan por tu servidor.
Elige el modo: directo, siempre 3DS o automático (3DS solo si el antifraude lo marca).
3, 6, 9, 12 y 18 MSI con monto mínimo por plazo, directo en el formulario de pago.
Genera una CLABE de pago con vigencia de 7 días hábiles y un comprobante PDF con los pasos desde BBVA (convenio CIE) y desde otros bancos.
Referencia con código de barras, vigente 7 días hábiles, y comprobante PDF con las tiendas Paynet donde pagar (7-Eleven, Circle K, Farmacias del Ahorro…).
Permite pagar con puntos de recompensa y procesa reembolsos totales desde la misma orden.
Un interruptor por método: enciende SPEI, efectivo, MSI o puntos cuando los necesites.
Confirma el estado del cargo de forma automática y mantiene la transacción al día en Odoo.
Si Openpay rechaza una tarjeta robada, perdida o fraudulenta, el cliente ve un mensaje genérico, como lo pide Openpay, y el pago queda registrado en Odoo.
Primero en el panel de Openpay, luego en Odoo.
Al elegir tiendas de conveniencia, el cliente lee en el mismo checkout dónde pagar, que su referencia tiene una vigencia de 7 días hábiles y cómo se confirmará su pedido:
Con SPEI, el checkout explica que se generará una CLABE de pago única con vigencia de 7 días hábiles:
En tu panel de Openpay entra a Configuraciones y copia el ID de comercio, la llave pública y la llave privada. Ahí mismo está la sección de Webhooks.
Agrega un nuevo webhook en Openpay y pega la URL del webhook que muestra el proveedor en Odoo. Marca estas casillas de eventos de notificación (agrupadas por sección) para que Openpay confirme el estado del pago de forma automática:
Los pagos en efectivo se confirman con Cargos → Completados, en cuanto la tienda reporta el cobro.
Cargos — Creados, Completados, Cancelados, Fallidos y ReembolsadosSPEI — RecibidosWebhooks — Verificación (necesaria para dar de alta el webhook)
Openpay envía un código de verificación a la URL. El módulo responde a esa solicitud automáticamente; confirma la verificación para empezar a recibir notificaciones.

En Contabilidad → Configuración → Proveedores de pago abre Openpay. En la pestaña Métodos de pago enciende los que ofrecerás: Tarjeta, SPEI y Tiendas de conveniencia.


En el checkout del eCommerce o del portal, el cliente elige Openpay y selecciona cómo pagar: tarjeta (con meses sin intereses si lo activaste), transferencia SPEI o efectivo en tiendas. El pago se procesa y la orden se concilia en Odoo.
El formulario de tarjeta queda dentro del checkout, con la casilla de meses sin intereses y el logotipo de Openpay by BBVA al pie, como lo pide Openpay. Si un cargo no pasa, el cliente puede volver a intentarlo las veces que necesite.








Cada rechazo de Openpay llega al cliente con un mensaje claro y queda registrado en Odoo.
Cuando Openpay no aprueba un cargo, responde con un código de error. El módulo lo traduce a un mensaje en español que le dice al cliente qué pasó y qué puede hacer, en lugar de un error técnico. En los casos de tarjeta robada, perdida, clonada o retenida, por indicación de Openpay, el cliente solo ve un mensaje genérico sin el motivo del rechazo. Además, el módulo envía a Openpay la IP del cliente en cada cargo, como exige su prevención de fraude.
Si la tarjeta está reportada como robada o perdida, o el antifraude de Openpay la identifica como fraudulenta (por ejemplo, una tarjeta clonada), el cobro se bloquea y el cliente ve el aviso Pago rechazado con un mensaje genérico: No se pudo procesar el pago. Usa otra tarjeta o comunícate con tu banco. Openpay pide no revelar el motivo para no dar pistas a quien usa una tarjeta ajena.
Si el procesamiento del cargo está en Automático, ante un rechazo del antifraude el módulo primero reintenta el cobro con 3D Secure. El aviso solo aparece si Openpay lo vuelve a rechazar.
Para los demás rechazos (fondos insuficientes, tarjeta vencida, declinada por el banco, etc.) el cliente ve el aviso Pago rechazado con la causa y la siguiente acción sugerida. Puede volver a intentar con otra tarjeta o con otro método de pago sin salir del checkout.


Esta es la lista completa de códigos que Openpay puede devolver y el mensaje que muestra el módulo en cada caso. Los de datos de la tarjeta se detectan antes de cobrar, al validar la tarjeta.
| Código | Razón (Openpay) | Título | Mensaje que ve el cliente |
| Tarjetas bloqueadas por seguridad | |||
3004 | La tarjeta fue identificada como robada. | Pago rechazado | No se pudo procesar el pago. Usa otra tarjeta o comunícate con tu banco. |
3005 | La tarjeta fue identificada como fraudulenta por el sistema antifraude (por ejemplo, una tarjeta clonada). | Pago rechazado | No se pudo procesar el pago. Usa otra tarjeta o comunícate con tu banco. |
3009 | La tarjeta fue reportada como perdida. | Pago rechazado | No se pudo procesar el pago. Usa otra tarjeta o comunícate con tu banco. |
3011 | El banco pidió retener la tarjeta. | Pago rechazado | No se pudo procesar el pago. Usa otra tarjeta o comunícate con tu banco. |
| Rechazos del banco | |||
3001 | El banco emisor declinó la tarjeta. | Pago rechazado | Tu banco rechazó el pago. Usa otra tarjeta o comunícate con tu banco. |
3002 | La tarjeta ya expiró. | Pago rechazado | La tarjeta está vencida. Usa otra tarjeta. |
3003 | La tarjeta no tiene fondos suficientes. | Pago rechazado | La tarjeta no tiene fondos suficientes. Usa otra tarjeta u otro método de pago. |
3006 | La operación no está permitida para ese cliente o esa transacción. | Pago rechazado | La operación no está permitida para esta tarjeta. Usa otra tarjeta. |
3007 | El banco declinó la tarjeta. | Pago rechazado | La tarjeta fue rechazada. Comunícate con tu banco. |
3008 | La tarjeta no acepta transacciones en línea. | Pago rechazado | La tarjeta no está habilitada para compras en línea. Actívala con tu banco o usa otra tarjeta. |
3010 | El banco restringió la tarjeta. | Pago rechazado | Tu banco restringió esta tarjeta. Comunícate con tu banco o usa otra tarjeta. |
3012 | Hay que pedir al banco autorización para este pago. | Pago rechazado | Tu banco requiere que autorices este pago. Comunícate con él y vuelve a intentarlo. |
| Datos de la tarjeta (antes de cobrar) | |||
1001 | Faltan datos de la tarjeta o tienen un formato incorrecto. | Error de pago | Revisa los datos de la tarjeta: hay campos vacíos o con formato incorrecto. |
2004 | El número de tarjeta no pasa la validación (dígito verificador). | Error de pago | El número de tarjeta no es válido. Revísalo e inténtalo de nuevo. |
2005 | La fecha de vencimiento ya pasó. | Error de pago | La tarjeta está vencida. Usa otra tarjeta. |
2006 | No se capturó el código de seguridad (CVV). | Error de pago | Falta el código de seguridad (CVV) de la tarjeta. |
2009 | El código de seguridad (CVV) no es válido. | Error de pago | El código de seguridad (CVV) no es válido. Revísalo e inténtalo de nuevo. |
| Servicio y 3D Secure | |||
2010 | La autenticación 3D Secure no se completó. | Página de estado del pago | Falló la autenticación 3D Secure. Inténtalo de nuevo. |
1000 | Error interno del servidor de Openpay. | Pago rechazado | Ocurrió un error en el servicio de pago. Inténtalo de nuevo. |
1004 / 1005 | Un servicio de Openpay no está disponible o no encontró un recurso necesario. | Pago rechazado | El servicio de pago no está disponible por el momento. Inténtalo más tarde. |
Otro | Openpay rechazó el cargo con un código no listado (tras 3D Secure o por webhook). | Página de estado del pago | No se pudo procesar el pago. Usa otra tarjeta o comunícate con tu banco. |

Cada pago rechazado queda como una transacción en estado Error con el mismo mensaje, y se registra en el historial de la cotización, la orden o la factura. Así tu equipo sabe que el cliente intentó pagar y puede darle seguimiento.

Se integra con el motor de pagos nativo de Odoo.
Para Odoo 20. Depende del módulo payment y funciona donde funciona el pago nativo: eCommerce, portal de cliente y enlaces de pago. No reemplaza tu configuración contable: registra las transacciones con el flujo estándar de Odoo. Procesa en pesos mexicanos (MXN) a través de Openpay (BBVA).
Descubre nuestros desarrollos más recientes para ampliar las funcionalidades de Odoo y optimizar la gestión de tu negocio.