Back to 0fee
0fee

Construyendo 8 SDKs con cero ingenieros humanos

Como construimos 8 SDKs en 7 lenguajes mas 3 plugins de plataforma para 0fee.dev con cero ingenieros humanos. Por Juste A. Gnimavo y Claude.

Juste A. Gnimavo (Thales) & Claude | March 27, 2026 6 min 0fee
EN/ FR/ ES
sdkdeveloper-experiencetypescriptpythongorustflutter

La mayoria de las plataformas de pago tardan meses en construir su ecosistema de SDKs. El primer SDK de Stripe (Ruby) fue mantenido por un equipo. Los SDKs de PayPal son mantenidos por docenas de ingenieros. Nosotros construimos 8 SDKs en 7 lenguajes de programacion mas 3 plugins de plataforma, todos generados por Claude, todos siguiendo un patron de recursos identico, con cero dependencias en tiempo de ejecucion en la mayoria de los casos.

La linea de tiempo de los SDKs abarca toda la historia de construccion de 0fee.dev -- desde la sesion 002 hasta la sesion 080 -- porque los SDKs nunca estan "terminados". Evolucionan con la API.

La linea de tiempo de los SDKs

SesionFechaSDKsVersionCobertura
002Dic 11, 2025TypeScript, Pythonv1.0~21%
003Dic 11, 2025Go, Ruby, PHP, Java, C#v1.0~21%
065Dic 25, 2025TypeScript, Python (reescritura)v2.0~45%
079Feb 14, 2026PHP, Gov3.0~65%
080Feb 15, 2026Rust, Java, Flutter, React Nativev3.0~79%

La cobertura de API fue del 21% (CRUD basico para pagos) al 79% (pagos, transacciones, apps, proveedores, webhooks, facturas, solicitudes de funcionalidades, analiticas). El 21% restante cubre endpoints solo de administrador que los SDKs no necesitan exponer.

El patron de recursos identico

Cada SDK sigue el mismo patron arquitectonico independientemente del lenguaje. Esto hace los SDKs predecibles: si sabes como usar uno, sabes como usar todos.

Client
  |
  +-- payments      (create, get, list, cancel)
  +-- transactions   (get, list, export)
  +-- apps           (create, get, list, update, delete)
  +-- providers      (list, get)
  +-- webhooks       (create, get, list, delete, verify)
  +-- invoices       (get, list, download)
  +-- paymentLinks   (create, get, list, delete)
  +-- paymentMethods (list)

Cada recurso es un espacio de nombres en el objeto cliente. Cada espacio de nombres expone los mismos metodos CRUD (donde sea aplicable). Asi es como la misma operacion se ve en los 8 SDKs:

Crear un pago

TypeScript: ``typescript const zerofee = new ZeroFee({ apiKey: 'sk_live_...' }); const payment = await zerofee.payments.create({ amount: 10.00, currency: 'USD', reference: 'order-123', }); ``

Python: ``python client = ZeroFee(api_key="sk_live_...") payment = client.payments.create(amount=10.00, currency="USD", reference="order-123") ``

Go: ``go client := zerofee.New("sk_live_...") payment, err := client.Payments.Create(&zerofee.PaymentParams{ Amount: 10.00, Currency: "USD", Reference: "order-123", }) ``

Rust: ``rust let client = ZeroFee::new("sk_live_..."); let payment = client.payments().create(PaymentParams { amount: 10.00, currency: "USD".to_string(), reference: "order-123".to_string(), ..Default::default() }).await?; ``

PHP: ``php $client = new ZeroFee('sk_live_...'); $payment = $client->payments->create([ 'amount' => 10.00, 'currency' => 'USD', 'reference' => 'order-123', ]); ``

Java: ``java ZeroFee client = new ZeroFee("sk_live_..."); Payment payment = client.payments().create( PaymentParams.builder().amount(10.00).currency("USD").reference("order-123").build() ); ``

Flutter (Dart): ``dart final client = ZeroFee(apiKey: 'sk_live_...'); final payment = await client.payments.create( amount: 10.00, currency: 'USD', reference: 'order-123', ); ``

React Native: ``typescript import { ZeroFee } from '@0fee/react-native'; const zerofee = new ZeroFee({ apiKey: 'sk_live_...' }); const payment = await zerofee.payments.create({ amount: 10.00, currency: 'USD', reference: 'order-123', }); ``

La filosofia de cero dependencias en tiempo de ejecucion

La mayoria de los SDKs estan libres de dependencias o casi:

