Modelo Plataforma

Un solo API key. Multiples empresas. Gestion 100% programatica. El patron ideal para POS, ERP, contadores y marketplaces.

Tu plataforma (1 cuenta FiscaFacil)
│
├── API Key maestra:  ff_489e80a7...   ← guardas esto en tu sistema
│
├── Cliente A → empresaId: cmXXX  ─── POST /api/cfdi/timbrar
├── Cliente B → empresaId: cmYYY  ─── POST /api/cfdi/timbrar
└── Cliente C → empresaId: cmZZZ  ─── POST /api/cfdi/timbrar

Cada empresa tiene su RFC, CSD y serie de folios propios.
Tu API key tiene acceso a todas.
🍔

POS / Restaurantes

Factura por cada ticket. Un empresaId por sucursal.

📊

ERP / Contadores

Administra la facturacion de todos tus clientes desde un solo sistema.

🛒

Marketplaces

Cada vendedor es una empresa. Timbra en su nombre con su CSD.

Setup — Una sola vez

1. Crea tu cuenta

Registrate en FiscaFacil. Puedes hacerlo via API o desde el Dashboard.

curl -X POST https://api.fiscafacil.mx/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Mi Plataforma",
    "email": "admin@miplataforma.com",
    "password": "Pass1234!"
  }'

2. Obtén tu API key maestra

Con las mismas credenciales de registro. Este key es la llave maestra de tu plataforma — guardalo en tu sistema como variable de entorno.

curl -X POST https://api.fiscafacil.mx/api-keys \
  -H "Content-Type: application/json" \
  -d '{
    "email": "admin@miplataforma.com",
    "password": "Pass1234!",
    "name": "Master Key Produccion"
  }'
# → { "key": "ff_489e80a7..." }  ← guarda esto en FISCAFACIL_API_KEY
⚠️ El key se muestra una sola vez. Guardalo como variable de entorno en tu servidor. Si lo pierdes, puedes crear uno nuevo con POST /api/api-keys.

Por cada cliente tuyo — Flujo repetible

Cuando un nuevo cliente se registra en tu plataforma, ejecutas este flujo de forma programatica. Sin intervenciones manuales, sin redirigirlos a FiscaFacil.

Paso A — Crear la empresa del cliente

Llama con tu API key maestra. Si el RFC ya existe en tu cuenta, se devuelve la empresa existente con _idempotent: true — seguro para reintentos.

curl -X POST https://api.fiscafacil.mx/empresas \
  -H "Authorization: Bearer ff_MASTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "rfc": "XAXX010101000",
    "razonSocial": "Tacos El Gordo SA de CV",
    "regimenFiscal": "601",
    "codigoPostal": "06600"
  }'
# → { "id": "cmXXX...", "sandbox": true }
Guarda el id en tu DB vinculado al cliente. Es el empresaId que usaras en todas las facturas de ese cliente.

Paso B — Subir CSD del cliente (opcional en sandbox)

En sandbox puedes timbrar sin CSD. Cuando el cliente este listo para produccion, sube su certificado. Tu plataforma maneja los archivos — el cliente no necesita acceso al dashboard.

curl -X POST https://api.fiscafacil.mx/empresas/EMPRESA_ID/certificados \
  -H "Authorization: Bearer ff_MASTER_KEY" \
  -H "x-empresa-id: EMPRESA_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "cerBase64": "<base64 del .cer>",
    "keyBase64": "<base64 del .key>",
    "password": "<password del CSD>"
  }'

Paso C — Timbrar facturas del cliente

Para cada factura, pasa el empresaId del cliente en el header x-empresa-id. Tu API key maestra tiene acceso a todas las empresas que gestionas.

curl -X POST https://api.fiscafacil.mx/cfdi/timbrar \
  -H "Authorization: Bearer ff_MASTER_KEY" \
  -H "x-empresa-id: EMPRESA_ID_CLIENTE" \
  -H "Content-Type: application/json" \
  -d '{
    "tipoComprobante": "I",
    "metodoPago": "PUE",
    "formaPago": "04",
    "moneda": "MXN",
    "conceptos": [{
      "claveProdServ": "90101501",
      "claveUnidad": "E48",
      "descripcion": "Hamburguesa doble queso",
      "cantidad": 1,
      "precioUnitario": 150.00,
      "objetoImpuesto": "02"
    }]
  }'
# → { "uuid": "...", "folio": "1", "total": 174, "sandbox": true }

Gestion de API Keys

Puedes crear keys adicionales usando tu key maestra — por ejemplo, una key por ambiente (staging/produccion) o una key por equipo. Todas las keys comparten el mismo userId y tienen acceso a las mismas empresas.

Crear key adicional

curl -X POST https://api.fiscafacil.mx/api-keys \
  -H "Authorization: Bearer ff_MASTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Staging"}'

Listar todas tus keys

curl https://api.fiscafacil.mx/api-keys \
  -H "Authorization: Bearer ff_MASTER_KEY"

Revocar una key

curl -X DELETE https://api.fiscafacil.mx/api-keys \
  -H "Authorization: Bearer ff_MASTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"id": "ID_DEL_KEY_A_REVOCAR"}'

Sandbox — Prueba sin riesgo

Modo PruebaActivado por defecto en todas las cuentas nuevas
  • Timbra sin CSD — no necesitas certificados reales para probar el flujo de onboarding
  • No consume timbres reales
  • Respuestas identicas al ambiente de produccion (mismo formato, UUID real)
  • Respuesta incluye "sandbox": true

Ideal para desarrollar tu integracion sin que tus clientes necesiten tener su CSD listo. Cuando esten listos para produccion, suben su CSD y el modo cambia automaticamente.

Idempotencia — Seguro para reintentos

POST /api/empresas es idempotente por RFC. Si tu sistema intenta crear una empresa que ya existe en tu cuenta, recibes la empresa existente en lugar de un error. Esto hace que el flujo de onboarding sea robusto ante timeouts y reintentos:

# Primera llamada → 201 Created
# Segunda llamada con el mismo RFC → 200 OK, mismo empresaId
{
  "success": true,
  "data": {
    "id": "cmXXX...",
    "rfc": "XAXX010101000",
    "_idempotent": true   ← indica que ya existia
  }
}

Para timbrado idempotente usa el header Idempotency-Key. Ver guia de idempotencia.

Listar todas tus empresas

Consulta todas las empresas que has creado con tu API key:

curl https://api.fiscafacil.mx/empresas \
  -H "Authorization: Bearer ff_MASTER_KEY"
# → array de empresas con id, rfc, razonSocial, sandbox, csdConfigured

Siguiente