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_KEYPOST /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 }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
- 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