La API de Invoicing
Todo lo que puedes hacer en las pantallas de Invoicing, un script puede hacerlo mediante su API, como tú. Necesitas un token de acceso personal para Invoicing.
La dirección
Sección titulada «La dirección»La dirección de la API de Invoicing aparece en la pantalla Acceso a la API, por ejemplo
https://invoicing-api.eddish.app. Todas las rutas empiezan por /api.
Cada punto de conexión, con lo que recibe y lo que devuelve, está en la
referencia de la API (en inglés). La misma dirección también ofrece un visor interactivo
en /scalar, donde puedes probar solicitudes con tu token. El documento OpenAPI está en /openapi/v1.json;
herramientas como Postman o Insomnia pueden importarlo.
Autenticación
Sección titulada «Autenticación»Envía tu token con cada solicitud, en el encabezado Authorization:
curl -H "Authorization: Bearer <your token>" https://invoicing-api.eddish.app/api/clientsEl token actúa como tú, en la cuenta donde se creó:
- Puede hacer lo que permite tu rol. El token de un Propietario puede cambiar los datos del negocio; el de un Miembro, no.
- Un token de Solo lectura solo puede hacer solicitudes
GET. - Necesita tu puesto en Invoicing y un plan que incluya acceso a la API.
Qué devuelve
Sección titulada «Qué devuelve»Todas las respuestas tienen la misma forma:
{ "success": true, "data": { … }, "error": null }Cuando algo sale mal, success es false y error dice qué, con un code que un script puede comprobar y un
message que una persona puede leer. Una solicitud con errores también incluye fieldErrors, por campo.
| Estado | Código | Qué significa |
|---|---|---|
401 |
auth.invalid_credential, auth.expired_credential, auth.revoked_credential |
El token no se reconoce, caducó o fue revocado. |
403 |
auth.read_only_token |
El token solo puede leer. |
403 |
auth.role_not_permitted |
Tu rol no lo permite. |
403 |
app.no_seat |
No tienes un puesto en Invoicing. |
403 |
auth.api_access_not_in_plan |
El plan de la cuenta no incluye acceso a la API. |
403 |
auth.not_a_member |
Ya no eres miembro de la cuenta. |
409 |
plan.read_only |
La cuenta supera los límites de su plan, así que Invoicing está en solo lectura hasta que un Propietario o un Administrador lo resuelva. |
429 |
rate_limit.exceeded |
Demasiadas solicitudes. Espera el número de segundos indicado en el encabezado Retry-After. |
Límites de frecuencia
Sección titulada «Límites de frecuencia»Cada token puede hacer un número fijo de solicitudes en poco tiempo, según tu plan. Todas las respuestas incluyen
X-RateLimit-Limit y X-RateLimit-Remaining, para que un script pueda ir más despacio antes de que lo rechacen.
Algunas solicitudes útiles
Sección titulada «Algunas solicitudes útiles»| Solicitud | Qué hace |
|---|---|
GET /api/team/me |
Quién es la persona en cuyo nombre actúa el token |
GET /api/clients |
Clientes |
GET /api/projects?clientId=… |
Los proyectos de un cliente |
GET /api/projects/{id}/task-assignments |
Las tareas en las que puedes registrar tiempo en un proyecto |
GET /api/time-entries?from=2026-10-01&to=2026-10-31 |
Los registros de tiempo de octubre |
POST /api/time-entries |
Registrar tiempo: projectId, workTaskId, spentDate, hours, notes, billable |
GET /api/invoices?state=Open |
Facturas enviadas y aún no pagadas |
GET /api/invoices/uninvoiced-summary?clientId=… |
El trabajo de un cliente aún sin facturar |
Las fechas se escriben yyyy-mm-dd. Los identificadores son los valores largos id de las respuestas.
Claves de API de la cuenta
Sección titulada «Claves de API de la cuenta»Un Propietario o un Administrador también puede crear claves de API de la cuenta, en Claves de API. Una clave pertenece a la cuenta y no a una persona, y solo llega a los pocos puntos de conexión que se le dan: listar clientes, proyectos y facturas. Para cualquier otra cosa, usa un token de acceso personal.