Ir al contenido

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 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.

Envía tu token con cada solicitud, en el encabezado Authorization:

Ventana de terminal
curl -H "Authorization: Bearer <your token>" https://invoicing-api.eddish.app/api/clients

El 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.

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.

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.

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.

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.