SDKLenguajeDependencias en tiempo de ejecucion
TypeScriptNode.js0 (usa fetch nativo)
PythonPython 3.8+Solo httpx
GoGo 1.21+0 (usa net/http)
RustRustreqwest, serde
PHPPHP 8.1+0 (usa extension curl)
JavaJava 11+0 (usa java.net.http.HttpClient)
FlutterDartPaquete http
React NativeJS/TS0 (envuelve SDK de TypeScript)

Cero dependencias significa: - Sin conflictos de version con los paquetes existentes del desarrollador - Sin superficie de ataque de cadena de suministro de dependencias transitivas - Instalacion mas rapida (npm install no descarga un arbol de paquetes) - Tamano de bundle mas pequeño para SDKs de frontend

Los 3 plugins de plataforma

Mas alla de los SDKs, la sesion 084 produjo tres plugins de plataforma:

Plugin WHMCS

php// modules/gateways/zerofee.php
function zerofee_capture($params) {
    $client = new ZeroFee($params['apiKey']);
    $payment = $client->payments->create([
        'amount' => $params['amount'],
        'currency' => $params['currency'],
        'reference' => 'whmcs-' . $params['invoiceid'],
        'customer_email' => $params['clientdetails']['email'],
    ]);
    if ($payment->status === 'completed') {
        return ['status' => 'success', 'transid' => $payment->id];
    }
    return ['status' => 'declined', 'rawdata' => $payment->toArray()];
}

Plugin WordPress y WooCommerce

Un plugin de pasarela de pago WordPress que agrega 0fee.dev como opcion de pago, con extension especifica para WooCommerce.

Lo que aprendimos

Genera todos los SDKs desde la misma plantilla. El patron de recursos identico a traves de los 8 SDKs solo fue posible porque usamos la especificacion de la API como fuente de verdad. Cada SDK es una implementacion especifica del lenguaje de la misma interfaz abstracta.

Cero dependencias es una ventaja competitiva. Los desarrolladores notan y aprecian los SDKs que no traen dependencias transitivas. Elimina conflictos de version y reduce la superficie de auditoria de seguridad.

Los plugins de plataforma llegan a los desarrolladores donde estan. No todo desarrollador construye desde cero. WooCommerce solo alimenta el 29% de los sitios de comercio electronico. Los plugins de plataforma son de alto apalancamiento para la adopcion.

El mantenimiento de SDKs es continuo. La linea de tiempo de v1 a v3 en 78 sesiones muestra que los SDKs nunca estan "terminados". Cada cambio de API, cada nueva funcionalidad, cada correccion de error se propaga a 8 paquetes SDK y 3 plugins. Este es el costo oculto de un ecosistema amplio de SDKs.

Los SDKs generados por IA son consistentes. Claude genera cada SDK con los mismos patrones, mismo manejo de errores, misma logica de reintento. No hay variacion de calidad de "este SDK fue escrito por un experto en Go y ese fue escrito por un pasante de Java". La consistencia entre lenguajes es un beneficio directo de la generacion por IA.


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.

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

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
Thales & Claude thales

Trece agentes, cuarenta y tres minutos: la primera sesión Workflow de Claude Fable 5, y lo que un script de orquestación determinista cambia en los builds multiagente

Un prompt, trece agentes, cuarenta y tres minutos: la primera sesión de producción con Claude Fable 5 y la herramienta Workflow de Claude Code entregó un sitio web de producción completo de siete páginas más un endpoint backend de captura de leads, en un solo commit. La bitácora: el script de orquestación determinista, el patrón de inyección de contrato entre fases, la economía por agente del fan-out paralelo, y el suspenso del límite de sesión que el diario de reanudación convirtió en un no-evento.

23 min Jun 12, 2026
claude-fable-5claude-codeworkflow-toolmulti-agent +10
Thales & Claude casp

La puerta detectó su propia deriva: un día dentro de CASP con Claude Fable 5

Le entregamos al modelo Claude más autónomo hasta la fecha las llaves de CASP — la CLI open source que mantiene honestos a los agentes de código IA frente a git — con la autoridad de rechazar nuestra propia roadmap. Rechazó cinco cosas, encontró dos bugs reales en el validador al hacerle dogfooding, los corrigió bajo una puerta de dos auditores, y dejó casp check completamente en verde sobre su propio repositorio por primera vez. CASP 0.3.0 es el resultado.

15 min Jun 10, 2026
caspzerosuiteworkflowai-cto +9