openapi: 3.1.0 info: title: Kombo AI Apply Custom Endpoints API version: 1.0.0 description: Endpoints for AI-powered job application features. servers: - url: https://api.kombo.dev/v1 description: Kombo EU API - url: https://api.us.kombo.dev/v1 description: Kombo US API security: - ApiKey: [] tags: - name: Custom Endpoints description: Custom integration-specific endpoints. paths: /ats/custom/avionte/synced-jobs: post: operationId: PostAtsCustomAvionteSyncedJobs summary: Add a job to be synced description: Adds a job to the synced jobs list. The next sync will pick it up and sync it including all applications and candidates. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: avionte:HWUTwvyx2wLoSUHphiWVrp28 required: true requestBody: description: POST /ats/custom/avionte/synced-jobs Request body content: application/json: schema: $ref: '#/components/schemas/PostAtsCustomAvionteSyncedJobsRequestBody' examples: example1: value: job_remote_id: '12345' responses: '200': description: POST /ats/custom/avionte/synced-jobs Positive response content: application/json: schema: $ref: '#/components/schemas/PostAtsCustomAvionteSyncedJobsPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /ats/custom/avionte/synced-jobs/{job_remote_id}: delete: operationId: DeleteAtsCustomAvionteSyncedJobsJobRemoteId summary: Remove a job from sync description: Removes a job from the synced jobs list. Does not delete already synced data. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: avionte:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: job_remote_id in: path required: true description: DELETE /ats/custom/avionte/synced-jobs/:job_remote_id Parameter schema: $ref: '#/components/schemas/DeleteAtsCustomAvionteSyncedJobsJobRemoteIdParameterJobRemoteId' examples: example1: value: '12345' requestBody: description: DELETE /ats/custom/avionte/synced-jobs/:job_remote_id Request body content: application/json: schema: $ref: '#/components/schemas/DeleteAtsCustomAvionteSyncedJobsJobRemoteIdRequestBody' examples: example1: value: {} responses: '200': description: DELETE /ats/custom/avionte/synced-jobs/:job_remote_id Positive response content: application/json: schema: $ref: '#/components/schemas/DeleteAtsCustomAvionteSyncedJobsJobRemoteIdPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/system-information: get: operationId: GetCustomDatevSystemInformation summary: Get DATEV system information description: This endpoint returns BeraterNr (consultant_number), MandantenNr (client_number) and the payroll system (LODAS or Lohn und Gehalt). Useful to generate a DATEV ASCII file for the passthrough endpoint. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true responses: '200': description: GET /custom/datev/system-information Positive response content: application/json: schema: $ref: '#/components/schemas/GetCustomDatevSystemInformationPositiveResponse' examples: example1: value: status: success data: consultant_number: 1234567 client_number: 99999 target_system: LODAS default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/passthrough: post: operationId: PostCustomDatevPassthrough summary: Write raw DATEV ASCII file description: This action allows to send an arbitrary ASCII file directly to DATEV LODAS or Lohn und Gehalt. Kombo adds validation for the file format but not on the content. This action allows you to implement any use case that you might have with DATEV payroll ASCII imports. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true requestBody: description: POST /custom/datev/passthrough Request body content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevPassthroughRequestBody' responses: '200': description: POST /custom/datev/passthrough Positive response content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevPassthroughPositiveResponse' examples: example1: value: status: success data: {} warnings: - message: This is an example warning! default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/check-eau-permission: get: operationId: GetCustomDatevCheckEauPermission summary: Verify service is enabled description: This endpoint validates that this DATEV integration is ready to use the eAU feature. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true responses: '200': description: GET /custom/datev/check-eau-permission Positive response content: application/json: schema: $ref: '#/components/schemas/GetCustomDatevCheckEauPermissionPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/eau-requests/{eau_id}: get: operationId: GetCustomDatevEauRequestsEauId summary: Query the status of the eAU request description: This endpoint queries the status of the eAU request for the given DATEV integration. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: eau_id in: path required: true description: GET /custom/datev/eau-requests/:eau_id Parameter schema: $ref: '#/components/schemas/GetCustomDatevEauRequestsEauIdParameterEauId' responses: '200': description: GET /custom/datev/eau-requests/:eau_id Positive response content: application/json: schema: $ref: '#/components/schemas/GetCustomDatevEauRequestsEauIdPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/check-document-permission: get: operationId: GetCustomDatevCheckDocumentPermission summary: Verify service is enabled description: This endpoint returns the available document types for this DATEV integration. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true responses: '200': description: GET /custom/datev/check-document-permission Positive response content: application/json: schema: $ref: '#/components/schemas/GetCustomDatevCheckDocumentPermissionPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/available-documents: get: operationId: GetCustomDatevAvailableDocuments summary: Retrieve available documents description: Use this endpoint to get all available documents for a specific period. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: period in: query required: true description: Provide the period in the format YYYY-MM-DD for which to check for available documents. schema: $ref: '#/components/schemas/GetCustomDatevAvailableDocumentsParameterPeriod' responses: '200': description: GET /custom/datev/available-documents Positive response content: application/json: schema: $ref: '#/components/schemas/GetCustomDatevAvailableDocumentsPositiveResponse' examples: example1: value: status: success data: results: - document_type: LOBN available_for_employees: - id: 8Xi6iZrwusZqJmDGXs49GBmJ remote_id: '123456' is_company_document: false - document_type: LOJO available_for_employees: [] is_company_document: true warnings: - message: This is an example warning! default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/download-document: post: operationId: PostCustomDatevDownloadDocument summary: Download Payroll Document description: "Download a document from DATEV\n\n\n This endpoint requires the permission **Manage documents** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"accounting_month\": \"2001-12-01\",\n \"document_type\": \"LOJE\",\n \"employee_id\": null\n}\n```" tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true requestBody: description: POST /custom/datev/download-document Request body content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevDownloadDocumentRequestBody' examples: example1: value: accounting_month: '2001-12-01' document_type: LOJE employee_id: null example2: value: accounting_month: '2001-12-01' document_type: LSTB employee_id: remote:200 responses: '200': description: POST /custom/datev/download-document Positive response content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevDownloadDocumentPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/employees/{employee_id}/download-document: post: operationId: PostCustomDatevEmployeesEmployeeIdDownloadDocument summary: Download Payroll Document description: "Download a document from DATEV\n\n\n This endpoint requires the permission **Manage documents** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"accounting_month\": \"2001-12-01\",\n \"document_type\": \"LOJE\"\n}\n```" tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: employee_id in: path required: true description: POST /custom/datev/employees/:employee_id/download-document Parameter schema: $ref: '#/components/schemas/PostCustomDatevEmployeesEmployeeIdDownloadDocumentParameterEmployeeId' examples: example1: value: null example2: value: remote:200 requestBody: description: POST /custom/datev/employees/:employee_id/download-document Request body content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevEmployeesEmployeeIdDownloadDocumentRequestBody' examples: example1: value: accounting_month: '2001-12-01' document_type: LOJE example2: value: accounting_month: '2001-12-01' document_type: LSTB responses: '200': description: POST /custom/datev/employees/:employee_id/download-document Positive response content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevEmployeesEmployeeIdDownloadDocumentPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/employees/{employee_id}/eau-requests: post: operationId: PostCustomDatevEmployeesEmployeeIdEauRequests summary: Create eAU Request description: "Create a request for an electronic certificate of incapacity for work (eAU).\n\n\n This endpoint requires the permission **Manage eAU** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"start_work_incapacity\": \"2022-01-01\"\n}\n```" tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: employee_id in: path required: true description: ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) schema: $ref: '#/components/schemas/PostCustomDatevEmployeesEmployeeIdEauRequestsParameterEmployeeId' examples: example1: value: remote:12312 requestBody: description: POST /custom/datev/employees/:employee_id/eau-requests Request body content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevEmployeesEmployeeIdEauRequestsRequestBody' examples: example1: value: start_work_incapacity: '2022-01-01' responses: '200': description: POST /custom/datev/employees/:employee_id/eau-requests Positive response content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevEmployeesEmployeeIdEauRequestsPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/employees/{employee_id}/prepare-payroll: put: operationId: PutCustomDatevEmployeesEmployeeIdPreparePayroll summary: Prepare DATEV Payroll description: "What DATEV requires to prepare payroll is very specific and currently, as DATEV is not providing \"read\", this is not part of the unified model.\n\n\n This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"employee_id\": \"EvLV61zdahkN4ftPJbmPCkdv\",\n \"payroll_run\": {\n \"date\": \"2022-05-01\"\n },\n \"fixed_payments\": [\n {\n \"amount\": 560,\n \"lohnart\": 100\n }\n ],\n \"hourly_payments\": [\n {\n \"hours\": 14,\n \"lohnart\": 200\n },\n {\n \"hours\": 16,\n \"lohnart\": 232\n }\n ],\n \"custom_lodas\": [\n {\n \"amount\": 8,\n \"lohnart\": 300,\n \"bearbeitungsschluessel\": 4\n }\n ]\n}\n```" tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: employee_id in: path required: true description: ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) schema: $ref: '#/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollParameterEmployeeId' examples: example1: value: EvLV61zdahkN4ftPJbmPCkdv requestBody: description: PUT /custom/datev/employees/:employee_id/prepare-payroll Request body content: application/json: schema: $ref: '#/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollRequestBody' examples: example1: value: payroll_run: date: '2022-05-01' fixed_payments: - amount: 560 lohnart: 100 hourly_payments: - hours: 14 lohnart: 200 - hours: 16 lohnart: 232 custom_lodas: - amount: 8 lohnart: 300 bearbeitungsschluessel: 4 responses: '200': description: PUT /custom/datev/employees/:employee_id/prepare-payroll Positive response content: application/json: schema: $ref: '#/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/employees/{employee_id}/compensations: put: operationId: PutCustomDatevEmployeesEmployeeIdCompensations summary: Set DATEV compensations description: "Sets the compensations for an employee on the specified effective date.\n\n Other compensations will end at the effective date. That means, if you would like to add a compensation, you also have to include the compensations that you would like to keep.\n\n\n This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"employee_id\": \"3bdhemmSP1TPQDGWtRveRot9\",\n \"effective_date\": \"2022-12-01\",\n \"compensations\": [\n {\n \"amount\": 4500,\n \"currency\": \"EUR\",\n \"period\": \"MONTH\",\n \"lohnart\": 200\n },\n {\n \"amount\": 30,\n \"currency\": \"EUR\",\n \"period\": \"HOUR\"\n }\n ]\n}\n```" tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: employee_id in: path required: true description: ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) schema: $ref: '#/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsParameterEmployeeId' examples: example1: value: 3bdhemmSP1TPQDGWtRveRot9 requestBody: description: PUT /custom/datev/employees/:employee_id/compensations Request body content: application/json: schema: $ref: '#/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsRequestBody' examples: example1: value: effective_date: '2022-12-01' compensations: - amount: 4500 currency: EUR period: MONTH lohnart: 200 - amount: 30 currency: EUR period: HOUR responses: '200': description: PUT /custom/datev/employees/:employee_id/compensations Positive response content: application/json: schema: $ref: '#/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/check-write-permission: get: operationId: GetCustomDatevCheckWritePermission summary: Verify service is enabled description: This endpoint returns whether you can write to this DATEV integration. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true responses: '200': description: GET /custom/datev/check-write-permission Positive response content: application/json: schema: $ref: '#/components/schemas/GetCustomDatevCheckWritePermissionPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/data-pushes: get: operationId: GetCustomDatevDataPushes summary: Get DATEV data pushes description: Returns all "DATEV Data Pushes" of the last 2 months. You can use this endpoint to give your users transparency about submitted "ASCII-Files" and their status. Each data push can contain multiple files that were submitted. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true responses: '200': description: GET /custom/datev/data-pushes Positive response content: application/json: schema: $ref: '#/components/schemas/GetCustomDatevDataPushesPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/push-data/general: post: operationId: PostCustomDatevPushDataGeneral summary: Push general data to DATEV description: Uploads the currently relevant general data (employees, compensations, and time offs) to DATEV. This will create so called ASCII files that the accountant has to import in DATEV. You can call this endpoint to implement an on-demand sync to DATEV, for example if you want to offer your users a button to do that in your application. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true requestBody: description: POST /custom/datev/push-data/general Request body content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevPushDataGeneralRequestBody' responses: '200': description: POST /custom/datev/push-data/general Positive response content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevPushDataGeneralPositiveResponse' examples: example1: value: status: success data: files: - name: EXTF_Stammdaten.csv content: EXTF;700;21;Stammdaten;... warnings: - message: This is an example warning! default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/datev/push-data/payroll: post: operationId: PostCustomDatevPushDataPayroll summary: Push payroll data to DATEV description: Uploads the currently relevant payroll data (supplements) to DATEV. This will create so called ASCII files that the accountant has to import in DATEV. After finishing the payroll preparation or after correcting payroll, you can call this. tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: datev:HWUTwvyx2wLoSUHphiWVrp28 required: true requestBody: description: POST /custom/datev/push-data/payroll Request body content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevPushDataPayrollRequestBody' responses: '200': description: POST /custom/datev/push-data/payroll Positive response content: application/json: schema: $ref: '#/components/schemas/PostCustomDatevPushDataPayrollPositiveResponse' examples: example1: value: status: success data: files: - name: EXTF_Bewegungsdaten.csv content: EXTF;700;21;Bewegungsdaten;... warnings: - message: This is an example warning! default: $ref: '#/components/responses/ErrorResponseGeneral' /custom/silae/employees/{employee_id}/payroll-supplements: post: operationId: PostCustomSilaeEmployeesEmployeeIdPayrollSupplements summary: Write Payroll Supplement description: "Write a payroll supplement to Silae using the supplement code.\n\n\n This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](/scopes).\n\n\n### Example Request Body\n\n```json\n{\n \"employee_id\": \"EvLV61zdahkN4ftPJbmPCkdv\",\n \"supplement_code\": \"200\",\n \"effective_date\": \"2024-01-14\",\n \"element_amount\": 6\n}\n```" tags: - Custom Endpoints parameters: - in: header name: X-Integration-Id schema: type: string description: ID of the integration you want to interact with. example: silae:HWUTwvyx2wLoSUHphiWVrp28 required: true - name: employee_id in: path required: true description: ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) schema: $ref: '#/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsParameterEmployeeId' examples: example1: value: EvLV61zdahkN4ftPJbmPCkdv requestBody: description: POST /custom/silae/employees/:employee_id/payroll-supplements Request body content: application/json: schema: $ref: '#/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsRequestBody' examples: example1: value: supplement_code: '200' effective_date: '2024-01-14' element_amount: 6 responses: '200': description: POST /custom/silae/employees/:employee_id/payroll-supplements Positive response content: application/json: schema: $ref: '#/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsPositiveResponse' default: $ref: '#/components/responses/ErrorResponseGeneral' components: schemas: PostCustomDatevPushDataPayrollPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: files: type: array items: type: object properties: name: type: string content: type: string required: - name - content required: - files examples: - files: - name: EXTF_Bewegungsdaten.csv content: EXTF;700;21;Bewegungsdaten;... warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetCustomDatevCheckEauPermissionPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: ready: type: boolean error: type: string required: - ready warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetCustomDatevCheckWritePermissionPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: ready: type: boolean error: type: string required: - ready warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings PostCustomDatevPassthroughRequestBody: type: object properties: file_content: type: string minLength: 1 accounting_month: description: YYYY-MM-DDTHH:mm:ss.sssZ type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString target_system: type: string enum: - LODAS - LuG file_type: type: string enum: - STAMMDATEN - BEWEGUNGSDATEN file_name: type: string examples: - Stammdaten.txt required: - file_content - accounting_month - target_system - file_type - file_name PutCustomDatevEmployeesEmployeeIdCompensationsPositiveResponse: type: object properties: status: type: string const: success data: type: object warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings PostCustomDatevPushDataGeneralPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: files: type: array items: type: object properties: name: type: string content: type: string required: - name - content required: - files examples: - files: - name: EXTF_Stammdaten.csv content: EXTF;700;21;Stammdaten;... warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings DeleteAtsCustomAvionteSyncedJobsJobRemoteIdParameterJobRemoteId: type: string PostCustomDatevPassthroughPositiveResponse: type: object properties: status: type: string const: success data: type: object examples: - {} warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings PutCustomDatevEmployeesEmployeeIdCompensationsRequestBody: type: object properties: effective_date: description: Date from which the submitted compensations should be valid. Please note that it might not be possible to set compensations for the past if the payroll was already run. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString compensations: type: array items: type: object properties: amount: type: number format: double minimum: -1.7976931348623157e+308 description: The amount that this employee will be paid. currency: type: string const: EUR description: The currency in which the employee gets paid. Currently, only euro is supported as integrated systems only work with Euro. period: type: string enum: - HOUR - MONTH description: The period for which the specified amount is paid. Currently, integrated systems only support "HOUR" and "MONTH". lohnart: type: integer format: int64 minimum: 1 maximum: 9999 description: The Lohnart that should be used for this compensation. If not specified, the default Lohnart that was requested in the connection flow will be used. Generally Lohnart is only available for monthly compensations. required: - amount - currency - period required: - effective_date - compensations PostCustomDatevEmployeesEmployeeIdDownloadDocumentParameterEmployeeId: type: - string - 'null' PostCustomDatevEmployeesEmployeeIdEauRequestsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: eau_id: type: string required: - eau_id warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings PostCustomDatevEmployeesEmployeeIdEauRequestsRequestBody: type: object properties: start_work_incapacity: type: string pattern: ^\d{4}-\d{2}-\d{2}$ description: Date "start_work_incapacity" from the original eAU-Request. notification: type: object properties: email: type: string pattern: ^[\w!#$%&'*+/=?^`{|}~-]+(?:\.[\w!#$%&'*+/=?^`{|}~-]+)*@(?:[\w-]+\.)+[\w-]{2,}$ description: This is the email address that should be notified as soon as a feedback is received. required: - email contact_person: type: object properties: gender: type: string enum: - M - W - X - D name: type: string minLength: 0 maxLength: 30 telephone: type: string minLength: 0 maxLength: 20 pattern: ([\d+])[\d ()/-]+ fax: type: string minLength: 0 maxLength: 20 pattern: ([\d+])[\d ()/-]+ email: type: string minLength: 0 maxLength: 70 pattern: ^(?=.{1,64}@)[\w-]+(\.[\w-]+)*@[^-][\dA-Za-z-]+(\.[\dA-Za-z-]+)*(\.[A-Za-z]{2,})$ company_name: type: string minLength: 0 maxLength: 90 postal_code: type: string minLength: 0 maxLength: 10 pattern: '[\dA-Za-z]*' city: type: string minLength: 0 maxLength: 34 street: type: string minLength: 0 maxLength: 33 house_number: type: string minLength: 0 maxLength: 9 required: - gender - name - telephone - fax - email - company_name - postal_code - city - street - house_number description: The data-section for the contact person which is responsible for feedback from the health insurance. required: - start_work_incapacity description: The data to request an electronic certificate of incapacity for work (eAU). examples: - start_work_incapacity: '2022-01-01' PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsPositiveResponse: type: object properties: status: type: string const: success data: type: object warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings PostAtsCustomAvionteSyncedJobsRequestBody: type: object properties: job_remote_id: type: string pattern: ^\d+$ required: - job_remote_id PostCustomDatevPushDataGeneralRequestBody: type: object GetCustomDatevDataPushesPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: data_pushes: type: array items: type: object properties: id: type: string type: type: string enum: - GENERAL - PAYROLL description: Type of the executed data push. created_at: description: Date when the push-data endpoint was called. type: string format: date-time externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString upload_jobs: type: array items: type: object properties: id: type: string file_name: type: string state: type: string enum: - FAILED - UPLOADED - IMPORTED - CORRUPTED - DELETED - AUTO_DELETED description: If we were not able to send the file to DATEV, we will set the state "FAILED". The other values are synced from DATEV for the respective import jobs. file: type: string description: Actual content of the file. required: - id - file_name - state - file description: List of all the submitted files. This can include multiple files if data was edited for multiple months. required: - id - type - created_at - upload_jobs required: - data_pushes required: - status - data PostCustomDatevPushDataPayrollRequestBody: type: object properties: payroll_month: description: Specify the month for which the payroll data should be submitted. The date must be specified as the first day of a month (e.g. 2022-12-01). type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString required: - payroll_month PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsParameterEmployeeId: type: string description: ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) PostCustomDatevEmployeesEmployeeIdDownloadDocumentRequestBody: type: object properties: accounting_month: description: The month to request the document for. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString document_type: type: string enum: - AANB - ABEG - BUBE - DAWE - KBNW - KOST - KOTR - LKTO - LOBN - LJOE - LOJE - LOJO - LOPE - LOPN - LOPS - LORE - LOWE - LSTA - LSTB - LSTE - PDAT - PFAN - PRZA - SBNW - SVNW - WEAN - ZABR - ZAKF - ZAUW description: 'Brutto/Netto (LOBN) Lohnsteuerbescheinigung (german/english) (LSTB/LSTE) SV-Nachweis (SVNW) A1-Bescheinigung (ABEG) Antragsbestätigung A1-Bescheinigung (AANB) Buchungsbeleg (BUBE) Lohnjournal (german/english) (LOJO/LJOE) Lohnsteueranmeldung (LSTA) Beitragsnachweis (KBNW) Beitragsnachweis-Erläuterung (SBNW) Übersicht Zahlungen (ZAKF) DÜ Zahlungen (PRZA) Barauszahlungswerte (ZABR) Überzahlungen-Werte (ZAUW) Personalkostenübersicht (german/english) (LOPS/LOPE) Kostenstellenwerte (KOST) Kostenträgerwerte (KOTR) Lohnartenwerte einfach/erweitert (LOWE/LOPN) Lohnkonto (LKTO) Personalreport (LORE) Mitarbeiterstammdaten (PDAT) Pfändungswerte (PFAN) Darlehenswerte (DAWE) Wertguthaben je Arbeitnehmer (WEAN)' required: - accounting_month - document_type description: The data to request an electronic certificate of incapacity for work (eAU). examples: - accounting_month: '2001-12-01' document_type: LOJE - accounting_month: '2001-12-01' document_type: LSTB PostCustomDatevDownloadDocumentPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: data_url: type: string format: uri description: The URL to download the document from. file_name: type: string content_type: type: string required: - data_url - file_name - content_type warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetCustomDatevAvailableDocumentsPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: results: type: array items: type: object properties: document_type: type: string description: The document's type. available_for_employees: type: array items: type: object properties: id: type: - string - 'null' remote_id: type: string required: - id - remote_id description: List of employees this document is available for. is_company_document: type: boolean description: Is true if the document is a company document. required: - document_type - available_for_employees - is_company_document required: - results examples: - results: - document_type: LOBN available_for_employees: - id: 8Xi6iZrwusZqJmDGXs49GBmJ remote_id: '123456' is_company_document: false - document_type: LOJO available_for_employees: [] is_company_document: true warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings DeleteAtsCustomAvionteSyncedJobsJobRemoteIdPositiveResponse: type: object properties: status: type: string const: success data: type: object required: - status - data PostCustomDatevEmployeesEmployeeIdEauRequestsParameterEmployeeId: type: string description: ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsRequestBody: type: object properties: supplement_code: type: string description: The ID code of the supplement that you want to add to Silae. effective_date: description: Date from which the submitted supplement should be active. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString element_amount: type: number format: double minimum: -1.7976931348623157e+308 description: The amount of the supplement if it requires a number. element_string: type: string description: The string of the supplement if it requires a string. required: - supplement_code - effective_date GetCustomDatevAvailableDocumentsParameterPeriod: type: string description: Provide the period in the format YYYY-MM-DD for which to check for available documents. GetCustomDatevEauRequestsEauIdPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: raw: type: object properties: source: type: string description: DATEV source system system (LuG or LODAS). start_work_incapacity: type: string description: '2022-01-13' collaboration_identifier: type: string description: Internal DATEV identifier. feedbacks_from_health_insurance: type: array items: type: object properties: guid: type: string description: The unique identifier of the feedback. contact_person: type: - object - 'null' properties: gender_contact_person: type: - string - 'null' enum: - M - F - X - D description: '[DEPRECATED] Gender of the contact person. M (male), W (female), X (unknown), D (divers).' name: type: string description: Name of the contact person. telephone: type: string description: Telephone number of the contact person. fax: type: - string - 'null' description: Fax number of the contact person. email: type: - string - 'null' description: Email address of the contact person. name1_health_insurance: type: string description: Name of the health insurance. name2_health_insurance: type: - string - 'null' description: '[DEPRECATED] Second part of the health insurance name.' name3_health_insurance: type: - string - 'null' description: '[DEPRECATED] Third part of the health insurance name.' postal_code: type: string description: Postal code of the contact person. city: type: string description: City of the contact person. street: type: - string - 'null' description: Street of the contact person. house_number: type: - string - 'null' description: House number of the contact person. required: - name - telephone - fax - email - name1_health_insurance - postal_code - city - street - house_number incapacity_for_work: type: object properties: start_work_incapacity_employer: type: string description: yyyy-MM-dd date provided in the initial request. start_work_incapacity_au: type: - string - 'null' description: yyyy-MM-dd start date of the AU. end_work_incapacity_au: type: - string - 'null' description: yyyy-MM-dd expected end date of the AU. actual_end_work_incapacity_au: type: - string - 'null' description: yyyy-MM-dd actual end date after the hospitalization report was received. date_of_diagnosis: type: - string - 'null' description: yyyy-MM-dd date of diagnosis flag_current_work_incapacity: type: - number - 'null' format: double minimum: -1.7976931348623157e+308 description: 'Flag: 0 = unknown Flag: 1 = Health insurance not responsible Flag: 2 = incapacity for work Flag: 3 = hospitalisation Flag: 4 = eAU or hospitalisation-report is not existing Flag: 5 = rehabilitation prevention Flag: 6 = inpatient hospital treatment Flag: 7 = in verification Flag: 8 = other evidence available Flag: 9 = forwarding procedure' accident_at_work: type: boolean description: If the accident is a work accident according to § 295 Para. 1 SGB V. assignment_accident_insurance_doctor: type: boolean description: Indication of whether the insured person has been assigned to the accident insurance doctor. other_accident: type: boolean description: If the accident is the result of another accident according to § 295 Para. 1 SGB V. start_hospitalisation: type: - string - 'null' description: '[DEPRECATED] yyyy-MM-dd start date of the hospitalization.' end_hospitalisation: type: - string - 'null' description: '[DEPRECATED] yyyy-MM-dd end date of the actual hospitalization.' initial_certificate: type: boolean description: Whether the certificate is initial or a follow up certificate. automatic_feedback_until: type: - string - 'null' description: yyyy-MM-dd date until the health insurance will update this requests status. required: - start_work_incapacity_employer - start_work_incapacity_au - end_work_incapacity_au - date_of_diagnosis - flag_current_work_incapacity - accident_at_work - assignment_accident_insurance_doctor - other_accident - initial_certificate - automatic_feedback_until error_block_list: type: - array - 'null' items: type: object properties: origin: type: - string - 'null' description: Origin of the error. (Health insurance or DATEV) error_number: type: - string - 'null' description: Error code error_text: type: - string - 'null' description: Human readable description of the error. error_value: type: - string - 'null' description: Erroneous value in case of a validation error. (e.g. date) required: - origin - error_number - error_text - error_value required: - guid - contact_person - incapacity_for_work - error_block_list required: - source - start_work_incapacity - feedbacks_from_health_insurance required: - raw warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings GetCustomDatevEauRequestsEauIdParameterEauId: type: string GetCustomDatevSystemInformationPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: consultant_number: type: number format: double minimum: 1000 maximum: 9999999 description: The consultant number used for this DATEV integration (BeraterNr). client_number: type: number format: double minimum: 1 maximum: 99999 description: The client number used for this DATEV integration (MandantenNr). target_system: type: string enum: - LODAS - LuG description: The target system's name (Ziel). required: - consultant_number - client_number - target_system examples: - consultant_number: 1234567 client_number: 99999 target_system: LODAS required: - status - data PutCustomDatevEmployeesEmployeeIdPreparePayrollParameterEmployeeId: type: string description: ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) PostCustomDatevEmployeesEmployeeIdDownloadDocumentPositiveResponse: type: object properties: status: type: string const: success data: type: object properties: data_url: type: string format: uri description: The URL to download the document from. file_name: type: string content_type: type: string required: - data_url - file_name - content_type warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings DeleteAtsCustomAvionteSyncedJobsJobRemoteIdRequestBody: type: object properties: {} PutCustomDatevEmployeesEmployeeIdPreparePayrollRequestBody: type: object properties: payroll_run: type: object properties: date: description: YYYY-MM-DDTHH:mm:ss.sssZ type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString required: - date hourly_payments: type: array items: type: object properties: hours: type: number format: double minimum: -1.7976931348623157e+308 description: Number of hours this employee has worked. lohnart: type: number format: double minimum: -1.7976931348623157e+308 description: The "Lohnart" (payment-type) in DATEV. Make sure a Lohnart is selected that actually supports hours. required: - hours - lohnart description: Add entries for all the hourly calculated supplements here. For example you can write "Overtime" or "Work on Holidays" (in hours here). Unfortunately, DATEV doens't allow showing a lable for the entries. fixed_payments: type: array items: type: object properties: amount: type: number format: double minimum: -1.7976931348623157e+308 lohnart: type: number format: double minimum: -1.7976931348623157e+308 description: The "Lohnart" (payment-type) in DATEV. Make sure a Lohnart is selected that actually supports fixed payments (no hourly modifier). required: - amount - lohnart description: Add entries for all the fixed supplements here. For example you can write "Bonuses" (in Euros here). Unfortunately, DATEV doens't allow showing a lable for the entries. custom_lodas: type: array items: type: object properties: amount: type: number format: double minimum: -1.7976931348623157e+308 description: This amount value will be mapped to Datev "Wert" field. lohnart: type: number format: double minimum: -1.7976931348623157e+308 description: Choose a valid Lodas Lohnart. bearbeitungsschluessel: type: number format: double minimum: -1.7976931348623157e+308 description: Choose a valid Lodas Bearbeitungsschlüssel. We list the valid Bearbeitungsschlüssel [here](https://storage.googleapis.com/kombo-assets/integrations/datev/lodas_bs.json). required: - amount - lohnart - bearbeitungsschluessel default: [] description: Add custom entries to the DATEV Lodas Standard Erfassungstabelle. required: - payroll_run - hourly_payments - fixed_payments PostCustomDatevDownloadDocumentRequestBody: type: object properties: accounting_month: description: The month to request the document for. type: string format: date-time pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$ externalDocs: url: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString document_type: type: string enum: - AANB - ABEG - BUBE - DAWE - KBNW - KOST - KOTR - LKTO - LOBN - LJOE - LOJE - LOJO - LOPE - LOPN - LOPS - LORE - LOWE - LSTA - LSTB - LSTE - PDAT - PFAN - PRZA - SBNW - SVNW - WEAN - ZABR - ZAKF - ZAUW description: 'Brutto/Netto (LOBN) Lohnsteuerbescheinigung (german/english) (LSTB/LSTE) SV-Nachweis (SVNW) A1-Bescheinigung (ABEG) Antragsbestätigung A1-Bescheinigung (AANB) Buchungsbeleg (BUBE) Lohnjournal (german/english) (LOJO/LJOE) Lohnsteueranmeldung (LSTA) Beitragsnachweis (KBNW) Beitragsnachweis-Erläuterung (SBNW) Übersicht Zahlungen (ZAKF) DÜ Zahlungen (PRZA) Barauszahlungswerte (ZABR) Überzahlungen-Werte (ZAUW) Personalkostenübersicht (german/english) (LOPS/LOPE) Kostenstellenwerte (KOST) Kostenträgerwerte (KOTR) Lohnartenwerte einfach/erweitert (LOWE/LOPN) Lohnkonto (LKTO) Personalreport (LORE) Mitarbeiterstammdaten (PDAT) Pfändungswerte (PFAN) Darlehenswerte (DAWE) Wertguthaben je Arbeitnehmer (WEAN)' employee_id: type: - string - 'null' required: - accounting_month - document_type - employee_id description: The data to request an electronic certificate of incapacity for work (eAU). examples: - accounting_month: '2001-12-01' document_type: LOJE employee_id: null - accounting_month: '2001-12-01' document_type: LSTB employee_id: remote:200 PostAtsCustomAvionteSyncedJobsPositiveResponse: type: object properties: status: type: string const: success data: type: object required: - status - data PutCustomDatevEmployeesEmployeeIdPreparePayrollPositiveResponse: type: object properties: status: type: string const: success data: type: object warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings PutCustomDatevEmployeesEmployeeIdCompensationsParameterEmployeeId: type: string description: ID of the employee that should be updated. You can use their Kombo `id` or their ID in the remote system by prefixing it with `remote:` (e.g., `remote:12312`) GetCustomDatevCheckDocumentPermissionPositiveResponse: type: object properties: status: type: string const: success data: anyOf: - type: object properties: ready: type: boolean documents_granted: type: array items: type: string required: - ready - documents_granted - type: object properties: ready: type: boolean error: type: string required: - ready - error warnings: type: array items: type: object properties: message: type: string required: - message description: These are the interaction warnings that are shown in the dashboard. They are meant to provide debug information to you. We recommend logging them to the console. required: - status - data - warnings responses: ErrorResponseGeneral: description: The standard error response with just the platform error codes. content: application/json: schema: type: object properties: status: type: string enum: - error error: type: object properties: code: type: - string - 'null' enum: - PLATFORM.RATE_LIMIT_EXCEEDED - PLATFORM.CONCURRENCY_LIMIT_EXCEEDED - PLATFORM.INTEGRATION_NOT_FOUND - PLATFORM.INPUT_INVALID - PLATFORM.UNKNOWN_ERROR - PLATFORM.IP_NOT_WHITELISTED - PLATFORM.AUTHENTICATION_INVALID - PLATFORM.TASK_TIMED_OUT example: PLATFORM.RATE_LIMIT_EXCEEDED description: Some errors include an error code that can be used to identify their cause. See the [Error Handling Docs](https://docs.kombo.dev/guides/errors) for more information. For your error handling logic please use the error `code` instead of other properties (e.g. message, http status code, ...). title: type: - string - 'null' description: A static, human-readable label. message: type: string description: A dynamic, detailed description of what went wrong in this specific instance. log_url: type: - string - 'null' format: uri description: The log page in the Kombo UI lists every interaction with full details. If you need assistance, share that link with our support team. required: - code - title - message - log_url description: Error details with structured code for programmatic handling. required: - status - error examples: Error Response: description: When building error handling logic, always use the `code` field to identify specific error types programmatically. See the complete list of error codes in the [docs](https://docs.kombo.dev/guides/errors). value: status: error error: code: INTEGRATION.MODEL_NOT_AVAILABLE title: This data model isn't supported for the selected integration. message: The "employees" model is not yet available for Greenhouse. Please reach out to Kombo if you need this functionality. log_url: https://app.kombo.dev/my-prod/logs?interactionId=123456 Minimal Error Response: description: The "message" is always required while other fields can also be `null`. See the [docs](https://docs.kombo.dev/guides/errors) for more information. value: status: error error: code: null title: null message: The message is always in the response. log_url: null securitySchemes: ApiKey: type: http scheme: bearer description: Create an API key on the [Secrets](https://app.kombo.dev/secrets) page in the Kombo dashboard.