API Documentation

Integra tu ERP, CRM o Plataforma SaaS directamente con DocVault24. Automatiza el resguardo de CFDI, expedientes NOM-151 y Webhooks en tiempo real.

Exclusivo Plan Enterprise
Explorar Swagger OpenAPI Interactiva

Documentación Técnica Detallada (Swagger)

Nuestra plataforma cuenta con una especificación OpenAPI 3.0 viva. Puedes explorar todos los esquemas, endpoints y realizar pruebas directas a la API desde nuestro portal interactivo Swagger.

Abrir Swagger UI

Autenticación

Para autenticar tus peticiones a la API de DocVault24, necesitas enviar tu API Key a través del header HTTP X-DocVault24-API-Key.

Importante: Las API Keys solo pueden ser generadas desde el Portal de Clientes si tu cuenta cuenta con una suscripción activa al plan Enterprise.

Ejemplo de Header (Autenticación)
X-DocVault24-API-Key: dv24_live_1234567890abcdef...

Cabeceras Obligatorias Adicionales

Para garantizar trazabilidad (Observabilidad Universal) e idempotencia en transacciones críticas, la API exige las siguientes cabeceras:

  • X-Correlation-ID: (Obligatorio en todas las peticiones) Un UUIDv4 único generado por el cliente. Permite rastrear la petición a lo largo de toda la infraestructura.
  • Idempotency-Key: (Obligatorio en POST, PUT, PATCH, DELETE) Un UUIDv4 único asociado a la acción. Garantiza que la mutación se ejecute solo una vez, previniendo operaciones duplicadas en caso de reintentos por red.
Ejemplo de Headers en Operación Mutante
X-DocVault24-API-Key: dv24_live_1234567890abcdef...
X-Correlation-ID: 550e8400-e29b-41d4-a716-446655440000
Idempotency-Key: 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d

Sincronización Directa de CFDI

Guarda los CFDI de tu ERP (XML y representación impresa en PDF) de forma directa en la bóveda inmutable de DocVault24, generando su sello de tiempo blockchain y la constancia NOM-151.

POST/cfdi-vault/sync
Sincronización Masiva Automática (Sync)
curl -X POST https://api.docvault24.com/sat-sync/sync-status \ -H "X-DocVault24-API-Key: dv24_live_YOUR_API_KEY_HERE" \ -H "Content-Type: application/json"
Verificación de Estado por UUID
curl -X POST https://api.docvault24.com/sat-sync/cfdis/550e8400-e29b-41d4-a716-446655440000/verify-status \ -H "X-DocVault24-API-Key: dv24_live_YOUR_API_KEY_HERE" \ -H "Content-Type: application/json"

DMS Universal y Carpetas Canónicas

El Document Management System (DMS) de DocVault24 utiliza URLs prefirmadas para subidas y descargas seguras, evitando el paso de binarios por el API Gateway.

  • Subir Documento: POST /connector/dms/presigned-url/upload
  • Subir Documento (Super Admin): POST /connector/:tenantId/dms/presigned-url/upload
  • Descargar Documento (Super Admin): POST /connector/:tenantId/dms/presigned-url/download
curl -X POST https://api.docvault24.com/connector/dms/presigned-url/upload \
  -H "X-DocVault24-API-Key: dv24_live_YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "tenantId": "opcional_para_superadmin",
    "filename": "contrato.pdf",
    "contentType": "application/pdf",
    "folder": "contracts",
    "isPublic": false
  }'

Las 14 Carpetas Canónicas del DMS

Carpeta (ID)DescripciónRetención Recomendada
cfdiCFDI / Comprobante Fiscal Digital5 Años (Fiscal)
csdCertificados de Sello Digital (CSD)Permanente (Revocados)
csfConstancia de Situación Fiscal (CSF)Activo (Última)
bank-statementsEstados de Cuenta Bancarios5 Años
payrollRecibos y Timbrados de Nómina5 Años (Laboral)
declarationsDeclaraciones Fiscales y Acuses5 Años
tax-paymentsLíneas de Captura y Pagos SAT5 Años
insurancePólizas y Endosos de SeguroVigencia + 2 Años
legal-docsActas y Documentos LegalesPermanente
evidenceEvidencias Operativas / Logísticas1 Año
ridersDocumentos de Repartidores / OperadoresActivo
franchiseesExpedientes de FranquiciatariosActivo
contractsContratos Comerciales y LaboralesVigencia + 5 Años
generalExpediente General y MisceláneoN/A

API Universal DMS (Bóveda Documental)

Para el resguardo de documentos (fiscales u operativos), DocVault24 proporciona el API DMS Universal basado en URLs prefirmadas. Este enfoque asegura un aislamiento estricto por Tenant en nuestro object storage y previene accesos no autorizados, integrando tanto documentos corporativos como evidencia logística (e.g., Mande24).

  1. Haz POST a /connector/dms/presigned-url/upload enviando el tenantId, el nombre del archivo (key) y seleccionando una carpeta autorizada de la Whitelist Oficial (ej. cfdi, evidence, contracts).
  2. Realiza un PUT directo a la URL retornada en la respuesta con el body binario de tu documento. La respuesta también te incluirá una URL de descarga temporal para tu verificación local inmediata.

