Acceso Anticipado — Stack PHP de Negocios para LATAM

El CFDI, los Pagos
y la Facturación

ya están resueltos.

ForgeStack ya armó todo lo que tu app necesita para operar en México y LATAM — packages PHP probados, bien tipados, listos para producción. Symfony y Laravel. CFDI 4.0, cuatro pasarelas de pago y facturación con IVA incluida.

Únete al Waitlist Ver el stack completo ↓
CFDI 4.0 MercadoPago Conekta Pagar.me OpenPay Facturación + IVA WhatsApp Herramientas SAT MX Geo (gratis)
¿Cuánto te está costando hacerlo desde cero?

Toda app PHP para México llega al mismo punto muerto. Siempre.

CFDI

El CFDI bien hecho tarda semanas, y a la primera casi nadie lo clava.

CFDI 4.0 requiere validación con XSDs offline, firma de cadena de origen con XSLT, descifrado del .key en formato DER y conexión con el PAC. Los errores sutiles de firma no avisan — aparecen en producción, cuando ya le afectaron a tus clientes.

Pagos

MercadoPago, Conekta y Pagar.me firman sus webhooks diferente. Las tres.

Un esquema mal implementado y estás procesando pagos duplicados, rechazando cobros reales o peor: aceptando webhooks falsos. Es el tipo de bug que solo ves en producción, a las 2 AM, con clientes enojados.

Facturación

Un cobro doble no es un bug que corriges mañana. Es una disputa con tu cliente hoy.

Billing seguro necesita tres capas que trabajen juntas — advisory lock, restricción única y una llave de idempotencia determinista — para aguantar cualquier crash o reintento. Una sola capa que falle y cobras dos veces.

Todo lo que incluye el stack

Seis packages. Un stack. Instala solo lo que necesitas.

Cada módulo incluye bridges para Symfony y Laravel y puede comprarse de forma independiente o en bundle.

CFDI Mexico · Módulo de Ingresos

CFDI 4.0, hecho bien desde el primer timbre.

Generar un CFDI válido requiere más que construir un XML. El algoritmo de cadena de origen del SAT, las llaves CSD cifradas en formato DER y la conexión con el PAC tienen que ser exactamente correctos — o el timbrado falla. Ya resolvimos cada uno de estos problemas y escribimos las pruebas.

  • XSDs y XSLT incluidos offline. Sin dependencia en los servidores del SAT. Tus timbrados funcionan aunque sat.gob.mx esté caído.
  • Descifrado del .key en formato DER incluido. Los archivos de llave privada del SAT son PKCS#8 DER, no PEM. Nosotros hacemos la conversión — tú solo pasas el archivo y la contraseña.
  • Drivers para Facturapi y Finkok. REST y SOAP, ambos con sandbox gratuito. Los clientes traen sus propias credenciales del PAC.
  • Complementos Carta Porte 3.1 y Pagos 2.0. Más cancelación, generación de PDF y XML, y retención de 5 años según el Art. 30 del CFF.
Acceso Anticipado a CFDI Mexico
GenerarFacturaAction.php
$cfdi = CfdiBuilder::invoice() ->emisor('RFC123456ABC', 'Empresa SA de CV', '601') ->receptor('XAXX010101000', 'Cliente', '616', 'G03') ->addConcepto( description: 'Consultoría de software', quantity: 1, unitPrice: Money::mxn(5_000_00), claveProd: '81161500', ) ->withIva16() ->stamp($pac); // Facturapi o Finkok // Timbrado. Verificado por el SAT. PDF + XML listos. echo $cfdi->uuid; // A1B2C3D4-E5F6-... echo $cfdi->xmlPath; // /cfdi/2026/06/RFC.../uuid.xml
CheckoutController.php
// OXXO — el cliente paga en cualquier tienda $result = $gateway->charge( PaymentRequest::oxxo(Money::mxn(1_299_00), $customer) ); // $result->voucherUrl — envíaselo al cliente // El webhook llega solo cuando paga en OXXO // Tarjeta guardada — misma interfaz, cualquier pasarela $result = $gateway->chargeStoredMethod( $customer->storedCard, Money::mxn(2_499_00) ); // MercadoPago, Conekta, Pagar.me y OpenPay — // cambia de pasarela sin reescribir tu código.
LATAM Pay · Módulo de Ingresos

