Devs
December 10, 2025

Un Solo Endpoint. Todo el Flujo Fiscal Automatizado.

El Problema: APIs de Facturación Que Solo Hacen... Facturación

Como developer, probablemente has integrado alguna API de facturación tradicional. Y sabes que después de generar la factura, tu trabajo apenas comienza:

// Generas la factura (lo "fácil")
const invoice = await pac.createInvoice(data);

// Ahora viene lo difícil:
// ❌ Manualmente enviar email con PDF + XML
// ❌ Guardar el UUID en tu base de datos
// ❌ Conciliar con facturas recibidas del SAT
// ❌ Implementar recordatorios de pago
// ❌ Manejar complementos de pago (PPD)
// ❌ Generar reportes para cierre fiscal
// ❌ Validar cancelaciones y relaciones

// 200+ líneas de código adicional
// 3-4 semanas de desarrollo
// Mantenimiento constante

La realidad brutal: La mayoría de APIs de facturación solo resuelven el 20% del problema (timbrar el CFDI). El otro 80% lo programas tú.

¿El costo? 3-6 semanas de desarrollo inicial + 10-15 horas mensuales de mantenimiento + riesgo constante de errores fiscales.

La Solución: Un Endpoint Que Hace Todo

Con gigstack, registras un pago y el sistema automatiza todo el flujo fiscal:

// Un solo request REST API - sin SDKs inventados
curl -X POST https://api.gigstack.io/v2/payments/register \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "client": {
      "id": "client_abc123"
    },
    "automation_type": "pue_invoice",
    "currency": "MXN",
    "payment_form": "03",
    "items": [
      {
        "id": "service_xyz789",
        "quantity": 1,
        "unit_price": 1500
      }
    ]
  }'

Eso es todo. gigstack automáticamente:

  1. Genera y timbra CFDI 4.0 con datos fiscales correctos
  2. Envía factura por email al cliente (PDF + XML)
  3. Valida RFC con SAT en tiempo real
  4. Registra pago en contabilidad
  5. Genera complemento de pago si aplica (PPD)
  6. Actualiza reportes fiscales en tiempo real
  7. Almacena XMLs seguros (5 años, requisito SAT)

Cero líneas de código adicional. Cero mantenimiento. Cero drama fiscal.

Código Real: Antes vs Después

❌ Con API tradicional (200+ líneas)

// 1. Generar factura
const cfdi = await pac.createInvoice({
  tipo_comprobante: "I",
  metodo_pago: payment.method === 'stripe' ? 'PUE' : 'PPD',
  forma_pago: getFormaPago(payment.method), // función custom
  uso_cfdi: "G03", // ¿o es D10? ¿P01?
  receptor: {
    rfc: customer.rfc,
    nombre: customer.name,
    regimen: customer.tax_system,
    domicilio: customer.address,
    codigo_postal: customer.zip
  },
  conceptos: payment.items.map(item => ({
    clave_prod_serv: getSATCode(item), // función custom
    clave_unidad: "E48", // o "H87"? depende...
    descripcion: item.description,
    cantidad: item.quantity,
    valor_unitario: item.price,
    impuestos: calculateTaxes(item) // función custom compleja
  }))
});

// 2. Enviar email (implementar servicio completo)
const pdf = await pac.downloadPDF(cfdi.uuid);
const xml = await pac.downloadXML(cfdi.uuid);
await emailService.send({
  to: customer.email,
  subject: 'Tu factura',
  attachments: [pdf, xml]
});

// 3. Guardar en DB
await db.invoices.create({
  uuid: cfdi.uuid,
  customer_id: customer.id,
  payment_id: payment.id,
  xml_url: uploadToS3(xml),
  pdf_url: uploadToS3(pdf)
});

// 4. Conciliación SAT (proceso separado, cron job)
// 5. Complementos de pago (si aplica, lógica compleja)
// 6. Reportes fiscales (queries custom)
// 7. Manejo de errores y reintentos
// ... 150+ líneas más

✅ Con gigstack (REST API directo - sin SDKs)

// Un solo request hace todo - REST API puro
const response = await fetch('https://api.gigstack.io/v2/payments/register', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    client: { id: 'client_abc123' },
    automation_type: 'pue_invoice',
    currency: 'MXN',
    payment_form: '03',
    items: [{
      id: 'service_xyz',
      quantity: 1,
      unit_price: 1500
    }]
  })
});

const result = await response.json();

// Resultado automático:
// ✅ Factura timbrada
// ✅ Email enviado al cliente
// ✅ RFC validado con SAT
// ✅ Complemento PPD si aplica
// ✅ Reportes actualizados

