Back to 0fee
0fee

El modelo de comisión del 0,99 %: cero cuotas mensuales

Cómo funciona el modelo de precios de 0fee.dev: 0,99 % por transacción, cero suscripciones, facturación mensual, conversión multidivisa. Por Juste A. Gnimavo y Claude.

Juste A. Gnimavo (Thales) & Claude | March 27, 2026 5 min 0fee
EN/ FR/ ES
pricingbillingbusiness-model

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 originalCuota mensualComisiónFuncionalidades
Starter$01,5 %API básica
Growth$291,0 %Webhooks, Analytics
Business$990,7 %Soporte prioritario, Personalizado
EnterprisePersonalizadoPersonalizadoDedicado

Los problemas se hicieron evidentes rápidamente:

  1. 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.
  2. 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?"
  3. Complejidad de facturación. Gestionar transiciones de nivel, prorrateo, degradaciones -- cada una añadiendo casos límite al código.
  4. 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,16

La 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 paga

Reembolso 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:

  1. El flujo de caja importa en África. Muchos comerciantes operan con márgenes muy ajustados y no pueden prepagar las comisiones de plataforma.
  2. Reduce la fricción. Sin errores de "saldo insuficiente" interrumpiendo flujos de pago en vivo.
  3. 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:

PlataformaComisiónCuota mensualMercado objetivo
Stripe2,9 % + $0,30$0Global
Paystack1,5 % + NGN 100$0Nigeria
Flutterwave1,4 %$0África
0fee.dev0,99 %$0Global, África primero

Al 0,99 %, superamos a todos los principales competidores manteniendo una economía unitaria sostenible. Las matemáticas funcionan porque:

  1. Sin ingenieros humanos. Cero gastos de salarios. Claude maneja la arquitectura, el código y la depuración.
  2. Eficiencia de infraestructura. Corremos sobre infraestructura cloud eficiente, sin clústeres Kubernetes sobredimensionados.
  3. 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.40

Lo que aprendimos

El cambio de precios por niveles a un modelo plano del 0,99 % nos enseñó tres cosas:

  1. 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.
  2. La confianza da resultado. Permitir saldos negativos y facturar mensualmente construyó lealtad. Las tasas de impago se mantuvieron por debajo del 2 %.
  3. 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.

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude zerosuite

Funciona, y no está terminado

El director recorrió él mismo todos los canales de senndo — cinco canales, de uno en uno y en campaña, la importación, las estadísticas, un reembolso, la API — y todo respondió. El archivo de seguimiento seguía diciendo que no, y la única línea que bloqueaba no era código: era un documento que había dejado de ser cierto en silencio. Cuatro afirmaciones ciertas al escribirse y falsas al leerse, y las guardas legibles por una máquina que ahora atrapan cada una de esas formas.

12 min Sep 14, 2026
senndocpaaslaunch-readinessdocumentation +8
Thales & Claude zerosuite

El navegador en manos de Claude: manejar el propio Chrome del CEO

Claude-in-Chrome permite que una sesión de Claude Code maneje el navegador real del director — mismo perfil, mismas sesiones abiertas. Qué hace la herramienta en realidad, por qué es mejor que pedirle a una persona que haga clic y lo cuente, y dónde el humano sigue ganando. Anclado en el día en que Claude recorrió un alta de cliente completa en la consola de producción de senndo, con mensajes facturados incluidos.

9 min Aug 18, 2026
claude-in-chromebrowser-automationclaude-codeclaude-fable-5 +9
Thales & Claude deblo

El segfault que no era nuestro: cómo lanzamos el tracking del día de lanzamiento de Déblo en la noche del despliegue — analítica condicionada por entorno, atribución nativa de las tiendas, tres bugs que el compilador no podía ver y un build sin memoria que diagnosticamos en lugar de revertir

El 1 de julio de 2026 — el día del lanzamiento — el riesgo nunca fue el texto. Era que las campañas de pago salieran a ciegas. Este es el build-log de cómo desplegamos la analítica y la atribución de instalaciones de Déblo como código en la noche del lanzamiento: etiquetas GA4, Meta y LinkedIn condicionadas por entorno que se despliegan sin riesgo antes de que existan las cuentas publicitarias; atribución enrutada por los canales nativos de las tiendas en lugar del pixel web; una auditoría adversarial que atrapó tres bugs que tanto el typechecker como el build dieron por buenos; y un despliegue en Easypanel que hizo segfault en el primer build — que demostramos que no era nuestro código antes de tocar una sola línea.

18 min Jul 1, 2026
deblolaunch-dayclaude-opus-4.8claude-code +26