Empresas
El límite de tenencia: creación, custodia del certificado, mandato, puesta en marcha y automatizaciones.
Base: https://api.facturia.cl/v1. Todos los endpoints de este capítulo se autentican con Authorization: Bearer salvo que se diga lo contrario, y el sobre de error es el de Errores.
| Método | Ruta | Qué hace |
|---|---|---|
GET | /empresas | Lista las empresas que esta llave puede ver |
POST | /empresas | Crea una empresa |
GET | /empresas/{empresa_id} | Devuelve una empresa |
PATCH | /empresas/{empresa_id} | Actualiza una empresa |
GET | /empresas/{empresa_id}/certificate | Devuelve los metadatos del certificado |
POST | /empresas/{empresa_id}/certificate | Carga (o reutiliza) el certificado digital de la empresa |
DELETE | /empresas/{empresa_id}/certificate | Purga el certificado de la bóveda (revoca la custodia y suspende la emisión) |
POST | /empresas/{empresa_id}/mandato | Registra el mandato que autoriza a Facturia a actuar ante el SII |
DELETE | /empresas/{empresa_id}/mandato | Revoca el mandato |
GET | /empresas/{empresa_id}/onboarding | Ciclo de vida de la puesta en marcha, sus pasos y las acciones humanas que la bloquean |
GET | /empresas/{empresa_id}/automation_settings | Devuelve las automatizaciones de la empresa |
PATCH | /empresas/{empresa_id}/automation_settings | Actualiza las automatizaciones de la empresa |
PATCH | /empresas/{empresa_id}/branding | Actualiza el logo, el formato de impresión por defecto y el pie de página |
GET /empresas
Lista las empresas que esta llave puede ver
curl -sS https://api.facturia.cl/v1/empresas \
-H "Authorization: Bearer $FACTURIA_KEY"Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
limit | query | — | integer | |
cursor | query | — | string | Cursor opaco tomado del next_cursor de una respuesta anterior. |
status | query | — | onboarding · active · suspended · archived |
Respuestas
| Código | Significado | Cuerpo |
|---|---|---|
200 | Una lista de empresas. | lista de Empresa |
401 | Llave ausente, mal formada o revocada. | ErrorResponse |
POST /empresas
Crea una empresa
En modo test la empresa nace en emitting: sin mandato, sin certificado y sin certificación.
En modo live parte en mandato_pending y avanza por la máquina de estados de la puesta en marcha.
curl -sS -X POST https://api.facturia.cl/v1/empresas \
-H "Authorization: Bearer $FACTURIA_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"rut":"77928532-4","legal_name":"Connect SpA"}'Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
Idempotency-Key | header | — | string | Llave que genera el cliente, única por operación lógica, retenida 24 h y con alcance (cuenta, empresa, endpoint). Un replay devuelve la respuesta original con Facturia-Idempotent-Replay: true. Misma llave y cuerpo distinto → 409. |
Cuerpo
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
rut | Rut | sí | RUT canónico: sin puntos, un guion y K mayúscula. Ej.: "77928532-4". |
legal_name | string | sí | |
giro | string | — | |
acteco | integer[] | — | |
address | Address | — | |
contact_email | string | — | |
ambiente | certificacion · produccion | — | Por defecto: "produccion". |
doc_types | 33 · 34 · 39 · 41 · 46 · 52 · 56 · 61[] | — | Por defecto: [33,34,61]. |
| Respuestas |
| Código | Significado | Cuerpo |
|---|---|---|
201 | La empresa creada. | Empresa |
400 | Entrada mal formada o incompleta. | ErrorResponse |
401 | Llave ausente, mal formada o revocada. | ErrorResponse |
403 | Llave válida pero sin permiso: scope, lista blanca de empresas o modo. | ErrorResponse |
409 | Conflicto de estado: reutilización de idempotencia, external_id duplicado o artefacto no listo. | ErrorResponse |
GET /empresas/{empresa_id}
Devuelve una empresa
curl -sS https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK \
-H "Authorization: Bearer $FACTURIA_KEY"Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Respuestas
| Código | Significado | Cuerpo |
|---|---|---|
200 | La empresa. | Empresa |
404 | No existe ese objeto bajo esta llave. | ErrorResponse |
PATCH /empresas/{empresa_id}
Actualiza una empresa
curl -sS -X PATCH https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK \
-H "Authorization: Bearer $FACTURIA_KEY" \
-H "Content-Type: application/json" \
-d '{"legal_name":"Connect SpA","giro":"…"}'Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Cuerpo
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
legal_name | string | — | |
giro | string | — | |
address | Address | — | |
contact_email | string | — | |
doc_types | 33 · 34 · 39 · 41 · 46 · 52 · 56 · 61[] | — | |
status | active · archived | — | |
| Respuestas |
| Código | Significado | Cuerpo |
|---|---|---|
200 | La empresa actualizada. | Empresa |
400 | Entrada mal formada o incompleta. | ErrorResponse |
404 | No existe ese objeto bajo esta llave. | ErrorResponse |
GET /empresas/{empresa_id}/certificate
Devuelve los metadatos del certificado
Solo metadatos. Ni el .pfx ni su contraseña se pueden leer nunca por la API.
curl -sS https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK/certificate \
-H "Authorization: Bearer $FACTURIA_KEY"Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Respuestas
| Código | Significado | Cuerpo |
|---|---|---|
200 | Metadatos del certificado. | Certificate |
404 | No existe ese objeto bajo esta llave. | ErrorResponse |
POST /empresas/{empresa_id}/certificate
Carga (o reutiliza) el certificado digital de la empresa
curl -sS -X POST https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK/certificate \
-H "Authorization: Bearer $FACTURIA_KEY" \
-F "file=…" \
-F "password=…"Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Cuerpo (multipart/form-data)
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
file | string | — | Archivo PKCS#12 (.pfx). |
password | string | — | La contraseña del .pfx. |
reuse_from_empresa | string | — | En vez de cargarlo, referencia un certificado que ya tienes en otra empresa de esta cuenta. Vale solo si ese certificado es usuario autorizado ante el SII del RUT de esta empresa. |
| Respuestas |
| Código | Significado | Cuerpo |
|---|---|---|
201 | Certificado guardado y verificado. | Certificate |
400 | Entrada mal formada o incompleta. | ErrorResponse |
422 | Bien formado pero viola una regla del dominio: folios agotados, ventana de acuse cerrada. | ErrorResponse |
DELETE /empresas/{empresa_id}/certificate
Purga el certificado de la bóveda (revoca la custodia y suspende la emisión)
curl -sS -X DELETE https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK/certificate \
-H "Authorization: Bearer $FACTURIA_KEY"Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Respuestas
| Código | Significado | Cuerpo |
|---|---|---|
204 | Purgado. | — |
404 | No existe ese objeto bajo esta llave. | ErrorResponse |
POST /empresas/{empresa_id}/mandato
Registra el mandato que autoriza a Facturia a actuar ante el SII
Publica la aceptación que recolectaste tú, u omite el cuerpo para recibir un signing_url
alojado que puedas enviarle al representante legal.
curl -sS -X POST https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK/mandato \
-H "Authorization: Bearer $FACTURIA_KEY" \
-H "Content-Type: application/json" \
-d '{"representante_legal":{},"accepted_at":"…"}'Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Cuerpo
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
representante_legal | object | — | |
accepted_at | string | — | |
accepted_ip | string | — | |
terms_version | string | — | |
| Respuestas |
| Código | Significado | Cuerpo |
|---|---|---|
201 | El mandato. | Mandato |
400 | Entrada mal formada o incompleta. | ErrorResponse |
DELETE /empresas/{empresa_id}/mandato
Revoca el mandato
curl -sS -X DELETE https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK/mandato \
-H "Authorization: Bearer $FACTURIA_KEY"Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Respuestas
| Código | Significado | Cuerpo |
|---|---|---|
204 | Revocado. La empresa pasa a suspended. | — |
GET /empresas/{empresa_id}/onboarding
Ciclo de vida de la puesta en marcha, sus pasos y las acciones humanas que la bloquean
Todo lo que un asistente necesita para dibujar el avance y decirle a la persona qué hacer ahora.
curl -sS https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK/onboarding \
-H "Authorization: Bearer $FACTURIA_KEY"Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Respuestas
| Código | Significado | Cuerpo |
|---|---|---|
200 | Estado de la puesta en marcha. | Onboarding |
404 | No existe ese objeto bajo esta llave. | ErrorResponse |
GET /empresas/{empresa_id}/automation_settings
Devuelve las automatizaciones de la empresa
curl -sS https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK/automation_settings \
-H "Authorization: Bearer $FACTURIA_KEY"Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Respuestas
| Código | Significado | Cuerpo |
|---|---|---|
200 | Las automatizaciones. | AutomationSettings |
PATCH /empresas/{empresa_id}/automation_settings
Actualiza las automatizaciones de la empresa
Toda automatización viene apagada salvo auto_request_folios. auto_emit_46 y
auto_file_f29 se activan empresa por empresa y con tope.
curl -sS -X PATCH https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK/automation_settings \
-H "Authorization: Bearer $FACTURIA_KEY" \
-H "Content-Type: application/json" \
-d '{"object":"…","empresa_id":"…"}'Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Cuerpo
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
object | string | — | |
empresa_id | string | — | |
auto_emit_46 | boolean | — | Por defecto: false. |
auto_emit_46_max_amount | Clp | — | Monto en CLP. Pesos enteros, nunca decimales ni strings. |
auto_file_f29 | boolean | — | Por defecto: false. |
auto_file_f29_day | integer | — | Por defecto: 18. |
auto_file_f29_max_payable | Clp + any | — | |
auto_request_folios | boolean | — | Por defecto: true. |
auto_request_folios_threshold | integer | — | Por defecto: 50. |
auto_accept_received | boolean | — | Por defecto: false. |
auto_accept_received_after_days | integer,null | — | |
require_confirmation | boolean | — | Cuando está en true, las acciones que mueven plata iniciadas desde una superficie de agente — emitir un documento, declarar un F29, registrar un reclamo con las herramientas del servidor MCP — exigen un paso doble borrador → confirmación en vez de ejecutarse en la primera llamada. Existe sobre todo para la superficie MCP; la API REST que describe este documento no cambia, y la bandera vive en este recurso para que un solo objeto de configuración gobierne la empresa en toda superficie. Por defecto: false. |
rcv_sync_frequency | hourly · daily · weekly · manual | — | Por defecto: "daily". |
updated_at | string | — | |
| Respuestas |
| Código | Significado | Cuerpo |
|---|---|---|
200 | Las automatizaciones actualizadas. | AutomationSettings |
400 | Entrada mal formada o incompleta. | ErrorResponse |
PATCH /empresas/{empresa_id}/branding
Actualiza el logo, el formato de impresión por defecto y el pie de página
curl -sS -X PATCH https://api.facturia.cl/v1/empresas/emp_01K2R6ZC4P8QW1VN7T3MHDY9EK/branding \
-H "Authorization: Bearer $FACTURIA_KEY" \
-H "Content-Type: application/json" \
-d '{"object":"…","logo_url":"…"}'Parámetros
| Parámetro | En | Requerido | Tipo | Notas |
|---|---|---|---|---|
empresa_id | path | sí | string |
Cuerpo
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
object | string | — | |
logo_url | string | — | |
default_pdf_format | carta · 80mm | — | Por defecto: "carta". |
cedible_by_default | boolean | — | En el lanzamiento aplica solo al tipo 33. Por defecto: false. |
footer_text | string | — | |
| Respuestas |
| Código | Significado | Cuerpo |
|---|---|---|
200 | La marca actualizada. | Branding |