// Todo en 1 request REST. Cero mantenimiento.

De 200+ líneas y 3 semanas de desarrollo → 1 request REST y 10 minutos de integración.

Automatizaciones Que Se Activan Automáticamente

🔄 Complementos de Pago (PPD) Sin Código

El problema tradicional:

Cliente paga en parcialidades. Necesitas generar complemento de pago por cada pago parcial, relacionándolo con la factura original. Complejidad técnica alta, fácil de romper.

Con gigstack:

// 1. Factura original PPD (método pago en parcialidades)
const invoice = await fetch('https://api.gigstack.io/v2/invoices/income', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    automation_type: 'none', // Sin pago inmediato
    client: { id: 'client_abc' },
    currency: 'MXN',
    payment_method: 'PPD', // Pago en parcialidades
    payment_form: '99', // Por definir
    use: 'G03',
    items: [{
      description: 'Proyecto grande',
      quantity: 1,
      unit_price: 10000,
      product_key: '80141503',
      unit_key: 'E48',
      taxes: [{ type: 'IVA', rate: 0.16 }]
    }]
  })
});

// 2. Cliente paga parcial semanas después
const payment = await fetch('https://api.gigstack.io/v2/payments/register', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    client: { id: 'client_abc' },
    automation_type: 'ppd_invoice_and_complement',
    currency: 'MXN',
    payment_form: '03',
    items: [{
      description: 'Pago parcial',
      quantity: 1,
      unit_price: 5000,
      product_key: '80141503',
      unit_key: 'E48',
      taxes: [{ type: 'IVA', rate: 0.16 }]
    }]
  })
});

// gigstack automáticamente:
// ✅ Detecta que es pago parcial
// ✅ Genera complemento de pago
// ✅ Relaciona UUID con factura original
// ✅ Timbra y envía al cliente
// ✅ Actualiza balance pendiente

Resultado: Complementos PPD 100% automatizados y correctos según CFDI 4.0.

🔌 Stripe: 5 Minutos de Setup

// 1. Conecta Stripe (OAuth, 2 clics en dashboard)
// 2. gigstack detecta cada payment_intent.succeeded

// Automáticamente:
// ✅ Extrae customer, amount, items
// ✅ Genera factura CFDI 4.0
// ✅ Envía al cliente
// ✅ Valida RFC con SAT

// Tu código (solo configuración normal de Stripe):
const checkout = await stripe.checkout.sessions.create({
  customer: customer.id,
  line_items: items,
  success_url: 'https://...',
  // ... configuración normal de Stripe
});

// gigstack hace el resto. Cero código adicional.

🛒 WooCommerce/Shopify: Plugin Sin Código

// 1. Instala plugin gigstack (5 minutos)
// 2. Autoriza conexión
// 3. Cada venta automáticamente:
//    ✅ Factura CFDI 4.0 generada
//    ✅ Cliente recibe email con factura
//    ✅ Portal de autofacturación disponible
//    ✅ Validación RFC con SAT

// Sin modificar una línea de código de tu tema.

⚡ Webhook Universal para Cualquier Sistema

// Tu sistema custom/legacy
app.post('/payment-confirmed', async (req, res) => {
  const payment = req.body;
  
  // Un webhook a gigstack:
  await fetch('https://api.gigstack.io/v2/payments/register', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${GIGSTACK_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      client: {
        search: {
          on_key: 'tax_id',
          on_value: payment.customer.rfc,
          auto_create: true
        },
        name: payment.customer.name,
        email: payment.customer.email,
        tax_id: payment.customer.rfc,
        tax_system: '601'
      },
      automation_type: 'pue_invoice',
      currency: 'MXN',
      payment_form: '03',
      items: payment.items.map(item => ({
        description: item.description,
        quantity: item.quantity,
        unit_price: item.price,
        product_key: '80141503',
        unit_key: 'E48',
        taxes: [{ type: 'IVA', rate: 0.16 }]
      }))
    })
  });
  
  // gigstack automáticamente:
  // ✅ Valida o crea cliente
  // ✅ Factura
  // ✅ Timbra
  // ✅ Envía email
  
  res.json({ success: true });
});

Compatible con cualquier stack: Node.js, Python, PHP, Ruby, Go, Java, .NET

Código Completo de Integración (Todas las Features)

// server.js (Node.js + Express) - REST API directo
const express = require('express');
const app = express();

const GIGSTACK_API_KEY = process.env.GIGSTACK_API_KEY;
const API_BASE = 'https://api.gigstack.io/v2';

