Webhooks de Talana

Los Webhooks de Talana permiten integraciones ágiles y eficientes al ofrecer notificaciones en tiempo real de los eventos críticos del sistema, evitando el polling constante hacia nuestra API.

¿Qué son y cómo funcionan?

Los webhooks funcionan como una notificación de empuje (push notification). Cuando ocurre un evento en Talana (por ejemplo, la creación, modificación o eliminación de un recurso), nuestro sistema realiza una solicitud HTTP POST al endpoint que hayas definido previamente.

El cuerpo del mensaje (payload) incluye la información detallada del evento, permitiendo que su aplicación procese los cambios de forma instantánea.

Los webhooks cuentan con un timeout configurado de hasta 10 minutos para la recepción de respuestas por parte de los sistemas integradores. Esto con el objetivo de mejorar la estabilidad y confiabilidad del procesamiento de eventos, especialmente en escenarios donde existen demoras operacionales, alta concurrencia o procesos downstream más extensos. De esta forma, se reduce la probabilidad de reintentos innecesarios, fallos por expiración prematura y desincronizaciones entre plataformas, asegurando una entrega más robusta y consistente de la información.

Autenticación y seguridad

La seguridad de los datos es una prioridad para Talana. Por ello, todos los endpoints que reciban notificaciones deben implementar Autenticación Básica (Basic Auth).

Durante la configuración, usted deberá proporcionar las credenciales (usuario y contraseña), las cuales se incluirán en el encabezado de la solicitud HTTP.

Authorization: Basic (username:password)

Importante: Este método permite que su servicio verifique que la notificación proviene legítimamente de la plataforma de Talana.

Cómo solicitar

  1. Comunícate con el SAC para que puedan derivarte al equipo de Back.
  2. El equipo de Back configurará el webhook que necesites, según los modelos que se muestran más abajo.
  3. Se te comunicará cuando el webhook esté configurado.

Estructura del mensaje

Ejemplo genérico del contenido enviado a tu endpoint:

{
  "event": "persona.created",
  "data": {
    // Payload del modelo correspondiente
  }
}

Eventos Disponibles

ModeloEventos DisponiblesDescripción breve
personapersona.created, persona.updated, persona.deletedCambios en la ficha del trabajador
personaEmpresapersonaEmpresa.created, personaEmpresa.updated, personaEmpresa.deletedInformación complementaria de empresa del trabajador
vacacionesSolicitudvacacionesSolicitud.created, vacacionesSolicitud.updated, vacacionesSolicitud.deletedSolicitudes y cambios de vacaciones
razonSocialrazonSocial.created, razonSocial.updated, razonSocial.deletedCambios en los datos de la razón social
personaAusenciapersonaAusencia.created, personaAusencia.updated, personaAusencia.deletedCreación, modificación o eliminación de ausencias
centroCostocentroCosto.created, centroCosto.updated, centroCosto.deletedActualizaciones en centros de costo
sucursalsucursal.created, sucursal.updated, sucursal.deletedCambios en sucursales
unidadOrganizacionalunidadOrganizacional.created, unidadOrganizacional.updated, unidadOrganizacional.deletedCambios en gerencias o áreas
documentodocumento.created, documento.updated, documento.deletedCreación, firma o eliminación de documentos
SigningRequestSigningRequest.created, SigningRequest.updated, SigningRequest.deletedEventos del proceso de firma digital
SigningRequestDetailSigningRequestDetail.createdDetalle de Solicitud de Firma

Modelos de Webhooks

Cada webhook incluye en el campo data un objeto JSON con la información del modelo afectado. A continuación se detallan los modelos disponibles según el tipo de evento.


persona

Evento: persona.created / persona.updated / persona.deleted

