Ochenta y seis sesiones construyeron la base. Las proximas ochenta y seis sesiones construiran el futuro. 0fee.dev lanzo con pagos unicos a traves de mas de 53 proveedores en mas de 200 paises. Pero un orquestador de pagos que solo maneja pagos unicos solo resuelve la mitad del problema.
Este articulo presenta la hoja de ruta -- informada por los hallazgos de la auditoria de seguridad, solicitudes de funcionalidades de usuarios tempranos y las brechas que identificamos durante el proceso de construccion. Cada elemento representa una necesidad real, no una funcionalidad especulativa.
Suscripciones y pagos recurrentes
La funcionalidad mas solicitada por los primeros usuarios. Las suscripciones requieren un modelo de pago fundamentalmente diferente:
python# Planificado: Modelo de suscripcion
class Subscription(Base):
__tablename__ = "subscriptions"
id = Column(String, primary_key=True)
app_id = Column(String, ForeignKey("apps.id"), nullable=False)
customer_id = Column(String, nullable=False)
plan_id = Column(String, nullable=False)
# Configuracion de facturacion
amount = Column(Float, nullable=False)
currency = Column(String(3), nullable=False)
interval = Column(String, nullable=False) # daily, weekly, monthly, yearly
interval_count = Column(Integer, default=1) # ej., cada 2 meses
# Estado
status = Column(String, default="active") # active, paused, cancelled, past_due
current_period_start = Column(DateTime)
current_period_end = Column(DateTime)
cancel_at_period_end = Column(Boolean, default=False)El desafio con las suscripciones en el mercado africano es que muchos clientes usan dinero movil, que no soporta cargos recurrentes automaticos. El motor de suscripciones necesitara manejar:
- Basado en tarjeta: Cargos automaticos via tokens de tarjeta almacenados (Stripe, PayPal)
- Push de dinero movil: Enviar solicitud de pago al telefono del cliente en cada ciclo de facturacion
- Renovacion manual: Enviar factura/enlace de pago para que el cliente pague manualmente
API de desembolsos y pagos
0fee.dev actualmente maneja cobros (recibir dinero). Los desembolsos -- enviar dinero a comerciantes, proveedores o individuos -- son el complemento logico:
python# Planificado: API de desembolsos
@router.post("/payouts")
async def create_payout(data: PayoutCreate):
"""Enviar dinero a una cuenta bancaria o billetera de dinero movil."""
pass
class PayoutRecipient(BaseModel):
type: str # bank_account, mobile_money
bank_code: str | None = None
account_number: str | None = None
phone_number: str | None = None
provider: str | None = None # orange, mtn, wave
country: str | None = NoneLos desembolsos en Africa son particularmente importantes para: - Plataformas de marketplace: Pagar a vendedores despues de una venta - Apps de economia gig: Pagar a trabajadores diaria o semanalmente - Remesas: Enviar dinero entre paises - Desembolso de salarios: Pagar a empleados via dinero movil
Gestion de disputas
Cuando un cliente disputa un pago (contracargo), el comerciante necesita herramientas para responder. Actualmente, las disputas se manejan enteramente a traves del panel del proveedor subyacente. Planeamos centralizar la gestion de disputas:
python# Planificado: Modelo de disputa
class Dispute(Base):
__tablename__ = "disputes"
id = Column(String, primary_key=True)
transaction_id = Column(String, ForeignKey("transactions.id"), nullable=False)
provider_dispute_id = Column(String, nullable=True)
reason = Column(String) # fraudulent, duplicate, product_not_received, etc.
status = Column(String) # open, under_review, won, lost, accepted
amount = Column(Float)
currency = Column(String(3))
evidence_due_by = Column(DateTime, nullable=True)
evidence_submitted = Column(Boolean, default=False)Analiticas avanzadas
Las analiticas actuales son basicas: volumen, conteo, tasa de exito. La proxima iteracion proporcionara insights accionables:
Analisis de embudo de conversion: ¿Donde abandonan los clientes? ¿Despues de seleccionar un metodo de pago? ¿Durante 3D Secure? ¿En la pagina de checkout del proveedor?
Comparacion de rendimiento de proveedores: Para el mismo pais y metodo de pago, ¿cual proveedor tiene la mayor tasa de exito, menor latencia y menos fallos?
Pronostico de ingresos: Basado en patrones historicos de transacciones, ¿que ingresos pueden esperar los comerciantes el proximo mes?
Deteccion de anomalias: Alertar cuando los patrones de transacciones se desvian significativamente de la linea base.
Monitoreo de salud de proveedores
Identificado en la auditoria de seguridad como una brecha critica. Cuando un proveedor se cae, el motor de enrutamiento deberia automaticamente redirigir pagos a una alternativa:
python# Planificado: Monitoreo de salud de proveedores
async def health_aware_routing(payment_data: dict) -> BaseProvider:
"""Enrutar pagos considerando la salud del proveedor."""
candidates = get_available_providers(payment_data)
for provider in candidates:
health = await get_provider_health(provider.name)
if health.status == "down":
continue # Omitir completamente
if health.status == "degraded":
provider.priority -= 10 # Despriorizar pero permitir
return select_best_provider(candidates)El sistema de monitoreo de salud verificara proveedores cada 60 segundos con llamadas API ligeras. Cuando la tasa de exito de un proveedor caiga por debajo del 80% en una ventana de 5 minutos, se marcara como degradado. Por debajo del 50%, se marcara como caido.
Mas proveedores africanos
El repertorio actual de proveedores cubre Africa ampliamente pero carece de profundidad en mercados especificos:
Integracion profunda de M-Pesa
M-Pesa es el proveedor dominante de dinero movil en Africa Oriental. La integracion actual a traves de PawaPay funciona pero no expone funcionalidades especificas de M-Pesa:
- M-Pesa STK Push: Aviso de pago automatizado enviado directamente al telefono del cliente
- M-Pesa B2C: Desembolsos de negocio a cliente
- M-Pesa Bill Manager: Pagos recurrentes de facturas
Airtel Money
Airtel Money opera en 14 paises africanos. Es el segundo proveedor de dinero movil mas grande del continente.
Proveedores regionales de pago
| Proveedor | Mercado | Estado |
|---|---|---|
| Flutterwave | Pan-africano | Planificado |
| Chipper Cash | 7 paises africanos | En evaluacion |
| MFS Africa | Dinero movil transfronterizo | En evaluacion |
| Paga | Nigeria | En evaluacion |
El asistente de desarrollador con IA
Integracion de Claude Haiku para soporte de desarrollador dentro del panel:
El asistente: - Respondera preguntas sobre la API de 0fee.dev usando la documentacion como contexto - Ayudara a depurar transacciones fallidas analizando patrones de error - Sugerira configuraciones optimas de proveedores basadas en la mezcla de paises del comerciante - Generara fragmentos de codigo en el lenguaje preferido del comerciante
Billeteras multi-moneda
Actualmente, cada usuario tiene una sola billetera en USD. Las billeteras multi-moneda permitirian a los comerciantes:
- Mantener balances en multiples monedas simultaneamente
- Recibir pagos en moneda local sin conversion automatica
- Elegir cuando convertir monedas (a una tasa favorable)
- Desembolsar a destinatarios en su moneda local desde la billetera correspondiente
Pagos divididos para marketplaces
Para plataformas de marketplace donde un pago necesita dividirse entre multiples partes:
python# Planificado: API de pago dividido
class SplitPaymentCreate(BaseModel):
amount: float
currency: str
reference: str
splits: list[PaymentSplit]
class PaymentSplit(BaseModel):
recipient_id: str
amount: float # Monto fijo
# O
percentage: float # Porcentaje del total
description: str | None = NoneUn cliente paga $100 por una compra en marketplace. El marketplace se queda con el 15%, el vendedor obtiene el 85%. El sistema de pago dividido maneja esto en una sola llamada API.
La linea de tiempo de la hoja de ruta
| Trimestre | Enfoque | Entregables clave |
|---|---|---|
| T2 2026 | Extensiones principales | Motor de suscripciones, API de desembolsos, gestion de disputas |
| T3 2026 | Profundidad en Africa | Integracion profunda de M-Pesa, Airtel Money, Flutterwave |
| T4 2026 | Funcionalidades de plataforma | Billeteras multi-moneda, pagos divididos, asistente IA |
| T1 2027 | Escala | Analiticas avanzadas, monitoreo de salud de proveedores, deteccion de anomalias |
Cada trimestre de trabajo sera documentado en logs de sesion y eventualmente en nuevos articulos para esta serie. La construccion continua.
La vision mas amplia
0fee.dev comenzo como un orquestador de pagos. La hoja de ruta muestra que se esta convirtiendo en una plataforma de infraestructura financiera. Pagos, suscripciones, desembolsos, billeteras, disputas, analiticas -- estos son los bloques de construccion que todo negocio digital en Africa (y globalmente) necesita.
La vision no ha cambiado desde la sesion 001: una API, un SDK, un panel de control -- y cubres el mundo. Lo que ha cambiado es nuestro entendimiento de lo que "cubrir el mundo" realmente significa. Significa manejar no solo pagos unicos sino cada operacion financiera que un negocio necesita. Significa no solo conectarse a proveedores sino enrutar activamente alrededor de fallas. Significa no solo procesar transacciones sino proporcionar la inteligencia para optimizarlas.
Ochenta y seis sesiones construyeron la base. Las proximas ochenta y seis construiran el futuro. Y seran construidas de la misma manera: un CEO, un CTO de IA, cero ingenieros humanos, desde Abiyan.
Este articulo es parte de la serie "Como construimos 0fee.dev". 0fee.dev es un orquestador de pagos que cubre mas de 53 proveedores en mas de 200 paises, construido por Juste A. GNIMAVO y Claude desde Abiyan sin ningun ingeniero humano. Sigue la serie para conocer la historia completa de construccion.