---
updatedAt: 2026-05-05T09:50:12.000Z
---

Fetch the complete documentation index at: https://apidocs.hibob.com/llms.txt. Use this file to discover all available pages before exploring further.

# Creates a new variable payment for a given employee.

# OpenAPI definition

```json
{
  "openapi": "3.1.1",
  "info": {
    "title": "Employee data API",
    "description": "Access your employees data with the Public API",
    "license": {
      "name": "Proprietary",
      "url": "https://apidocs.hibob.com/docs/api-terms-of-use"
    },
    "contact": {
      "name": "Hi Bob, Inc."
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.hibob.com/v1",
      "description": "Production"
    },
    {
      "url": "https://api.sandbox.hibob.com/v1",
      "description": "Sandbox"
    }
  ],
  "x-readme": {
    "metrics-enabled": false
  },
  "tags": [
    {
      "name": "Employee Tables",
      "description": "Operations for employee tables (work, employment, lifecycle, salaries, equities, variable, training, bank accounts)"
    },
    {
      "name": "Employee data Webhooks",
      "description": "Webhook events for employee and table entry operations"
    }
  ],
  "webhooks": {
    "employeeCreated": {
      "post": {
        "operationId": "post_webhook_employee-created",
        "tags": [
          "Employee data Webhooks"
        ],
        "summary": "Employee created",
        "description": "Triggered when an employee is created.\n\nIn the right panel, open **Examples** and select **Payload Example** to see a real payload.\n",
        "parameters": [
          {
            "name": "bob-signature",
            "in": "header",
            "required": true,
            "description": "Base64-encoded signature sent with each webhook request. Use it to verify that the request came from Bob. To verify webhook authenticity, see <a href=\"https://apidocs.hibob.com/reference/getting-started-webhooks#how-does-bob-calculate-the-signature\" target=\"_blank\">How does Bob calculate the signature</a>.",
            "schema": {
              "type": "string",
              "example": "EQScIBkAtTKFW0ictgt5zzOsqIc2+xGEsM88jOdLuW4CM/a3gLEfrKV+IC5IHx0xbirzLKPIfaZjCGwzuiyI8w=="
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeCreatedEvent"
              },
              "example": {
                "companyId": 637323,
                "type": "employee.created",
                "triggeredBy": "3332883804594373380",
                "triggeredAt": "2024-12-26T11:29:14.399997",
                "version": "v2",
                "data": {
                  "employeeId": "3332883894235038486"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook received successfully"
          },
          "400": {
            "description": "Invalid webhook payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "employeeUpdated": {
      "post": {
        "operationId": "post_webhook_employee-updated",
        "tags": [
          "Employee data Webhooks"
        ],
        "summary": "Employee updated",
        "description": "Triggered when an employee's field is updated.\n\nThe payload includes only the fields that were explicitly changed. Calculated\nfields affected by an update (e.g., age when birthDate changes) are not included.\n\nThis event is also sent when a <a href=\"https://apidocs.hibob.com/reference/post_webhook_table-entry-created\" target=\"_blank\">table entry</a> create or update causes employee-level fields to change; the payload then contains the affected field IDs in <code>fieldUpdates</code>. Bank accounts and custom tables do not trigger this event when their entries change.\n\nIn the right panel, open **Examples** and select **Payload Example** to see a real payload.\n",
        "parameters": [
          {
            "name": "bob-signature",
            "in": "header",
            "required": true,
            "description": "Base64-encoded signature sent with each webhook request. Use it to verify that the request came from Bob. To verify webhook authenticity, see <a href=\"https://apidocs.hibob.com/reference/getting-started-webhooks#how-does-bob-calculate-the-signature\" target=\"_blank\">How does Bob calculate the signature</a>.",
            "schema": {
              "type": "string",
              "example": "EQScIBkAtTKFW0ictgt5zzOsqIc2+xGEsM88jOdLuW4CM/a3gLEfrKV+IC5IHx0xbirzLKPIfaZjCGwzuiyI8w=="
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeUpdatedEvent"
              },
              "examples": {
                "profileField": {
                  "summary": "Profile field change",
                  "value": {
                    "companyId": 637323,
                    "type": "employee.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2024-12-26T11:29:14.399997",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883894235038486",
                      "fieldUpdates": [
                        {
                          "id": "personal.birthDate"
                        }
                      ]
                    }
                  }
                },
                "afterLifecycleTable": {
                  "summary": "After lifecycle table change",
                  "value": {
                    "companyId": 636192,
                    "type": "employee.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:06:26.893941",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883854254932743",
                      "fieldUpdates": [
                        {
                          "id": "employee.recentLeaveStartDate"
                        },
                        {
                          "id": "internal.status"
                        },
                        {
                          "id": "employee.recentLeaveEndDate"
                        },
                        {
                          "id": "internal.lifecycleStatus"
                        }
                      ]
                    }
                  }
                },
                "afterWorkTable": {
                  "summary": "After work table change",
                  "value": {
                    "companyId": 636192,
                    "type": "employee.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:28:55.545382",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883904477528858",
                      "fieldUpdates": [
                        {
                          "id": "work.department"
                        },
                        {
                          "id": "work.title"
                        },
                        {
                          "id": "work.activeEffectiveDate"
                        }
                      ]
                    }
                  }
                },
                "afterEmploymentTable": {
                  "summary": "After employment table change",
                  "value": {
                    "companyId": 636192,
                    "type": "employee.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:51:59.905057",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883904477528858",
                      "fieldUpdates": [
                        {
                          "id": "payroll.employment.type"
                        }
                      ]
                    }
                  }
                },
                "afterSalaryTable": {
                  "summary": "After salary table change",
                  "value": {
                    "companyId": 636192,
                    "type": "employee.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:17:21.974884",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "fieldUpdates": [
                        {
                          "id": "payroll.salary.activeEffectiveDate"
                        },
                        {
                          "id": "payroll.salary.payPeriod"
                        },
                        {
                          "id": "payroll.salary.monthlyPayment"
                        },
                        {
                          "id": "payroll.salary.yearlyPayment"
                        },
                        {
                          "id": "payroll.salary.payment"
                        },
                        {
                          "id": "payroll.salary.payFrequency"
                        }
                      ]
                    }
                  }
                },
                "afterAddressTable": {
                  "summary": "After address table change",
                  "value": {
                    "companyId": 636192,
                    "type": "employee.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:19:35.027449",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "fieldUpdates": [
                        {
                          "id": "address.postCode"
                        },
                        {
                          "id": "address.country"
                        }
                      ]
                    }
                  }
                },
                "afterVariablePayTable": {
                  "summary": "After variable pay table change",
                  "value": {
                    "companyId": 636192,
                    "type": "employee.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:16:38.725127",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "fieldUpdates": [
                        {
                          "id": "payroll.variable.Executive bonus.amount"
                        },
                        {
                          "id": "payroll.variable.Bonus.paymentPeriod"
                        },
                        {
                          "id": "payroll.variable.Bonus.amount"
                        },
                        {
                          "id": "payroll.variable.Bonus.payoutType"
                        },
                        {
                          "id": "payroll.variable.Executive bonus.payoutType"
                        },
                        {
                          "id": "payroll.variable.Executive bonus.paymentPeriod"
                        }
                      ]
                    }
                  }
                },
                "afterEntitlementTable": {
                  "summary": "After entitlement table change",
                  "value": {
                    "companyId": 636192,
                    "type": "employee.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:15:08.446777",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "fieldUpdates": [
                        {
                          "id": "payroll.entitlement.Season ticket loans.amount"
                        },
                        {
                          "id": "payroll.entitlement.Childcare vouchers.amount"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook received successfully"
          },
          "400": {
            "description": "Invalid webhook payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "employeeDeleted": {
      "post": {
        "operationId": "post_webhook_employee-deleted",
        "tags": [
          "Employee data Webhooks"
        ],
        "summary": "Employee deleted",
        "description": "Triggered when an employee is deleted.\n\nThe payload includes the employee email so you can retain a reference to the\ndeleted employee after their record is no longer accessible.\n\nIn the right panel, open **Examples** and select **Payload Example** to see a real payload.\n",
        "parameters": [
          {
            "name": "bob-signature",
            "in": "header",
            "required": true,
            "description": "Base64-encoded signature sent with each webhook request. Use it to verify that the request came from Bob. To verify webhook authenticity, see <a href=\"https://apidocs.hibob.com/reference/getting-started-webhooks#how-does-bob-calculate-the-signature\" target=\"_blank\">How does Bob calculate the signature</a>.",
            "schema": {
              "type": "string",
              "example": "EQScIBkAtTKFW0ictgt5zzOsqIc2+xGEsM88jOdLuW4CM/a3gLEfrKV+IC5IHx0xbirzLKPIfaZjCGwzuiyI8w=="
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeDeletedEvent"
              },
              "example": {
                "companyId": 639814,
                "type": "employee.deleted",
                "triggeredBy": "3647561042940134248",
                "triggeredAt": "2025-08-11T08:02:39.118536",
                "version": "v2",
                "data": {
                  "employeeId": "3647561274138559361",
                  "email": "zoe.clark_639814@samplebob.com"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook received successfully"
          },
          "400": {
            "description": "Invalid webhook payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "employeeJoined": {
      "post": {
        "operationId": "post_webhook_employee-joined",
        "tags": [
          "Employee data Webhooks"
        ],
        "summary": "Employee joined",
        "description": "Triggered when an employee is granted access, once the corresponding\nlifecycle entry becomes effective.\n\nLifecycle events are triggered automatically at midnight on the effective\ndate of the lifecycle table entry (according to the site's timezone).\n\nIn the right panel, open **Examples** and select **Payload Example** to see a real payload.\n",
        "parameters": [
          {
            "name": "bob-signature",
            "in": "header",
            "required": true,
            "description": "Base64-encoded signature sent with each webhook request. Use it to verify that the request came from Bob. To verify webhook authenticity, see <a href=\"https://apidocs.hibob.com/reference/getting-started-webhooks#how-does-bob-calculate-the-signature\" target=\"_blank\">How does Bob calculate the signature</a>.",
            "schema": {
              "type": "string",
              "example": "EQScIBkAtTKFW0ictgt5zzOsqIc2+xGEsM88jOdLuW4CM/a3gLEfrKV+IC5IHx0xbirzLKPIfaZjCGwzuiyI8w=="
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeJoinedEvent"
              },
              "example": {
                "companyId": 637323,
                "type": "employee.joined",
                "triggeredBy": "3332883804594373380",
                "triggeredAt": "2024-12-26T11:29:14.399997",
                "version": "v2",
                "data": {
                  "employeeId": "3332883894235038486"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook received successfully"
          },
          "400": {
            "description": "Invalid webhook payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "employeeLeft": {
      "post": {
        "operationId": "post_webhook_employee-left",
        "tags": [
          "Employee data Webhooks"
        ],
        "summary": "Employee terminated",
        "description": "Triggered when an employee is set as terminated or on Garden leave\n(whichever occurs first), once the corresponding lifecycle entry becomes effective.\n\nLifecycle events are triggered automatically at midnight on the effective\ndate of the lifecycle table entry (according to the site's timezone).\n\nIn the right panel, open **Examples** and select **Payload Example** to see a real payload.\n",
        "parameters": [
          {
            "name": "bob-signature",
            "in": "header",
            "required": true,
            "description": "Base64-encoded signature sent with each webhook request. Use it to verify that the request came from Bob. To verify webhook authenticity, see <a href=\"https://apidocs.hibob.com/reference/getting-started-webhooks#how-does-bob-calculate-the-signature\" target=\"_blank\">How does Bob calculate the signature</a>.",
            "schema": {
              "type": "string",
              "example": "EQScIBkAtTKFW0ictgt5zzOsqIc2+xGEsM88jOdLuW4CM/a3gLEfrKV+IC5IHx0xbirzLKPIfaZjCGwzuiyI8w=="
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeLeftEvent"
              },
              "example": {
                "companyId": 637323,
                "type": "employee.left",
                "triggeredBy": "3332883804594373380",
                "triggeredAt": "2024-12-26T11:29:14.399997",
                "version": "v2",
                "data": {
                  "employeeId": "3332883894235038486"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook received successfully"
          },
          "400": {
            "description": "Invalid webhook payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "employeeActivated": {
      "post": {
        "operationId": "post_webhook_employee-activated",
        "tags": [
          "Employee data Webhooks"
        ],
        "summary": "Employee activated",
        "description": "Triggered when an employee's access is enabled, once the corresponding\nlifecycle entry becomes effective.\n\nIn the right panel, open **Examples** and select **Payload Example** to see a real payload.\n",
        "parameters": [
          {
            "name": "bob-signature",
            "in": "header",
            "required": true,
            "description": "Base64-encoded signature sent with each webhook request. Use it to verify that the request came from Bob. To verify webhook authenticity, see <a href=\"https://apidocs.hibob.com/reference/getting-started-webhooks#how-does-bob-calculate-the-signature\" target=\"_blank\">How does Bob calculate the signature</a>.",
            "schema": {
              "type": "string",
              "example": "EQScIBkAtTKFW0ictgt5zzOsqIc2+xGEsM88jOdLuW4CM/a3gLEfrKV+IC5IHx0xbirzLKPIfaZjCGwzuiyI8w=="
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeActivatedEvent"
              },
              "example": {
                "companyId": 636192,
                "type": "employee.activated",
                "triggeredBy": "3332883804594373380",
                "triggeredAt": "2025-01-08T13:06:26.935613",
                "version": "v2",
                "data": {
                  "employeeId": "3332883854254932743"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook received successfully"
          },
          "400": {
            "description": "Invalid webhook payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "employeeInactivated": {
      "post": {
        "operationId": "post_webhook_employee-inactivated",
        "tags": [
          "Employee data Webhooks"
        ],
        "summary": "Employee inactivated",
        "description": "Triggered when an employee is set to be on leave or terminated, once the\ncorresponding lifecycle entry becomes effective.\n\nThis event is not triggered if **Remain active** is selected when putting\nthe employee on leave.\n\nIn the right panel, open **Examples** and select **Payload Example** to see a real payload.\n",
        "parameters": [
          {
            "name": "bob-signature",
            "in": "header",
            "required": true,
            "description": "Base64-encoded signature sent with each webhook request. Use it to verify that the request came from Bob. To verify webhook authenticity, see <a href=\"https://apidocs.hibob.com/reference/getting-started-webhooks#how-does-bob-calculate-the-signature\" target=\"_blank\">How does Bob calculate the signature</a>.",
            "schema": {
              "type": "string",
              "example": "EQScIBkAtTKFW0ictgt5zzOsqIc2+xGEsM88jOdLuW4CM/a3gLEfrKV+IC5IHx0xbirzLKPIfaZjCGwzuiyI8w=="
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeInactivatedEvent"
              },
              "example": {
                "companyId": 636192,
                "type": "employee.inactivated",
                "triggeredBy": "3332883804594373380",
                "triggeredAt": "2025-01-08T13:06:26.915964",
                "version": "v2",
                "data": {
                  "employeeId": "3332883854254932743"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook received successfully"
          },
          "400": {
            "description": "Invalid webhook payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "employeeTemporaryLeave": {
      "post": {
        "operationId": "post_webhook_employee-temporary-leave",
        "tags": [
          "Employee data Webhooks"
        ],
        "summary": "Employee on temporary leave",
        "description": "Triggered when an employee is set to be on temporary leave, once the\ncorresponding lifecycle entry becomes effective.\n\nThis event is not triggered if **Remain active** is selected when putting\nthe employee on leave.\n\nIn the right panel, open **Examples** and select **Payload Example** to see a real payload.\n",
        "parameters": [
          {
            "name": "bob-signature",
            "in": "header",
            "required": true,
            "description": "Base64-encoded signature sent with each webhook request. Use it to verify that the request came from Bob. To verify webhook authenticity, see <a href=\"https://apidocs.hibob.com/reference/getting-started-webhooks#how-does-bob-calculate-the-signature\" target=\"_blank\">How does Bob calculate the signature</a>.",
            "schema": {
              "type": "string",
              "example": "EQScIBkAtTKFW0ictgt5zzOsqIc2+xGEsM88jOdLuW4CM/a3gLEfrKV+IC5IHx0xbirzLKPIfaZjCGwzuiyI8w=="
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmployeeTemporaryLeaveEvent"
              },
              "example": {
                "companyId": 636192,
                "type": "employee.temporaryLeave",
                "triggeredBy": "3332883804594373380",
                "triggeredAt": "2025-01-08T13:06:26.935613",
                "version": "v2",
                "data": {
                  "employeeId": "3332883854254932743"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook received successfully"
          },
          "400": {
            "description": "Invalid webhook payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "tableEntryCreated": {
      "post": {
        "operationId": "post_webhook_table-entry-created",
        "tags": [
          "Employee data Webhooks"
        ],
        "summary": "Table entry created",
        "description": "Triggered when an entry is added to an employee's table (including\nout-of-the-box and custom tables).\n\nDoes not apply to Training, Equity, Positions, or Jobs tables.\n\nTo identify the row/entry when fetching using the API, use the property that appears in the payload for that table type:\n\n- **id** — Included only for non-historical tables (e.g. custom tables, bank accounts). Identifies the entry row. Omitted for historical tables.\n- **effectiveDate** — Included only for historical tables. Identifies the entry row for that table type. Omitted for non-historical tables.\n\nEach event includes exactly one of `effectiveDate` or `id` inside `data`, depending on whether the table is historical.\n\nTo learn more about table types, see <a href=\"https://apidocs.hibob.com/docs/explore-employee-data#employee-data-modeling\" target=\"_blank\">Employee data modeling</a>.\n\nWhen a table entry is created or updated, it may also update employee-level fields (e.g. derived or linked). In that case you will also receive an <a href=\"https://apidocs.hibob.com/reference/post_webhook_employee-updated\" target=\"_blank\">employee.updated</a> event with the list of changed field IDs in <code>fieldUpdates</code>. Bank accounts and custom tables do not trigger this additional employee.updated event.\n\nIn the right panel, open **Examples** and select **Payload Example** to see a real payload.\n",
        "parameters": [
          {
            "name": "bob-signature",
            "in": "header",
            "required": true,
            "description": "Base64-encoded signature sent with each webhook request. Use it to verify that the request came from Bob. To verify webhook authenticity, see <a href=\"https://apidocs.hibob.com/reference/getting-started-webhooks#how-does-bob-calculate-the-signature\" target=\"_blank\">How does Bob calculate the signature</a>.",
            "schema": {
              "type": "string",
              "example": "EQScIBkAtTKFW0ictgt5zzOsqIc2+xGEsM88jOdLuW4CM/a3gLEfrKV+IC5IHx0xbirzLKPIfaZjCGwzuiyI8w=="
            }
          },
          {
            "name": "get-table",
            "in": "header",
            "required": false,
            "description": "**Present only for custom tables.** The URL to call to read this table entry. For out-of-the-box tables the path is well known, but for custom tables this header provides the full URL with the table ID (e.g. `category_1716214820047__table_1716214839517`) already in the right place. Example: `https://api.hibob.com/v1/people/custom-tables/{employeeId}/{custom_table_id}`.",
            "schema": {
              "type": "string",
              "example": "https://api.hibob.com/v1/people/custom-tables/3332883884017713938/category_1716214820047__table_1716214839517"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TableEntryCreatedEvent"
              },
              "examples": {
                "lifecycle": {
                  "summary": "Lifecycle",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.created",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:06:26.915906",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883854254932743",
                      "tableId": "lifecycle",
                      "effectiveDate": "2025-01-08"
                    }
                  }
                },
                "work": {
                  "summary": "Work",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.created",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:28:55.561963",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883904477528858",
                      "tableId": "work",
                      "effectiveDate": "2024-09-02"
                    }
                  }
                },
                "employment": {
                  "summary": "Employment",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.created",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:30:41.592528",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883904477528858",
                      "tableId": "employment",
                      "effectiveDate": "2025-01-08"
                    }
                  }
                },
                "bankAccounts": {
                  "summary": "Bank accounts",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.created",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:54:03.608759",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883904477528858",
                      "tableId": "bankAccounts",
                      "id": 6236350
                    }
                  }
                },
                "salary": {
                  "summary": "Payroll (salary)",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.created",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:55:00.000000",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883904477528858",
                      "tableId": "salary",
                      "effectiveDate": "2025-01-08"
                    }
                  }
                },
                "customTable": {
                  "summary": "Custom table",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.created",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:21:30.000000",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "tableId": "category_1716214820047__table_1716214839517",
                      "id": 11542446
                    }
                  }
                },
                "address": {
                  "summary": "Address",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.created",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:19:34.000000",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "tableId": "address",
                      "effectiveDate": "2026-03-02"
                    }
                  }
                },
                "variablePay": {
                  "summary": "Variable Pay",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.created",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:16:37.000000",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "tableId": "variable",
                      "effectiveDate": "2026-03-02"
                    }
                  }
                },
                "entitlement": {
                  "summary": "Entitlement",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.created",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:15:07.000000",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "tableId": "entitlement",
                      "effectiveDate": "2026-03-03"
                    }
                  }
                },
                "deduction": {
                  "summary": "Deduction",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.created",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:13:18.445371",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "tableId": "deduction",
                      "effectiveDate": "2026-03-02"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook received successfully"
          },
          "400": {
            "description": "Invalid webhook payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "tableEntryUpdated": {
      "post": {
        "operationId": "post_webhook_table-entry-updated",
        "tags": [
          "Employee data Webhooks"
        ],
        "summary": "Table entry updated",
        "description": "Triggered when an entry is updated in an employee's table (including\nout-of-the-box and custom tables).\n\nDoes not apply to Training, Equity, Positions, or Jobs tables.\n\nTo identify the row/entry when fetching using the API, use the property that appears in the payload for that table type:\n\n- **id** — Included only for non-historical tables (e.g. custom tables, bank accounts). Identifies the entry row. Omitted for historical tables.\n- **effectiveDate** — Included only for historical tables. Identifies the entry row for that table type. Omitted for non-historical tables.\n\nEach event includes exactly one of `effectiveDate` or `id` inside `data`, depending on whether the table is historical.\n\nTo learn more about table types, see <a href=\"https://apidocs.hibob.com/docs/explore-employee-data#employee-data-modeling\" target=\"_blank\">Employee data modeling</a>.\n\nWhen a table entry is created or updated, it may also update employee-level fields (e.g. derived or linked). In that case you will also receive an <a href=\"https://apidocs.hibob.com/reference/post_webhook_employee-updated\" target=\"_blank\">employee.updated</a> event with the list of changed field IDs in <code>fieldUpdates</code>. Bank accounts and custom tables do not trigger this additional employee.updated event.\n\nIn the right panel, open **Examples** and select **Payload Example** to see a real payload.\n",
        "parameters": [
          {
            "name": "bob-signature",
            "in": "header",
            "required": true,
            "description": "Base64-encoded signature sent with each webhook request. Use it to verify that the request came from Bob. To verify webhook authenticity, see <a href=\"https://apidocs.hibob.com/reference/getting-started-webhooks#how-does-bob-calculate-the-signature\" target=\"_blank\">How does Bob calculate the signature</a>.",
            "schema": {
              "type": "string",
              "example": "EQScIBkAtTKFW0ictgt5zzOsqIc2+xGEsM88jOdLuW4CM/a3gLEfrKV+IC5IHx0xbirzLKPIfaZjCGwzuiyI8w=="
            }
          },
          {
            "name": "get-table",
            "in": "header",
            "required": false,
            "description": "**Present only for custom tables.** The URL to call to read this table entry. For out-of-the-box tables the path is well known, but for custom tables this header provides the full URL with the table ID (e.g. `category_1716214820047__table_1716214839517`) already in the right place. Example: `https://api.hibob.com/v1/people/custom-tables/{employeeId}/{custom_table_id}`.",
            "schema": {
              "type": "string",
              "example": "https://api.hibob.com/v1/people/custom-tables/3332883884017713938/category_1716214820047__table_1716214839517"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TableEntryUpdatedEvent"
              },
              "examples": {
                "lifecycle": {
                  "summary": "Lifecycle",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:06:27.000000",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883854254932743",
                      "tableId": "lifecycle",
                      "effectiveDate": "2025-01-08"
                    }
                  }
                },
                "work": {
                  "summary": "Work",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:28:05.816304",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883904477528858",
                      "tableId": "work",
                      "effectiveDate": "2024-03-27"
                    }
                  }
                },
                "employment": {
                  "summary": "Employment",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:51:00.000000",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883904477528858",
                      "tableId": "employment",
                      "effectiveDate": "2025-01-08"
                    }
                  }
                },
                "salary": {
                  "summary": "Payroll (salary)",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:55:45.055159",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883904477528858",
                      "tableId": "salary",
                      "effectiveDate": "2015-03-03"
                    }
                  }
                },
                "bankAccounts": {
                  "summary": "Bank accounts",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2025-01-08T13:54:10.000000",
                    "version": "v2",
                    "data": {
                      "employeeId": "3332883904477528858",
                      "tableId": "bankAccounts",
                      "id": 6236350
                    }
                  }
                },
                "customTable": {
                  "summary": "Custom table",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:21:31.349254",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "tableId": "category_1716214820047__table_1716214839517",
                      "id": 11542446
                    }
                  }
                },
                "address": {
                  "summary": "Address",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:19:35.027449",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "tableId": "address",
                      "effectiveDate": "2026-03-02"
                    }
                  }
                },
                "variablePay": {
                  "summary": "Variable Pay",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:16:38.749797",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "tableId": "variable",
                      "effectiveDate": "2026-03-02"
                    }
                  }
                },
                "entitlement": {
                  "summary": "Entitlement",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:15:08.471303",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "tableId": "entitlement",
                      "effectiveDate": "2026-03-03"
                    }
                  }
                },
                "deduction": {
                  "summary": "Deduction",
                  "value": {
                    "companyId": 636192,
                    "type": "table.entry.updated",
                    "triggeredBy": "3332883804594373380",
                    "triggeredAt": "2026-03-02T12:13:20.000000",
                    "version": "v2",
                    "data": {
                      "employeeId": "3460447757808959739",
                      "tableId": "deduction",
                      "effectiveDate": "2026-03-02"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook received successfully"
          },
          "400": {
            "description": "Invalid webhook payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    }
  },
  "paths": {
    "/people/{id}/variable": {
      "post": {
        "operationId": "post_people-id-variable",
        "tags": [
          "Employee Tables"
        ],
        "summary": "Creates a new variable payment for a given employee.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Employee ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Variable payment to add.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVariableEntry"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Entry added successfully",
            "content": {}
          }
        },
        "security": [
          {
            "Basic": []
          },
          {
            "Bearer": []
          }
        ],
        "x-codegen-request-body-name": "entry"
      }
    }
  },
  "components": {
    "schemas": {
      "WebhookEvent": {
        "type": "object",
        "description": "Base webhook event structure containing common webhook properties",
        "properties": {
          "companyId": {
            "type": "number",
            "description": "The company ID"
          },
          "type": {
            "type": "string",
            "description": "The event type (e.g., employee.created)"
          },
          "triggeredBy": {
            "type": "string",
            "description": "The backend-id of the employee that triggered the event, or 'system' for system-triggered events"
          },
          "triggeredAt": {
            "type": "string",
            "description": "The timestamp when the event occurred (ISO 8601-style string)"
          },
          "version": {
            "type": "string",
            "description": "The webhook version (e.g., v2)"
          },
          "data": {
            "type": "object",
            "description": "Event-specific payload; structure varies by event type"
          }
        },
        "required": [
          "companyId",
          "type",
          "triggeredBy",
          "triggeredAt",
          "version",
          "data"
        ]
      },
      "EmployeeCreatedEventData": {
        "type": "object",
        "description": "Data payload for employee.created event",
        "properties": {
          "employeeId": {
            "type": "string",
            "description": "The unique identifier of the employee"
          }
        },
        "required": [
          "employeeId"
        ]
      },
      "EmployeeUpdatedEventData": {
        "type": "object",
        "description": "Data payload for employee.updated event",
        "properties": {
          "employeeId": {
            "type": "string",
            "description": "The unique identifier of the employee"
          },
          "fieldUpdates": {
            "type": "array",
            "description": "The field IDs that were explicitly changed (calculated fields are not included)",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The field ID (e.g., personal.birthDate)"
                }
              }
            }
          }
        },
        "required": [
          "employeeId"
        ]
      },
      "EmployeeDeletedEventData": {
        "type": "object",
        "description": "Data payload for employee.deleted event",
        "properties": {
          "employeeId": {
            "type": "string",
            "description": "The unique identifier of the deleted employee"
          },
          "email": {
            "type": "string",
            "description": "The employee email (included since the record is no longer available after deletion)"
          }
        },
        "required": [
          "employeeId"
        ]
      },
      "EmployeeLifecycleEventData": {
        "type": "object",
        "description": "Data payload for lifecycle events (joined, left, activated, inactivated, temporaryLeave)",
        "properties": {
          "employeeId": {
            "type": "string",
            "description": "The unique identifier of the employee"
          }
        },
        "required": [
          "employeeId"
        ]
      },
      "TableEntryEventData": {
        "type": "object",
        "description": "Data payload for table.entry.created and table.entry.updated events. Historical tables include `effectiveDate` only; non-historical tables include numeric `id` only. The other identifier is omitted from the JSON when not applicable.",
        "properties": {
          "employeeId": {
            "type": "string",
            "description": "The unique identifier of the employee"
          },
          "tableId": {
            "type": "string",
            "description": "The table identifier (e.g., lifecycle, work, employment, salary, bankAccounts)"
          },
          "effectiveDate": {
            "type": "string",
            "format": "date",
            "description": "Present for historical tables only. The effective date that identifies this row together with employeeId. Omitted for non-historical tables."
          },
          "id": {
            "type": "integer",
            "description": "Present for non-historical tables only. The numeric ID of this table row when reading via the API. Omitted for historical tables."
          }
        },
        "required": [
          "employeeId",
          "tableId"
        ],
        "oneOf": [
          {
            "required": [
              "effectiveDate"
            ]
          },
          {
            "required": [
              "id"
            ]
          }
        ]
      },
      "EmployeeCreatedEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "employee.created"
                ],
                "description": "Event type for employee created"
              },
              "data": {
                "$ref": "#/components/schemas/EmployeeCreatedEventData"
              }
            }
          }
        ]
      },
      "EmployeeUpdatedEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "employee.updated"
                ],
                "description": "Event type for employee field updated"
              },
              "data": {
                "$ref": "#/components/schemas/EmployeeUpdatedEventData"
              }
            }
          }
        ]
      },
      "EmployeeDeletedEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "employee.deleted"
                ],
                "description": "Event type for employee deleted"
              },
              "data": {
                "$ref": "#/components/schemas/EmployeeDeletedEventData"
              }
            }
          }
        ]
      },
      "EmployeeJoinedEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "employee.joined"
                ],
                "description": "Event type for employee joined (access granted)"
              },
              "data": {
                "$ref": "#/components/schemas/EmployeeLifecycleEventData"
              }
            }
          }
        ]
      },
      "EmployeeLeftEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "employee.left"
                ],
                "description": "Event type for employee terminated or on Garden leave"
              },
              "data": {
                "$ref": "#/components/schemas/EmployeeLifecycleEventData"
              }
            }
          }
        ]
      },
      "EmployeeActivatedEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "employee.activated"
                ],
                "description": "Event type for employee access enabled"
              },
              "data": {
                "$ref": "#/components/schemas/EmployeeLifecycleEventData"
              }
            }
          }
        ]
      },
      "EmployeeInactivatedEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "employee.inactivated"
                ],
                "description": "Event type for employee inactivated (on leave or terminated)"
              },
              "data": {
                "$ref": "#/components/schemas/EmployeeLifecycleEventData"
              }
            }
          }
        ]
      },
      "EmployeeTemporaryLeaveEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "employee.temporaryLeave"
                ],
                "description": "Event type for employee on temporary leave"
              },
              "data": {
                "$ref": "#/components/schemas/EmployeeLifecycleEventData"
              }
            }
          }
        ]
      },
      "TableEntryCreatedEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "table.entry.created"
                ],
                "description": "Event type for table entry created"
              },
              "data": {
                "$ref": "#/components/schemas/TableEntryEventData"
              }
            }
          }
        ]
      },
      "TableEntryUpdatedEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "table.entry.updated"
                ],
                "description": "Event type for table entry updated"
              },
              "data": {
                "$ref": "#/components/schemas/TableEntryEventData"
              }
            }
          }
        ]
      },
      "CurrencyValue": {
        "required": [
          "currency",
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Three-letter currency code."
          }
        }
      },
      "CreateVariableEntry": {
        "type": "object",
        "properties": {
          "effectiveDate": {
            "type": "string",
            "description": "The date this entry becomes effective.",
            "format": "date"
          },
          "amount": {
            "$ref": "#/components/schemas/CurrencyValue"
          },
          "variableType": {
            "type": "string",
            "description": "The variable pay type - currently only \"amount\" is supported."
          },
          "paymentPeriod": {
            "type": "string",
            "description": "This represents the period for this variable entry. It can be one of: Annual, Half-Yearly, Quarterly, Monthly."
          },
          "companyPercent": {
            "type": "number",
            "description": "The employee's company on-target weight, in percentage."
          },
          "departmentPercent": {
            "type": "number",
            "description": "The employee's department on-target weight, in percentage."
          },
          "individualPercent": {
            "type": "number",
            "description": "The employee's individual on-target weight, in percentage."
          },
          "reason": {
            "type": "string",
            "description": "The reason for this change."
          }
        },
        "required": [
          "amount",
          "effectiveDate",
          "variableType",
          "paymentPeriod"
        ]
      },
      "Error": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The unique identifier of the error."
          },
          "error": {
            "type": "string",
            "description": "A human readable error message."
          }
        }
      }
    },
    "securitySchemes": {
      "Basic": {
        "type": "http",
        "scheme": "basic",
        "description": "Basic HTTP authentication using service user credentials"
      },
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "OAuth 2.0",
        "description": "OAuth 2.0 authentication using an Access Token is available for registered partners only.  Try It! does not support the full HiBob OAuth flow. You can follow <a href=\"https://apidocs.hibob.com/reference/oauth-20#testing-from-the-public-api-reference\" target=\"_blank\">these steps</a> to complete the OAuth 2.0 flow in Postman and then paste the token here."
      }
    }
  }
}
```