{
  "id": 0,
  "fechaCreacion": "2025-11-05T13:42:32.959Z",
  "rut": "string",
  "nombre": "string",
  "apellidoPaterno": "string",
  "apellidoMaterno": "string",
  "sexo": "M",
  "fechaNacimiento": "2025-11-05",
  "nacionalidad": "string",
  "username": "string",
  "email": "[email protected]",
  "permisos": [
    {
      "nombre": "string",
      "vigente": true
    }
  ],
  "detalles": [
    {
      "id": 0,
      "foto": "string",
      "idiomas": [
        {
          "id": 0,
          "nombre": "string"
        }
      ],
      "codigoUbicacion": "string",
      "fechaCreacion": "2025-11-05T13:42:32.959Z",
      "validoDesde": "2025-11-05",
      "email": "[email protected]",
      "emailPersonal": "[email protected]",
      "telefono": "string",
      "celular": "string",
      "direccionCalle": "string",
      "direccionNumero": "string",
      "direccionDepartamento": "string",
      "nivelEducacional": "sin info",
      "colegio": "string",
      "institucionEstudiosSuperiores": "string",
      "profesion": "string",
      "observaciones": "string",
      "contactosDeEmergencia": "string",
      "sangre": "ap",
      "alergias": "string",
      "discapacidades": "string",
      "enfermedades_cronicas": "string",
      "medicamentos_permanentes": "string",
      "direccionComuna": 0,
      "direccionCiudad": 0,
      "estadoCivil": "string"
    }
  ],
  "externalReference": "string",
  "empresa": {
    "id": 0,
    "fechaCreacion": "2025-11-05T13:42:32.959Z",
    "nombre": "string",
    "vigente": true,
    "url": "string",
    "logo": "string",
    "logoWebPublica": "string",
    "ordenWebPublica": 0,
    "esPrueba": true,
    "tier": "tier2",
    "tags": {},
    "company_group": 0,
    "calendarioDeFeriados": 0,
    "pais": "string"
  },
  "userDefinedFields": "string",
  "anexo": "string"
}

personaEmpresa

Evento: personaEmpresa.created / personaEmpresa.updated / personaEmpresa.deleted

Modelo complementario al modelo persona. Contiene información de la relación del trabajador con la empresa.

{
  "id": 0,
  "fechaCreacion": "2025-11-05T13:42:32.959Z",
  "rut": "string",
  "nombre": "string",
  "apellidoPaterno": "string",
  "apellidoMaterno": "string",
  "sexo": "M",
  "fechaNacimiento": "2025-11-05",
  "nacionalidad": "string",
  "username": "string",
  "email": "[email protected]",
  "permisos": [
    {
      "nombre": "string",
      "vigente": true
    }
  ],
  "detalles": [
    {
      "id": 0,
      "foto": "string",
      "idiomas": [
        {
          "id": 0,
          "nombre": "string"
        }
      ],
      "codigoUbicacion": "string",
      "fechaCreacion": "2025-11-05T13:42:32.959Z",
      "validoDesde": "2025-11-05",
      "email": "[email protected]",
      "emailPersonal": "[email protected]",
      "telefono": "string",
      "celular": "string",
      "direccionCalle": "string",
      "direccionNumero": "string",
      "direccionDepartamento": "string",
      "nivelEducacional": "sin info",
      "colegio": "string",
      "institucionEstudiosSuperiores": "string",
      "profesion": "string",
      "observaciones": "string",
      "contactosDeEmergencia": "string",
      "sangre": "ap",
      "alergias": "string",
      "discapacidades": "string",
      "enfermedades_cronicas": "string",
      "medicamentos_permanentes": "string",
      "direccionComuna": 0,
      "direccionCiudad": 0,
      "estadoCivil": "string"
    }
  ],
  "externalReference": "string",
  "empresa": {
    "id": 0,
    "fechaCreacion": "2025-11-05T13:42:32.959Z",
    "nombre": "string",
    "vigente": true,
    "url": "string",
    "logo": "string",
    "logoWebPublica": "string",
    "ordenWebPublica": 0,
    "esPrueba": true,
    "tier": "tier2",
    "tags": {},
    "company_group": 0,
    "calendarioDeFeriados": 0,
    "pais": "string"
  },
  "userDefinedFields": "string",
  "anexo": "string"
}

vacacionesSolicitud

Evento: vacacionesSolicitud.created / vacacionesSolicitud.updated / vacacionesSolicitud.deleted

