docs(decisiones): ADR 0009 - PayU elegido como proveedor de pago
Dato de negocio real del usuario: cuentas disponibles son Davivienda, Lulo Bank y Banco de Bogota -- ninguna Bancolombia ni Nequi. Verificado el mismo dia: Wompi exige cuenta Bancolombia o al menos Nequi solo para REGISTRARSE como comercio (aunque la liquidacion despues pueda ir a cualquier banco) -- ninguno de los bancos disponibles califica sin abrir una cuenta nueva. PayU solo exige cuenta bancaria colombiana a nombre del comercio, sin banco especifico, y ya soporta PSE + Nequi + Daviplata para el cliente sin importar el banco del comercio -- cubre exactamente lo que se pidio (PSE + Nequi 'y demas bancos'). Estado pasa de propuesta a aceptada. Wompi se deja documentado como deuda a reevaluar si en el futuro se abre cuenta Bancolombia/Nequi -- no se descarta por limitacion tecnica del plugin, solo por el requisito de registro actual.
This commit is contained in:
1 parent
525ebde5ce
commit
f88b72d781
1 file changed
+60
-25
@@ -1,7 +1,7 @@
|
|||||||
# ADR 0009 — Checkout real (pago en línea + envíos) para ARI Shopping
|
# ADR 0009 — Checkout real (pago en línea + envíos) para ARI Shopping
|
||||||
|
|
||||||
**Estado:** propuesta — pendiente de decisión de negocio (§3) antes de
|
**Estado:** aceptada — proveedor de pago decidido (PayU, §3);
|
||||||
implementar
|
implementación real (credenciales, shipping options, código) pendiente
|
||||||
**Fecha:** 2026-08-28
|
**Fecha:** 2026-08-28
|
||||||
|
|
||||||
## Contexto
|
## Contexto
|
||||||
@@ -101,41 +101,76 @@ tiene ninguna shipping option que ofrecer.
|
|||||||
webhooks en vivo antes de confiar en el flujo, no asumir que
|
webhooks en vivo antes de confiar en el flujo, no asumir que
|
||||||
"funciona igual que todo lo demás".
|
"funciona igual que todo lo demás".
|
||||||
|
|
||||||
## 3. Decisión pendiente — requiere input del usuario, no se puede resolver en este ADR
|
## 3. Decisión de proveedor — PayU
|
||||||
|
|
||||||
Este ADR **no elige proveedor de pago** porque la elección real
|
Dato de negocio real que decidió esto (aportado por el usuario,
|
||||||
depende de datos de negocio que no están en el código ni son míos
|
2026-08-28): las cuentas bancarias disponibles son Davivienda, Lulo
|
||||||
para decidir:
|
Bank y Banco de Bogotá — **ninguna es Bancolombia ni Nequi**.
|
||||||
|
|
||||||
- ¿Ya existe una cuenta bancaria/comercial en Colombia con la que
|
Verificado contra fuentes reales el mismo día (no memoria):
|
||||||
abrir Wompi (Bancolombia) o PayU directamente?
|
|
||||||
- ¿Preferencia por comisión, tiempo de liquidación, o soporte en
|
- **Wompi exige cuenta Bancolombia o, como mínimo, cuenta Nequi para
|
||||||
español de cada uno?
|
poder registrarse como comercio** (modelo Agregador) — confirmado
|
||||||
- Credenciales reales (API keys, webhook secrets) — nunca generadas
|
contra el reglamento de comercios de Wompi y su centro de soporte.
|
||||||
ni asumidas por mí.
|
La liquidación de ventas sí puede ir después a cualquier banco
|
||||||
|
colombiano, pero la puerta de entrada al registro sigue siendo
|
||||||
|
Bancolombia/Nequi. Con los bancos disponibles hoy, esto exigiría
|
||||||
|
abrir una cuenta Nequi nueva solo para poder registrarse — paso
|
||||||
|
extra evitable.
|
||||||
|
- **PayU solo exige "cuenta bancaria colombiana a nombre del
|
||||||
|
comercio"**, sin banco específico — Davivienda, Lulo Bank o Banco de
|
||||||
|
Bogotá califican igual, sin pasos previos. Además ya soporta **PSE**
|
||||||
|
(transferencia desde cualquier banco colombiano del cliente, sin
|
||||||
|
relación con el banco del comercio), **Nequi** y **Daviplata** como
|
||||||
|
métodos de pago para los clientes vía redirección — cubre exactamente
|
||||||
|
los métodos que se pidieron (PSE + Nequi "y demás bancos") sin que
|
||||||
|
la cuenta bancaria propia del comercio sea Bancolombia.
|
||||||
|
|
||||||
|
**Decisión:** PayU, vía el plugin comunitario `@tax1driver/medusa-payu`
|
||||||
|
(compatibilidad declarada con Medusa 2.4.0+, cubre nuestra versión
|
||||||
|
2.18.0). Wompi queda descartado por el requisito de registro
|
||||||
|
Bancolombia/Nequi, no por limitación técnica del plugin en sí.
|
||||||
|
|
||||||
|
**Pendiente antes de implementar (no resoluble en este ADR):**
|
||||||
|
|
||||||
|
- Registro real de comercio en PayU (persona natural o jurídica —
|
||||||
|
jurídica pide NIT, representante legal y estados financieros
|
||||||
|
básicos) y credenciales reales (API keys, merchant ID, webhook
|
||||||
|
config) — nunca generadas ni asumidas por mí.
|
||||||
|
- Verificar el código fuente real de `@tax1driver/medusa-payu` en el
|
||||||
|
tag exacto a instalar antes de confiar en su documentación, misma
|
||||||
|
disciplina que ya destapó desviaciones reales en el plugin de
|
||||||
|
Meilisearch (ADR 0006).
|
||||||
|
|
||||||
## Opciones consideradas
|
## Opciones consideradas
|
||||||
|
|
||||||
| Opción | A favor | En contra |
|
| Opción | A favor | En contra |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| **Stripe** | Integración core de Medusa, mejor documentada, configuración mínima | No acepta comercios registrados en Colombia — bloqueador de negocio, no técnico |
|
| **Stripe** | Integración core de Medusa, mejor documentada, configuración mínima | No acepta comercios registrados en Colombia — bloqueador de negocio, no técnico |
|
||||||
| **PayU** (`@tax1driver/medusa-payu`) | Compatibilidad declarada explícitamente con Medusa 2.4.0+ (cubre 2.18.0); presencia real en Colombia | Plugin comunitario, no de primera clase; requiere la misma verificación de código fuente que ya se le hizo al plugin de Meilisearch antes de confiar en él |
|
| **PayU** (`@tax1driver/medusa-payu`) — **elegido** | Compatibilidad declarada explícitamente con Medusa 2.4.0+ (cubre 2.18.0); solo exige cuenta bancaria colombiana a nombre del comercio, sin banco específico (encaja con Davivienda/Lulo Bank/Banco de Bogotá); soporta PSE + Nequi + Daviplata para el cliente sin importar el banco del comercio | Plugin comunitario, no de primera clase; requiere la misma verificación de código fuente que ya se le hizo al plugin de Meilisearch antes de confiar en él |
|
||||||
| **Wompi** (`medusa-payment-wompi-col`) | Liquidación directa en COP vía Bancolombia, el encaje de negocio más directo para un comercio colombiano | Sin versión de Medusa documentada ni actividad reciente visible — mayor riesgo de compatibilidad no verificada que PayU |
|
| **Wompi** (`medusa-payment-wompi-col`) | Liquidación directa en COP vía Bancolombia | Exige cuenta Bancolombia o, como mínimo, Nequi solo para **registrarse** como comercio — ninguno de los bancos disponibles (Davivienda/Lulo Bank/Banco de Bogotá) califica sin abrir una cuenta nueva; además, sin versión de Medusa documentada ni actividad reciente visible en el plugin |
|
||||||
| **Seguir con WhatsApp** (no pago en línea) | Cero riesgo nuevo, cero dependencia externa | No resuelve el objetivo real (transacción completa sin intervención manual); no es checkout, es lo que ya existe hoy |
|
| **Seguir con WhatsApp** (no pago en línea) | Cero riesgo nuevo, cero dependencia externa | No resuelve el objetivo real (transacción completa sin intervención manual); no es checkout, es lo que ya existe hoy |
|
||||||
|
|
||||||
## Consecuencias (si se procede, una vez elegido el proveedor)
|
## Consecuencias
|
||||||
|
|
||||||
- Las shipping options son un prerequisito independiente del proveedor
|
- Las shipping options son un prerequisito independiente del proveedor
|
||||||
y deben configurarse primero — sin ellas ningún flujo de checkout
|
y deben configurarse primero — sin ellas ningún flujo de checkout
|
||||||
completa, sea cual sea el pago.
|
completa, sea cual sea el pago.
|
||||||
- Cualquier plugin comunitario (PayU o Wompi) exige la misma
|
- Al ser `@tax1driver/medusa-payu` un plugin comunitario (no de
|
||||||
disciplina de verificación que ya destapó desviaciones reales en el
|
primera clase como Stripe), exige la misma disciplina de
|
||||||
plugin de Meilisearch (ADR 0006, nota de implementación): leer el
|
verificación que ya destapó desviaciones reales en el plugin de
|
||||||
código fuente en el tag exacto que se va a instalar, no el README
|
Meilisearch (ADR 0006, nota de implementación): leer el código
|
||||||
genérico.
|
fuente en el tag exacto que se va a instalar, no el README genérico
|
||||||
- Los webhooks de pago deben validarse en vivo contra la cadena de red
|
ni asumir que "compatibilidad declarada" significa "verificado en
|
||||||
real del lab antes de confiar en el flujo, dado el precedente de
|
este proyecto".
|
||||||
|
- Los webhooks de pago (registrados por el plugin en
|
||||||
|
`/hooks/payment/payu`) deben validarse en vivo contra la cadena de
|
||||||
|
red real del lab antes de confiar en el flujo, dado el precedente de
|
||||||
`incidente-cloudflared-504-quic-2026-08.md`.
|
`incidente-cloudflared-504-quic-2026-08.md`.
|
||||||
- Revertir esta decisión (una vez implementada) implica deshabilitar
|
- Se acepta como deuda: si en el futuro se abre una cuenta Bancolombia
|
||||||
el provider en la región y volver al botón de WhatsApp — el carrito
|
o Nequi, Wompi (liquidación más directa en COP) vuelve a ser una
|
||||||
y el catálogo no cambian de forma, solo el paso final.
|
opción válida a reevaluar — no se descarta por limitación técnica,
|
||||||
|
solo por el requisito de registro actual.
|
||||||
|
- Revertir esta decisión implica deshabilitar el provider en la región
|
||||||
|
y volver al botón de WhatsApp — el carrito y el catálogo no cambian
|
||||||
|
de forma, solo el paso final.
|
||||||
Reference in new issue
Block a user