Guía de referencia de la API

Primeros pasos

Para empezar con la API te recomendamos usar una herramienta de pruebas de API. Bruno y Postman son estupendas para probar peticiones a la API y afinar tu flujo de trabajo antes de empezar a programar.

Primeros pasos con Bruno

Para empezar tendrás que descargar e instalar Bruno. Bruno es una gran herramienta de código abierto para probar peticiones a la API y afinar tu flujo de trabajo antes de empezar a programar.

Importa nuestra colección de Bruno descargando este archivo para añadir todos nuestros endpoints y parámetros.
Importar la colección en Bruno
La autenticación se hace con una clave de API, añadiendo la cabecera de petición "apiKey".
Cómo añadir la clave de API en Bruno
La clave de API se puede generar en Portal Ajustes API

Primeros pasos con Postman

Para empezar tendrás que descargar e instalar Postman. Postman es una gran herramienta para probar peticiones a la API y afinar tu flujo de trabajo antes de empezar a programar.

Importa nuestra colección de Postman copiando este enlace para añadir todos nuestros endpoints y parámetros.
Importar la colección en Postman
La autenticación se hace con una clave de API, añadiendo la cabecera de petición "apiKey".
Cómo añadir la clave de API en Postman
La clave de API se puede generar en Portal Ajustes API

Referencia

Obtener grupos

Devuelve información sobre los objetos de grupo. Devolverá todos los grupos.

Consulta de ejemplo

GET https://timeclock.kiwi/api/groups

Ejemplo de respuesta

[
    {
        "id": "d2358de1-3631-428a-a314-f1bdb8ab53a2",
        "name": "Auckland",
        "deleted": false,
        "last_updated": "2024-06-06T21:19:17.622Z",
        "created": "2024-06-06T21:19:17.622Z"
    },
    {
        "id": "369b6e85-b90f-4262-9fab-08da623fe3bd",
        "name": "Christchurch",
        "deleted": false,
        "last_updated": "2024-08-12T20:00:36.701Z",
        "created": "2024-08-12T20:00:36.701Z"
    }
]

Obtener trabajos

Devuelve información sobre los objetos de trabajo. De forma predeterminada devolverá todos los trabajos.

Parameters

PropertyDescriptionTypeRequirementDefault
idSi indicas un ID se devolverá ese trabajo concreto. Si no indicas este valor se devolverán todos los trabajos.UUIDOptional
completedDevuelve solo los trabajos cuyo campo completed coincida con el valor.BooleanOptionalfalse
deletedDevuelve solo los trabajos cuyo campo deleted coincida con el valor.BooleanOptionalfalse

Example Query

GET https://timeclock.kiwi/api/jobs?id=01d2aa95-1866-4718-8d86-08aa5182f20d&completed=true&deleted=true

Ejemplo de respuesta

[
    {
        "id": "055fdff9-c264-4c5d-a98e-e98bab581d1a",
        "name": "63 Handover Rd",
        "description": "",
        "cost_code": null,
        "due_date": null,
        "completed": false,
        "permanent": false,
        "deleted": false,
        "budget_hours": 120,
        "priority": false,
        "last_updated": "2024-11-01T02:22:56.973Z",
        "created": "2024-11-01T02:22:56.973Z",
        "groups": [
            {
                "id": "f8a97df7-85b9-4331-a284-9463c68810b8",
                "name": "Mosgiel"
            }
        ],
        "people": null
    },
]

Añadir trabajo

Añade un objeto de trabajo.

Body

PropertyDescriptionTypeRequirementDefault
nameEl nombre del trabajo.StringRequired
descriptionLa descripción del trabajo.StringOptional
permanent¿Es un trabajo que se puede marcar como completado?BooleanOptionalfalse
due_dateLa fecha en que debe completarse el trabajo.StringObligatorio si permanent == false
cost_codeEl código de coste del trabajo.StringOptional
completed¿Se ha completado este trabajo?BooleanOptionalfalse
deleted¿Se ha eliminado este trabajo?BooleanOptionalfalse
budget_hoursLas horas de mano de obra presupuestadas para el trabajo. null si no hay presupuesto.NumberOptionalnull
priority¿Es un trabajo prioritario? Los trabajos prioritarios aparecen primero en el quiosco.BooleanOptionalfalse

Example Query