{
  "empleado": 0,
  "vacacionesDesde": "2025-11-05",
  "numeroDias": 0,
  "jornada": "M",
  "mediosDias": true,
  "vacacionesHasta": "2025-11-05",
  "vacacionesRetorno": "2025-11-05",
  "aprobada": "A",
  "aprobadaPor": 0,
  "creadaPor": 0,
  "tipoVacaciones": "string",
  "fechaAprobacion": "2025-11-05T13:42:32.959Z",
  "detallesTrabajador": {
    "id": 0,
    "fechaCreacion": "2025-11-05T13:42:32.959Z",
    "rut": "string",
    "nombre": "string",
    "apellidoPaterno": "string",
    "apellidoMaterno": "string",
    "sexo": "M",
    "fechaNacimiento": "2025-11-05",
    "nacionalidad": "string",
    "username": "string",
    "email": "[email protected]",
    "permisos": [
      {
        "nombre": "string",
        "vigente": true
      }
    ],
    "detalles": [
      {
        "id": 0,
        "foto": "string",
        "idiomas": [
          {
            "id": 0,
            "nombre": "string"
          }
        ],
        "codigoUbicacion": "string",
        "fechaCreacion": "2025-11-05T13:42:32.959Z",
        "validoDesde": "2025-11-05",
        "email": "[email protected]",
        "emailPersonal": "[email protected]",
        "telefono": "string",
        "celular": "string",
        "direccionCalle": "string",
        "direccionNumero": "string",
        "direccionDepartamento": "string",
        "nivelEducacional": "sin info",
        "colegio": "string",
        "institucionEstudiosSuperiores": "string",
        "profesion": "string",
        "observaciones": "string",
        "contactosDeEmergencia": "string",
        "sangre": "ap",
        "alergias": "string",
        "discapacidades": "string",
        "enfermedades_cronicas": "string",
        "medicamentos_permanentes": "string",
        "direccionComuna": 0,
        "direccionCiudad": 0,
        "estadoCivil": "string"
      }
    ],
    "externalReference": "string",
    "empresa": {
      "id": 0,
      "fechaCreacion": "2025-11-05T13:42:32.959Z",
      "nombre": "string",
      "vigente": true,
      "url": "string",
      "logo": "string",
      "logoWebPublica": "string",
      "ordenWebPublica": 0,
      "esPrueba": true,
      "tier": "tier2",
      "tags": {},
      "company_group": 0,
      "calendarioDeFeriados": 0,
      "pais": "string"
    },
    "userDefinedFields": "string",
    "anexo": "string"
  },
  "externalReference": "string",
  "id": 0,
  "fechaCreacion": "2025-11-05T13:42:32.959Z",
  "read_person": true,
  "read_boss": true,
  "type": "string"
}

razonSocial

Evento: razonSocial.created / razonSocial.updated / razonSocial.deleted

{
  "id": 0,
  "rut": "string",
  "razonSocial": "string",
  "nombreComercial": "string",
  "giro": "string",
  "direccion": "string",
  "calleCasaMatriz": "string",
  "numeroCasaMatriz": "string",
  "mutualPorcentajeDescuento": 0,
  "mutualCodigoSucursal": "string",
  "telefono": "string",
  "cuentaCorrientePagoNomina": "string",
  "representanteLegal": "string",
  "rutRepresentanteLegal": "string",
  "logo": "string",
  "fechaCreacion": "2025-11-05T13:42:32.959Z",
  "empresa_est": true,
  "representanteEmail": "[email protected]",
  "representanteTelefono": "string",
  "appeal_days_for_rejected_requests": 0,
  "appeal_area_for_rejected_requests": "string",
  "empresa": 0,
  "regionCasaMatriz": 0,
  "comunaCasaMatriz": 0,
  "cajaCompensacion": 0,
  "mutual": 0,
  "comuna": 0,
  "bancoPagoNomina": 0
}

personaAusencia

Evento: personaAusencia.created / personaAusencia.updated / personaAusencia.deleted

