Autenticación y contexto
La API usa HTTP Bearer con la API_KEY de tu ApiAccess.
Authorization: Bearer <API_KEY>Obtener la API_KEY
Sección titulada «Obtener la API_KEY»- Ingresá al panel de Host Factura con tu usuario administrador.
- En Configuración → API, creá un nuevo Access. Opcionalmente asocialo a una sucursal específica para que las emisiones queden atribuidas a esa sucursal sin necesidad de header.
- Al crearlo se muestra una sola vez la API_KEY. Copiala a tu vault (1Password, AWS Secrets Manager, Vault, etc.).
- Si la perdés o sospechás filtración, rotala desde el panel — la anterior se invalida en el acto.
Headers comunes
Sección titulada «Headers comunes»| Header | Tipo | Cuándo |
|---|---|---|
Authorization: Bearer <API_KEY> | obligatorio | Siempre |
x-branch-id: <uuid> | opcional | Operar contra una sucursal específica cuando el ApiAccess es global |
x-point-id: <uuid> | opcional | Cuando la sucursal tiene 2+ puntos de emisión activos |
X-Request-ID: <uuid> | opcional | Si lo enviás se respeta; si no, lo genera el servidor |
Sucursales y puntos de emisión
Sección titulada «Sucursales y puntos de emisión»- Si tu
ApiAccessestá fijado a una sucursal, todas las emisiones se atribuyen a esa sucursal. Enviarx-branch-idcon otro valor devuelve403 API_ACCESS_BRANCH_MISMATCH. - Si tu
ApiAccesses global, podés enviarx-branch-idpara apuntar a una sucursal; sin el header se asume la casa central. - Si la sucursal resuelta tiene 2 o más puntos de emisión activos,
x-point-ides obligatorio. Con uno solo, se selecciona automáticamente.
Estructura de respuestas
Sección titulada «Estructura de respuestas»Éxito:
{ "data": {}, "meta": {} }Error:
{ "error": { "code": "CODIGO_ESTABLE", "message": "Mensaje legible en español", "details": {} }, "requestId": "uuid-de-correlación"}Usá el campo code (SCREAMING_SNAKE_CASE, estable) para lógica condicional; el message puede cambiar entre
versiones. Incluí el requestId en tickets de soporte.
Rate limits
Sección titulada «Rate limits»- Cuentas estándar: 60 requests/minuto por
ApiAccess. - Cuentas proveedor: 600 requests/minuto.
Cada respuesta incluye RateLimit-Limit, RateLimit-Remaining y RateLimit-Reset. Al excederlo recibís
429 API_RATE_LIMITED con header Retry-After.
El detalle de todos los códigos de error globales está en la Referencia OpenAPI.