Cuatro pasarelas. Una interfaz. Webhooks verificados antes de que corra tu código.

Referencias OXXO, CLABEs de SPEI, códigos QR de Pix, Boleto y cobro con tarjeta — todo detrás de una sola interfaz PHP. Cambia de pasarela o soporta varias al mismo tiempo sin tocar tu lógica de negocio.

  • MercadoPago, Conekta, Pagar.me y OpenPay. Drivers completos con soporte de OXXO, SPEI, Pix, Boleto y tarjeta en los cuatro.
  • Cada esquema de firma implementado correctamente. Conekta usa RSA (no HMAC). Pagar.me usa lista de IPs permitidas. MercadoPago usa un template firmado. Cada driver lo resuelve — verificado contra la documentación oficial de cada pasarela.
  • El alcance PCI se queda en la pasarela. Solo tokens opacos de la pasarela salen del package. Ningún número de tarjeta entra jamás a tu sistema.
  • Idempotencia integrada en cada driver. Los reintentos y reenvíos de webhook se manejan a nivel del driver — tu lógica de cobro ve cada evento exactamente una vez.
Acceso Anticipado a LATAM Pay
Motor de Facturación · Módulo de Ingresos

Suscripciones que corren solas — con IVA, CFDI y cobranza automática incluidos.

La mayoría de las librerías de billing ignoran la realidad de México: cada factura necesita el IVA calculado correctamente, un CFDI timbrado antes del cobro y una referencia OXXO entregada si el cliente paga en efectivo. Este package lo maneja todo — correctamente.

  • CFDI timbrado antes de cada cobro. Si el timbrado falla, el cobro se cancela. Nunca cobras por una factura que el SAT no ha visto.
  • IVA 16/8/0/exento + retenciones ISR/IVA. BCMath en escala=6 en todo el flujo. Sin aritmética flotante ni sorpresas de redondeo.
  • Idempotencia de tres capas. Advisory lock + restricción única + llave de cobro determinista. Los cobros duplicados son imposibles bajo cualquier crash o reintento.
  • OXXO, SPEI y Pix con soporte de primera, no como parche de último momento. Los pagos asíncronos están modelados desde el diseño — el billing reconcilia en cuanto llega el webhook de la pasarela.
Acceso Anticipado al Motor de Facturación
SuscripcionService.php
// Una sola llamada. Todo lo demás es automático. $sub = $billing->subscribe( $customer, Plan::monthly('profesional', Money::mxn(2_499_00)) ); // Cada renovación corre automáticamente: // ① Calcula IVA + retenciones (BCMath escala=6) // ② Timbra el CFDI 4.0 con tu PAC // → cancela el cobro si el timbrado falla // ③ Cobra con tu pasarela configurada // → OXXO: envía referencia por WhatsApp // → Tarjeta: cobro MIT + llave de idempotencia // ④ Reintenta pagos fallidos con cobranza automática // ⑤ Emite eventos PSR-14 → tus listeners los reciben echo $sub->status; // active | awaiting_payment | past_due
Más en el stack

Tres módulos más que completan el cuadro.

WhatsApp Business

Envía referencias OXXO, recordatorios de pago, avisos de trial y CFDI timbrados en PDF directamente por WhatsApp. Compatible con Meta Cloud API y Twilio. Se conecta solo a los eventos de facturación y pagos.

Referencia OXXO Avisos de cobranza CFDI por WhatsApp Plantillas ES + EN
Únete al waitlist para acceso anticipado →

Herramientas SAT

Validación de RFC con el algoritmo Módulo 11 del SAT, consulta de los 6 catálogos SAT (más de 52K entradas en c_ClaveProdServ) y parseo de metadatos de certificados CSD. Sin llamadas a APIs en tiempo de ejecución.

Validación RFC +52K en catálogos Parser de CSD $29 standalone
Únete al waitlist para acceso anticipado →

MX Geo GRATIS

Código postal mexicano → colonia, municipio y estado. 32 estados y más de 68K códigos. Compilado de los datos de SEPOMEX en una base de datos SQLite embebida. Sin APIs, sin cuentas, sin límites de rate.