{
  "empleado": 0,
  "fechaDesde": "2025-11-05",
  "numeroDias": 0,
  "fechaHasta": "2025-11-05",
  "aprobada": true,
  "aprobadaPor": 0,
  "fechaAprobacion": "2025-11-05",
  "tipoAusencia": "string",
  "documentacion": "string",
  "rebajaSalario": true,
  "esContinuacion": true,
  "creadoPor": 0,
  "fechaCreacion": "2025-11-05T15:44:35.994Z",
  "fechaRetorno": "2025-11-05",
  "numeroLicencia": "string",
  "medicoLicencia": "string",
  "id": 0,
  "externalReference": "string",
  "detallesTrabajador": {
    "id": 0,
    "fechaCreacion": "2025-11-05T15:44:35.994Z",
    "rut": "string",
    "nombre": "string",
    "apellidoPaterno": "string",
    "apellidoMaterno": "string",
    "sexo": "M",
    "fechaNacimiento": "2025-11-05",
    "nacionalidad": "string",
    "username": "string",
    "email": "[email protected]",
    "permisos": [
      {
        "nombre": "string",
        "vigente": true
      }
    ],
    "detalles": [
      {
        "id": 0,
        "foto": "string",
        "idiomas": [
          {
            "id": 0,
            "nombre": "string"
          }
        ],
        "codigoUbicacion": "string",
        "fechaCreacion": "2025-11-05T15:44:35.994Z",
        "validoDesde": "2025-11-05",
        "email": "[email protected]",
        "emailPersonal": "[email protected]",
        "telefono": "string",
        "celular": "string",
        "direccionCalle": "string",
        "direccionNumero": "string",
        "direccionDepartamento": "string",
        "nivelEducacional": "sin info",
        "colegio": "string",
        "institucionEstudiosSuperiores": "string",
        "profesion": "string",
        "observaciones": "string",
        "contactosDeEmergencia": "string",
        "sangre": "ap",
        "alergias": "string",
        "discapacidades": "string",
        "enfermedades_cronicas": "string",
        "medicamentos_permanentes": "string",
        "direccionComuna": 0,
        "direccionCiudad": 0,
        "estadoCivil": "string"
      }
    ],
    "externalReference": "string",
    "empresa": {
      "id": 0,
      "fechaCreacion": "2025-11-05T15:44:35.994Z",
      "nombre": "string",
      "vigente": true,
      "url": "string",
      "logo": "string",
      "logoWebPublica": "string",
      "ordenWebPublica": 0,
      "esPrueba": true,
      "tier": "tier2",
      "tags": {},
      "company_group": 0,
      "calendarioDeFeriados": 0,
      "pais": "string"
    },
    "userDefinedFields": "string",
    "anexo": "string"
  },
  "horaDesde": "string",
  "numeroHoras": 0,
  "numeroMinutos": 0,
  "horaHasta": "string",
  "motivo": "string",
  "mediosDias": true
}

centroCosto

Evento: centroCosto.created / centroCosto.updated / centroCosto.deleted

{
  "id": 0,
  "parent": 0,
  "empresa": 0,
  "codigo": "string",
  "nombre": "string",
  "externalReference": "string",
  "vigente": true,
  "user_defined_fields": "string"
}

sucursal

Evento: sucursal.created / sucursal.updated / sucursal.deleted

{
  "id": 0,
  "empresa": 0,
  "nombre": "string",
  "desde": "2025-11-05",
  "fechaCreacion": "2025-11-05T13:42:32.959Z",
  "creadoPor": 0,
  "vigente": true,
  "direccionCalle": "string",
  "direccionNumero": "string",
  "direccionDepartamento": "string",
  "direccionComuna": 0,
  "direccionCiudad": 0,
  "telefono": "string",
  "externalReference": "string",
  "location": "string",
  "location_parseado": "string",
  "rango": 0,
  "beacons": "string",
  "timezone": "string"
}

unidadOrganizacional

Evento: unidadOrganizacional.created / unidadOrganizacional.updated / unidadOrganizacional.deleted

{
  "parent": 0,
  "nombre": "string",
  "externalReference": "string",
  "id": 0,
  "codigo": "string"
}

documento

Evento: documento.created / documento.updated / documento.deleted

{
  "id": 0,
  "empleado": 0,
  "empleado_detalles": {
    "id": 0,
    "nombre": "string",
    "apellidoPaterno": "string",
    "apellidoMaterno": "string",
    "cargo": "string",
    "gerencia": "string",
    "avatar": "string",
    "rut": "string",
    "full_name": "string"
  },
  "nombre": "string",
  "fechaCreacion": "2025-11-05T13:42:32.959Z",
  "categoria": "string",
  "puedeVerloElTrabajador": true,
  "adjunto": "string",
  "creadoPor": 0,
  "user_defined_fields": "string"
}

SigningRequest

Evento: SigningRequest.created / SigningRequest.updated / SigningRequest.deleted

{
  "signingRequest": 0,
  "documentType": "string",
  "documentReference": "string",
  "requestTS": "2025-11-05T13:42:32.959Z"
}

SigningRequestDetail

Evento: SigningRequestDetail.created

{
  "id": 0,
  "details": [
    {
      "id": 0,
      "signed": true,
      "status": "P",
      "token": "string",
      "signatureTS": "2025-11-05T13:42:32.959Z",
      "TSASignature": "string",
      "ip": "string",
      "userAgent": "string",
      "passVerification": "string",
      "huella": "string",
      "rejection_reason": "string",
      "signingRequest": 0,
      "requestedUser": 0
    }
  ]
}