// 1. Webhook de Stripe (facturación automática)
app.post('/stripe-webhook', async (req, res) => {
  const event = req.body;
  
  if (event.type === 'payment_intent.succeeded') {
    // gigstack factura automáticamente via REST API
    const response = await fetch(`${API_BASE}/payments/register`, {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${GIGSTACK_API_KEY}`,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        client: { id: event.data.object.customer },
        automation_type: 'pue_invoice',
        currency: 'MXN',
        payment_form: '04', // Tarjeta de crédito
        items: [{
          id: 'service_stripe_item',
          quantity: 1,
          unit_price: event.data.object.amount / 100
        }],
        metadata: {
          stripe_payment_intent: event.data.object.id
        }
      })
    });
    // ✅ Factura + validación + email automáticos
  }
  
  res.json({ received: true });
});

// 2. Consulta estado de cualquier factura
app.get('/invoices/:id', async (req, res) => {
  const response = await fetch(`${API_BASE}/invoices/income/${req.params.id}`, {
    headers: { 'Authorization': `Bearer ${GIGSTACK_API_KEY}` }
  });
  const invoice = await response.json();
  res.json(invoice);
});

// 3. Portal de cliente (acceso token)
app.get('/customer-portal', async (req, res) => {
  const response = await fetch(`${API_BASE}/clients/customerportal`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${GIGSTACK_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      client_id: req.user.client_id
    })
  });
  const portal = await response.json();
  res.redirect(portal.data.url);
});

// 4. Listar pagos con filtros
app.get('/payments', async (req, res) => {
  const response = await fetch(`${API_BASE}/payments?limit=50`, {
    headers: { 'Authorization': `Bearer ${GIGSTACK_API_KEY}` }
  });
  const payments = await response.json();
  res.json(payments);
});

app.listen(3000);

// Eso es TODA la integración.
// Facturación + validación + emails + reportes.
// En 60 líneas usando REST API directo.

Preguntas de Developers

¿Qué pasa si necesito customización avanzada?

gigstack tiene API REST completa con 35+ endpoints documentados en docs.gigstack.io:

  • Facturación de ingresos y egresos
  • Splits fiscales (marketplaces con transfer_data)
  • Múltiples teams (gigstack Connect con parámetro ?team=)
  • Complementos de pago automáticos
  • Gestión de clientes con validación RFC
  • Catálogos SAT actualizados

¿Funciona con mi stack (Python/Ruby/Go/etc)?

Sí. gigstack es REST API estándar. Funciona con cualquier lenguaje que haga HTTP requests. Ejemplos disponibles en docs para múltiples lenguajes.

¿Qué pasa si gigstack cae?

99.9% uptime SLA con infraestructura redundante. Status page: status.gigstack.io

¿Puedo migrar desde mi PAC actual?

Sí. gigstack importa facturas históricas y clientes. Migración típica: 1-2 días sin downtime.

¿Dónde está la documentación técnica?

📖 docs.gigstack.io

  • Interactive API reference
  • Code examples funcionales
  • Guías de integración paso a paso
  • Catálogos SAT actualizados
  • Postman collection

Comienza en 10 Minutos

Setup real (sin exagerar):

  1. Crea cuenta: app.gigstack.pro/register (2 minutos)
  2. Obtén API key: Dashboard → Settings → API (1 minuto)
  3. Primer request REST: Copia ejemplo de docs.gigstack.io (2 minutos)
  4. Primer factura: Generada y timbrada (15 segundos)

Total: 5 minutos de tu primera factura CFDI 4.0 válida.

Sin aprender qué es "uso de CFDI". Sin googlear "clave producto SAT". Sin leer PDFs del SAT.

Solo REST API. Solo funciona.

Conclusión: Build vs Buy Para Developers

Como developer, tu tiempo vale. Cada hora que pasas aprendiendo fiscalidad mexicana es una hora que no estás construyendo tu producto.

Los números no mienten:

  • Desarrollo propio: $836K año 1 + 3 meses bloqueado
  • gigstack: $40-106K año 1 + integración en días
  • Ahorro: $730-796K (87-95%)

Pero el ROI real no es solo dinero:

  • ✅ Lanzas features fiscales en días, no meses
  • ✅ Cero mantenimiento de código fiscal
  • ✅ Actualizaciones SAT automáticas
  • ✅ Te enfocas en tu core product
  • ✅ Duermes tranquilo (compliance garantizado)

La facturación es infraestructura, no tu core business. Usa gigstack y enfócate en lo que importa.

👉 Prueba gratis 12 días: app.gigstack.pro/register
📖 Docs técnicos: docs.gigstack.io

Blogs que te pueden gustar