Verificación Pública NOM-151

Verifica de manera pública y sin autenticación la integridad de un documento sellado, asegurando que no ha sido alterado desde su emisión. Los datos sensibles se devuelven enmascarados.

GET/cfdi-vault/public/verify/:hash
Ejemplo de Respuesta
{ "isValid": true, "message": "El documento es auténtico e inalterado (NOM-151).", "data": { "uuidCfdi": "550e8400-e29b-41d4-a716-446655440000", "emisorRfc": "*********XYZ", "receptorRfc": "*********ABC", "fechaTimbrado": "2026-08-17T12:00:00.000Z" } }

Webhooks M2M y Seguridad Anti-Replay

Escucha el Ciclo de Vida Ecosistema DocVault24 en tiempo real. Cuando ocurre un evento operativo, fiscal o de retención, haremos un POST a tu endpoint.

Catálogo de Eventos del Ecosistema

  • guide.created / order.guide.created - Se provisiona un expediente de evidencia.
  • payment.confirmed - Se registra un comprobante de pago.
  • fiscal.stamped - Se indexa un CFDI en el DMS.
  • tenant.archive_request / tenant.archived - Cierre o suspensión de operaciones del Tenant.
  • doc.expired - Vencimiento normativo de un documento.
  • storage.quota_warning - El Tenant superó el umbral de almacenamiento S3/MinIO.
Resiliencia Garantizada (BullMQ DLQ): En caso de que tu endpoint no esté disponible, encolaremos el evento y aplicaremos reintentos con backoff exponencial (30s, 60s, 120s) para que no pierdas ningún dato. En caso de fallo definitivo (3 intentos), pasará a estado DEAD_LETTER y podrás reintentarlo manualmente.

Seguridad Criptográfica Multitenant

Para garantizar la legitimidad del payload, DocVault24 firma la cadena concatenada de timestamp + '.' + rawBody usando HMAC-SHA256 (Cabeceras canónicas: X-DocVault24-Signature y X-DocVault-To-Mande-Signature). Todos los requests incluyen el X-DocVault24-Timestamp. Tu servidor debe validar que el timestamp entrante no exceda la ventana de tolerancia de 300 segundos (5 minutos) antes de verificar la firma, bloqueando completamente los ataques de repetición (Replay Attacks).

// Ejemplo de payload recibido en tu endpoint configurado { "event": "cfdi.created", "data": { "uuid": "550e8400-e29b-41d4-a716-446655440000", "tenantId": "c055...", "status": "vigente", "tipo": "ingreso", "total": 1160.00, "subtotal": 1000.00, "descuento": 0.00, "totalImpuestos": 160.00, "totalRetenidos": 0.00, "conceptos": [ { "id": "abc...", "claveProdServ": "84111506", "cantidad": 1, "descripcion": "Servicios de consultoría", "valorUnitario": 1000.00, "importe": 1000.00 } ] }, "timestamp": "2026-08-17T12:00:00Z" } // Ejemplo de evento cuando se clasifica una partida { "event": "cfdi.concept_classified", "data": { "conceptoId": "abc...", "cfdiId": "xyz...", "uuidCfdi": "550e8400-e29b-41d4-a716-446655440000", "importe": 1500.50, "cuentaContable": "601-01-001", "tipoGastoId": "gasto-uuid", "tipoGastoNombre": "Gasto de Operación", "cuentaContableIva": "118-01-000", "cuentaContableRetencionIsr": "213-01-000", "cuentaContableRetencionIva": "213-02-000" }, "timestamp": "2026-08-17T12:00:00Z" }

Dead Letter Queue (DLQ)

Si un webhook falla 3 veces seguidas (por timeout o error 5xx en tu endpoint), se mueve al Dead Letter Queue. Puedes consultar y reintentar estos webhooks programáticamente.

GET /webhooks/deliveries/dlq

curl -X GET https://api.docvault24.com/webhooks/deliveries/dlq \ -H "X-DocVault24-API-Key: dv24_live_YOUR_API_KEY_HERE"
  • Reintentar Webhook (Replay): POST /webhooks/deliveries/replay/:id

Clasificación Contable M2M

