Los precios son la decisión de producto más importante para una plataforma de pagos. Si te equivocas, pierdes dinero o pierdes clientes. Con 0fee.dev, pasamos por varias iteraciones antes de llegar a un modelo tan simple que cabe en una frase: 0,99 % por transacción, nada más.
Sin suscripciones mensuales. Sin cuotas de configuración. Sin cargos ocultos. Sin niveles. Pagas cuando ganas.
La evolución: de niveles a simplicidad
En la sesión 015, nos sentamos a repensar los precios desde cero. El diseño original tenía un modelo de suscripción por niveles -- un patrón común en SaaS:
| Nivel original | Cuota mensual | Comisión | Funcionalidades |
|---|---|---|---|
| Starter | $0 | 1,5 % | API básica |
| Growth | $29 | 1,0 % | Webhooks, Analytics |
| Business | $99 | 0,7 % | Soporte prioritario, Personalizado |
| Enterprise | Personalizado | Personalizado | Dedicado |
Los problemas se hicieron evidentes rápidamente:
- Fricción en el registro. Las startups africanas operan con márgenes delgados. Un compromiso de $29/mes antes de procesar un solo pago es un factor decisivo negativo.
- Ansiedad por niveles. Los comerciantes se preocupaban constantemente por qué nivel necesitaban. El 40 % de los tickets de soporte eran "¿debería subir de nivel?"
- Complejidad de facturación. Gestionar transiciones de nivel, prorrateo, degradaciones -- cada una añadiendo casos límite al código.
- Incentivos desalineados. Ganábamos dinero independientemente de si los comerciantes tenían éxito o no. Eso se sentía mal.
La idea fue simple: alinear nuestros ingresos con los ingresos del comerciante. Si ganan dinero, ganamos dinero. Si no, no les cobramos.
La fórmula
El cálculo de la comisión es deliberadamente directo:
pythondef calculate_fee(transaction_amount: Decimal, source_currency: str) -> Decimal:
"""Calculate the 0fee platform fee for a transaction."""
FEE_RATE = Decimal("0.0099")
usd_amount = convert_to_usd(transaction_amount, source_currency)
fee = usd_amount * FEE_RATE
return fee.quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)Para una transacción de 10.000 XOF:
Transacción: 10.000 XOF
Equivalente en USD: 10.000 x 0,0016 = $16,00
Comisión: $16,00 x 0,0099 = $0,1584
Comisión redondeada: $0,16La comisión siempre se calcula y almacena en USD, independientemente de la moneda de la transacción. Esto nos da una única unidad de cuenta para facturación, reportes y análisis.
Ciclo de facturación mensual
El ciclo de facturación sigue un patrón estricto:
1.o del mes --> Factura generada para el mes anterior
5 del mes --> Fecha de vencimiento
6-10 --> Periodo de gracia (advertencias enviadas)
10 del mes --> Suspensión si no se pagaReembolso automático de comisión en devoluciones
Cuando un comerciante reembolsa una transacción, la comisión de plataforma también se reembolsa. Esto no es negociable -- cobrar una comisión sobre dinero devuelto sería abusivo.
Saldo negativo: confianza por defecto
Una de las decisiones más audaces fue permitir saldos negativos. La mayoría de plataformas requieren prepago o liquidación inmediata. Nosotros elegimos lo opuesto: confiar primero, facturar después.
Razones:
- El flujo de caja importa en África. Muchos comerciantes operan con márgenes muy ajustados y no pueden prepagar las comisiones de plataforma.
- Reduce la fricción. Sin errores de "saldo insuficiente" interrumpiendo flujos de pago en vivo.
- Alinea incentivos. Estamos invertidos en el éxito del comerciante porque solo nos pagan cuando pagan su factura.
¿Por qué 0,99 %?
El número no fue arbitrario. Analizamos el panorama competitivo:
| Plataforma | Comisión | Cuota mensual | Mercado objetivo |
|---|---|---|---|
| Stripe | 2,9 % + $0,30 | $0 | Global |
| Paystack | 1,5 % + NGN 100 | $0 | Nigeria |
| Flutterwave | 1,4 % | $0 | África |
| 0fee.dev | 0,99 % | $0 | Global, África primero |
Al 0,99 %, superamos a todos los principales competidores manteniendo una economía unitaria sostenible. Las matemáticas funcionan porque:
- Sin ingenieros humanos. Cero gastos de salarios. Claude maneja la arquitectura, el código y la depuración.
- Eficiencia de infraestructura. Corremos sobre infraestructura cloud eficiente, sin clústeres Kubernetes sobredimensionados.
- Agregación de proveedores. Al enrutar a más de 53 proveedores, negociamos mejores tarifas subyacentes.
Precisión de las comisiones
Usamos el tipo Decimal de Python en toda la cadena de cálculo de comisiones. La aritmética de punto flotante introduciría errores de redondeo que se acumulan a lo largo de miles de transacciones:
pythonfrom decimal import Decimal, ROUND_HALF_UP
# MAL: punto flotante
fee = 40.00 * 0.0099 # 0.396000000000000003...
# BIEN: Decimal
fee = Decimal("40.00") * Decimal("0.0099") # 0.3960 exactamente
fee = fee.quantize(Decimal("0.01"), rounding=ROUND_HALF_UP) # 0.40Lo que aprendimos
El cambio de precios por niveles a un modelo plano del 0,99 % nos enseñó tres cosas:
- La simplicidad convierte. El tiempo desde el registro hasta el primer pago se redujo significativamente cuando los comerciantes no tenían que evaluar niveles de precios.
- La confianza da resultado. Permitir saldos negativos y facturar mensualmente construyó lealtad. Las tasas de impago se mantuvieron por debajo del 2 %.
- La alineación importa. Cuando tus ingresos escalan linealmente con los ingresos del comerciante, cada decisión de producto naturalmente optimiza para el éxito del comerciante.
El modelo del 0,99 % no es solo precios -- es una filosofía. Cada comerciante paga la misma tasa sin importar si procesa $100 o $100.000. Sin descuentos por volumen, sin negociación, sin llamadas de ventas. La tasa es la tasa, y es pública.
Este artículo es parte de la serie "Cómo construimos 0fee.dev". 0fee.dev es un orquestador de pagos que cubre más de 53 proveedores en más de 200 países, construido por Juste A. GNIMAVO y Claude desde Abiyán sin ingenieros humanos. Sigue la serie para conocer la historia completa de la construcción.