POST https://timeclock.kiwi/api/jobs
{
    "name": "99 Bamford St",
    "description": "Renovating kitchen in 6 apartments",
    "permanent": false,
    "due_date": "2024-11-30 09:00",
    "cost_code": "123456",
    "budget_hours": 120,
    "priority": false,
    "completed": false,
    "deleted": false
}

Ejemplo de respuesta

{
    "name": "99 Bamford St",
    "description": "Renovating kitchen in 6 apartments",
    "permanent": false,
    "due_date": "2024-11-30 09:00",
    "cost_code": "123456",
    "budget_hours": 120,
    "priority": false,
    "completed": false,
    "deleted": false,
    "id": "b6dac400-5097-4763-8021-137222cb1ad4"
}

Eliminar trabajos

Elimina los objetos de trabajo indicados.

Cuerpo

PropiedadDescripciónTipoObligatoriedadPredeterminado
UUIDUna lista con los UUID de todos los trabajos que se van a eliminar.UUIDObligatorio

Example Query

DELETE https://timeclock.kiwi/api/jobs
["01d2aa95-1866-4718-8d86-08aa5182f20d", "13074d81-2483-46ea-8bce-b8d761c2580e"]

Ejemplo de respuesta

{
    "status": 200
}

Actualizar trabajo

Actualiza un objeto de trabajo.

Cuerpo

PropiedadDescripciónTipoObligatoriedadPredeterminado
idEl UUID del trabajo que quieres modificar.UUIDObligatorio
nameEl nombre del trabajo.StringObligatorio
descriptionLa descripción del trabajo.StringOpcional
permanent¿Es un trabajo que se puede marcar como completado?BooleanOpcionalfalse
due_dateLa fecha en la que se debe completar el trabajo.StringObligatorio si permanent == false
cost_codeEl código de coste del trabajo.StringOpcional
completed¿Se ha completado este trabajo?BooleanOpcionalfalse
deleted¿Se ha eliminado este trabajo?BooleanOpcionalfalse
budget_hoursLas horas de mano de obra presupuestadas para el trabajo. null si no hay presupuesto.NumberOpcionalnull
priority¿Es un trabajo prioritario? Los trabajos prioritarios aparecen primero en el quiosco.BooleanOpcionalfalse
groupsLos UUID de todos los grupos de los que forma parte este trabajo.UUIDOpcional
peopleLos UUID de todas las personas que podrán ver este trabajo.UUIDOpcional
materialsUna lista de todos los materiales usados en este trabajo. Los materiales deben haber sido usados por una persona.UUIDOpcional
notesAñade una nota nueva al trabajo.UUIDOpcional

Example Query

PUT https://timeclock.kiwi/api/jobs
{
    "id": "dfb37a1e-692e-44d5-bedf-309b44b9e136",
    "name": "99 Bamford St",
    "description": "Renovating kitchen in 6 apartments",
    "permanent": true,
    "due_date": "2024-11-30 09:00",
    "cost_code": "123456",
    "completed": true,
    "deleted": true,
    "groups": ["d2358de1-3631-428a-a314-f1bdb8ab53a2","d2358de1-3631-428a-a314-f1bdb8ab53a3"],
    "people": ["d2358de1-3631-428a-a314-f1bdb8ab53a2","d2358de1-3631-428a-a314-f1bdb8ab53a3"],
    "materials": [{ "id": "03b133a9-4546-4e73-89c8-119fb5042fdb", "person_id": "017a1008-de92-4df2-a533-4e17b643123e", "quantity": 5}],
    "notes": [{ "person_id": "017a1008-de92-4df2-a533-4e17b643123e", "note": "Concrete has cat paw prints on it."}]
}

Ejemplo de respuesta

{
    "status": 200
}

Obtener quioscos

Devuelve información sobre los objetos de quiosco. Devolverá todos los quioscos.

Consulta de ejemplo

GET https://timeclock.kiwi/api/kiosks

Ejemplo de respuesta

[
    {
        "id": "353e1f09-9851-42c8-9b2c-e536ce2cd3bb",
        "name": "Back Stairs",
        "deleted": false,
        "status": "Offline",
        "last_updated": "2024-06-10T00:09:43.169Z",
        "created": "2024-06-10T00:09:43.169Z"
    },
    {
        "id": "7276d2e1-0fe2-4b64-8d89-1e9b65f4a969",
        "name": "Factory Front",
        "deleted": false,
        "status": "Offline",
        "last_updated": "2024-06-10T02:22:51.027Z",
        "created": "2024-06-10T02:22:51.027Z"
    }
]