+68K códigos postales 32 estados SQLite offline Siempre gratis
Gratis — únete al waitlist →
Por qué la calidad de nuestro código es diferente

Escrito con los modelos Claude más avanzados. Ingeniería de 25 años de experiencia en PHP-Symfony.

Cada tarea de este stack la ejecutó Claude Opus — el modelo más capaz de Anthropic — usando desarrollo dirigido por subagentes: planes estructurados con disciplina de test-first, PHPStan nivel 8 y PSR-12 en cada archivo. La IA maneja el volumen de implementación; la arquitectura, las decisiones de seguridad y los contratos de integración los diseña y supervisa Ruben E. — ingeniero PHP-Symfony con más de 25 años construyendo sistemas en producción.

Esa combinación es difícil de replicar: la velocidad y consistencia de la IA a escala, con el criterio de un senior que atrapa lo que los modelos no ven — invariantes sutiles, esquinas de seguridad, y decisiones de arquitectura que aguantan más allá del primer deploy.

Únete al Waitlist
N8 PHPStan nivel 8 en cada package y en cada commit
OWASP Top 10 aplicado — inyección, XSS, replay attacks y más — en cada package y cada commit
3.5× Velocidad de desarrollo versus un equipo tradicional de un solo dev
6+ Packages independientes — compra uno o el bundle completo
Seguridad

OWASP Top 10 en cada package.
Para amenazas humanas y las que ya vienen con IA.

La seguridad no se agrega después del lanzamiento — es una restricción de primer orden en cada módulo de ForgeStack. Cada vector de ataque del OWASP Top 10 está bloqueado a nivel arquitectónico: en el ORM, el sistema de tipos, el pipeline de webhooks y el vault de credenciales. Ingeniería de senior, asistida por IA, auditada antes de cada release. En un mundo donde las herramientas de ataque se generan con IA tan rápido como el código, la seguridad verificada es lo que separa un package de producción de un demo.

Capa de datos a prueba de inyección (A03)

Doctrine ORM con queries parametrizadas en todo el stack — cero SQL directo, cero interpolación de strings en ningún query path. PHPStan nivel 8 detecta patrones susceptibles a inyección en análisis estático, antes de que lleguen a un servidor de producción.

Integridad de payload en webhooks (A08)

La firma se verifica antes de parsear el body — siempre, sin excepciones. MercadoPago HMAC-SHA256, Conekta RSA, Pagar.me IP allowlist. Comparación en tiempo constante en cada pasarela. Los payloads alterados o repetidos se rechazan en el perímetro.

Guarda PCI — cero secretos en logs (A02)

PciGuard::scrub() corre en cada escritura de log — números de tarjeta y API keys nunca aparecen en logs ni traces. HTTPS-only se aplica en tiempo de construcción del driver, no por convención. El incumplimiento truena al arrancar, no en producción a las 2 AM.

Prevención de replay attacks (A01, A07)

Idempotencia de tres capas en todos los flujos de cobro — advisory lock, restricción única, llave determinista — hace los replay attacks en endpoints de pago estructuralmente imposibles. Los webhooks sin firma nunca llegan a la lógica de negocio.

Vault de llaves no-extractables (A02)

Las llaves privadas CSD firman dentro del KMS — nunca salen del vault como bytes crudos. Las credenciales almacenadas usan cifrado de sobre. Un contenedor comprometido no obtiene acceso a material de firma ni a secretos de pago.

Tipos estrictos como defensa en profundidad (A04)

PHP 8.2 strict types, DTOs readonly y PHPStan nivel 8 eliminan categorías completas de exploits por confusión de tipos antes de runtime. Clases finales bloquean herencias inesperadas. El sistema de tipos es la primera línea de defensa, no solo documentación.

OWASP Top 10 (2021) — vectores A01 a A10 bloqueados a nivel arquitectónico en los seis packages. Sin "le metemos seguridad después." Sin teatro de cumplimiento. La seguridad es la base, no un feature.
Acceso Anticipado

Ya tienes suficiente qué construir en tu producto.

Únete al waitlist y accede a precios de lanzamiento cuando salgamos. Te avisamos conforme cada módulo esté listo — sin spam, te das de baja cuando quieras.

Sin tarjeta de crédito. Los miembros del waitlist obtienen precios de acceso anticipado.