Integración MONEI
Estado de la integración con MONEI — todavía no liberada, qué existe ya detrás del flag, por qué no tiene recurso de mandatos, y la superficie v1 y MCP exacta que aparece al liberarse.
MONEI todavía no está disponible. Sus endpoints v1 y sus tools MCP no
están registrados, así que llamarlos hoy devuelve 404 route_not_found. Esta
página documenta el estado de la integración y la superficie que aparecerá
cuando se libere — no es una guía de uso.
MONEI es una pasarela de pago española que cobra con tarjeta y Bizum. El dinero se mueve en el momento de la captura, como en una pasarela de tarjeta y a diferencia del adeudo directo SEPA — que es la razón de que su integración tenga una forma algo distinta de la de GoCardless.
Qué significa «todavía no liberada»
La única fuente de verdad es la lista de pasarelas de pago liberadas del backend
(integrations.released_providers), que hoy contiene solo Stripe. Es
configuración, no código, así que una pasarela se enciende sin desplegar código.
Mientras MONEI esté fuera de esa lista:
- Su bloque de rutas v1 no está registrado. Los endpoints
/v1/monei-autoinvoicing/*no existen — no están en el registro de rutas, ni en la especificación OpenAPI, ni en la referencia de API de este sitio. - Sus tools MCP quedan filtradas del servidor público.
- La pasarela aparece como «Próximamente» en el marketplace de integraciones del Dashboard, y el flujo de conexión está bloqueado también en el command handler.
- El endpoint de cuentas conectadas agnóstico de pasarela filtra sus resultados a las pasarelas liberadas, así que ninguna cuenta de MONEI asoma tampoco por ahí.
Las clases están dormidas, no ausentes. La liberación cambia una lista.
Sin recurso de mandatos, y no es una omisión
GoCardless cobra por adeudo directo SEPA, así que un mandato — la autorización permanente del cliente para sacar dinero de su cuenta bancaria — es un objeto de primer nivel con su propio ciclo de vida, y tiene su propio endpoint y su propia tool MCP.
MONEI no usa adeudo directo SEPA. No hay autorización permanente que modelar,
así que no hay recurso mandates, ni estados de mandato que sincronizar, ni
webhooks de mandatos. Si estás portando una integración escrita contra
GoCardless, esa rama entera desaparece; no hay nada sobre lo que mapearla.
Qué existe ya detrás del flag
| Pieza | Estado |
|---|---|
| Flujo de conexión | Construido. MONEI se autentica con una API key, no con OAuth 2 |
| Verificación de la firma del webhook | Construida |
| Normalizador de eventos | Construido — mapea los estados de pago de MONEI sobre los mismos eventos de pago internos que usa el pipeline de Stripe |
| Cuentas conectadas por pasarela | Construidas — listar, obtener, actualizar y desconectar, replicando el modelo multi-tienda de Stripe |
| Cobros y rectificativas auto-facturados | Construidos — mismas reglas de decisión, misma alta en VeriFactu que en Stripe |
| Mandatos | No aplica — ver más arriba |
Qué estados facturan, y cuáles no lo hacen a propósito
MONEI informa del estado de un pago como un status del propio objeto de pago, y
el normalizador se apoya en él:
| Estado de MONEI | Qué produce |
|---|---|
SUCCEEDED | Se trata como cobrado → corre el flujo de auto-facturación |
REFUNDED, PARTIALLY_REFUNDED | Se tratan como devolución → flujo de factura rectificativa, total o parcial |
FAILED, CANCELED | Se registran como cobro fallido; no se emite nada |
AUTHORIZED | Se ignora a propósito — una autorización sin captura no es dinero cobrado, y facturarla sería facturar un cobro que quizá nunca se capture |
| Cualquier otro | Se registra como evento desconocido |
Un pago sin identificador se descarta antes que ninguna otra cosa: sin id no hay identidad canónica ni clave de idempotencia, así que no se podría deduplicar ni reprocesar con seguridad.
La superficie que aparece al liberarse
Endpoints v1
| Endpoint | Scope |
|---|---|
GET /v1/monei-autoinvoicing/connected-accounts | monei_autoinvoicing:read |
GET /v1/monei-autoinvoicing/connected-accounts/{account} | monei_autoinvoicing:read |
PUT /v1/monei-autoinvoicing/connected-accounts/{account} | monei_autoinvoicing:write |
DELETE /v1/monei-autoinvoicing/connected-accounts/{account} | monei_autoinvoicing:write |
GET /v1/monei-autoinvoicing/payments | monei_autoinvoicing:read |
GET /v1/monei-autoinvoicing/correctives | monei_autoinvoicing:read |
El listado de cobros lleva un filtro origin (subscription / oneshot) por
simetría con las demás pasarelas. Si MONEI no tiene cobros de suscripción tuyos,
origin=subscription devuelve una página vacía en lugar de un error.
Tools MCP
list_monei_connected_accounts, get_monei_connected_account,
update_monei_connected_account, disconnect_monei_connected_account,
list_monei_autoinvoiced_payments y list_monei_autoinvoiced_correctives — una
por cada endpoint de arriba, con los mismos scopes.
Requisito de plan
La integración con MONEI es un módulo de los planes Empresario y Enterprise, igual que las integraciones con Stripe y GoCardless. Estar en el plan correcto no bastará por sí solo mientras la pasarela siga sin liberarse — tienen que cumplirse las dos condiciones.
Equivalencias con el flujo de Stripe
La parte específica de cada pasarela termina en el normalizador: a partir de ahí, todas las pasarelas comparten el mismo pipeline de facturación, las mismas decisiones fiscales y la misma alta en VeriFactu que describe Auto-facturación con Stripe.
| Concepto | Stripe | MONEI |
|---|---|---|
| Autenticación | OAuth 2 (Stripe Connect) | API key |
| Multi-tienda | connected-accounts por cuenta | Mismo modelo, bajo monei-autoinvoicing/connected-accounts |
| Señal de «cobro con éxito» | charge.succeeded / invoice.paid | Estado de pago SUCCEEDED |
| Devoluciones | charge.refunded → factura rectificativa | REFUNDED / PARTIALLY_REFUNDED → factura rectificativa |
| Autorización sin capturar | No se factura | AUTHORIZED, no se factura |
| Mandatos | No aplica | No aplica |
| Ciclos de suscripción | invoice.paid con un billing_reason de suscripción | Sin rama equivalente en el normalizador |
| Conciliación de payouts | Soportada | Hoy no cubierta |
Qué funciona hoy de todas formas
La bandeja de eventos de integración es
agnóstica de la pasarela y está registrada sin condiciones, así que
provider=monei es allí un valor de filtro válido desde el primer día —
incluidos los eventos históricos, que es justo la razón de que esas filas no se
oculten.