El sistema extrae atómicamente los conceptos de cada CFDI para permitir una clasificación detallada a nivel de partida. Ideal para integraciones con ERPs o Sistemas Contables (ej. Conta24) que requieren inyectar Cuentas Contables y Tipos de Gasto a nivel granular.

  • Obtener Conceptos de un CFDI: GET /tenant/cfdis/:cfdiId/conceptos
    Retorna el desglose completo del CFDI con sus partidas, impuestos y clasificación actual.
  • Actualizar/Clasificar Partida: PATCH /tenant/cfdis/conceptos/:id
    Envía el UUID de la partida y un payload { "cuentaContable": "string", "tipoGastoId": "uuid" } para aplicar la clasificación.
  • Clasificación en Lote: POST /tenant/cfdis/conceptos/clasificar-lote
    Aplica la misma cuenta o tipo de gasto a múltiples IDs de partidas al mismo tiempo.
  • Catálogo Dinámico: GET /tenant/tipos-gasto
    Consulta la lista de Tipos de Gasto que el Tenant tiene configurados (Costo de Ventas, etc.).
Webhook Transaccional: Al momento en que un humano o un script clasifica una partida, el sistema dispara un webhook cfdi.concept_classified hacia tus endpoints, permitiéndote actualizar el asiento contable en tiempo real.

Conector M2M con Segmenta24

Endpoints diseñados para la integración Máquina a Máquina (M2M) con la plataforma Segmenta24.

  • Handshake: POST /api/v1/m2m/connectors/handshake autenticación inicial.
  • Disparo de Eventos: POST /api/v1/m2m/connectors/trigger-event para notificar flujos.
  • Sincronización de Contactos: POST /api/v1/m2m/contacts/sync para carga masiva de agenda B2B.

Todos los requests requieren el header X-Api-Key validado a nivel Gateway.

IA Multi-Modelo (Auditoría)

Aprovecha el orquestador Multi-Modelo de DocVault24 para realizar auditoría de riesgo profunda, extracción de conocimiento y consultoría tributaria.

  • Auditoría de CFDI (Riesgo): POST /api/v1/intelligence/cfdi-risk/:id
    Analiza el comprobante contra reglas de negocio y normatividad del SAT, evaluando congruencia en importes, discrepancias en EFOS y estatus de cancelación. Retorna un confidenceScore y un booleano requiresHumanReview.
  • Asistente Fiscal IA: POST /api/v1/intelligence/ask
    Permite interacciones de chat libres especializadas en la situación fiscal del Tenant. Todo el historial se audita y las respuestas están ancladas al contexto fiscal del usuario.
Auditoría Explicable: Las respuestas de la IA siempre incluyen un arreglo auditTrail y una recomendación sobre si un humano debe verificar la conclusión.

Catálogos SAT Dinámicos

Para poblar selectores (dropdowns) en el ERP de tu sistema, puedes usar nuestros endpoints de catálogos sincronizados directamente con el SAT.

  • Uso CFDI: GET /api/v1/catalogs/sat/usocfdi (Opcional param: ?rfc=XXX para filtrar aplicables a Moral/Física)
  • Régimen Fiscal: GET /api/v1/catalogs/sat/regimenes (Opcional param: ?rfc=XXX)
  • Forma de Pago: GET /api/v1/catalogs/sat/formapago

Estos endpoints soportan ETag y retornan Cache-Control headers para permitir cache agresivo en el frontend o Edge CDN.

Matriz de Seguridad y Roles (RBAC)

DocVault24 implementa un modelo de Control de Acceso Basado en Roles (RBAC) estricto. Todas las llamadas al API deben ser autenticadas y autorizadas. A continuación, se detallan los permisos mínimos requeridos por endpoint.

Dominio / EndpointSUPER_ADMINTENANT_ADMINTENANT_USER
GET /tenant/dashboard✓ (Todos)✓✓ (Lectura)
POST /connector/dms/presigned-url/upload✓✓✗
POST /cfdi-vault/sync✓✓✗
Gestión de CSD / Llaves Privadas✓✓✗
Gestión de Webhooks y Endpoints✓✓✗
DLQ Replay y Monitor✓ (Global)✓ (Tenant)✗
Archivar / Suspender Tenant✓✗✗
Nota: Si el Tenant se encuentra en estado ARCHIVED, todos los permisos de mutación (POST, PUT, DELETE) se revocan automáticamente, permitiendo únicamente solicitudes GET (Modo Auditoría).

Gestión de Sesión & Token Refresh

Ciclo de vida de la autenticación:

  • El JWT tiene un tiempo de vida base de 15 minutos.
  • Refresco silencioso automático de Next-Auth cada 4 minutos.
  • Monitor de inactividad que dispara un modal de advertencia a los 14 minutos sin interacción.
  • Endpoint de renovación: POST /auth/refresh enviando el Bearer token.

Almacenamiento Multi-tenant y Cuotas

El backend intercepta proactivamente las subidas de archivos evaluando la métrica storage_used_bytes del Tenant. Si el archivo entrante (declaración, póliza, PDF) supera el límite (storage_quota_gb), el servicio S3/Minio rechazará la solicitud y el API Gateway emitirá un error PayloadTooLargeException.

Adicionalmente, se puede forzar una recalibración administrativa de la cuota llamando a /admin/tenants/:id/recalculate-storage, la cual escanea físicamente los objetos S3 y actualiza el contador.