Skip to main content
La API de Factio devuelve errores en formato JSON consistente.

Estructura de error

{
  "error": {
    "code": "INVALID_RUC",
    "message": "El RUC del emisor no es válido.",
    "detail": "El RUC debe tener 13 dígitos y pasar la validación de módulo 11.",
    "request_id": "req_01HZ3K5X7..."
  }
}
CampoDescripción
codeCódigo de error interno de Factio. Estable entre versiones.
messageDescripción legible del error.
detailInformación adicional para debugging.
request_idID de trazabilidad. Incluirlo siempre al contactar soporte.

Códigos HTTP

HTTPCuándo ocurre
202 AcceptedEmisión iniciada. No es error.
400 Bad RequestPayload inválido, campo faltante o regla fiscal violada.
401 UnauthorizedAPI Key ausente, inválida o revocada.
403 ForbiddenLa key no tiene permisos para esta operación o recurso.
404 Not FoundEl recurso solicitado no existe en este tenant.
409 ConflictIdempotency key ya utilizada con payload diferente.
422 Unprocessable EntityValidación de tipos/formatos fallida.
429 Too Many RequestsRate limit excedido. Ver header Retry-After.
503 Service UnavailableSRI temporalmente no disponible. Factio reintentará.

Errores de dominio frecuentes

codeDescripciónAcción recomendada
CERTIFICATE_EXPIREDEl certificado .p12 del emisor está vencido.Subir un certificado vigente desde el panel.
CERTIFICATE_NOT_FOUNDEl emisor no tiene certificado activo.Subir un certificado .p12.
INVALID_RUCRUC del emisor inválido.Verificar dígito verificador (módulo 11).
SEQUENCE_EXHAUSTEDEl secuencial de ese establecimiento/punto llegó a 999999999.Contactar soporte.
DUPLICATE_IDEMPOTENCY_KEYKey ya usada con payload diferente.Generar una nueva key.
SRI_REJECTEDSRI rechazó el comprobante.Ver campo sri_messages en el recurso del documento.
ISSUER_DISABLEDEl emisor está deshabilitado en la plataforma.Revisar configuración en el panel.

Rate limiting

Las solicitudes están limitadas por API Key:
EndpointLímite
POST /documents60 requests/minuto
GET /documents/:id300 requests/minuto
POST /auth/*10 requests/minuto
Cuando excedes el límite, la respuesta incluye:
  • HTTP 429 Too Many Requests
  • Header Retry-After: N (segundos hasta que puedes reintentar)
  • Header X-RateLimit-Limit y X-RateLimit-Remaining