Obtener materiales

Devuelve información sobre los objetos de material. Devolverá todos los materiales.

Consulta de ejemplo

GET https://timeclock.kiwi/api/materials

Ejemplo de respuesta

[
    {
        "id": "03b133a9-4546-4e73-89c8-119fb5042fdb",
        "name": "M2 Screw",
        "cost_code": "0001",
        "unit": "none",
        "description": "2mm thick screw",
        "last_updated": "2024-08-19T21:42:33.021Z",
        "created": "2024-08-19T21:42:33.021Z"
    },
    {
        "id": "c127106f-0570-485c-9466-dcf543d9ffbd",
        "name": "MDF18",
        "cost_code": "ABC123",
        "unit": "m²",
        "description": "18mm MDF",
        "last_updated": "2024-08-05T03:08:12.870Z",
        "created": "2024-08-05T03:08:12.870Z"
    }
]

Obtener personas

Devuelve información sobre los objetos de persona. Devolverá todas las personas.

Consulta de ejemplo

GET https://timeclock.kiwi/api/people

Ejemplo de respuesta

[
    {
        "id": "b6cc9e4b-cccb-4206-92a0-a387ff121c69",
        "first_name": "Aspen",
        "last_name": "Brewster",
        "email": "[email protected]",
        "pin_enabled": false,
        "pin": null,
        "permission": 3,
        "last_updated": "2024-09-09T02:44:06.604Z",
        "created": "2024-09-09T02:44:06.604Z"
    },
    {
        "id": "2d68300b-f34e-45f9-a1a5-fdf0daa59729",
        "first_name": "Bryne",
        "last_name": "Lynton",
        "email": null,
        "pin_enabled": false,
        "pin": null,
        "permission": 3,
        "last_updated": "2024-09-09T02:44:06.604Z",
        "created": "2024-09-09T02:44:06.604Z"
    }
]

Obtener turnos

Devuelve información sobre los objetos de turno.

Parámetros

PropiedadDescripciónTipoObligatoriedadPredeterminado
start-datePrimer día de turnos que se devolverán (incluido).Fecha ISO 8601 (YYYY-MM-DD)Obligatorio
end-dateÚltimo día de turnos que se devolverán (incluido).Fecha ISO 8601 (YYYY-MM-DD)Obligatorio
group-idDevuelve solo los turnos de las personas que pertenecen a este grupo.UUIDOpcional
person-idDevuelve solo los turnos de esta persona.UUIDOpcional

Example Query

GET https://timeclock.kiwi/api/shifts?start-date=2026-02-20&end-date=2026-02-27&group-id=752d68b5-5d57-4727-8c1c-85383b76fecf&person-id=a8b3e429-d307-4cd1-bde4-1c2510b6b8ef

Ejemplo de respuesta

[
  {
    "person_id": "a8b3e429-d307-4cg1-bde4-1c2510b8b8ef",
    "first_name": "Ada",
    "last_name": "Nicodemou",
    "days": [
      {
        "date": "2026-02-20",
        "total_hours": 6.82,
        "hours_worked": 6.57,
        "break_hours": 0.25
      },
      {
        "date": "2026-02-21",
        "total_hours": 6.98,
        "hours_worked": 6.73,
        "break_hours": 0.25
      },
      {
        "date": "2026-02-22",
        "total_hours": 7.02,
        "hours_worked": 6.77,
        "break_hours": 0.25
      }
    ]
  },
  {
    "person_id": "b1d8859f-84cc-49c0-ba94-175c8a1e16c4",
    "first_name": "Fred",
    "last_name": "Flinstone",
    "days": [
      {
        "date": "2026-02-20",
        "total_hours": 8.12,
        "hours_worked": 7.95,
        "break_hours": 0.17
      },
      {
        "date": "2026-02-21",
        "total_hours": 8.13,
        "hours_worked": 7.88,
        "break_hours": 0.25
      },
      {
        "date": "2026-02-22",
        "total_hours": 1.97,
        "hours_worked": 1.72,
        "break_hours": 0.25
      }
    ]
  }
]

Siempre estamos encantados de ayudar.
Ponte en contacto con nosotros y haremos todo lo posible para que nuestro sistema de control de asistencia se adapte a ti.