diff --git a/sdks/db/cached-method-objects/from-custom-request_inmobile.com.yaml b/sdks/db/cached-method-objects/from-custom-request_inmobile.com.yaml index 83152d3720..e819d07886 100644 --- a/sdks/db/cached-method-objects/from-custom-request_inmobile.com.yaml +++ b/sdks/db/cached-method-objects/from-custom-request_inmobile.com.yaml @@ -1,4 +1,4 @@ -hash: 15c70ef6e4b8e6661dd7a866838e21afd458cd188f6d65b3b338c31408ca0386 +hash: 9b360a3934b04781cc5631a2176faee496692d31740524f4c78e5c43c6bd6a5f methodObjects: - url: /v4/blacklist method: getAll diff --git a/sdks/db/cached-method-objects/from-custom-request_kombo.dev.yaml b/sdks/db/cached-method-objects/from-custom-request_kombo.dev.yaml new file mode 100644 index 0000000000..9bf9f05840 --- /dev/null +++ b/sdks/db/cached-method-objects/from-custom-request_kombo.dev.yaml @@ -0,0 +1,2116 @@ +hash: cd2e27f642af51cc5250ce983b9396151f55d77c782d9733195a790d17b05fdd +methodObjects: + - url: /check-api-key + method: verifyApiKey + httpMethod: get + tag: General + typeScriptTag: general + description: Check API key + parameters: [] + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /force-sync + method: triggerSyncSpecificIntegration + httpMethod: post + tag: General + typeScriptTag: general + description: Trigger sync + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: workday:HWUTwvyx2wLoSUHphiWVrp28 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - url: /passthrough/{tool}/{api} + method: forwardRequestToApi + httpMethod: post + tag: General + typeScriptTag: general + description: Send passthrough request + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: greenhouse:HWUTwvyx2wLoSUHphiWVrp28 + - name: tool + schema: string + required: true + description: >- + The ID of the tool whose passthrough API you want to call (e.g., + `personio`). + example: TOOL + - name: api + schema: string + required: true + description: >- + The ID of the passthrough API you want to call (some tools provide + multiple). Check the endpoint description for a list of all available + APIs. + example: API + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /integrations/{integration_id} + method: deleteIntegration + httpMethod: delete + tag: General + typeScriptTag: general + description: Delete integration + parameters: + - name: integrationId + schema: string + required: true + description: DELETE /integrations/:integration_id parameter + example: INTEGRATION_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - url: /integrations/{integration_id} + method: getIntegrationDetails + httpMethod: get + tag: General + typeScriptTag: general + description: Get integration details + parameters: + - name: integrationId + schema: string + required: true + description: GET /integrations/:integration_id parameter + example: INTEGRATION_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - url: /integrations/{integration_id}/relink + method: createReconnectionLink + httpMethod: post + tag: General + typeScriptTag: general + description: Create reconnection link + parameters: + - name: integrationId + schema: string + required: true + description: POST /integrations/:integration_id/relink parameter + example: INTEGRATION_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - url: /tools/{category} + method: getToolsCategory + httpMethod: get + tag: General + typeScriptTag: general + description: Get tools + parameters: + - name: category + schema: string + required: true + description: GET /tools/:category parameter + example: CATEGORY + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /hris/provisioning-groups/{group_id}/diff + method: getProvisioningDiff + httpMethod: post + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Get provisioning diff + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: groupId + schema: string + required: true + description: ID of the provisioning group (currently only `default` is allowed). + example: GROUP_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /hris/provisioning-groups/{group_id}/setup-links + method: createProvisioningSetupLink + httpMethod: post + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Create provisioning setup link + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: groupId + schema: string + required: true + description: ID of the provisioning group (currently only `default` is allowed). + example: GROUP_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - url: /hris/employees + method: listEmployees + httpMethod: get + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Get employees + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + - name: employmentStatus + schema: string + required: false + description: >- + **(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** + Filter by the `employment_status` field. + - name: employmentStatuses + schema: string + required: false + description: >- + Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, + `LEAVE` + + * `ACTIVE`: the employee is **actively employed** + + * `PENDING`: the employee is **not actively employed yet** (but they + signed their contract or are part of an onboarding process) + + * `INACTIVE`: a full-time employee is no longer employed, or, for a + contract worker when their contract runs out + + * `LEAVE`: the employee is still employed but **currently on leave** + (note that not all HR systems support this status — use our absences + API for detailed information) + + + Leave this blank to get results matching all values. + - name: groupIds + schema: string + required: false + description: >- + Filter by a comma-separated list of group IDs. We will only return + employees that are members of _any_ of the groups. + - name: legalEntityIds + schema: string + required: false + description: >- + Filter by a comma-separated list of legal entity IDs. We will only + return employees that are members of _any_ of the legal entities. + - name: workLocationIds + schema: string + required: false + description: >- + Filter by a comma-separated list of work location IDs. We will only + return employees who are at _any_ of the work locations. + - name: workEmails + schema: string + required: false + description: >- + Filter by a comma-separated list of work emails. We will only return + employees who have _any_ of the work emails. + - name: personalEmails + schema: string + required: false + description: >- + Filter by a comma-separated list of personal emails. We will only + return employees who have _any_ of the personal emails. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/employees + method: createEmployee + httpMethod: post + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Create employee + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/employees/{employee_id} + method: updateEmployee + httpMethod: patch + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Update employee + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: employeeId + schema: string + 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`) + example: EMPLOYEE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/employees/{employee_id}/attachments + method: addAttachmentToEmployees + httpMethod: post + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Add attachment to employees 🦄 + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: employeeId + schema: string + required: true + description: POST /hris/employees/:employee_id/attachments parameter + example: EMPLOYEE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /hris/teams + method: listTeams + httpMethod: get + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Get teams (https://docs.kombo.dev + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/groups + method: getAllGroups + httpMethod: get + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Get groups + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/employments + method: listEmployments + httpMethod: get + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Get employments + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/locations + method: getWorkLocations + httpMethod: get + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Get work locations + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/absence-types + method: listAbsenceTypes + httpMethod: get + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Get absence types + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/time-off-balances + method: getTimeOffBalances + httpMethod: get + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Get time off balances + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + - name: employeeId + schema: string + required: false + description: Filter by a specific employee using their ID. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/absences + method: getAllAbsences + httpMethod: get + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Get absences + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + - name: dateFrom + schema: string + required: false + description: >- + Filter for all the absences that either start _or_ haven't ended yet + on/after this day. If you imagine a calendar displaying absences, this + defines the left-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + - name: dateUntil + schema: string + required: false + description: >- + Filter for absences that start on or before this day (but might + continue after). If you imagine a calendar displaying absences, this + defines the right-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + - name: typeIds + schema: string + required: false + description: Filter by a comma-separated list of absence type IDs. + - name: employeeId + schema: string + required: false + description: Filter by a specific employee using their ID. + - name: timeFrom + schema: string + required: false + description: >- + **(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for + absences that either start after or start before and end after a + certain time. + - name: timeUntil + schema: string + required: false + description: >- + **(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter for + absences that start before a certain time. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/absences + method: createAbsence + httpMethod: post + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Create absence + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/absences/{absence_id} + method: deleteAbsenceById + httpMethod: delete + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Delete absence + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: absenceId + schema: string + required: true + description: The ID of the absence + example: ABSENCE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /hris/legal-entities + method: getAllLegalEntities + httpMethod: get + tag: Unified HRIS API + typeScriptTag: unifiedHrisApi + description: Get legal entities + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/applications + method: getAllApplications + httpMethod: get + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Get applications + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + - name: outcome + schema: string + required: false + description: >- + **(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter + applications by outcome. This allows you to get applications that are + for example `PENDING`, `HIRED`, or `DECLINED`. + - name: outcomes + schema: string + required: false + description: |- + Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` + * `PENDING`: The application is still being processed. + * `HIRED`: The candidate was hired. + * `DECLINED`: The candidate was declined. + + + Leave this blank to get results matching all values. + - name: remoteCreatedAfter + schema: string + required: false + description: >- + Filter applications by the day they were created in the remote system. + This allows you to get applications that were created on or after a + certain day. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/applications/{application_id}/stage + method: moveApplicationToStage + httpMethod: put + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Move application to stage + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: applicationId + schema: string + required: true + description: PUT /ats/applications/:application_id/stage parameter + example: APPLICATION_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/applications/{application_id}/result-links + method: addResultLink + httpMethod: post + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Add result link to application + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: applicationId + schema: string + required: true + description: Kombo ID of the application you want to create the link for. + example: APPLICATION_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/applications/{application_id}/notes + method: addNoteToApplication + httpMethod: post + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Add note to application + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: applicationId + schema: string + required: true + description: Kombo ID of the application you want to create the note for. + example: APPLICATION_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/applications/{application_id}/attachments + method: addAttachmentToApplication + httpMethod: post + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Add attachment to application + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: applicationId + schema: string + required: true + description: POST /ats/applications/:application_id/attachments parameter + example: APPLICATION_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/candidates + method: getAllCandidates + httpMethod: get + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Get candidates + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + - name: email + schema: string + required: false + description: >- + Filter the candidates based on an email address. When set, returns + only the candidates where the given `email` is in `email_addresses`. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/candidates + method: createApplication + httpMethod: post + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Create candidate + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/candidates/{candidate_id} + method: updateCandidate + httpMethod: patch + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Update candidate 🦄 + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: candidateId + schema: string + required: true + description: PATCH /ats/candidates/:candidate_id parameter + example: CANDIDATE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /ats/candidates/{candidate_id}/attachments + method: addAttachmentToCandidate + httpMethod: post + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Add attachment to candidate + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: candidateId + schema: string + required: true + description: POST /ats/candidates/:candidate_id/attachments parameter + example: CANDIDATE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/candidates/{candidate_id}/result-links + method: addResultLinkToCandidate + httpMethod: post + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Add result link to candidate + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: candidateId + schema: string + required: true + description: Kombo ID of the candidate you want to create the link for. + example: CANDIDATE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/candidates/{candidate_id}/tags + method: removeCandidateTag + httpMethod: delete + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Remove tag from candidate + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: candidateId + schema: string + required: true + description: Kombo ID of the candidate you want to remove the tag from. + example: CANDIDATE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/candidates/{candidate_id}/tags + method: addCandidateTag + httpMethod: post + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Add tag to candidate + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: candidateId + schema: string + required: true + description: Kombo ID of the candidate you want to add the tag to. + example: CANDIDATE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/tags + method: listTags + httpMethod: get + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Get tags + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/application-stages + method: getApplicationStages + httpMethod: get + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Get application stages + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/jobs + method: getJobs + httpMethod: get + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Get jobs + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + - name: jobCodes + schema: string + required: false + description: Filter by a comma-separated list of job codes. + - name: postUrl + schema: string + required: false + description: >- + Filter by the `post_url` field. Can be used to find a job based on its + public posting URL. + - name: status + schema: string + required: false + description: >- + **(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by the + `status` field. Can be used to find a job based on its status. + - name: statuses + schema: string + required: false + description: >- + Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, + `ARCHIVED` + + + Leave this blank to get results matching all values. + - name: visibilities + schema: string + required: false + description: >- + Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, `UNLISTED`, + `CONFIDENTIAL` + + + Leave this blank to get results matching all values. + - name: nameContains + schema: string + required: false + description: >- + Filter by the `name` field. Can be used to find a job by keywords + present in the job name. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/jobs/{job_id}/applications + method: createApplicationCandidate + httpMethod: post + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Create application + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: jobId + schema: string + required: true + description: >- + Kombo ID or Remote ID of the Job this candidate should apply for. If + you want to use the ID of the integrated system + (https://docs.kombo.dev you need to prefix the id with "remote:". You + can use the remote ID if you do not want to sync jobs. + example: JOB_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /ats/users + method: getAllUsers + httpMethod: get + tag: Unified ATS API + typeScriptTag: unifiedAtsApi + description: Get users + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + - name: updatedAfter + schema: string + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + - name: includeDeleted + schema: string + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + default: 'false' + - name: ids + schema: string + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + - name: remoteIds + schema: string + required: false + description: Filter by a comma-separated list of remote IDs. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /assessment/packages + method: getAssessmentPackages + httpMethod: get + tag: Unified ATS (https://docs.kombo.dev API + typeScriptTag: unifiedAtsHttps:DocsKomboDevApi + description: Get packages + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /assessment/packages + method: replaceAssessmentPackages + httpMethod: put + tag: Unified ATS (https://docs.kombo.dev API + typeScriptTag: unifiedAtsHttps:DocsKomboDevApi + description: Set packages + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /assessment/orders/open + method: getOpenOrders + httpMethod: get + tag: Unified ATS (https://docs.kombo.dev API + typeScriptTag: unifiedAtsHttps:DocsKomboDevApi + description: Get open orders + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + - name: cursor + schema: string + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + - name: pageSize + schema: integer + required: false + description: The number of results to return per page. + default: 100 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /assessment/orders/{assessment_order_id}/result + method: updateOrderResult + httpMethod: put + tag: Unified ATS (https://docs.kombo.dev API + typeScriptTag: unifiedAtsHttps:DocsKomboDevApi + description: Update order result + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + - name: assessmentOrderId + schema: string + required: true + description: PUT /assessment/orders/:assessment_order_id/result parameter + example: ASSESSMENT_ORDER_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /connect/create-link + method: generateLink + httpMethod: post + tag: Kombo Connect + typeScriptTag: komboConnect + description: Create connection link + parameters: [] + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /connect/integration-by-token/{token} + method: getIntegrationByToken + httpMethod: get + tag: Kombo Connect + typeScriptTag: komboConnect + description: Get integration by token + parameters: + - name: token + schema: string + required: true + description: GET /connect/integration-by-token/:token parameter + example: TOKEN + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /connect/activate-integration + method: activateIntegration + httpMethod: post + tag: Kombo Connect + typeScriptTag: komboConnect + description: Activate integration (https://docs.kombo.dev + parameters: [] + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - url: /custom/datev/passthrough + method: writeDatevAsciiFile + httpMethod: post + tag: Custom Endpoints + typeScriptTag: customEndpoints + description: Write raw DATEV ASCII file + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: datev:HWUTwvyx2wLoSUHphiWVrp28 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /custom/datev/employees/{employee_id}/prepare-payroll + method: prepareDatevPayroll + httpMethod: put + tag: Custom Endpoints + typeScriptTag: customEndpoints + description: Prepare DATEV Payroll + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: datev:HWUTwvyx2wLoSUHphiWVrp28 + - name: employeeId + schema: string + 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`) + example: EMPLOYEE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /custom/datev/employees/{employee_id}/compensations + method: setDatevCompensations + httpMethod: put + tag: Custom Endpoints + typeScriptTag: customEndpoints + description: Set DATEV compensations + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: datev:HWUTwvyx2wLoSUHphiWVrp28 + - name: employeeId + schema: string + 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`) + example: EMPLOYEE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /custom/datev/data-pushes + method: getDataPushes + httpMethod: get + tag: Custom Endpoints + typeScriptTag: customEndpoints + description: Get DATEV data pushes + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: datev:HWUTwvyx2wLoSUHphiWVrp28 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /custom/datev/push-data/general + method: pushGeneralDataToDatev + httpMethod: post + tag: Custom Endpoints + typeScriptTag: customEndpoints + description: Push general data to DATEV + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: datev:HWUTwvyx2wLoSUHphiWVrp28 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /custom/datev/push-data/payroll + method: pushPayrollData + httpMethod: post + tag: Custom Endpoints + typeScriptTag: customEndpoints + description: Push payroll data to DATEV + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: datev:HWUTwvyx2wLoSUHphiWVrp28 + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' + - url: /custom/silae/employees/{employee_id}/payroll-supplements + method: writePayrollSupplement + httpMethod: post + tag: Custom Endpoints + typeScriptTag: customEndpoints + description: Write Payroll Supplement + parameters: + - name: xIntegrationId + schema: string + required: true + description: ID of the integration you want to interact with. + example: silae:HWUTwvyx2wLoSUHphiWVrp28 + - name: employeeId + schema: string + 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`) + example: EMPLOYEE_ID + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '401' + description: '' + - statusCode: '403' + description: '' + - statusCode: '404' + description: '' + - statusCode: '503' + description: '' +numberOfSchemas: 439 +apiDescription: >- + Kombo is changing how B2B SaaS companies provide HR integrations to their + customers. Instead of having to build and maintain many APIs themselves, + Kombos customers can integrate with Kombo's API once and offer dozens of APIs + to their customers instantly. diff --git a/sdks/db/cached-method-objects/from-custom-request_localizely.com.yaml b/sdks/db/cached-method-objects/from-custom-request_localizely.com.yaml new file mode 100644 index 0000000000..78cca85134 --- /dev/null +++ b/sdks/db/cached-method-objects/from-custom-request_localizely.com.yaml @@ -0,0 +1,213 @@ +hash: f134cb55fcb42ff4cd95b0df658a2088fc4b49a5c5d8a5a58e0fecaf831e1a99 +methodObjects: + - url: /v1/projects/{project_id}/files/upload + method: languageTranslationsUpload + httpMethod: post + tag: Upload API + typeScriptTag: uploadApi + description: Upload translations for a language + parameters: + - name: projectId + schema: string + required: true + description: Project ID - Can be found on 'My projects' page + example: PROJECT_ID + - name: branch + schema: string + required: false + description: >- + Name of the branch to upload file into. Only in case of activated + branching feature. + - name: langCode + schema: string + required: true + description: >- + Language to upload, specified as language code. e.g. `en`, `en_GB` or + `en-GB` + example: LANG_CODE + - name: overwrite + schema: boolean + required: false + description: >- + If translation in given language should be overwritten with modified + translation from uploading file. + default: false + - name: reviewed + schema: boolean + required: false + description: >- + If uploading translations, that are added, should be marked as + Reviewed. For uploading translations that are only modified it will + have effect only if `overwrite` is set to `true`. + default: false + - name: tagAdded + schema: array + required: false + description: >- + Optional list of tags to add to new translations from uploading file. +

Multiple tags can be defined in a following way: + `&tag_added_keys=NEW&tag_added_keys=NEW_SPRINT05` + - name: tagUpdated + schema: array + required: false + description: >- + Optional list of tags to add to updated translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_updated_keys=UPDATED&tag_updated_keys=UPDATED_SPRINT05` + - name: tagRemoved + schema: array + required: false + description: >- + Optional list of tags to add to removed translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_removed_keys=REMOVED&tag_removed_keys=REMOVED_SPRINT05` + - name: file + schema: string + required: true + description: '' + example: FILE + responses: + - statusCode: '200' + description: OK, file uploaded + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' + - url: /v1/projects/{project_id}/branches/{branch} + method: createNewBranch + httpMethod: post + tag: Branch API + typeScriptTag: branchApi + description: Create a new branch + parameters: + - name: projectId + schema: string + required: true + description: Project ID - Can be found on 'My projects' page + example: PROJECT_ID + - name: branch + schema: string + required: true + description: Name of the branch to be created + example: BRANCH + - name: sourceBranch + schema: string + required: true + description: Name of the source branch from which new branch will be created + example: SOURCE_BRANCH + responses: + - statusCode: '200' + description: OK, created + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' + - url: /v1/projects/{project_id}/status + method: getProjectStatus + httpMethod: get + tag: Translation Status API + typeScriptTag: translationStatusApi + description: Get Translation Status for the project + parameters: + - name: projectId + schema: string + required: true + description: Project ID - Can be found on 'My projects' page + example: PROJECT_ID + - name: branch + schema: string + required: false + description: >- + Name of the branch to get translation status for. Only in case of + activated branching feature. + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' + - url: /v1/projects/{project_id}/files/download + method: translationsDownload + httpMethod: get + tag: Download API + typeScriptTag: downloadApi + description: Download translations for a language in a specified file format + parameters: + - name: projectId + schema: string + required: true + description: Project ID - Can be found on 'My projects' page + example: PROJECT_ID + - name: branch + schema: string + required: false + description: >- + Name of the branch to download file from. Only in case of activated + branching feature. + - name: langCodes + schema: string + required: false + description: >- + Language to download, specified as language code. e.g. `en`, `en_GB` + or `en-GB`. For multiple languages use comma separator. If omitted, + all languages are downloaded. + - name: type + schema: string + required: true + description: File format + example: TYPE + - name: javaPropertiesEncoding + schema: string + required: false + description: >- + (Only for Java .properties files download) Character encoding. Default + is `latin_1`. + - name: includeTags + schema: array + required: false + description: >- + Optional list of tags to be downloaded.
If not set, all string + keys will be considered for download.

Multiple tags can be + defined in a following way: + `&include_tags=ANDROID&include_tags=ANDROID_SPRINT05`. + - name: excludeTags + schema: array + required: false + description: >- + Optional list of tags to be excluded from download.
If not set, + all string keys will be considered for download.

Multiple + tags can be defined in a following way: + `&exclude_tags=REMOVED&exclude_tags=REMOVED_SPRINT05`. + - name: exportEmptyAs + schema: string + required: false + description: >- + Optional. How you would like empty translations to be exported. + Allowed values are `empty` to keep empty, `main` to replace with the + main language value, or `skip` to omit. + default: empty + responses: + - statusCode: '200' + description: OK, file returned + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' +numberOfSchemas: 6 +apiDescription: >- +

Getting started

Localizely API is built on REST.
You can use this API for importing & exporting + your localization files in order to automate the process with `curl` scripts + or external CI tools.
Response is returned in JSON form even in + case of error.

If you Authenticate with your API token on this page + by clicking "Authorize" button, you can make API calls directly from here with + "Try it out", and generate such `curl` examples.

API + Authentication

Authenticate your account by sending your API token as a + request header `X-Api-Token`.
The token can be found under My Profile page. +
A user must have an Admin role in the project in order to access the + project with his token.
API requests without authentication will + fail.

Base url: `https://api.localizely.com`

diff --git a/sdks/db/cached-method-objects/from-custom-request_mambu.com_PaymentOrder.yaml b/sdks/db/cached-method-objects/from-custom-request_mambu.com_PaymentOrder.yaml new file mode 100644 index 0000000000..3108df588f --- /dev/null +++ b/sdks/db/cached-method-objects/from-custom-request_mambu.com_PaymentOrder.yaml @@ -0,0 +1,1712 @@ +hash: 71e95473f3cb1c6fca26c80407648ff3fa6557b5663aebb480820ceeda149b3e +methodObjects: + - url: /accounts/{accountId}/blocking-rules + method: removeBlockingRules + httpMethod: delete + tag: SEPA Direct Debit + typeScriptTag: sepaDirectDebit + description: >- + Request deletion of blocking rules for the specified Mambu account. If no + request body is provided, all rules for the account will be removed, if + you provide a JSON body with a specific mandate ID, only the rule for that + mandate will be removed. For more information on blocking SEPA Direct + Debits, consult the [Blocking SEPA Direct + Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) + article in our user guide. + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNTID + - name: creditorMandate + schema: object + required: false + description: '' + - name: product + schema: string + required: true + description: '' + example: PRODUCT + responses: + - statusCode: '202' + description: >- + Accepted - Blocking rules for the specified account have been + submitted for deletion. + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /accounts/{accountId}/blocking-rules + method: addBlockingRule + httpMethod: post + tag: SEPA Direct Debit + typeScriptTag: sepaDirectDebit + description: >- + Request a blocking rule to be added to a specific Mambu account. When a + blocking rule has been added for a specific mandate ID, collection + requests for that mandate will be rejected and a pacs.002 message sent as + response with reason code MS02. If no specific mandate ID is provided, all + direct debit collection requests for the given account will be rejected. + For more information on blocking SEPA Direct Debits, consult the [Blocking + SEPA Direct + Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) + article in our user guide. + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNTID + - name: creditorMandate + schema: object + required: false + description: '' + - name: product + schema: string + required: true + description: '' + example: PRODUCT + responses: + - statusCode: '202' + description: Accepted - The Blocking Rule has been prepared for processing. + - statusCode: '400' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /accounts/{accountId}/identifications + method: getIdentifications + httpMethod: get + tag: External Account Representation + typeScriptTag: externalAccountRepresentation + description: >- + Gets associations of an external account identification (IBAN or + proprietary) to a Mambu Account. + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNTID + - name: limit + schema: integer + description: '' + default: 50 + - name: offset + schema: integer + description: '' + default: 0 + responses: + - statusCode: '200' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /accounts/{accountId}/identifications + method: addIdentificationAssociation + httpMethod: post + tag: External Account Representation + typeScriptTag: externalAccountRepresentation + description: >- + Adds association of an external account identification (IBAN or + proprietary) to a Mambu Account. The currency of the association will be + the one of the underlining Mambu account. If an IBAN is supposed to be a + multi-currency one, this API needs to be invoked multiple times with + different Mambu accounts (for the different currencies). + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNTID + - name: identification + schema: object + required: true + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /accounts/identifications + method: associateIban + httpMethod: put + tag: External Account Representation + typeScriptTag: externalAccountRepresentation + description: >- + Create or replace associations of an external account identification (IBAN + or proprietary) to one of Mambu Accounts. The currency of the association + will be the one of the underlining Mambu account. + parameters: + - name: accountIds + schema: array + required: true + description: '' + - name: identification + schema: object + required: true + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /accounts/identifications:search + method: searchIdentifications + httpMethod: post + tag: External Account Representation + typeScriptTag: externalAccountRepresentation + description: >- + Searches identifications (with MambuID included) based on provided filter + criteria + parameters: + - name: filterCriteria + schema: array + required: true + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /collections + method: createCollectionInitiationRequest + httpMethod: post + tag: SEPA Direct Debit + typeScriptTag: sepaDirectDebit + description: >- + Creates a collection initiation request. This covers the flows as + described in the [SEPA Direct + Debit](https://support.mambu.com/docs/sepa-direct-debit-creditor-flow) + section of our user guide. + parameters: + - name: xRequestId + schema: string + required: true + description: '' + example: X-REQUEST-ID + - name: idempotencyKey + schema: string + description: '' + - name: creditorAccount + schema: object + required: true + description: '' + - name: creditorAddress + schema: object + required: false + description: '' + - name: creditorAgent + schema: object + required: false + description: '' + - name: creditorIdentification + schema: object + required: false + description: '' + - name: creditorName + schema: string + required: true + description: '' + example: CREDITORNAME + - name: creditorSchemeIdentification + schema: object + required: true + description: '' + - name: debtorAccount + schema: object + required: true + description: '' + - name: debtorAddress + schema: object + required: false + description: '' + - name: debtorAgent + schema: object + required: false + description: '' + - name: debtorIdentification + schema: object + required: false + description: '' + - name: debtorName + schema: string + required: true + description: '' + example: DEBTORNAME + - name: instructedAmount + schema: object + required: true + description: '' + - name: localInstrument + schema: string + required: false + description: '' + - name: mandateRelatedInformation + schema: object + required: true + description: '' + - name: paymentIdentification + schema: object + required: false + description: '' + - name: paymentTypeInformation + schema: object + required: true + description: '' + - name: purposeCode + schema: string + required: false + description: '' + - name: remittanceInformationStructured + schema: object + required: false + description: '' + - name: remittanceInformationUnstructured + schema: string + required: false + description: '' + - name: requestedExecutionDate + schema: string + required: false + description: '' + - name: requestedExecutionTime + schema: string + required: false + description: '' + - name: serviceLevel + schema: string + required: false + description: '' + - name: ultimateCreditor + schema: string + required: false + description: '' + - name: ultimateDebtor + schema: string + required: false + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '400' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /log + method: createOrUpdateLog + httpMethod: post + tag: External Account Representation + typeScriptTag: externalAccountRepresentation + description: '' + parameters: + - name: log + schema: string + required: true + description: '' + example: LOG + responses: + - statusCode: default + description: '' + - url: /payments/financial-institution-credit-transfers + method: submitPaymentRequest + httpMethod: post + tag: CreditTransfer + typeScriptTag: creditTransfer + description: '' + parameters: + - name: xRequestId + schema: string + required: true + description: '' + example: X-REQUEST-ID + - name: idempotencyKey + schema: string + description: '' + - name: categoryPurposeCode + schema: string + required: false + description: '' + - name: creditor + schema: object + required: true + description: '' + - name: creditorAccount + schema: object + required: false + description: '' + - name: creditorAgent + schema: object + required: false + description: '' + - name: debtor + schema: object + required: true + description: '' + - name: debtorAccount + schema: object + required: false + description: '' + - name: debtorAgent + schema: object + required: false + description: '' + - name: instructedAmount + schema: object + required: true + description: '' + - name: intermediaryAgent1 + schema: object + required: false + description: '' + - name: intermediaryAgent2 + schema: object + required: false + description: '' + - name: intermediaryAgent3 + schema: object + required: false + description: '' + - name: paymentIdentification + schema: object + required: false + description: '' + - name: purposeCode + schema: string + required: false + description: '' + - name: remittanceInformationStructured + schema: object + required: false + description: '' + - name: remittanceInformationUnstructured + schema: string + required: false + description: '' + - name: requestedExecutionDate + schema: string + required: false + description: '' + - name: scheme + schema: string + required: true + description: '' + example: SCHEME + - name: settlementInformation + schema: object + required: true + description: '' + - name: ultimateCreditor + schema: string + required: false + description: '' + - name: ultimateDebtor + schema: string + required: false + description: '' + responses: + - statusCode: default + description: '' + - url: /payments/credit-transfers + method: createRequest + httpMethod: post + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: '' + parameters: + - name: xRequestId + schema: string + required: true + description: '' + example: X-REQUEST-ID + - name: idempotencyKey + schema: string + description: '' + - name: categoryPurposeCode + schema: string + required: false + description: '' + - name: creditorAccount + schema: object + required: true + description: '' + - name: creditorAddress + schema: object + required: false + description: '' + - name: creditorAgent + schema: object + required: false + description: '' + - name: creditorIdentification + schema: object + required: false + description: '' + - name: creditorName + schema: string + required: true + description: '' + example: CREDITORNAME + - name: debtorAccount + schema: object + required: true + description: '' + - name: debtorAddress + schema: object + required: false + description: '' + - name: debtorAgent + schema: object + required: false + description: '' + - name: debtorIdentification + schema: object + required: false + description: '' + - name: debtorName + schema: string + required: true + description: '' + example: DEBTORNAME + - name: instructedAmount + schema: object + required: true + description: '' + - name: localInstrument + schema: string + required: false + description: '' + - name: paymentIdentification + schema: object + required: false + description: '' + - name: purposeCode + schema: string + required: false + description: '' + - name: remittanceInformationStructured + schema: object + required: false + description: '' + - name: remittanceInformationUnstructured + schema: string + required: false + description: '' + - name: requestedExecutionDate + schema: string + required: false + description: '' + - name: requestedExecutionTime + schema: string + required: false + description: '' + - name: scheme + schema: string + required: true + description: '' + example: SCHEME + - name: serviceLevel + schema: string + required: false + description: '' + - name: settlementInformation + schema: object + required: true + description: '' + - name: ultimateCreditor + schema: string + required: false + description: '' + - name: ultimateDebtor + schema: string + required: false + description: '' + responses: + - statusCode: default + description: '' + - url: /payments + method: createPaymentRequest + httpMethod: post + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: >- + Creates a payment initiation request. Payments using the SEPA Credit + Transfer scheme can only be created for the current date. A pacs.008 + message will be generated from the data provided in this request. For more + information on how these fields map to SEPA XML messages, refer to the + [SEPA Credit Transfer Techincal + Information](https://support.mambu.com/docs/sepa-credit-transfer-technical-information#pacs00800102) + article in our user guide. + parameters: + - name: xRequestId + schema: string + required: true + description: '' + example: X-REQUEST-ID + - name: idempotencyKey + schema: string + description: '' + - name: creditorAccount + schema: object + required: true + description: '' + - name: creditorAddress + schema: object + required: false + description: '' + - name: creditorAgent + schema: object + required: false + description: '' + - name: creditorIdentification + schema: object + required: false + description: '' + - name: creditorName + schema: string + required: true + description: '' + example: CREDITORNAME + - name: debtorAccount + schema: object + required: true + description: '' + - name: debtorAddress + schema: object + required: false + description: '' + - name: debtorAgent + schema: object + required: false + description: '' + - name: debtorIdentification + schema: object + required: false + description: '' + - name: debtorName + schema: string + required: true + description: '' + example: DEBTORNAME + - name: instructedAmount + schema: object + required: true + description: '' + - name: localInstrument + schema: string + required: false + description: '' + - name: paymentIdentification + schema: object + required: false + description: '' + - name: purposeCode + schema: string + required: false + description: '' + - name: remittanceInformationStructured + schema: object + required: false + description: '' + - name: remittanceInformationUnstructured + schema: string + required: false + description: '' + - name: requestedExecutionDate + schema: string + required: false + description: '' + - name: requestedExecutionTime + schema: string + required: false + description: '' + - name: serviceLevel + schema: string + required: false + description: '' + - name: ultimateCreditor + schema: string + required: false + description: '' + - name: ultimateDebtor + schema: string + required: false + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '400' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/standing-orders/{id}/executions + method: listExecutions + httpMethod: get + tag: Standing Order + typeScriptTag: standingOrder + description: Get executions of standing order + parameters: + - name: apiKey + schema: string + required: true + description: ApiKey header that is used for authentication + example: APIKEY + - name: id + schema: string + required: true + description: '' + example: ID + responses: + - statusCode: '200' + description: '' + - url: /payments/standing-orders/{id} + method: cancel + httpMethod: delete + tag: Standing Order + typeScriptTag: standingOrder + description: Cancel Standing order + parameters: + - name: id + schema: string + required: true + description: '' + example: ID + responses: + - statusCode: '204' + description: Standing order canceled. + - statusCode: '404' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/standing-orders/{id} + method: getInformation + httpMethod: get + tag: Standing Order + typeScriptTag: standingOrder + description: Gets Standing order information + parameters: + - name: id + schema: string + required: true + description: '' + example: ID + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/standing-orders + method: createStandingOrderRequest + httpMethod: post + tag: Standing Order + typeScriptTag: standingOrder + description: >- + API creates standing orders. Standing order creation will trigger periodic + payments for provided frequency from start date until the end date. + parameters: + - name: endDate + schema: string + required: false + description: '' + - name: frequency + schema: string + required: true + description: '' + example: FREQUENCY + - name: ownerId + schema: string + required: true + description: '' + example: OWNERID + - name: payment + schema: object + required: true + description: '' + - name: retryPolicy + schema: object + required: true + description: '' + - name: startDate + schema: string + required: true + description: '' + example: STARTDATE + responses: + - statusCode: '201' + description: '' + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/standing-orders:search + method: searchByFilters + httpMethod: post + tag: Standing Order + typeScriptTag: standingOrder + description: Search for standing orders by search filters such as ownerId + parameters: + - name: apiKey + schema: string + required: true + description: ApiKey header that is used for authentication + example: APIKEY + - name: filterCriteria + schema: array + required: true + description: '' + - name: limit + schema: integer + required: false + description: '' + - name: offset + schema: integer + required: false + description: '' + responses: + - statusCode: '200' + description: '' + - url: /payments/standing-orders:suspend + method: suspendRequest + httpMethod: post + tag: Standing Order + typeScriptTag: standingOrder + description: API suspends standing order for a particular period of time. + parameters: + - name: endDate + schema: string + required: true + description: '' + example: ENDDATE + - name: id + schema: string + required: true + description: '' + example: ID + - name: startDate + schema: string + required: false + description: '' + responses: + - statusCode: '200' + description: OK - Standing order successfully suspended. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /collections/{collectionId} + method: getCollectionDetails + httpMethod: get + tag: SEPA Direct Debit + typeScriptTag: sepaDirectDebit + description: '' + parameters: + - name: collectionId + schema: string + required: true + description: '' + example: COLLECTIONID + - name: detailsLevel + schema: string + description: '' + default: FULL + responses: + - statusCode: default + description: '' + - url: /payments/credit-transfers/{paymentId} + method: getPaymentDetails + httpMethod: get + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: '' + parameters: + - name: paymentId + schema: string + required: true + description: '' + example: PAYMENTID + - name: detailsLevel + schema: string + description: '' + default: FULL + responses: + - statusCode: default + description: '' + - url: /payments/{paymentId} + method: getPaymentDetails + httpMethod: get + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: '' + parameters: + - name: paymentId + schema: string + required: true + description: '' + example: PAYMENTID + - name: detailsLevel + schema: string + description: '' + default: FULL + responses: + - statusCode: default + description: '' + - url: /payments:settleInstantPayment + method: acceptInstantPaymentSettlement + httpMethod: post + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: Accepts requests for an instant payment settlement. + parameters: + - name: groupHeader + schema: object + required: true + description: '' + - name: transaction + schema: object + required: true + description: '' + responses: + - statusCode: '202' + description: >- + Accepted - The instant payment settlement request has been accepted + for processing. + - statusCode: '400' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/{paymentOrderId}:reject + method: manuallyRejectPayment + httpMethod: post + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: Manually Reject an Outgoing Payment. + parameters: + - name: paymentOrderId + schema: string + required: true + description: '' + example: PAYMENTORDERID + responses: + - statusCode: '200' + description: >- + OK - The specified payment order has been marked to be manually + rejected. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/{paymentOrderId}:recall + method: recallPaymentRequest + httpMethod: post + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: Recall an outgoing payment. + parameters: + - name: paymentOrderId + schema: string + required: true + description: '' + example: PAYMENTORDERID + - name: customerRecallReasonCode + schema: string + required: false + description: '' + - name: recallReasonCode + schema: string + required: true + description: '' + example: RECALLREASONCODE + responses: + - statusCode: '200' + description: OK - Payment marked to be recalled successfully. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/{paymentOrderId}:denyOutgoingRecall + method: denyOutgoingRecallAction + httpMethod: post + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: Deny an Outgoing Recall. + parameters: + - name: paymentOrderId + schema: string + required: true + description: '' + example: PAYMENTORDERID + responses: + - statusCode: '200' + description: OK - The specified outgoing recall has been marked to be rejected. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/{paymentOrderId}:denyIncomingRecall + method: denyIncomingRecallAction + httpMethod: post + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: Deny an Incoming Recall. + parameters: + - name: paymentOrderId + schema: string + required: true + description: '' + example: PAYMENTORDERID + - name: additionalInformation + schema: array + required: false + description: '' + - name: originalRecallReasonAdditionalInformation + schema: array + required: false + description: '' + - name: rejectionReason + schema: string + required: true + description: '' + example: REJECTIONREASON + responses: + - statusCode: '200' + description: OK - The specified incoming recall has been marked to be rejected. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/{paymentOrderId}:approveOutgoingRecall + method: approveOutgoingRecallAction + httpMethod: post + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: Approve an Outgoing Recall. + parameters: + - name: paymentOrderId + schema: string + required: true + description: '' + example: PAYMENTORDERID + responses: + - statusCode: '200' + description: OK - The specified outgoing recall has been authorized. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/{paymentOrderId}:approveIncomingRecall + method: approveIncomingRecall + httpMethod: post + tag: SEPA Credit Transfers + typeScriptTag: sepaCreditTransfers + description: Approve an Incoming Recall. + parameters: + - name: paymentOrderId + schema: string + required: true + description: '' + example: PAYMENTORDERID + responses: + - statusCode: '200' + description: OK - The specified incoming recall has been authorized. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/{paymentOrderId}/aml:resendCallout + method: resendCallout + httpMethod: post + tag: AML + typeScriptTag: aml + description: Resends the AML callout for an Outgoing payment. + parameters: + - name: paymentOrderId + schema: string + required: true + description: '' + example: PAYMENTORDERID + responses: + - statusCode: '200' + description: OK - The AML callout was resent for the provided payment order. + - statusCode: '400' + description: '' + - statusCode: '405' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/incoming + method: createRequest + httpMethod: post + tag: Incoming Messages + typeScriptTag: incomingMessages + description: Creates an incoming message request. + parameters: + - name: xRequestId + schema: string + required: true + description: >- + ID of the request, unique to the call, as determined by the initiating + party. + example: X-REQUEST-ID + - name: xPaymentScheme + schema: string + required: false + description: Specifies payment scheme for processing. + responses: + - statusCode: '202' + description: '' + - statusCode: '400' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /payments/aml + method: submitAmlCheckResult + httpMethod: post + tag: AML + typeScriptTag: aml + description: >- + Accepts AML check results for Payment Orders, for example SEPA Credit + Transfers. + parameters: + - name: xRequestId + schema: string + required: true + description: >- + ID of the request, unique to the call, as determined by the initiating + party. + example: X-REQUEST-ID + - name: groupHeader + schema: object + required: true + description: '' + - name: transactions + schema: array + required: true + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: '' + - url: /inquiries:skipStatusUpdateOnRecall + method: skipRecallStatusUpdate + httpMethod: post + tag: SEPA Credit Transfer Inquiries + typeScriptTag: sepaCreditTransferInquiries + description: Skips response for Request for Status Update on Recall with given details. + parameters: + - name: groupHeader + schema: object + required: true + description: '' + - name: transactionInformation + schema: object + required: true + description: '' + responses: + - statusCode: '200' + description: >- + OK - Request for skipping Status Update on Recall response was + received + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /inquiries:requestStatusUpdateOnRecall + method: requestStatusUpdate + httpMethod: post + tag: SEPA Credit Transfer Inquiries + typeScriptTag: sepaCreditTransferInquiries + description: Create inquiry to request status update for a payment cancellation. + parameters: + - name: cancellationIdentification + schema: string + required: true + description: '' + example: CANCELLATIONIDENTIFICATION + - name: groupHeader + schema: object + required: false + description: '' + - name: historicCancellationRequest + schema: string + required: false + description: '' + responses: + - statusCode: '200' + description: OK - Inquiry created successfully. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /inquiries:requestStatusUpdateOnInquiry + method: createStatusUpdateRequest + httpMethod: post + tag: SEPA Credit Transfer Inquiries + typeScriptTag: sepaCreditTransferInquiries + description: Create status update request for existing camt.087 or camt.027 inquiry + parameters: + - name: assignment + schema: object + required: false + description: '' + - name: caseIdentification + schema: string + required: true + description: '' + example: CASEIDENTIFICATION + - name: historicClaimRequest + schema: string + required: false + description: '' + - name: messageTypeName + schema: string + required: true + description: '' + example: MESSAGETYPENAME + responses: + - statusCode: '200' + description: OK - Inquiry created successfully. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /inquiries:rejectStatusUpdateOnRecall + method: handleNegativeStatusUpdateOnRecall + httpMethod: post + tag: SEPA Credit Transfer Inquiries + typeScriptTag: sepaCreditTransferInquiries + description: >- + Handles negative response for Request for Status Update on Recall with + given details. + parameters: + - name: cancellationDetails + schema: object + required: true + description: '' + - name: groupHeader + schema: object + required: true + description: '' + - name: transactionInformation + schema: object + required: true + description: '' + responses: + - statusCode: '200' + description: >- + OK - Request for Status Update on Recall negative response was + received + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /inquiries:claimValueDateCorrection + method: requestValueDateChange + httpMethod: post + tag: SEPA Credit Transfer Inquiries + typeScriptTag: sepaCreditTransferInquiries + description: Create inquiry to request claim for value-date change. + parameters: + - name: claimedValueDate + schema: string + required: false + description: '' + - name: groupHeader + schema: object + required: false + description: '' + - name: historicCreditTransferRequest + schema: string + required: false + description: '' + - name: paymentIdentification + schema: object + required: true + description: '' + responses: + - statusCode: '200' + description: OK - Inquiry created successfully. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /inquiries:claimNonReceipt + method: createNonReceiptInquiry + httpMethod: post + tag: SEPA Credit Transfer Inquiries + typeScriptTag: sepaCreditTransferInquiries + description: Create inquiry for claim of non-receipt + parameters: + - name: claimedValueDate + schema: string + required: false + description: '' + - name: groupHeader + schema: object + required: false + description: '' + - name: historicCreditTransferRequest + schema: string + required: false + description: '' + - name: paymentIdentification + schema: object + required: true + description: '' + responses: + - statusCode: '200' + description: OK - Inquiry created successfully. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /inquiries:acceptStatusUpdateOnRecall + method: acceptStatusUpdateOnRecall + httpMethod: post + tag: SEPA Credit Transfer Inquiries + typeScriptTag: sepaCreditTransferInquiries + description: >- + Handles positive response for Request for Status Update on Recall with + given details. + parameters: + - name: groupHeader + schema: object + required: true + description: '' + - name: transactionInformation + schema: object + required: true + description: '' + responses: + - statusCode: '200' + description: >- + OK - Request for Status Update on Recall positive response was + received + - statusCode: '400' + description: '' + - statusCode: '404' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /collections/{collectionOrderId}:reject + method: manuallyRejectCollection + httpMethod: post + tag: SEPA Direct Debit + typeScriptTag: sepaDirectDebit + description: Manually Reject an Outgoing Collection. + parameters: + - name: collectionOrderId + schema: string + required: true + description: '' + example: COLLECTIONORDERID + responses: + - statusCode: '200' + description: >- + OK - The specified collection order has been marked to be manually + rejected. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /collections/{collectionOrderId}:rejectIncoming + method: manuallyRejectCollection + httpMethod: post + tag: SEPA Direct Debit + typeScriptTag: sepaDirectDebit + description: Manually Reject an Incoming Collection. + parameters: + - name: collectionOrderId + schema: string + required: true + description: '' + example: COLLECTIONORDERID + responses: + - statusCode: '200' + description: >- + OK - The specified collection order has been marked to be manually + rejected. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /collections/{collectionId}:reverse + method: reverseCollectionInstruction + httpMethod: post + tag: SEPA Direct Debit + typeScriptTag: sepaDirectDebit + description: Reverse a Collection Instruction. + parameters: + - name: collectionId + schema: string + required: true + description: '' + example: COLLECTIONID + - name: reasonCode + schema: string + required: true + description: '' + example: REASONCODE + responses: + - statusCode: '200' + description: OK - Collection Instruction marked to be reversed successfully. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /collections/{collectionId}:refund + method: refundCollectionInstruction + httpMethod: post + tag: SEPA Direct Debit + typeScriptTag: sepaDirectDebit + description: Refund a Collection Instruction. + parameters: + - name: collectionId + schema: string + required: true + description: '' + example: COLLECTIONID + - name: reasonCode + schema: string + required: true + description: '' + example: REASONCODE + responses: + - statusCode: '200' + description: OK - Collection Instruction marked to be refunded successfully. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /collections/{collectionId}/aml:resendCallout + method: resendCallout + httpMethod: post + tag: AML + typeScriptTag: aml + description: Resends the AML callout for an Outgoing collection. + parameters: + - name: collectionId + schema: string + required: true + description: '' + example: COLLECTIONID + responses: + - statusCode: '200' + description: OK - The AML callout was resent for the provided collection order. + - statusCode: '400' + description: '' + - statusCode: '405' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /collections/aml + method: submitAmlCheckResults + httpMethod: post + tag: AML + typeScriptTag: aml + description: >- + Accepts AML check results for collections, for example, SEPA Direct + Debits. + parameters: + - name: xRequestId + schema: string + required: true + description: >- + ID of the request, unique to the call, as determined by the initiating + party. + example: X-REQUEST-ID + - name: groupHeader + schema: object + required: true + description: '' + - name: transactions + schema: array + required: true + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: '' + - url: /aml:resendCallouts + method: resendCalloutsOperation + httpMethod: post + tag: AML + typeScriptTag: aml + description: Resends the AML callouts. + parameters: + - name: category + schema: string + required: false + description: '' + - name: direction + schema: string + required: true + description: '' + example: DIRECTION + - name: instructingAgent + schema: string + required: false + description: '' + - name: interbankSettlementDate + schema: string + required: false + description: '' + - name: messageId + schema: string + required: false + description: '' + responses: + - statusCode: '200' + description: OK - The AML callouts were resent. + - statusCode: '400' + description: '' + - statusCode: '405' + description: '' + - statusCode: '415' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /accounts/identifications:mask + method: maskIdentifications + httpMethod: post + tag: External Account Representation + typeScriptTag: externalAccountRepresentation + description: Mask identifications from Payments Gateway. + parameters: + - name: identifications + schema: array + required: true + description: '' + responses: + - statusCode: '200' + description: OK - Identifications masked. This operation is irreversible. + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. + - url: /instructions + method: details + httpMethod: get + tag: Search Messages + typeScriptTag: searchMessages + description: Retrieve the SEPA messages details. + parameters: + - name: sepaMessageFilter + schema: object + required: true + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '400' + description: '' + - statusCode: '500' + description: '' + - statusCode: '503' + description: >- + Service Unavailable - The server is currently unavailable. Generally, + this is a temporary state. +numberOfSchemas: 100 +apiDescription: Initiates payment orders. diff --git a/sdks/db/category-cache.yaml b/sdks/db/category-cache.yaml index 40ea2d1668..7f28cdcba7 100644 --- a/sdks/db/category-cache.yaml +++ b/sdks/db/category-cache.yaml @@ -317,3 +317,6 @@ apis: Innoship-undefined: eCommerce ilert-undefined: Compliance & Security Finshark-undefined: Finance + Localizely-undefined: Translation + Kombo-undefined: AI Tools + Mambu-Payments: Finance diff --git a/sdks/db/custom-request-last-fetched.yaml b/sdks/db/custom-request-last-fetched.yaml index 296c18b6dd..3d432a698e 100644 --- a/sdks/db/custom-request-last-fetched.yaml +++ b/sdks/db/custom-request-last-fetched.yaml @@ -297,3 +297,6 @@ lastUpdated: ilert.com: 2024-03-29T22:08:03.509Z inmobile.com: 2024-03-29T22:08:04.694Z finshark.io: 2024-03-29T22:13:00.312Z + localizely.com: 2024-03-29T22:18:27.559Z + kombo.dev: 2024-03-29T22:18:28.464Z + mambu.com_PaymentOrder: 2024-03-29T22:18:29.014Z diff --git a/sdks/db/custom-request-specs/kombo.dev.yaml b/sdks/db/custom-request-specs/kombo.dev.yaml new file mode 100644 index 0000000000..9fdebdecba --- /dev/null +++ b/sdks/db/custom-request-specs/kombo.dev.yaml @@ -0,0 +1,29581 @@ +openapi: 3.0.0 +info: + title: Kombo API + version: 1.0.0 +paths: + /check-api-key: + get: + operationId: GetCheckApiKey + responses: + '200': + description: GET /check-api-key Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCheckApiKeySuccessfulResponse' + examples: + example1: + value: + status: success + data: + environment_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + customer_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + '400': + description: GET /check-api-key Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCheckApiKeyErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: Check whether your API key is working properly. + summary: Check API key + tags: + - General + /force-sync: + post: + operationId: PostForceSync + responses: + '200': + description: POST /force-sync Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncSuccessfulResponse' + examples: + example1: + value: + status: success + data: + already_queued: false + sync_id: 119ihtp91nA3dqRFiV67nXS6 + '400': + description: POST /force-sync Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Trigger a sync for a specific integration. + + + Please note that it is **not** necessary nor recommended to + call this endpoint periodically on your side. Kombo already performs + period syncs for you and you should only trigger syncs yourself in + special cases (like when a user clicks on a "Sync" button in your + app). + summary: Trigger sync + tags: + - General + requestBody: + description: POST /force-sync request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncRequestBody' + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: workday:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /passthrough/{tool}/{api}: + post: + operationId: PostPassthroughToolApi + responses: + '200': + description: POST /passthrough/:tool/:api Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiSuccessfulResponse' + '400': + description: POST /passthrough/:tool/:api Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Send a request to the specified integration's native API. + + + At Kombo we put a lot of work into making sure that our unified API + covers all our customers' use cases and that they never have to think + about integration-specific logic again. There are cases, however, where + our customers want to build features that are very integration-specific. + That's where this endpoint comes in. + + + Pass in details about the request you want to make to the integration's + API and we'll forward it for you. We'll also take care of setting the + right base URL and authenticating your requests. + + + To get started, please pick the relevant API (some tools provide + multiple to due different base URLs or authentication schemes) from the + table below and pass in the `{tool}/{api}` identifier as part of the + path. + + + |Integration|`{tool}/{api}`|Description| + + |---|---|---| + + |Personio|`personio/personnel`|Personio's [Personnel Data + API](https://developer.personio.de/reference/get_company-employees). We + automatically authenticate all requests using the client ID and secret + and use `https://api.personio.de/v1` as the base URL.| + + |Workday|`workday/soap`|[Workday's SOAP + API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). + We automatically authenticate all requests. Set `data` to your raw xml + string. Use `/` as your `path`, as we will always send requests to + `https://{domain}/ccx/service/{tenant}/{service_name}/38.2`. Set your + `method` to `POST`. You need to specify the `api_options` object and set + `service_name` to the name of the service you want to call. Find all + available services + [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). + The string that you submit as `data` will be the content of the + `soapenv:Body` tag in the request.| + + |SAP SuccessFactors|`successfactors/odata-v2`|[SuccessFactors' OData V2 + API](https://help.sap.com/doc/74597e67f54d4f448252bad4c2b601c9/2211/en-US/SF_HCM_OData_API_REF_en.pdf). + We automatically authenticate all requests and use + `https://{api_domain}/odata/v2` as the base URL.| + + |Lever|`lever/v1`|[Lever's v1 + API](https://hire.lever.co/developer/documentation). We automatically + authenticate all requests using the partner credentials which have been + configured in the Lever tool settings (this uses Kombo's partner + credentials by default).| + + |Recruitee|`recruitee/default`|The [Recruitee + API](https://api.recruitee.com/docs/index.html). We automatically + authenticate all requests and use + `https://api.recruitee.com/c/{company_id}` as the base URL.| + + |Greenhouse|`greenhouse/harvest`|Greenhouse [Harvest + API](https://developers.greenhouse.io/harvest.html). We automatically + authenticate all requests using the API key and use + `https://harvest.greenhouse.io/v1` as the base URL.| + + |Teamtailor|`teamtailor/v1`|Teamtailor's + [JSON-API](https://docs.teamtailor.com/). We authenticate all request + with the Teamtailor API key and use the base URL + `https://api.teamtailor.com/v1`.| + + |Personio|`personio/recruiting`|Personio's [Recruiting + API](https://developer.personio.de/reference/get_company-employees). We + automatically authenticate all requests using the Recruiting access + token and use `https://api.personio.de/v1/recruiting` as the base URL.| + + |Personio|`personio/jobboard`|API endpoints exposed on Personio's public + job board pages ([currently just the XML + feed](https://developer.personio.de/reference/get_xml)). We + automatically use the right `https://{company}.jobs.personio.de` base + URL.| + + |BambooHR|`bamboohr/v1`|BambooHR's + [API](https://documentation.bamboohr.com/reference/get-employee). We + automatically authenticate all requests using the customer credentials + `https://api.bamboohr.com/api/gateway.php/{subdomain}/v1` as the base + URL.| + + |Workable|`workable/v1`|Workable's + [API](https://workable.readme.io/reference/generate-an-access-token). We + automatically authenticate all requests using the client ID and secret + and use `https://subdomain.workable.com/spi/v3` as the base URL.| + + |HiBob|`hibob/v1`|[HibBob's v1 + API](https://apidocs.hibob.com/reference/get_people). We automatically + authenticate all requests using the service user credentials (or, for + old integrations, the API key) and use `https://api.hibob.com/v1` as the + base URL.| + + |Pinpoint|`pinpoint/v1`|Pinpoint's + [JSON:API](https://developers.pinpointhq.com/docs). We automatically + authenticate all requests using the `X-API-KEY` header and use + `https://{subdomain}.pinpointhq.com/api/v1` as the base URL.| + + |Haufe Umantis|`umantis/v1`|[Umantis API + v1](https://recruitingapp-91005709.umantis.com/api/v1/swagger-ui). We + automatically authenticate all requests and use + `https://{subdomain}.umantis.com/api/v1` as the base URL.| + + |HRworks|`hrworks/v2`|HRWorks's v2 + [API](https://developers.hrworks.de/2.0/endpoints). We automatically + authenticate all requests using the customer credentials.| + + |JazzHR|`jazzhr/v1`|[JazzHR's v1 + API](https://www.resumatorapi.com/v1/#!`). We automatically authenticate + all requests.| + + + Please note that the passthrough API endpoints are only meant for + edge cases. That's why we only expose them for new integrations after + understanding a concrete customer use case. If you have such a use case + in mind, please reach out to Kombo. + summary: Send passthrough request + tags: + - General + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: greenhouse:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: tool + in: path + required: true + description: >- + The ID of the tool whose passthrough API you want to call (e.g., + `personio`). + schema: + $ref: '#/components/schemas/PostPassthroughToolApiParameterTool' + - name: api + in: path + required: true + description: >- + The ID of the passthrough API you want to call (some tools provide + multiple). Check the endpoint description for a list of all + available APIs. + schema: + $ref: '#/components/schemas/PostPassthroughToolApiParameterApi' + requestBody: + description: POST /passthrough/:tool/:api request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiRequestBody' + /integrations/{integration_id}: + delete: + operationId: DeleteIntegrationsIntegrationId + responses: + '200': + description: DELETE /integrations/:integration_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdSuccessfulResponse + '400': + description: DELETE /integrations/:integration_id Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: |- + Delete the specified integration. + **⚠️ This can not be undone!** + summary: Delete integration + tags: + - General + parameters: + - name: integration_id + in: path + required: true + description: DELETE /integrations/:integration_id parameter + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdParameterIntegrationId + requestBody: + description: DELETE /integrations/:integration_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteIntegrationsIntegrationIdRequestBody' + get: + operationId: GetIntegrationsIntegrationId + responses: + '200': + description: GET /integrations/:integration_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetIntegrationsIntegrationIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: factorial:8d1hpPsbjxUkoCoa1veLZGe5 + tool: + id: factorial + label: Factorial + internal_label: null + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + category: HRIS + status: ACTIVE + end_user: + organization_name: Acme + creator_email: example-integration-creator@acme.com + origin_id: 2DQJAUtSzzzKP9buDTvUvPk3 + scope_config: + id: B1hu5NGyhdjSq5X3hxEz4bAN + name: Anonymous Scopes + created_at: '2022-08-07T14:01:29.196Z' + beta: false + '400': + description: GET /integrations/:integration_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetIntegrationsIntegrationIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Get the specified integration with everything you need to display it to + your customer. + summary: Get integration details + tags: + - General + parameters: + - name: integration_id + in: path + required: true + description: GET /integrations/:integration_id parameter + schema: + $ref: >- + #/components/schemas/GetIntegrationsIntegrationIdParameterIntegrationId + /integrations/{integration_id}/relink: + post: + operationId: PostIntegrationsIntegrationIdRelink + responses: + '200': + description: POST /integrations/:integration_id/relink Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkSuccessfulResponse + '400': + description: POST /integrations/:integration_id/relink Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Create a link that will allow the user to reconnect an integration. This + is useful if you want to allow your users to update the credentials if + the old ones for example expired. + + + Embed this the same way you would [embed the connect + link](https://api.kombo.dev). By default, the link will be valid for 1 + hour. + + + ### Example Request Body + + + ```json + + { + "language": "en" + } + + ``` + summary: Create reconnection link + tags: + - General + parameters: + - name: integration_id + in: path + required: true + description: POST /integrations/:integration_id/relink parameter + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkParameterIntegrationId + examples: + example1: + value: personio:93fCvorjZ2jas7ZekX1V1n5d + requestBody: + description: POST /integrations/:integration_id/relink request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkRequestBody + examples: + example1: + value: + language: en + /tools/{category}: + get: + operationId: GetToolsCategory + responses: + '200': + description: GET /tools/:category Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetToolsCategorySuccessfulResponse' + examples: + example1: + value: + status: success + data: + tools: + - id: factorial + label: Factorial + internal_label: null + assets: + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + icon_black_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon-black.svg + coverage: + read_models: + - id: hris_employees + label: Employees + - id: hris_teams + label: Groups + write_actions: + - id: hris_create_employee + label: Create employee + features: + - id: automatic_source_writing + label: Automatic Source Writing + '400': + description: GET /tools/:category Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetToolsCategoryErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Get a list of the tools (i.e., integrations) enabled in your + environment. + This can (in combination with the `integration_tool` parameter of [the "Create Link" endpoint](https://api.kombo.dev)) be used to, for example, display a custom list or grid of available integrations to your end users instead of exposing Kombo Connect's standard tool selector. + summary: Get tools + parameters: + - name: category + in: path + required: true + description: GET /tools/:category parameter + schema: + $ref: '#/components/schemas/GetToolsCategoryParameterCategory' + tags: + - General + /hris/provisioning-groups/{group_id}/diff: + post: + operationId: PostHrisProvisioningGroupsGroupIdDiff + responses: + '200': + description: POST /hris/provisioning-groups/:group_id/diff Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffSuccessfulResponse + '400': + description: POST /hris/provisioning-groups/:group_id/diff Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Get the list of users to provision, deprovision, and optionally update + based on the users you've already provisioned in your system. + summary: Get provisioning diff + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: group_id + in: path + required: true + description: ID of the provisioning group (currently only `default` is allowed). + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffParameterGroupId + examples: + example1: + value: n39n320clr8c5amf8v83nbch + requestBody: + description: POST /hris/provisioning-groups/:group_id/diff request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffRequestBody + examples: + example1: + value: + provisioned_users: + - origin_id: your_id_123 + email: johndoe@example.com + options: + employee_fields: + - id + - first_name + - last_name + tags: + - Unified HRIS API + /hris/provisioning-groups/{group_id}/setup-links: + post: + operationId: PostHrisProvisioningGroupsGroupIdSetupLinks + responses: + '200': + description: >- + POST /hris/provisioning-groups/:group_id/setup-links Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksSuccessfulResponse + examples: + example1: + value: + status: success + data: + url: >- + https://connect.kombo.dev/v1/provisioning?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + expires_at: '2023-10-11T12:00:00.000Z' + '400': + description: POST /hris/provisioning-groups/:group_id/setup-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Create a new link that can be passed to the Kombo Connect SDK to open + the provisioning setup UI. + summary: Create provisioning setup link + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: group_id + in: path + required: true + description: ID of the provisioning group (currently only `default` is allowed). + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId + examples: + example1: + value: n39n320clr8c5amf8v83nbch + requestBody: + description: POST /hris/provisioning-groups/:group_id/setup-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody + examples: + example1: + value: + language: en + /hris/employees: + get: + operationId: GetHrisEmployees + responses: + '200': + description: GET /hris/employees Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmployeesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + employments: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + time_off_balances: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + manager: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJg + work_email: john.doe@acme.com + remote_id: '32' + groups: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + legal_entity: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + work_location: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: GET /hris/employees Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmployeesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all employees. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Not interested in most fields? You can use our [our Scopes + feature](https://api.kombo.dev) to customize what data points are + synced. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get employees + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterRemoteIds' + - name: employment_status + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** + Filter by the `employment_status` field. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatus' + - name: employment_statuses + in: query + required: false + description: >- + Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, + `LEAVE` + + * `ACTIVE`: the employee is **actively employed** + + * `PENDING`: the employee is **not actively employed yet** (but they + signed their contract or are part of an onboarding process) + + * `INACTIVE`: a full-time employee is no longer employed, or, for a + contract worker when their contract runs out + + * `LEAVE`: the employee is still employed but **currently on leave** + (note that not all HR systems support this status — use our absences + API for detailed information) + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatuses' + - name: group_ids + in: query + required: false + description: >- + Filter by a comma-separated list of group IDs. We will only return + employees that are members of _any_ of the groups. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterGroupIds' + - name: legal_entity_ids + in: query + required: false + description: >- + Filter by a comma-separated list of legal entity IDs. We will only + return employees that are members of _any_ of the legal entities. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterLegalEntityIds' + - name: work_location_ids + in: query + required: false + description: >- + Filter by a comma-separated list of work location IDs. We will only + return employees who are at _any_ of the work locations. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterWorkLocationIds' + - name: work_emails + in: query + required: false + description: >- + Filter by a comma-separated list of work emails. We will only return + employees who have _any_ of the work emails. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterWorkEmails' + - name: personal_emails + in: query + required: false + description: >- + Filter by a comma-separated list of personal emails. We will only + return employees who have _any_ of the personal emails. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterPersonalEmails' + post: + operationId: PostHrisEmployees + responses: + '200': + description: POST /hris/employees Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + '400': + description: POST /hris/employees Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new employee. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "first_name": "John", + "last_name": "Doe", + "work_email": "john.doe@acme.com", + "gender": "MALE", + "job_title": "Integrations Team Lead", + "home_address": { + "city": "Berlin", + "country": "DE", + "state": "Berlin", + "street_1": "Sonnenallee 63", + "zip_code": "12045" + }, + "date_of_birth": "1986-01-01", + "start_date": "2020-04-07" + } + + ``` + summary: Create employee + tags: + - Unified HRIS API + requestBody: + description: POST /hris/employees request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesRequestBody' + examples: + example1: + value: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /hris/employees/{employee_id}: + patch: + operationId: PatchHrisEmployeesEmployeeId + responses: + '200': + description: PATCH /hris/employees/:employee_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchHrisEmployeesEmployeeIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + '400': + description: PATCH /hris/employees/:employee_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Update an employee. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "BkgfzSr5muN9cUTMD4wDQFn4", + "first_name": "John", + "last_name": "Doe", + "work_email": "john.doe@acme.com", + "ssn": "555-32-6395", + "tax_id": "12 345 678 901", + "gender": "MALE", + "marital_status": "MARRIED", + "date_of_birth": "1986-01-01", + "start_date": "2020-04-07", + "termination_date": "2022-05-20", + "job_title": "Integrations Team Lead", + "nationality": "DE", + "home_address": { + "city": "Berlin", + "country": "DE", + "state": "Berlin", + "street_1": "Sonnenallee 63", + "zip_code": "12045" + } + } + + ``` + summary: Update employee + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr: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/PatchHrisEmployeesEmployeeIdParameterEmployeeId + examples: + example1: + value: BkgfzSr5muN9cUTMD4wDQFn4 + requestBody: + description: PATCH /hris/employees/:employee_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdRequestBody' + examples: + example1: + value: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + marital_status: MARRIED + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + termination_date: '2022-05-20' + job_title: Integrations Team Lead + nationality: DE + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + /hris/employees/{employee_id}/attachments: + post: + operationId: PostHrisEmployeesEmployeeIdAttachments + responses: + '200': + description: POST /hris/employees/:employee_id/attachments Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsSuccessfulResponse + '400': + description: POST /hris/employees/:employee_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Currently in closed beta. + + **This endpoint is currently in closed beta!** We're testing it + with selected customers before its public release. If you're interested + in learning more or getting early access, please reach out. + summary: Add attachment to employees 🦄 + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: employee_id + in: path + required: true + description: POST /hris/employees/:employee_id/attachments parameter + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsParameterEmployeeId + requestBody: + description: POST /hris/employees/:employee_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsRequestBody + tags: + - Unified HRIS API + /hris/teams: + get: + operationId: GetHrisTeams + responses: + '200': + description: GET /hris/teams Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTeamsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + '400': + description: GET /hris/teams Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTeamsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Get the teams. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Please use [the `/groups` endpoint](https://api.kombo.dev) instead. It returns the same data but the naming makes more sense as the model not only includes teams but also departments and cost centers.. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get teams (deprecated) + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterRemoteIds' + /hris/groups: + get: + operationId: GetHrisGroups + responses: + '200': + description: GET /hris/groups Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisGroupsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + '400': + description: GET /hris/groups Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisGroupsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all "groups" (teams, departments, and cost centers). + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get groups + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterRemoteIds' + /hris/employments: + get: + operationId: GetHrisEmployments + responses: + '200': + description: GET /hris/employments Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmploymentsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + '400': + description: GET /hris/employments Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmploymentsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all employments. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get employments + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterRemoteIds' + /hris/locations: + get: + operationId: GetHrisLocations + responses: + '200': + description: GET /hris/locations Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLocationsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: GET /hris/locations Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLocationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all work locations. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get work locations + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterRemoteIds' + /hris/absence-types: + get: + operationId: GetHrisAbsenceTypes + responses: + '200': + description: GET /hris/absence-types Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/absence-types Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all absence types. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get absence types + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterRemoteIds' + /hris/time-off-balances: + get: + operationId: GetHrisTimeOffBalances + responses: + '200': + description: GET /hris/time-off-balances Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/time-off-balances Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all time off balances. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get time off balances + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterRemoteIds' + - name: employee_id + in: query + required: false + description: Filter by a specific employee using their ID. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterEmployeeId' + /hris/absences: + get: + operationId: GetHrisAbsences + responses: + '200': + description: GET /hris/absences Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsencesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/absences Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsencesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all absences. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get absences + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterRemoteIds' + - name: date_from + in: query + required: false + description: >- + Filter for all the absences that either start _or_ haven't ended yet + on/after this day. If you imagine a calendar displaying absences, + this defines the left-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterDateFrom' + - name: date_until + in: query + required: false + description: >- + Filter for absences that start on or before this day (but might + continue after). If you imagine a calendar displaying absences, this + defines the right-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterDateUntil' + - name: type_ids + in: query + required: false + description: Filter by a comma-separated list of absence type IDs. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTypeIds' + - name: employee_id + in: query + required: false + description: Filter by a specific employee using their ID. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterEmployeeId' + - name: time_from + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for + absences that either start after or start before and end after a + certain time. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTimeFrom' + - name: time_until + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter + for absences that start before a certain time. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTimeUntil' + post: + operationId: PostHrisAbsences + responses: + '200': + description: POST /hris/absences Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: POST /hris/absences Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new absence. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Check [this page](https://api.kombo.dev) for a detailed guide. + + + + This endpoint requires the permission **Manage absences** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "wXJMxwDvPAjrJ4CyqdV9", + "absence_type_id": "3YKtQ7qedsrcCady1jSyAkY1", + "start_date": "2019-09-17", + "end_date": "2019-09-21", + "start_half_day": false, + "end_half_day": false, + "employee_note": "Visiting the aliens", + "start_time": "08:30:00", + "end_time": "16:00:00" + } + + ``` + summary: Create absence + tags: + - Unified HRIS API + requestBody: + description: POST /hris/absences request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesRequestBody' + examples: + example1: + value: + employee_id: wXJMxwDvPAjrJ4CyqdV9 + absence_type_id: 3YKtQ7qedsrcCady1jSyAkY1 + start_date: '2019-09-17' + end_date: '2019-09-21' + start_time: '08:30:00' + end_time: '16:00:00' + start_half_day: false + end_half_day: false + employee_note: Visiting the aliens + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /hris/absences/{absence_id}: + delete: + operationId: DeleteHrisAbsencesAbsenceId + responses: + '200': + description: DELETE /hris/absences/:absence_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteHrisAbsencesAbsenceIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: DELETE /hris/absences/:absence_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Delete this absence. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage absences** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "absence_id": "wXJMxwDvPAjrJ4CyqdV9" + } + + ``` + summary: Delete absence + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: absence_id + in: path + required: true + description: The ID of the absence + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdParameterAbsenceId' + examples: + example1: + value: wXJMxwDvPAjrJ4CyqdV9 + requestBody: + description: DELETE /hris/absences/:absence_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdRequestBody' + examples: + example1: + value: {} + /hris/legal-entities: + get: + operationId: GetHrisLegalEntities + responses: + '200': + description: GET /hris/legal-entities Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + '400': + description: GET /hris/legal-entities Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all legal entites. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get legal entities + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterRemoteIds' + /ats/applications: + get: + operationId: GetAtsApplications + responses: + '200': + description: GET /ats/applications Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + candidate: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + interviews: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + title: Interview with John Doe + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + '400': + description: GET /ats/applications Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all applications. + + + Visit our in depth guide to learn more about: + + - 💡 [Being aware of which applications are + tracked](/ats/features/implementation-guide/tracking-created-applications#be-aware-of-which-applications-are-tracked) + + - 🚦 [Hiring + signals](/ats/features/implementation-guide/tracking-created-applications#hiring-signals) + + - 📈 [Application stage + changes](/ats/features/implementation-guide/tracking-created-applications#application-stage-changes) + + - ❓ [ATS-specific + limitations](/ats/features/implementation-guide/tracking-created-applications#ats-specific-limitations) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get applications + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterRemoteIds' + - name: outcome + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter + applications by outcome. This allows you to get applications that + are for example `PENDING`, `HIRED`, or `DECLINED`. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterOutcome' + - name: outcomes + in: query + required: false + description: |- + Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` + * `PENDING`: The application is still being processed. + * `HIRED`: The candidate was hired. + * `DECLINED`: The candidate was declined. + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterOutcomes' + - name: remote_created_after + in: query + required: false + description: >- + Filter applications by the day they were created in the remote + system. This allows you to get applications that were created on or + after a certain day. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterRemoteCreatedAfter' + /ats/applications/{application_id}/stage: + put: + operationId: PutAtsApplicationsApplicationIdStage + responses: + '200': + description: PUT /ats/applications/:application_id/stage Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageSuccessfulResponse + '400': + description: PUT /ats/applications/:application_id/stage Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Moves an application to a specified stage. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "stage_id": "3PJ8PZhZZa1eEdd2DtPNtVup" + } + + ``` + summary: Move application to stage + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: PUT /ats/applications/:application_id/stage parameter + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageParameterApplicationId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: PUT /ats/applications/:application_id/stage request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageRequestBody + examples: + example1: + value: + stage_id: 3PJ8PZhZZa1eEdd2DtPNtVup + /ats/applications/{application_id}/result-links: + post: + operationId: PostAtsApplicationsApplicationIdResultLinks + responses: + '200': + description: >- + POST /ats/applications/:application_id/result-links Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/result-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a result link to an application. + + This can, for example, be used to link a candidate back to a test + result/assessment in your application. As not all ATS tools have a + "result link" feature, we sometimes repurpose other fields to expose it. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "application_id": "8Xi6iZrwusZqJmDGXs49GBmJ", + "label": "Assessment Result", + "url": "https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG", + "details": { + "custom_field_name_prefix": "Acme:", + "attributes": [ + { + "key": "Score", + "value": "100%" + }, + { + "key": "Time", + "value": "2:30h" + } + ] + } + } + + ``` + summary: Add result link to application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: Kombo ID of the application you want to create the link for. + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksParameterApplicationId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/applications/:application_id/result-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksRequestBody + examples: + example1: + value: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + /ats/applications/{application_id}/notes: + post: + operationId: PostAtsApplicationsApplicationIdNotes + responses: + '200': + description: POST /ats/applications/:application_id/notes Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/notes Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a note to an application. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Add extra information to an application. This can be any extra text + information you want to add to an application. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "content": "A new message from the candidate is available in YourChat!", + "content_type": "PLAIN_TEXT" + } + + ``` + summary: Add note to application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: Kombo ID of the application you want to create the note for. + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesParameterApplicationId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/applications/:application_id/notes request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesRequestBody + examples: + example1: + value: + content: A new message from the candidate is available in YourChat! + content_type: PLAIN_TEXT + /ats/applications/{application_id}/attachments: + post: + operationId: PostAtsApplicationsApplicationIdAttachments + responses: + '200': + description: >- + POST /ats/applications/:application_id/attachments Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: |- + Uploads an attachment file for the specified applicant. + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + ### Example Request Body + + ```json + { + "application_id": "GRKdd9dibYKKCrmGRSMJf3wu", + "attachment": { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + } + ``` + summary: Add attachment to application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: POST /ats/applications/:application_id/attachments parameter + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: POST /ats/applications/:application_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsRequestBody + examples: + example1: + value: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + /ats/candidates: + get: + operationId: GetAtsCandidates + responses: + '200': + description: GET /ats/candidates Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsCandidatesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + applications: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + '400': + description: GET /ats/candidates Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsCandidatesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all candidates. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get candidates + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterRemoteIds' + - name: email + in: query + required: false + description: >- + Filter the candidates based on an email address. When set, returns + only the candidates where the given `email` is in + `email_addresses`. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterEmail' + post: + operationId: PostAtsCandidates + responses: + '200': + description: POST /ats/candidates Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesSuccessfulResponse' + '400': + description: POST /ats/candidates Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new candidate and application for the specified job. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + We realized that in practice it was always more about creating _applications_ instead of _candidates_, so we created a new, more aptly named one that you should use instead: [Create application](https://api.kombo.dev) + + Using it also has the benefit that we return the newly created applicant at the root level, so you can easily store its ID. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "candidate": { + "first_name": "Frank", + "last_name": "Doe", + "company": "Acme Inc.", + "title": "Head of Integrations", + "email_address": "frank.doe@example.com", + "phone_number": "+1-541-754-3010", + "gender": "MALE", + "salary_expectations": { + "amount": 100000, + "period": "YEAR" + }, + "availability_date": "2021-01-01", + "location": { + "city": "New York", + "country": "US" + }, + "social_links": [ + { + "url": "https://www.linkedin.com/in/frank-doe-123456789/" + }, + { + "url": "https://twitter.com/frankdoe" + } + ] + }, + "application": { + "job_id": "BDpgnpZ148nrGh4mYHNxJBgx", + "stage_id": "8x3YKRDcuRnwShdh96ShBNn1" + }, + "screening_question_answers": [ + { + "question_id": "3phFBNXRweGnDmsU9o2vdPuQ", + "answer": "Yes" + }, + { + "question_id": "EYJjhMQT3LtVKXnTbnRT8s6U", + "answer": [ + "GUzE666zfyjeoCJX6A8n7wh6", + "5WPHzzKAv8cx97KtHRUV96U8", + "7yZfKGzWigXxxRTygqAfHvyE" + ] + } + ], + "attachments": [ + { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + ] + } + + ``` + summary: Create candidate + tags: + - Unified ATS API + requestBody: + description: POST /ats/candidates request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesRequestBody' + examples: + example1: + value: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + social_links: + - url: https://www.linkedin.com/in/frank-doe-123456789/ + - url: https://twitter.com/frankdoe + application: + job_id: BDpgnpZ148nrGh4mYHNxJBgx + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /ats/candidates/{candidate_id}: + patch: + operationId: PatchAtsCandidatesCandidateId + responses: + '200': + description: PATCH /ats/candidates/:candidate_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdSuccessfulResponse + '400': + description: PATCH /ats/candidates/:candidate_id Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Currently in closed beta. + + **This endpoint is currently in closed beta!** We're testing it + with selected customers before its public release. If you're interested + in learning more or getting early access, please reach out. + summary: Update candidate 🦄 + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: PATCH /ats/candidates/:candidate_id parameter + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdParameterCandidateId + requestBody: + description: PATCH /ats/candidates/:candidate_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAtsCandidatesCandidateIdRequestBody' + tags: + - Unified ATS API + /ats/candidates/{candidate_id}/attachments: + post: + operationId: PostAtsCandidatesCandidateIdAttachments + responses: + '200': + description: POST /ats/candidates/:candidate_id/attachments Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Uploads an attachment file for the specified candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "candidate_id": "GRKdd9dibYKKCrmGRSMJf3wu", + "attachment": { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + } + + ``` + summary: Add attachment to candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: POST /ats/candidates/:candidate_id/attachments parameter + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsParameterCandidateId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: POST /ats/candidates/:candidate_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsRequestBody + examples: + example1: + value: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + /ats/candidates/{candidate_id}/result-links: + post: + operationId: PostAtsCandidatesCandidateIdResultLinks + responses: + '200': + description: POST /ats/candidates/:candidate_id/result-links Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/result-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a result link to a candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Please use [add result link to application](https://api.kombo.dev) instead. + This can, for example, be used to link a candidate back to a test + result/assessment in your application. As not all ATS tools have a + "result link" feature, we sometimes repurpose other fields to expose it. + + + This action is deprecated because result links usually concern + applications and not candidates. Use endpoint nested under + `/applications` instead.. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "label": "Assessment Result", + "url": "https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG", + "details": { + "custom_field_name_prefix": "Acme:", + "attributes": [ + { + "key": "Score", + "value": "100%" + }, + { + "key": "Time", + "value": "2:30h" + } + ] + } + } + + ``` + summary: Add result link to candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: Kombo ID of the candidate you want to create the link for. + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/candidates/:candidate_id/result-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksRequestBody + examples: + example1: + value: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + /ats/candidates/{candidate_id}/tags: + post: + operationId: PostAtsCandidatesCandidateIdTags + responses: + '200': + description: POST /ats/candidates/:candidate_id/tags Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/tags Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a tag to a candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Kombo takes care of creating the tag if required, finding out the right + ID, and appending it to the list of tags. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "tag": { + "name": "Excellent Fit" + } + } + + ``` + summary: Add tag to candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: Kombo ID of the candidate you want to add the tag to. + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/candidates/:candidate_id/tags request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesCandidateIdTagsRequestBody' + examples: + example1: + value: + tag: + name: Excellent Fit + delete: + operationId: DeleteAtsCandidatesCandidateIdTags + responses: + '200': + description: DELETE /ats/candidates/:candidate_id/tags Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsSuccessfulResponse + '400': + description: DELETE /ats/candidates/:candidate_id/tags Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Remove a tag from a candidate based on its name. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + This will also succeed if the tag does not exist on the candidate. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "tag": { + "name": "Excellent Fit" + } + } + + ``` + summary: Remove tag from candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: Kombo ID of the candidate you want to remove the tag from. + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: DELETE /ats/candidates/:candidate_id/tags request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsRequestBody + examples: + example1: + value: + tag: + name: Excellent Fit + /ats/tags: + get: + operationId: GetAtsTags + responses: + '200': + description: GET /ats/tags Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsTagsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/tags Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsTagsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all tags. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get tags + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterRemoteIds' + /ats/application-stages: + get: + operationId: GetAtsApplicationStages + responses: + '200': + description: GET /ats/application-stages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/application-stages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Get all application stages available in the ATS. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Get all application stages available in the ATS. This is deprecated because most ATS systems have separate sets of stages for each job. We'd recommend using the `stages` property on jobs instead.. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get application stages + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: >- + #/components/schemas/GetAtsApplicationStagesParameterIncludeDeleted + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterRemoteIds' + /ats/jobs: + get: + operationId: GetAtsJobs + responses: + '200': + description: GET /ats/jobs Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsJobsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + description: >- +

Kombo is hiring engineers! If you are reading + this and you are located in Berlin, Germany, feel + free to contact us about this position.

+ confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + stages: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + index: 0 + screening_questions: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + title: Which is your primary programming language? + description: >- + Please enter the language you are most + comfortable with. + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + index: 0 + required: true + job_postings: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + hiring_team: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + hiring_team_roles: + - RECRUITER + '400': + description: GET /ats/jobs Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsJobsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all jobs. + + + Visit our in depth guide to learn more about: + + - 🔄 [Getting updates of the + data](/ats/features/implementation-guide/reading-jobs#getting-updates-of-the-data) + + - ❗ [Handling failing + syncs](/ats/features/implementation-guide/reading-jobs#handling-failing-syncs) + + - 🔍 [Letting your customer choose which jobs to + expose](/ats/features/implementation-guide/reading-jobs#let-your-customer-choose-which-jobs-to-expose-to-you) + + - 🔗 [Matching jobs in your database to ATS + jobs](/ats/features/implementation-guide/reading-jobs#match-jobs-in-your-database-to-ats-jobs) + + - 🗑️ [Reacting to deleted/closed + jobs](/ats/features/implementation-guide/reading-jobs#reacting-to-deleted-closed-jobs) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get jobs + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterRemoteIds' + - name: job_codes + in: query + required: false + description: Filter by a comma-separated list of job codes. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterJobCodes' + - name: post_url + in: query + required: false + description: >- + Filter by the `post_url` field. Can be used to find a job based on + its public posting URL. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterPostUrl' + - name: status + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by + the `status` field. Can be used to find a job based on its status. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterStatus' + - name: statuses + in: query + required: false + description: >- + Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, + `ARCHIVED` + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterStatuses' + - name: visibilities + in: query + required: false + description: >- + Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, + `UNLISTED`, `CONFIDENTIAL` + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterVisibilities' + - name: name_contains + in: query + required: false + description: >- + Filter by the `name` field. Can be used to find a job by keywords + present in the job name. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterNameContains' + /ats/jobs/{job_id}/applications: + post: + operationId: PostAtsJobsJobIdApplications + responses: + '200': + description: POST /ats/jobs/:job_id/applications Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsJobsJobIdApplicationsSuccessfulResponse + '400': + description: POST /ats/jobs/:job_id/applications Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new application and candidate for the specified job. + + + Visit our in depth guide to learn more about: + + - 🌐 [Setting the source of the + application](/ats/features/implementation-guide/creating-applications#set-the-source-of-the-application) + + - 📎 [Uploading attachments with the + application](/ats/features/implementation-guide/creating-applications#upload-attachments-with-the-application) + + - ♻️ [Retry + behaviour](/ats/features/implementation-guide/creating-applications#retry-behaviour) + + - ✏️ [Writing answers to screening + questions](/ats/features/implementation-guide/creating-applications#write-answers-to-screening-questions) + + - ⚠️ [Handling ATS-specific + limitations](/ats/features/implementation-guide/creating-applications#handle-ats-specific-limitations) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "stage_id": "8x3YKRDcuRnwShdh96ShBNn1", + "candidate": { + "first_name": "Frank", + "last_name": "Doe", + "company": "Acme Inc.", + "title": "Head of Integrations", + "email_address": "frank.doe@example.com", + "phone_number": "+1-541-754-3010", + "gender": "MALE", + "salary_expectations": { + "amount": 100000, + "period": "YEAR" + }, + "availability_date": "2021-01-01", + "location": { + "city": "New York", + "country": "US" + } + }, + "attachments": [ + { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + ], + "screening_question_answers": [ + { + "question_id": "3phFBNXRweGnDmsU9o2vdPuQ", + "answer": "Yes" + }, + { + "question_id": "EYJjhMQT3LtVKXnTbnRT8s6U", + "answer": [ + "GUzE666zfyjeoCJX6A8n7wh6", + "5WPHzzKAv8cx97KtHRUV96U8", + "7yZfKGzWigXxxRTygqAfHvyE" + ] + } + ] + } + + ``` + summary: Create application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: job_id + in: path + required: true + description: >- + Kombo ID or Remote ID of the Job this candidate should apply for. If + you want to use the ID of the integrated system (remote_id) you need + to prefix the id with "remote:". You can use the remote ID if you do + not want to sync jobs. + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsParameterJobId' + examples: + example1: + value: BDpgnpZ148nrGh4mYHNxJBgx + requestBody: + description: POST /ats/jobs/:job_id/applications request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsRequestBody' + examples: + example1: + value: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + /ats/users: + get: + operationId: GetAtsUsers + responses: + '200': + description: GET /ats/users Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsUsersSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/users Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsUsersErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all users. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get users + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterRemoteIds' + /assessment/packages: + get: + operationId: GetAssessmentPackages + responses: + '200': + description: GET /assessment/packages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentPackagesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + packages: + - id: '1001' + name: TypeScript + description: TypeScript coding skills assessments + updated_at: '2023-06-29T18:47:40.890Z' + type: SKILLS_TEST + '400': + description: GET /assessment/packages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentPackagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Get all available assessment packages for an integration. + + + This is mainly intended for debugging. As you always need to submit the + full list of available packages when using ["set + packages"](https://api.kombo.dev), there shouldn't ever be a need to + call this endpoint in production. + summary: Get packages + tags: + - Unified ATS (Assessment) API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + put: + operationId: PutAssessmentPackages + responses: + '200': + description: PUT /assessment/packages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesSuccessfulResponse' + '400': + description: PUT /assessment/packages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Replaces the list of available assessment packages. + + + Packages that have been previously submitted through this endpoint but + aren't included again will be marked as deleted. + summary: Set packages + requestBody: + description: PUT /assessment/packages request body + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesRequestBody' + examples: + example1: + value: + packages: + - id: '1001' + type: SKILLS_TEST + name: TypeScript + description: TypeScript coding skills assessments + - id: '1002' + type: VIDEO_INTERVIEW + name: Video Interview + description: Video interview to assess communication skills + tags: + - Unified ATS (Assessment) API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /assessment/orders/open: + get: + operationId: GetAssessmentOrdersOpen + responses: + '200': + description: GET /assessment/orders/open Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenSuccessfulResponse' + '400': + description: GET /assessment/orders/open Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: Get all open assessment orders of an integration. + summary: Get open orders + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenParameterPageSize' + tags: + - Unified ATS (Assessment) API + /assessment/orders/{assessment_order_id}/result: + put: + operationId: PutAssessmentOrdersAssessmentOrderIdResult + responses: + '200': + description: >- + PUT /assessment/orders/:assessment_order_id/result Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultSuccessfulResponse + '400': + description: PUT /assessment/orders/:assessment_order_id/result Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Updates an assessment order result. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + ### Example Request Body + + + ```json + + { + "status": "COMPLETED", + "result_url": "https://example.com", + "completed_at": "2023-04-04T00:00:00.000Z", + "score": 90, + "max_score": 100, + "attributes": [ + { + "field": "remarks", + "value": "Test completed with passing score" + } + ] + } + + ``` + summary: Update order result + tags: + - Unified ATS (Assessment) API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: assessment_order_id + in: path + required: true + description: PUT /assessment/orders/:assessment_order_id/result parameter + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultParameterAssessmentOrderId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: PUT /assessment/orders/:assessment_order_id/result request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultRequestBody + examples: + example1: + value: + status: COMPLETED + score: 90 + max_score: 100 + result_url: https://example.com + completed_at: '2023-04-04T00:00:00.000Z' + attributes: + - field: remarks + value: Test completed with passing score + /connect/create-link: + post: + operationId: PostConnectCreateLink + responses: + '200': + description: POST /connect/create-link Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkSuccessfulResponse' + examples: + example1: + value: + status: success + data: + link: >- + https://connect.kombo.dev/v1?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + '400': + description: POST /connect/create-link Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Generate a unique link that allows your user to enter the embedded Kombo + Connect flow. + + + > Check out [our full guide](https://api.kombo.dev) for more details + about implementing the connection flow into your app. + + + > Kombo will not deduplicate integrations for you that are created with + this endpoint. You are responsible for keeping track of integrations in + your system and prevent customers from connecting the same tool again. + Use the [reconnection link](https://api.kombo.dev) endpoint if you want + a customer to update their credentials. + + + ### Example Request Body + + + ```json + + { + "end_user_email": "test@example.com", + "end_user_organization_name": "Test Inc.", + "end_user_origin_id": "123", + "integration_category": "HRIS", + "integration_tool": "personio", + "language": "en" + } + + ``` + summary: Create connection link + tags: + - Kombo Connect + requestBody: + description: POST /connect/create-link request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkRequestBody' + examples: + example1: + value: + end_user_email: test@example.com + end_user_organization_name: Test Inc. + integration_category: HRIS + integration_tool: personio + end_user_origin_id: '123' + language: en + /connect/integration-by-token/{token}: + get: + operationId: GetConnectIntegrationByTokenToken + responses: + '200': + description: GET /connect/integration-by-token/:token Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenSuccessfulResponse + examples: + example1: + value: + status: success + data: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + '400': + description: GET /connect/integration-by-token/:token Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Use this endpoint with the token you get from the connection flow to + retrieve information about the created integration. + + It works in a similar way as the OAuth2 code flow to securely retrieve information and connect the integration to your user. + + > Check out [our full guide](https://api.kombo.dev) for more details + about implementing the connection flow into your app. + + + This endpoint is used to ensure users can't trick your system connecting + their + + account in your system to another customers integration. You don't get + the integration ID + + from the `showKomboConnect(link)` function but only the short lived + token used + + for this endpoint so that users can't send you arbitrary data that you + would put + + into your system. + summary: Get integration by token + tags: + - Kombo Connect + parameters: + - name: token + in: path + required: true + description: GET /connect/integration-by-token/:token parameter + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenParameterToken + /connect/activate-integration: + post: + operationId: PostConnectActivateIntegration + responses: + '200': + description: POST /connect/activate-integration Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostConnectActivateIntegrationSuccessfulResponse + examples: + example1: + value: + status: success + data: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + '400': + description: POST /connect/activate-integration Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostConnectActivateIntegrationErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Use this endpoint with the token you get from the connection flow to + retrieve information about the created integration. It works in a + similar way as the OAuth2 code flow to securely retrieve information and + connect the integration to your user. You do not need to call this + endpoint for an integration to become active. + + + We are deprecating this endpoint in favour of the [get + integration by code endpoint](https://api.kombo.dev). To migrate you + only have to change to the new API endpoint. + + + ### Example Request Body + + + ```json + + { + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXNzYWdlIjoiVGhpcyBpcyBub3QgYW4gYWN0dWFsIHRva2VuLiJ9.JulqgOZBMKceI8vh9YLpVX51efND0ZyfUNHDXLrPz_4" + } + + ``` + summary: Activate integration (optional) + tags: + - Kombo Connect + requestBody: + description: POST /connect/activate-integration request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectActivateIntegrationRequestBody' + /custom/datev/passthrough: + post: + operationId: PostCustomDatevPassthrough + responses: + '200': + description: POST /custom/datev/passthrough Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPassthroughSuccessfulResponse + '400': + description: POST /custom/datev/passthrough Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPassthroughErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Write raw DATEV ASCII file + tags: + - Custom Endpoints + requestBody: + description: POST /custom/datev/passthrough request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPassthroughRequestBody' + 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 + /custom/datev/employees/{employee_id}/prepare-payroll: + put: + operationId: PutCustomDatevEmployeesEmployeeIdPreparePayroll + responses: + '200': + description: >- + PUT /custom/datev/employees/:employee_id/prepare-payroll Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollSuccessfulResponse + '400': + description: >- + PUT /custom/datev/employees/:employee_id/prepare-payroll Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "EvLV61zdahkN4ftPJbmPCkdv", + "payroll_run": { + "date": "2022-05-01" + }, + "hourly_payments": [ + { + "hours": 14, + "lohnart": 200 + }, + { + "hours": 16, + "lohnart": 232 + } + ], + "fixed_payments": [ + { + "amount": 560, + "lohnart": 100 + } + ], + "custom_lodas": [ + { + "amount": 8, + "lohnart": 300, + "bearbeitungsschluessel": 4 + } + ] + } + + ``` + summary: Prepare DATEV Payroll + 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 + /custom/datev/employees/{employee_id}/compensations: + put: + operationId: PutCustomDatevEmployeesEmployeeIdCompensations + responses: + '200': + description: >- + PUT /custom/datev/employees/:employee_id/compensations Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsSuccessfulResponse + '400': + description: >- + PUT /custom/datev/employees/:employee_id/compensations Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Sets the compensations for an employee on the specified effective date. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + 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. + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "3bdhemmSP1TPQDGWtRveRot9", + "effective_date": "2022-12-01", + "compensations": [ + { + "amount": 4500, + "currency": "EUR", + "period": "MONTH", + "lohnart": 200 + }, + { + "amount": 30, + "currency": "EUR", + "period": "HOUR" + } + ] + } + + ``` + summary: Set DATEV compensations + 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 + /custom/datev/data-pushes: + get: + operationId: GetCustomDatevDataPushes + responses: + '200': + description: GET /custom/datev/data-pushes Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetCustomDatevDataPushesSuccessfulResponse + '400': + description: GET /custom/datev/data-pushes Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCustomDatevDataPushesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Get DATEV data pushes + 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 + /custom/datev/push-data/general: + post: + operationId: PostCustomDatevPushDataGeneral + responses: + '200': + description: POST /custom/datev/push-data/general Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataGeneralSuccessfulResponse + '400': + description: POST /custom/datev/push-data/general Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataGeneralErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Push general data to DATEV + tags: + - Custom Endpoints + requestBody: + description: POST /custom/datev/push-data/general request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPushDataGeneralRequestBody' + 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 + /custom/datev/push-data/payroll: + post: + operationId: PostCustomDatevPushDataPayroll + responses: + '200': + description: POST /custom/datev/push-data/payroll Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataPayrollSuccessfulResponse + '400': + description: POST /custom/datev/push-data/payroll Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataPayrollErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Push payroll data to DATEV + tags: + - Custom Endpoints + requestBody: + description: POST /custom/datev/push-data/payroll request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPushDataPayrollRequestBody' + 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 + /custom/silae/employees/{employee_id}/payroll-supplements: + post: + operationId: PostCustomSilaeEmployeesEmployeeIdPayrollSupplements + responses: + '200': + description: >- + POST /custom/silae/employees/:employee_id/payroll-supplements + Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsSuccessfulResponse + '400': + description: >- + POST /custom/silae/employees/:employee_id/payroll-supplements Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Write a payroll supplement to Silae using the supplement code. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "EvLV61zdahkN4ftPJbmPCkdv", + "supplement_code": "200", + "effective_date": "2024-01-14", + "element_amount": 6 + } + + ``` + summary: Write Payroll Supplement + 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 +components: + schemas: + GetCheckApiKeySuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + environment_id: + type: string + required: [] + customer_id: + type: string + description: '**(⚠️ Deprecated)** Renamed to `environment_id`.' + required: [] + required: + - environment_id + - customer_id + example: + environment_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + customer_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + required: + - status + - data + GetCheckApiKeyErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostForceSyncSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + already_queued: + type: boolean + description: 'We only allow 1 concurrent sync to be running or queued. ' + required: [] + sync_id: + type: string + description: 'ID of the newly-created or already-queued-or-running sync. ' + required: [] + required: + - already_queued + - sync_id + example: + already_queued: false + sync_id: 119ihtp91nA3dqRFiV67nXS6 + required: + - status + - data + PostForceSyncErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostForceSyncRequestBody: + type: object + PostPassthroughToolApiParameterTool: + type: string + description: >- + The ID of the tool whose passthrough API you want to call (e.g., + `personio`). + required: [] + PostPassthroughToolApiParameterApi: + type: string + description: >- + The ID of the passthrough API you want to call (some tools provide + multiple). Check the endpoint description for a list of all available + APIs. + required: [] + PostPassthroughToolApiSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + url: + type: string + format: url + description: >- + The full URL of the request that we automatically assemble for + you based on the specified `api`, the specified `path`, and the + integration's auth credentials. You can use this to debug + path-related issues (e.g., the API returning 404 errors). + required: [] + status: + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + description: The HTTP status code returned from the remote system. + required: [] + headers: + type: object + additionalProperties: + oneOf: + - type: string + - type: array + items: + type: string + description: The HTTP headers returned from the remote system. + required: [] + data: + format: any + description: >- + The HTTP body returned from the remote system. This will either + be an array or object (in the case that JSON was returned) or a + string (in any other case). + required: [] + required: + - url + - status + - headers + required: + - status + - data + PostPassthroughToolApiErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostPassthroughToolApiRequestBody: + allOf: + - type: object + properties: + method: + type: string + enum: + - GET + - POST + - DELETE + - PUT + - PATCH + description: The HTTP method (e.g., `GET`) of the request. + path: + type: string + pattern: /^\// + description: >- + The path of the endpoint you want to call. We automatically + prepend the base URL of the API (all base URLs are documented in + the endpoint description). + headers: + type: object + additionalProperties: + type: string + description: >- + The headers to send with the request. Note that we automatically + supply any authentication-related headers. + params: + type: object + additionalProperties: + type: string + description: >- + The query parameters to send in addition to the ones in the + `path`. + data: + format: any + description: >- + The data to submit as part of the request body. This can either + be an array or object (in which case we will forward it as JSON) + or a string (in which case we will forward it raw). + response_as_base64: + type: boolean + description: >- + If set to `true`, the response will be returned as a + base64-encoded string. This is useful for binary data (e.g., + PDFs). + multipart_form_data: + type: array + items: + type: object + properties: + name: + type: string + description: The key of the form data + value: + oneOf: + - type: string + description: >- + The value of the form data (Can be an object if the + field is of the type file) + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + required: + - name + - value + description: >- + The data to submit as part of the request body if the + request's `Content-Type` is `multipart/form-data`. + description: >- + The data to submit as part of the request body if the request's + `Content-Type` is `multipart/form-data`. + api_options: + type: object + additionalProperties: + type: string + description: >- + Custom options interpreted by the passthrough API adapter you've + selected. These options are not documented right now as they're + only for very advanced use cases. + required: + - method + - path + example: + method: GET + path: /company/employees + DeleteIntegrationsIntegrationIdParameterIntegrationId: + type: string + required: [] + DeleteIntegrationsIntegrationIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + DeleteIntegrationsIntegrationIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteIntegrationsIntegrationIdRequestBody: + type: object + GetIntegrationsIntegrationIdParameterIntegrationId: + type: string + required: [] + GetIntegrationsIntegrationIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + required: [] + tool: + type: object + properties: + id: + type: string + description: The ID of the connected tool in Kombo (e.g. `factorial`). + required: [] + label: + type: string + required: [] + internal_label: + nullable: true + type: string + description: >- + Internal label that can help you debug specific variants of + the integration. Only show the `label` to your users. + required: [] + logo_url: + type: string + format: url + description: >- + URL to an SVG logo of the connected tool. The logo usually + contains the tool name. + required: [] + icon_url: + type: string + format: url + description: URL to a square SVG icon of the connected tool. + required: [] + required: + - id + - label + - internal_label + - logo_url + - icon_url + category: + type: string + enum: + - HRIS + - ATS + - ASSESSMENT + required: [] + status: + type: string + enum: + - ACTIVE + - INVALID + - INACTIVE + required: [] + end_user: + type: object + properties: + organization_name: + type: string + required: [] + creator_email: + nullable: true + type: string + format: email + required: [] + origin_id: + nullable: true + type: string + description: >- + The ID you have passed initially to the connection flow to + create this integration. + required: [] + required: + - organization_name + - creator_email + - origin_id + scope_config: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - name + created_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + beta: + type: boolean + required: [] + required: + - id + - tool + - category + - status + - end_user + - scope_config + - created_at + - beta + example: + id: factorial:8d1hpPsbjxUkoCoa1veLZGe5 + tool: + id: factorial + label: Factorial + internal_label: null + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + category: HRIS + status: ACTIVE + end_user: + organization_name: Acme + creator_email: example-integration-creator@acme.com + origin_id: 2DQJAUtSzzzKP9buDTvUvPk3 + scope_config: + id: B1hu5NGyhdjSq5X3hxEz4bAN + name: Anonymous Scopes + created_at: '2022-08-07T14:01:29.196Z' + beta: false + required: + - status + - data + GetIntegrationsIntegrationIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostIntegrationsIntegrationIdRelinkParameterIntegrationId: + type: string + required: [] + PostIntegrationsIntegrationIdRelinkSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + link: + type: string + format: url + required: [] + required: + - link + required: + - status + - data + PostIntegrationsIntegrationIdRelinkErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostIntegrationsIntegrationIdRelinkRequestBody: + allOf: + - type: object + properties: + language: + type: string + enum: + - en + - de + - fr + default: en + description: Language of the connection flow UI. + required: [] + example: + language: en + GetToolsCategoryParameterCategory: + type: string + enum: + - hris + - ats + - assessment + required: [] + GetToolsCategorySuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tools: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + internal_label: + nullable: true + type: string + description: >- + Internal label that can help you debug specific variants + of the integration. Only show the `label` to your users. + required: [] + assets: + type: object + properties: + logo_url: + type: string + required: [] + icon_url: + type: string + required: [] + icon_black_url: + type: string + required: [] + required: + - logo_url + - icon_url + - icon_black_url + coverage: + type: object + properties: + read_models: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + description: List of models we can read for this tool. + required: [] + write_actions: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + description: List of supported write actions for this tool. + required: [] + features: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + required: [] + required: + - read_models + - write_actions + - features + description: >- + This describes the supported models and actions of this + tool. + required: + - id + - label + - internal_label + - assets + - coverage + required: [] + required: + - tools + example: + tools: + - id: factorial + label: Factorial + internal_label: null + assets: + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + icon_black_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon-black.svg + coverage: + read_models: + - id: hris_employees + label: Employees + - id: hris_teams + label: Groups + write_actions: + - id: hris_create_employee + label: Create employee + features: + - id: automatic_source_writing + label: Automatic Source Writing + required: + - status + - data + GetToolsCategoryErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdDiffParameterGroupId: + type: string + description: ID of the provisioning group (currently only `default` is allowed). + required: [] + PostHrisProvisioningGroupsGroupIdDiffSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + users: + type: object + properties: + to_provision: + type: array + items: + type: object + properties: + email: + nullable: true + type: string + format: email + description: The email address of the user. + required: [] + employee: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + required: [] + avatar: + nullable: true + type: string + required: [] + work_location_id: + nullable: true + type: string + required: [] + legal_entity_id: + nullable: true + type: string + required: [] + description: >- + The field of the underlying employee (which ones are + included depends on the `employee_fields` array you + supplied). + required: [] + required: + - email + - employee + description: >- + The users we've found in the HR systems who match the + provisioning filters but haven't been provisioned in your + system yet. + required: [] + to_deprovision: + type: array + items: + type: object + properties: + origin_id: + type: string + description: >- + _Your_ ID for this user (that you submitted through + `origin_id`). + required: [] + email: + type: string + format: email + description: The email address of the user. + required: [] + required: + - origin_id + - email + description: >- + The users who've been provisioned in your system but + couldn't be found in the HR system or don't match the + provisioning filters. + required: [] + already_provisioned: + type: array + items: + type: object + properties: + origin_id: + type: string + description: >- + _Your_ ID for this user (that you submitted through + `origin_id`). + required: [] + email: + type: string + format: email + description: The email address of the user. + required: [] + employee: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + required: [] + avatar: + nullable: true + type: string + required: [] + work_location_id: + nullable: true + type: string + required: [] + legal_entity_id: + nullable: true + type: string + required: [] + description: >- + The field of the underlying employee (which ones are + included depends on the `employee_fields` array you + supplied). + required: [] + required: + - origin_id + - email + - employee + description: >- + The users who are in the HR system and match the + provisioning filters but have already been provisioned in + your system. + required: [] + required: + - to_provision + - to_deprovision + - already_provisioned + required: + - users + description: The users to provision, deprovision, and optionally update. + required: + - status + - data + PostHrisProvisioningGroupsGroupIdDiffErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdDiffRequestBody: + allOf: + - type: object + properties: + provisioned_users: + type: array + items: + type: object + properties: + origin_id: + type: string + description: >- + _Your_ ID for this user (_not_ an ID retrieved from + Kombo). + email: + type: string + format: email + description: This user's email address. + required: + - origin_id + - email + description: Array of the already provisioned users in your system. + options: + type: object + properties: + employee_fields: + type: array + items: + type: string + enum: + - id + - remote_id + - first_name + - last_name + - groups + - avatar + - work_location_id + - legal_entity_id + description: The employee fields relevant for your use case. + required: + - employee_fields + description: Options to customize what we return. + required: + - provisioned_users + - options + example: + provisioned_users: + - origin_id: your_id_123 + email: johndoe@example.com + options: + employee_fields: + - id + - first_name + - last_name + PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId: + type: string + description: ID of the provisioning group (currently only `default` is allowed). + required: [] + PostHrisProvisioningGroupsGroupIdSetupLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + url: + type: string + format: url + description: The setup link URL to pass to the Kombo Connect SDK. + required: [] + expires_at: + description: When this link expires. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - url + - expires_at + example: + url: >- + https://connect.kombo.dev/v1/provisioning?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + expires_at: '2023-10-11T12:00:00.000Z' + required: + - status + - data + PostHrisProvisioningGroupsGroupIdSetupLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody: + allOf: + - type: object + properties: + language: + type: string + enum: + - en + - de + - fr + default: en + description: >- + Language of the UI. Please note that the provisioning setup UI + is _not_ translated yet but we're working on it and setting this + already will make sure the translations appear once released. + required: [] + example: + language: en + GetHrisEmployeesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisEmployeesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisEmployeesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisEmployeesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisEmployeesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisEmployeesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisEmployeesParameterEmploymentStatus: + type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + description: >- + **(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** + Filter by the `employment_status` field. + required: [] + GetHrisEmployeesParameterEmploymentStatuses: + type: string + description: >- + Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, + `LEAVE` + + * `ACTIVE`: the employee is **actively employed** + + * `PENDING`: the employee is **not actively employed yet** (but they + signed their contract or are part of an onboarding process) + + * `INACTIVE`: a full-time employee is no longer employed, or, for a + contract worker when their contract runs out + + * `LEAVE`: the employee is still employed but **currently on leave** + (note that not all HR systems support this status — use our absences API + for detailed information) + + + Leave this blank to get results matching all values. + required: [] + GetHrisEmployeesParameterGroupIds: + type: string + description: >- + Filter by a comma-separated list of group IDs. We will only return + employees that are members of _any_ of the groups. + required: [] + GetHrisEmployeesParameterLegalEntityIds: + type: string + description: >- + Filter by a comma-separated list of legal entity IDs. We will only + return employees that are members of _any_ of the legal entities. + required: [] + GetHrisEmployeesParameterWorkLocationIds: + type: string + description: >- + Filter by a comma-separated list of work location IDs. We will only + return employees who are at _any_ of the work locations. + required: [] + GetHrisEmployeesParameterWorkEmails: + type: string + description: >- + Filter by a comma-separated list of work emails. We will only return + employees who have _any_ of the work emails. + required: [] + GetHrisEmployeesParameterPersonalEmails: + type: string + description: >- + Filter by a comma-separated list of personal emails. We will only return + employees who have _any_ of the personal emails. + required: [] + GetHrisEmployeesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + required: [] + employee_number: + nullable: true + type: string + description: An optional, organization-internal employee number. + required: [] + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + nationality: + nullable: true + type: string + description: The employee’s nationality. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. Not + all HR systems provide an explicit display name, so we + recommend falling back to `first_name` and + `last_name`. + required: [] + job_title: + nullable: true + type: string + description: The employee’s job title. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email + address is invalid, we will set this to `null`. + required: [] + personal_email: + nullable: true + type: string + format: email + description: >- + The employee’s personal email address. If the email + address is invalid, we will set this to `null`. + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + nullable: true + type: string + description: Social security number + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, + `NON_BINARY`, or `NOT_SPECIFIED`) **or** — in rare + cases where can't find a clear mapping — the original + string passed through. + required: [] + ethnicity: + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where + can't find a clear mapping — the original string + passed through. + required: [] + marital_status: + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, + `SEPARATED`, or `NOT_MARRIED`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + required: [] + employment_status: + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed + yet** (but they signed their contract or are part of + an onboarding process) + + - `INACTIVE`: the employee is **not actively + employed** anymore + + - `LEAVE`: the employee is still employed but + **currently on leave** (note that not all HR systems + support this status — use our absences API for + detailed information) + + + Please note that in rare cases, where we can't find a + clear mapping, the original string is passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, + `PART_TIME`, `CONTRACT`, `INTERNSHIP`, `FREELANCE`, + `WORKING_STUDENT`, `APPRENTICESHIP`, or `TRAINING`) + **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The employee's weekly working hours. + required: [] + avatar: + nullable: true + type: string + description: >- + URL to the employee’s avatar. This is either the raw + URL from the HR system (in cases where it can be + requested without short-lived authentication) _or_ a + URL to a temporarily cached version of the file hosted + by Kombo. Kombo will delete the cached file after its + deletion in the source system. + required: [] + work_location_id: + nullable: true + type: string + description: >- + The ID of the employee’s work location. Can be used to + retrieve the work location from the `hris_locations` + endpoint. + required: [] + legal_entity_id: + nullable: true + type: string + description: The ID of the employee’s legal entity. + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + nullable: true + type: string + default: null + description: >- + The internationally unique IBAN identifying this + account. + required: [] + bic: + nullable: true + type: string + default: null + description: >- + The internationally unique BIC/SWIFT code + identifying the bank behind this account. + required: [] + account_number: + nullable: true + type: string + default: null + description: >- + The bank-specific account number. Some companies + use the account number field to put the IBAN + here. + required: [] + holder_name: + nullable: true + type: string + default: null + description: The name of the holder of this account. + required: [] + bank_name: + nullable: true + type: string + default: null + description: The name of the bank behind this account. + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + type: string + description: >- + Bank routing number (e.g. DE Bankleitzahl, + GB Sort Code, US ABA routing number, AU BSB + code + required: [] + type: + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + nullable: true + description: >- + The date the employee started working for the + organization. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + nullable: true + description: >- + The date when the employment ends. Can be in the past + or future. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: >- + The date and time the object was created in the remote + system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + - type: object + properties: + employments: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + job_title: + nullable: true + type: string + description: >- + **(⚠️ Deprecated)** We now provide the + `job_title` directly on the employee model. + required: [] + pay_rate: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + pay_period: + nullable: true + oneOf: + - type: string + enum: + - HOUR + - DAY + - WEEK + - TWO_WEEKS + - HALF_MONTH + - MONTH + - TWO_MONTHS + - QUARTER + - HALF_YEAR + - YEAR + required: [] + - type: string + description: >- + If we can't find a clear mapping: The + original string passed through. + required: [] + description: >- + One of 10 standardized values (`HOUR`, `DAY`, + `WEEK`, `TWO_WEEKS`, `HALF_MONTH`, `MONTH`, + `TWO_MONTHS`, `QUARTER`, `HALF_YEAR`, or `YEAR`) + **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + pay_frequency: + nullable: true + oneOf: + - type: string + enum: + - DAILY + - WEEKLY + - BIWEEKLY + - MONTHLY + - SEMIMONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - PRO_RATA + required: [] + - type: string + description: >- + If we can't find a clear mapping: The + original string passed through. + required: [] + description: >- + One of 9 standardized values (`DAILY`, `WEEKLY`, + `BIWEEKLY`, `MONTHLY`, `SEMIMONTHLY`, + `QUARTERLY`, `SEMIANNUALLY`, `ANNUALLY`, or + `PRO_RATA`) **or** — in rare cases where can't + find a clear mapping — the original string + passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The + original string passed through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, + `PART_TIME`, `CONTRACT`, `INTERNSHIP`, + `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in + rare cases where can't find a clear mapping — + the original string passed through. + required: [] + pay_currency: + nullable: true + type: string + description: >- + Pay currency usually returned in [ISO 4217 + currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + required: [] + effective_date: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - job_title + - pay_rate + - pay_period + - pay_frequency + - employment_type + - pay_currency + - effective_date + - changed_at + - remote_deleted_at + - remote_data + - custom_fields + example: + id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: [] + time_off_balances: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + type_id: + type: string + required: [] + balance: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount time available to the employee. + required: [] + balance_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + used: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + used_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - type_id + - balance + - balance_unit + - changed_at + - remote_deleted_at + - used + - used_unit + - remote_data + example: + id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + required: [] + manager: + nullable: true + type: object + properties: + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. + Not all HR systems provide an explicit display + name, so we recommend falling back to `first_name` + and `last_name`. + required: [] + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email + address is invalid, we will set this to `null`. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + required: [] + required: + - first_name + - last_name + - display_full_name + - id + - work_email + - remote_id + example: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJg + work_email: john.doe@acme.com + remote_id: '32' + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, + `TEAM`, and `COST_CENTER` + required: [] + required: + - id + - remote_id + - name + - type + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + required: [] + legal_entity: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with + the raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + required: + - id + - remote_id + - name + - address + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, + `TEAM`, and `COST_CENTER` + required: [] + required: + - id + - remote_id + - name + - type + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + description: >- + **(⚠️ Deprecated - Please use `groups` instead. It + includes the same data and the naming is less + confusing.)** Maintained field for backwards + compatibility. + required: [] + work_location: + nullable: true + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with + the raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + type: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - type + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - employments + - time_off_balances + - manager + - groups + - legal_entity + - teams + - work_location + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + employments: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + time_off_balances: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + manager: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJg + work_email: john.doe@acme.com + remote_id: '32' + groups: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + legal_entity: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + work_location: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + GetHrisEmployeesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_number: + nullable: true + type: string + description: An optional, organization-internal employee number. + required: [] + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + nationality: + nullable: true + type: string + description: The employee’s nationality. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. Not all HR + systems provide an explicit display name, so we recommend + falling back to `first_name` and `last_name`. + required: [] + job_title: + nullable: true + type: string + description: The employee’s job title. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email address is + invalid, we will set this to `null`. + required: [] + personal_email: + nullable: true + type: string + format: email + description: >- + The employee’s personal email address. If the email address is + invalid, we will set this to `null`. + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + nullable: true + type: string + description: Social security number + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, `NON_BINARY`, or + `NOT_SPECIFIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + ethnicity: + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where can't find a + clear mapping — the original string passed through. + required: [] + marital_status: + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, `SEPARATED`, or + `NOT_MARRIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + employment_status: + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed yet** (but + they signed their contract or are part of an onboarding process) + + - `INACTIVE`: the employee is **not actively employed** anymore + + - `LEAVE`: the employee is still employed but **currently on + leave** (note that not all HR systems support this status — use + our absences API for detailed information) + + + Please note that in rare cases, where we can't find a clear + mapping, the original string is passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases where + can't find a clear mapping — the original string passed through. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The employee's weekly working hours. + required: [] + avatar: + nullable: true + type: string + description: >- + URL to the employee’s avatar. This is either the raw URL from + the HR system (in cases where it can be requested without + short-lived authentication) _or_ a URL to a temporarily cached + version of the file hosted by Kombo. Kombo will delete the + cached file after its deletion in the source system. + required: [] + work_location_id: + nullable: true + type: string + description: >- + The ID of the employee’s work location. Can be used to retrieve + the work location from the `hris_locations` endpoint. + required: [] + legal_entity_id: + nullable: true + type: string + description: The ID of the employee’s legal entity. + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw address + string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains the + first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + nullable: true + type: string + default: null + description: The internationally unique IBAN identifying this account. + required: [] + bic: + nullable: true + type: string + default: null + description: >- + The internationally unique BIC/SWIFT code identifying the + bank behind this account. + required: [] + account_number: + nullable: true + type: string + default: null + description: >- + The bank-specific account number. Some companies use the + account number field to put the IBAN here. + required: [] + holder_name: + nullable: true + type: string + default: null + description: The name of the holder of this account. + required: [] + bank_name: + nullable: true + type: string + default: null + description: The name of the bank behind this account. + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + type: string + description: >- + Bank routing number (e.g. DE Bankleitzahl, GB Sort + Code, US ABA routing number, AU BSB code + required: [] + type: + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + nullable: true + description: The date the employee started working for the organization. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + nullable: true + description: The date when the employment ends. Can be in the past or future. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: The date and time the object was created in the remote system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + required: + - status + - data + PostHrisEmployeesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesRequestBody: + allOf: + - type: object + properties: + first_name: + type: string + last_name: + type: string + work_email: + type: string + format: email + description: >- + The email address of the employee to be created. For tools where + the personal email address is required, we map this input to the + personal email. This is documented on a per-tool basis. + gender: + type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + description: The gender of the employee. + job_title: + type: string + description: Title of the position this person is working in. + home_address: + type: object + properties: + street_1: + type: string + street_2: + type: string + city: + type: string + state: + type: string + zip_code: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's home address. For systems that have other formats + than `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO + Codes to the appropriate value. + description: The employee's home address. + date_of_birth: + description: >- + The employee's date of birth. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + mobile_phone_number: + type: string + nationality: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + start_date: + description: >- + Start date of the employee. Also considered to be the hire date. + This is a plain date (i.e., `yyyy-MM-dd`), all time information + is discarded. + 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 + remote_fields: + type: object + properties: + humaans: + type: object + properties: + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Humaans `Employee` + object. + description: Fields specific to Humaans. + silae: + type: object + properties: + siret: + type: string + description: >- + The siret of the company. The siret can be found as the + remote ID of a Silae legal entity. + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employee` + object. + employment: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employment` + object. + description: Fields specific to Silae. + required: + - silae + description: >- + Additional fields that we will pass through to specific HRIS + systems. + required: + - first_name + - last_name + - work_email + example: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + PatchHrisEmployeesEmployeeIdParameterEmployeeId: + 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`) + required: [] + PatchHrisEmployeesEmployeeIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_number: + nullable: true + type: string + description: An optional, organization-internal employee number. + required: [] + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + nationality: + nullable: true + type: string + description: The employee’s nationality. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. Not all HR + systems provide an explicit display name, so we recommend + falling back to `first_name` and `last_name`. + required: [] + job_title: + nullable: true + type: string + description: The employee’s job title. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email address is + invalid, we will set this to `null`. + required: [] + personal_email: + nullable: true + type: string + format: email + description: >- + The employee’s personal email address. If the email address is + invalid, we will set this to `null`. + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + nullable: true + type: string + description: Social security number + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, `NON_BINARY`, or + `NOT_SPECIFIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + ethnicity: + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where can't find a + clear mapping — the original string passed through. + required: [] + marital_status: + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, `SEPARATED`, or + `NOT_MARRIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + employment_status: + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed yet** (but + they signed their contract or are part of an onboarding process) + + - `INACTIVE`: the employee is **not actively employed** anymore + + - `LEAVE`: the employee is still employed but **currently on + leave** (note that not all HR systems support this status — use + our absences API for detailed information) + + + Please note that in rare cases, where we can't find a clear + mapping, the original string is passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases where + can't find a clear mapping — the original string passed through. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The employee's weekly working hours. + required: [] + avatar: + nullable: true + type: string + description: >- + URL to the employee’s avatar. This is either the raw URL from + the HR system (in cases where it can be requested without + short-lived authentication) _or_ a URL to a temporarily cached + version of the file hosted by Kombo. Kombo will delete the + cached file after its deletion in the source system. + required: [] + work_location_id: + nullable: true + type: string + description: >- + The ID of the employee’s work location. Can be used to retrieve + the work location from the `hris_locations` endpoint. + required: [] + legal_entity_id: + nullable: true + type: string + description: The ID of the employee’s legal entity. + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw address + string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains the + first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + nullable: true + type: string + default: null + description: The internationally unique IBAN identifying this account. + required: [] + bic: + nullable: true + type: string + default: null + description: >- + The internationally unique BIC/SWIFT code identifying the + bank behind this account. + required: [] + account_number: + nullable: true + type: string + default: null + description: >- + The bank-specific account number. Some companies use the + account number field to put the IBAN here. + required: [] + holder_name: + nullable: true + type: string + default: null + description: The name of the holder of this account. + required: [] + bank_name: + nullable: true + type: string + default: null + description: The name of the bank behind this account. + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + type: string + description: >- + Bank routing number (e.g. DE Bankleitzahl, GB Sort + Code, US ABA routing number, AU BSB code + required: [] + type: + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + nullable: true + description: The date the employee started working for the organization. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + nullable: true + description: The date when the employment ends. Can be in the past or future. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: The date and time the object was created in the remote system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + required: + - status + - data + PatchHrisEmployeesEmployeeIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PatchHrisEmployeesEmployeeIdRequestBody: + allOf: + - type: object + properties: + first_name: + type: string + last_name: + type: string + work_email: + type: string + format: email + description: >- + The email address of the employee to be created. For tools where + the personal email address is required, we map this input to the + personal email. This is documented on a per-tool basis. + gender: + type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + description: The gender of the employee. + job_title: + type: string + description: Title of the position this person is working in. + home_address: + type: object + properties: + street_1: + type: string + street_2: + type: string + city: + type: string + state: + type: string + zip_code: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's home address. For systems that have other formats + than `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO + Codes to the appropriate value. + description: The employee's home address. + date_of_birth: + description: >- + The employee's date of birth. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + mobile_phone_number: + type: string + nationality: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + start_date: + description: >- + Start date of the employee. Also considered to be the hire date. + This is a plain date (i.e., `yyyy-MM-dd`), all time information + is discarded. + 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 + remote_fields: + type: object + properties: + humaans: + type: object + properties: + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Humaans `Employee` + object. + description: Fields specific to Humaans. + silae: + type: object + properties: + siret: + type: string + description: >- + The siret of the company. The siret can be found as the + remote ID of a Silae legal entity. + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employee` + object. + employment: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employment` + object. + description: Fields specific to Silae. + required: + - silae + description: >- + Additional fields that we will pass through to specific HRIS + systems. + required: + - first_name + - last_name + - work_email + example: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + - type: object + properties: + ssn: + type: string + description: Social security number of the employee. + marital_status: + type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + description: Marital status of an employee. + termination_date: + description: >- + Date on which the employment ends. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + tax_id: + type: string + description: >- + Tax ID of the employee. Most contries have different formats of + that. In Germany, this is the `Steuer ID` and in the US it's the + `TIN`. + nationality: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + required: [] + PostHrisEmployeesEmployeeIdAttachmentsParameterEmployeeId: + type: string + required: [] + PostHrisEmployeesEmployeeIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostHrisEmployeesEmployeeIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesEmployeeIdAttachmentsRequestBody: + type: object + GetHrisTeamsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisTeamsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisTeamsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisTeamsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisTeamsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisTeamsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisTeamsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, `TEAM`, and + `COST_CENTER` + required: [] + parent_id: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - changed_at + - remote_deleted_at + - type + - parent_id + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: + - status + - data + GetHrisTeamsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisGroupsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisGroupsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisGroupsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisGroupsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisGroupsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisGroupsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisGroupsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, `TEAM`, and + `COST_CENTER` + required: [] + parent_id: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - changed_at + - remote_deleted_at + - type + - parent_id + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: + - status + - data + GetHrisGroupsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisEmploymentsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisEmploymentsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisEmploymentsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisEmploymentsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisEmploymentsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisEmploymentsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisEmploymentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + job_title: + nullable: true + type: string + description: >- + **(⚠️ Deprecated)** We now provide the `job_title` + directly on the employee model. + required: [] + pay_rate: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + pay_period: + nullable: true + oneOf: + - type: string + enum: + - HOUR + - DAY + - WEEK + - TWO_WEEKS + - HALF_MONTH + - MONTH + - TWO_MONTHS + - QUARTER + - HALF_YEAR + - YEAR + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string + passed through. + required: [] + description: >- + One of 10 standardized values (`HOUR`, `DAY`, `WEEK`, + `TWO_WEEKS`, `HALF_MONTH`, `MONTH`, `TWO_MONTHS`, + `QUARTER`, `HALF_YEAR`, or `YEAR`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + required: [] + pay_frequency: + nullable: true + oneOf: + - type: string + enum: + - DAILY + - WEEKLY + - BIWEEKLY + - MONTHLY + - SEMIMONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - PRO_RATA + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string + passed through. + required: [] + description: >- + One of 9 standardized values (`DAILY`, `WEEKLY`, + `BIWEEKLY`, `MONTHLY`, `SEMIMONTHLY`, `QUARTERLY`, + `SEMIANNUALLY`, `ANNUALLY`, or `PRO_RATA`) **or** — in + rare cases where can't find a clear mapping — the original + string passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string + passed through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + required: [] + pay_currency: + nullable: true + type: string + description: >- + Pay currency usually returned in [ISO 4217 currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + required: [] + effective_date: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - job_title + - pay_rate + - pay_period + - pay_frequency + - employment_type + - pay_currency + - effective_date + - changed_at + - remote_deleted_at + - remote_data + - custom_fields + example: + id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: + - status + - data + GetHrisEmploymentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisLocationsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisLocationsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisLocationsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisLocationsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisLocationsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisLocationsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisLocationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw + address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains + the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + type: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - type + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + GetHrisLocationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisAbsenceTypesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisAbsenceTypesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisAbsenceTypesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisAbsenceTypesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisAbsenceTypesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisAbsenceTypesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisAbsenceTypesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + nullable: true + type: boolean + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and `end_half_day`) + for this absence type. + required: [] + exact_times_supported: + nullable: true + type: boolean + description: >- + `true` if the system supports exact times (absences with a + `start_time` and an `end_time`) for this absence, `false` + if not. + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisAbsenceTypesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisTimeOffBalancesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisTimeOffBalancesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisTimeOffBalancesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisTimeOffBalancesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisTimeOffBalancesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisTimeOffBalancesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisTimeOffBalancesParameterEmployeeId: + type: string + description: Filter by a specific employee using their ID. + required: [] + GetHrisTimeOffBalancesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + type_id: + type: string + required: [] + balance: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount time available to the employee. + required: [] + balance_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + used: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + used_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - type_id + - balance + - balance_unit + - changed_at + - remote_deleted_at + - used + - used_unit + - remote_data + example: + id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + - type: object + properties: + type: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + nullable: true + type: boolean + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and + `end_half_day`) for this absence type. + required: [] + exact_times_supported: + nullable: true + type: boolean + description: >- + `true` if the system supports exact times + (absences with a `start_time` and an `end_time`) + for this absence, `false` if not. + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - type + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisTimeOffBalancesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisAbsencesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisAbsencesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisAbsencesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisAbsencesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisAbsencesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisAbsencesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisAbsencesParameterDateFrom: + description: >- + Filter for all the absences that either start _or_ haven't ended yet + on/after this day. If you imagine a calendar displaying absences, this + defines the left-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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: [] + GetHrisAbsencesParameterDateUntil: + description: >- + Filter for absences that start on or before this day (but might continue + after). If you imagine a calendar displaying absences, this defines the + right-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all + time information is discarded. + 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: [] + GetHrisAbsencesParameterTypeIds: + type: string + description: Filter by a comma-separated list of absence type IDs. + required: [] + GetHrisAbsencesParameterEmployeeId: + type: string + description: Filter by a specific employee using their ID. + required: [] + GetHrisAbsencesParameterTimeFrom: + description: >- + **(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for + absences that either start after or start before and end after a certain + time. + 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: [] + GetHrisAbsencesParameterTimeUntil: + description: >- + **(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter for + absences that start before a certain time. + 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: [] + GetHrisAbsencesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + required: [] + employee_id: + type: string + required: [] + approver_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible + for approving this absence. + required: [] + start_date: + nullable: true + type: string + description: >- + The date this absence starts in the `yyyy-MM-dd` + format. + required: [] + end_date: + nullable: true + type: string + description: The date this absence ends in the `yyyy-MM-dd` format. + required: [] + start_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence starts in the middle of the day, + `false` if not, and `null` if the absence type doesn't + support half-day absences. If an absence goes across + multiple days and `start_half_day` is set, it means + that on the last day the absence is only on the first + half of the day. + required: [] + end_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence ends in the middle of the day, + `false` if not, and `null` if the absence type doesn't + support half-day absences. If an absence goes across + multiple days and `end_half_day` is set, it means that + on the first day the absence only starts in the second + half-day. + required: [] + start_time: + nullable: true + type: string + description: >- + The time at which this absence starts. Follows the + format `HH:mm:ss` (e.g., `14:45:15`). + required: [] + end_time: + nullable: true + type: string + description: >- + The time at which this absence ends. Follows the + format `HH:mm:ss` (e.g., `14:45:15`). + required: [] + amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of time this absence takes. + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + description: >- + The unit of time for this absence. Can be `HOURS` or + `DAYS`. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in + rare cases where can't find a clear mapping — the + original string passed through. + required: [] + employee_note: + nullable: true + type: string + description: A note the employee has added to this absence. + required: [] + type_id: + nullable: true + type: string + description: The Kombo absence type ID of this absence. + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + type: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + nullable: true + type: boolean + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and + `end_half_day`) for this absence type. + required: [] + exact_times_supported: + nullable: true + type: boolean + description: >- + `true` if the system supports exact times + (absences with a `start_time` and an `end_time`) + for this absence, `false` if not. + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - type + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisAbsencesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisAbsencesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_id: + type: string + required: [] + approver_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible for + approving this absence. + required: [] + start_date: + nullable: true + type: string + description: The date this absence starts in the `yyyy-MM-dd` format. + required: [] + end_date: + nullable: true + type: string + description: The date this absence ends in the `yyyy-MM-dd` format. + required: [] + start_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence starts in the middle of the day, `false` + if not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `start_half_day` is set, it means that on the last day the + absence is only on the first half of the day. + required: [] + end_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence ends in the middle of the day, `false` if + not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `end_half_day` is set, it means that on the first day the + absence only starts in the second half-day. + required: [] + start_time: + nullable: true + type: string + description: >- + The time at which this absence starts. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + end_time: + nullable: true + type: string + description: >- + The time at which this absence ends. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of time this absence takes. + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + description: The unit of time for this absence. Can be `HOURS` or `DAYS`. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in rare cases + where can't find a clear mapping — the original string passed + through. + required: [] + employee_note: + nullable: true + type: string + description: A note the employee has added to this absence. + required: [] + type_id: + nullable: true + type: string + description: The Kombo absence type ID of this absence. + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + PostHrisAbsencesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisAbsencesRequestBody: + allOf: + - type: object + properties: + employee_id: + type: string + description: >- + The ID of the employee in Kombo or their ID in the remote system + by prefixing it with `remote:` (e.g., `remote:12312`) + absence_type_id: + type: string + description: The ID of the absence type in Kombo (not its `remote_id`). + status: + type: string + enum: + - REQUESTED + - APPROVED + description: >- + Specify if the absence should be created in the requested or + approved state. Please note that some tools might approve + absences automatically if they were created for an absence type + that does not require approval. There are more edge cases that + might cause an absence to be approved automatically. + default: REQUESTED + start_date: + description: >- + When the absence starts. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + end_date: + description: >- + When the absence ends. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + start_half_day: + type: boolean + description: '`true` if the absence should start in the middle of the day.' + default: false + end_half_day: + type: boolean + description: '`true` if the absence should end in the middle of the day.' + default: false + amount: + type: number + format: double + minimum: 0 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: >- + Specifying this also requires specifying `unit`. This is + supported by very few tools. + unit: + type: string + enum: + - HOURS + - DAYS + description: Specifying this also requires specifying `amount`. + employee_note: + nullable: true + type: string + description: A note describing the reason for this absence. + start_time: + type: string + pattern: /^(?:2[0-3]|[01]?\d):[0-5]?\d(:[0-5]?\d)?$/ + description: >- + When the absence begins. Follows the format `HH:mm` or + `HH:mm:ss` (e.g., `14:45:15`). If `start_time` is specified, + `end_time` has to be specified as well. + end_time: + type: string + pattern: /^(?:2[0-3]|[01]?\d):[0-5]?\d(:[0-5]?\d)?$/ + description: >- + When the absence ends. Follows the format `HH:mm` or `HH:mm:ss` + (e.g., `14:45:15`). If `end_time` is specified, `start_time` has + to be specified as well. + required: + - employee_id + - absence_type_id + - employee_note + example: + employee_id: wXJMxwDvPAjrJ4CyqdV9 + absence_type_id: 3YKtQ7qedsrcCady1jSyAkY1 + start_date: '2019-09-17' + end_date: '2019-09-21' + start_time: '08:30:00' + end_time: '16:00:00' + start_half_day: false + end_half_day: false + employee_note: Visiting the aliens + DeleteHrisAbsencesAbsenceIdParameterAbsenceId: + type: string + description: The ID of the absence + required: [] + DeleteHrisAbsencesAbsenceIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_id: + type: string + required: [] + approver_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible for + approving this absence. + required: [] + start_date: + nullable: true + type: string + description: The date this absence starts in the `yyyy-MM-dd` format. + required: [] + end_date: + nullable: true + type: string + description: The date this absence ends in the `yyyy-MM-dd` format. + required: [] + start_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence starts in the middle of the day, `false` + if not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `start_half_day` is set, it means that on the last day the + absence is only on the first half of the day. + required: [] + end_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence ends in the middle of the day, `false` if + not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `end_half_day` is set, it means that on the first day the + absence only starts in the second half-day. + required: [] + start_time: + nullable: true + type: string + description: >- + The time at which this absence starts. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + end_time: + nullable: true + type: string + description: >- + The time at which this absence ends. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of time this absence takes. + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + description: The unit of time for this absence. Can be `HOURS` or `DAYS`. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in rare cases + where can't find a clear mapping — the original string passed + through. + required: [] + employee_note: + nullable: true + type: string + description: A note the employee has added to this absence. + required: [] + type_id: + nullable: true + type: string + description: The Kombo absence type ID of this absence. + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + DeleteHrisAbsencesAbsenceIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteHrisAbsencesAbsenceIdRequestBody: + type: object + GetHrisLegalEntitiesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisLegalEntitiesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisLegalEntitiesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisLegalEntitiesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisLegalEntitiesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisLegalEntitiesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisLegalEntitiesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. + We recommend using this as a stable primary key for + syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it + might sometimes be compromised of multiple identifiers if + a system doesn't provide a clear primary key. + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw + address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains + the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted when + Kombo can't retrieve them from the remote system anymore. + Kombo will also anonymize entries 14 days after they + disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - changed_at + - remote_deleted_at + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + required: + - status + - data + GetHrisLegalEntitiesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsApplicationsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsApplicationsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsApplicationsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsApplicationsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsApplicationsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsApplicationsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsApplicationsParameterOutcome: + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + **(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter + applications by outcome. This allows you to get applications that are + for example `PENDING`, `HIRED`, or `DECLINED`. + required: [] + GetAtsApplicationsParameterOutcomes: + type: string + description: |- + Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` + * `PENDING`: The application is still being processed. + * `HIRED`: The candidate was hired. + * `DECLINED`: The candidate was declined. + + + Leave this blank to get results matching all values. + required: [] + GetAtsApplicationsParameterRemoteCreatedAfter: + description: >- + Filter applications by the day they were created in the remote system. + This allows you to get applications that were created on or after a + certain day. + 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: [] + GetAtsApplicationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo identifies + that the application was accepted and the candidate + hired, it will be `HIRED`. If the application was + rejected or the candidate declined, it will be + `DECLINED`. If the application is still in process, it + will be `PENDING`. + + Kombo will always try to deliver this information as + reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + current_stage_id: + nullable: true + type: string + description: ID of the current application stage + required: [] + job_id: + nullable: true + type: string + required: [] + candidate_id: + nullable: true + type: string + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + - current_stage_id + - job_id + - candidate_id + - custom_fields + - changed_at + - remote_deleted_at + - remote_created_at + - remote_updated_at + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + candidate: + nullable: true + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through + this field. If we don't get any + information from the tool, we will set + this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate + with an optional type. If an email address is + invalid, it will be filtered out. + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email_addresses + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + - type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + required: [] + required: + - tags + required: [] + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + interviews: + type: array + items: + type: object + properties: + id: + type: string + description: The globally unique Kombo ID of the interview. + required: [] + remote_id: + nullable: true + type: string + description: >- + The ID of the interview in the integrated + system. + required: [] + title: + nullable: true + type: string + description: The title of the interview. + required: [] + starting_at: + nullable: true + description: The start time of the interview. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + ending_at: + nullable: true + description: The end time of the interview. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. + If not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with + the raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the interview. + required: [] + required: + - id + - remote_id + - title + - starting_at + - ending_at + - location + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + title: Interview with John Doe + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + required: [] + required: + - candidate + - current_stage + - job + - interviews + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + candidate: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + interviews: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + title: Interview with John Doe + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + required: + - status + - data + GetAtsApplicationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAtsApplicationsApplicationIdStageParameterApplicationId: + type: string + required: [] + PutAtsApplicationsApplicationIdStageSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAtsApplicationsApplicationIdStageErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAtsApplicationsApplicationIdStageRequestBody: + allOf: + - type: object + properties: + stage_id: + type: string + description: >- + The ID of the stage to move the application to. This ID must be + the ID of a stage that is connected to the job that the + application is connected to. + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - stage_id + example: + stage_id: 3PJ8PZhZZa1eEdd2DtPNtVup + PostAtsApplicationsApplicationIdResultLinksParameterApplicationId: + type: string + description: Kombo ID of the application you want to create the link for. + required: [] + PostAtsApplicationsApplicationIdResultLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdResultLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdResultLinksRequestBody: + allOf: + - type: object + properties: + label: + type: string + description: >- + If we can display a display name for the link, we will use this + label. + url: + type: string + format: url + description: URL of the link. + details: + type: object + properties: + custom_field_name_prefix: + type: string + description: >- + That will be added to the attribute labels if they are used + for custom fields. If you specify `Acme:` as the prefix, the + custom field will be named `Acme: Score`. Putting in the + name of your company/product is a good idea. + attributes: + type: array + items: + type: object + properties: + key: + type: string + description: The name of the attribute + value: + type: string + description: The value of the attribute + required: + - key + - value + required: + - custom_field_name_prefix + - attributes + description: >- + Additional details with attributes that will be added to the + result. This can be percentages, scores, or any text. + + + We generally recommend using short attribute keys and a short + custom_field_name_prefix to avoid overflowing the ATS UI. + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - label + - url + example: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + PostAtsApplicationsApplicationIdNotesParameterApplicationId: + type: string + description: Kombo ID of the application you want to create the note for. + required: [] + PostAtsApplicationsApplicationIdNotesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdNotesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdNotesRequestBody: + allOf: + - type: object + properties: + content: + type: string + description: UTF-8 content of the note. + content_type: + type: string + enum: + - PLAIN_TEXT + description: >- + Content type of the note. Currently only `PLAIN_TEXT` is + supported. + remote_fields: + type: object + properties: + teamtailor: + type: object + properties: + user_id: + type: string + description: >- + ID of the user that created the note. Defaults to the + first admin user found. + description: Teamtailor specific remote fields for the note. + greenhouse: + type: object + properties: + visibility: + type: string + enum: + - admin_only + - private + - public + description: Visibility of the created note. + description: Greenhouse specific remote fields for the note. + recruitee: + type: object + properties: + visibility: + format: any + description: Visibility of the created note. + is_json: + type: boolean + description: >- + Whether the note is in a stringified JSON format. If + true, content should contain a valid JSON as per the + [Recruitee API + documentation](https://docs.recruitee.com/reference/candidatesidnotes) + (body_json field). If false we add the note as a plain + text. + description: Recruitee specific remote fields for the note. + description: Tool specific remote fields for the note. + required: + - content + - content_type + example: + content: A new message from the candidate is available in YourChat! + content_type: PLAIN_TEXT + PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId: + type: string + required: [] + PostAtsApplicationsApplicationIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdAttachmentsRequestBody: + allOf: + - type: object + properties: + attachment: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., `application/pdf`). + This is required if you provide `data` and optional if + you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to upload. + You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to upload. + You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - attachment + example: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + GetAtsCandidatesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsCandidatesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsCandidatesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsCandidatesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsCandidatesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsCandidatesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsCandidatesParameterEmail: + type: string + format: email + description: >- + Filter the candidates based on an email address. When set, returns only + the candidates where the given `email` is in `email_addresses`. + required: [] + GetAtsCandidatesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + company: + nullable: true + type: string + description: The current company of the candidate. + required: [] + title: + nullable: true + type: string + description: The current job title of the candidate. + required: [] + confidential: + nullable: true + type: boolean + description: >- + Whether the candidate's profile is confidential in the + ATS. + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + nullable: true + type: string + default: null + description: >- + Kombo exposes type information through this + field. If we don't get any information from the + tool, we will set this to `null`. + required: [] + required: + - phone_number + default: [] + description: A list of phone numbers of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through this + field. If we don't get any information from the + tool, we will set this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate with an + optional type. If an email address is invalid, it will + be filtered out. + required: [] + social_media: + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + description: List of social media accounts of the candidate. + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the candidate. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + applications: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo + identifies that the application was accepted + and the candidate hired, it will be `HIRED`. + If the application was rejected or the + candidate declined, it will be `DECLINED`. + If the application is still in process, it + will be `PENDING`. + + Kombo will always try to deliver this + information as reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object + generated by Kombo. We recommend using + this as a stable primary key for + syncing. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote + system. We don't recommend using this as + a primary key on your side as it might + sometimes be compromised of multiple + identifiers if a system doesn't provide + a clear primary key. + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + required: + - current_stage + - job + required: [] + required: [] + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: [] + required: + - applications + - tags + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + applications: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: + - status + - data + GetAtsCandidatesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + company: + nullable: true + type: string + description: The current company of the candidate. + required: [] + title: + nullable: true + type: string + description: The current job title of the candidate. + required: [] + confidential: + nullable: true + type: boolean + description: Whether the candidate's profile is confidential in the ATS. + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + nullable: true + type: string + default: null + description: >- + Kombo exposes type information through this field. If + we don't get any information from the tool, we will + set this to `null`. + required: [] + required: + - phone_number + default: [] + description: A list of phone numbers of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through this field. If + we don't get any information from the tool, we will + set this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate with an optional + type. If an email address is invalid, it will be filtered + out. + required: [] + social_media: + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + description: List of social media accounts of the candidate. + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw + address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains + the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the candidate. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + applications: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo + identifies that the application was accepted and + the candidate hired, it will be `HIRED`. If the + application was rejected or the candidate + declined, it will be `DECLINED`. If the + application is still in process, it will be + `PENDING`. + + Kombo will always try to deliver this information + as reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object + generated by Kombo. We recommend using this as + a stable primary key for syncing. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. + We don't recommend using this as a primary key + on your side as it might sometimes be + compromised of multiple identifiers if a + system doesn't provide a clear primary key. + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + required: + - current_stage + - job + required: [] + required: [] + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: [] + required: + - applications + - tags + required: [] + warnings: + type: array + items: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: [] + required: + - status + - data + - warnings + PostAtsCandidatesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesRequestBody: + allOf: + - type: object + properties: + candidate: + type: object + properties: + first_name: + type: string + last_name: + type: string + email_address: + type: string + format: email + description: >- + The primary email address this application will be created + with. + company: + type: string + description: The company where the applicant is currently working. + title: + type: string + description: The current job title of the applicant. + phone_number: + type: string + location: + type: object + properties: + city: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + applicant. + required: + - country + gender: + type: string + enum: + - MALE + - FEMALE + - OTHER + description: >- + The gender of the applicant. Must be one of `MALE`, + `FEMALE`, or `OTHER`. + availability_date: + description: The date the applicant is available to start working. + 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 + salary_expectations: + type: object + properties: + period: + type: string + enum: + - MONTH + - YEAR + description: >- + The period of the salary expectations. Must be one of + `MONTH` or `YEAR`. + amount: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of the salary expectations. + required: + - period + - amount + description: >- + The salary expectations of the applicant. We will + automatically convert the amount to a format that is + suitable for the ATS you are using. For example, if you are + using monthly salary expectations, we will convert the + amount to a yearly salary if the ATS expects yearly salary + expectations. + social_links: + type: array + items: + type: object + properties: + url: + type: string + format: url + required: + - url + default: [] + description: >- + A list of social media links of the applicant. The links + must be valid URLs. + required: + - first_name + - last_name + - email_address + application: + type: object + properties: + job_id: + type: string + description: >- + Kombo ID or Remote ID of the Job this candidate should apply + for. If you want to use the ID of the integrated system + (remote_id) you need to prefix the id with "remote:". You + can use the remote ID if you do not want to sync jobs. + stage_id: + type: string + description: >- + Stage this candidate should be in. If left out, the default + stage for this job will be used. + required: + - job_id + description: >- + Currently, every candidate has one application. If you are + interested in talent pools, please contact Kombo. + screening_question_answers: + type: array + items: + type: object + properties: + question_id: + type: string + description: >- + ID of the question returned by the Kombo API. We'll report + a warning in the logs if the question can't be found on + the job. + answer: + oneOf: + - type: string + description: >- + Answer to a `TEXT` question or the option ID of the + answer to a `SINGLE_SELECT` question. + - type: boolean + description: Answer to a `BOOLEAN` question. + - type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Answer to a `NUMBER` question. + - type: array + items: + type: string + description: >- + Answer to a `MULTI_SELECT` question. The array + elements are the IDs of the selected options. + - description: >- + Answer to a `DATE` question as an ISO 8601 date + string. + 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 + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + description: Answer to a `FILE` question. + description: >- + Answer to a question. This will be validated based on the + question format and throw an error if the answer is + invalid. Here is a description of each question type and + the required answer format: + + + `TEXT` - Simply provide a "string" answer. + + + `SINGLE_SELECT` - Provide the ID of the answer as a + string. + + + `MULTI_SELECT` - Provide a string array containing the + question IDs of the selected options. + + + `BOOLEAN` - Either `true` or `false`. + + + `NUMBER` - A number. + + + `DATE` - Provide the answer as an ISO 8601 date string. + + + `FILE` - Please select Option 6 in the dropdown above to + see the required format. + required: + - question_id + - answer + description: >- + Array of answers to screening questions. Currently, not all + question types are supported and unsupported ones will not be + submitted. + + + The available questions a job can be retrieved from the get jobs + endpoint. The answers will be validated based on the format of + the the questions. Make sure to follow this schema to avoid + errors. + example: + - question_id: D8yPrjXXvA2XeBksTmrVvKSn + answer: 'Yes' + attachments: + type: array + items: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you provide + `data` and optional if you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + default: [] + description: Array of the attachments you would like upload. + source: + type: object + properties: + name: + type: string + description: >- + Name of the source (e.g., `"Example Job Board"`). + + + Note that this **only** works for ATS systems that support + creating a source through the API right now. This includes + Breezy HR, Fountain, Pinpoint, RECRU, Recruitee, Sage HR, + and Haufe Umantis. For all other ATSs, the source will be + ignored at the moment. + description: >- + **(⚠️ Deprecated - Use [automatic source + writing](/ats/features/application-attribution#automatic-attribution) + instead)** Optional source information that will be attached to + the candidate. If + + you're a job board or recruiting service, you can use this to + make sure your + + customers can see which candidates came from you. + + + This is deprecated because writing sources requires users to do + some setup in most ATSs. + gdpr_consent: + type: object + properties: + expires_at: + description: >- + Until when the candidate has granted the company they're + applying to permission to process their personal data. + 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 + given: + type: boolean + description: Whether the candidate has given consent. + description: >- + Optional GDPR consent information required in some jurisdictions + (like the Czech Republic or Slovakia). + remote_fields: + allOf: + - type: object + properties: + successfactors: + type: object + properties: + Candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `Candidate` object. + JobApplication: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `JobApplication` object. + copyJobApplicationAttachments: + type: boolean + description: >- + If set to true, we will copy custom attachments from + the JobApplication to the Candidate. + description: Fields specific to SAP SuccessFactors. + teamtailor: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Teamtailor's + `Candidate` object. + greenhouse: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Candidate` object. + application: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Application` object. + description: Fields specific to Greenhouse. + lever: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Lever's + `Candidate` object. Note: make sure to submit the + keys and values in the correct form data format. + description: Fields specific to Lever. + workable: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Workable's + `Candidate` object. + description: Fields specific to Workable. + bullhorn: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Bullhorn's + `Candidate` object. + description: Fields specific to Bullhorn. + description: >- + Additional fields that we will pass through to specific ATS + systems. + - type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already + pass a value by default, but you can use this to + override it. + description: >- + Headers we will pass with `POST` requests to + Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - candidate + - application + example: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + social_links: + - url: https://www.linkedin.com/in/frank-doe-123456789/ + - url: https://twitter.com/frankdoe + application: + job_id: BDpgnpZ148nrGh4mYHNxJBgx + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + PatchAtsCandidatesCandidateIdParameterCandidateId: + type: string + required: [] + PatchAtsCandidatesCandidateIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PatchAtsCandidatesCandidateIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PatchAtsCandidatesCandidateIdRequestBody: + type: object + PostAtsCandidatesCandidateIdAttachmentsParameterCandidateId: + type: string + required: [] + PostAtsCandidatesCandidateIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdAttachmentsRequestBody: + allOf: + - type: object + properties: + attachment: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., `application/pdf`). + This is required if you provide `data` and optional if + you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to upload. + You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to upload. + You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - attachment + example: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + PostAtsCandidatesCandidateIdResultLinksParameterCandidateId: + type: string + description: Kombo ID of the candidate you want to create the link for. + required: [] + PostAtsCandidatesCandidateIdResultLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdResultLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdResultLinksRequestBody: + allOf: + - type: object + properties: + label: + type: string + description: >- + If we can display a display name for the link, we will use this + label. + url: + type: string + format: url + description: URL of the link. + details: + type: object + properties: + custom_field_name_prefix: + type: string + description: >- + That will be added to the attribute labels if they are used + for custom fields. If you specify `Acme:` as the prefix, the + custom field will be named `Acme: Score`. Putting in the + name of your company/product is a good idea. + attributes: + type: array + items: + type: object + properties: + key: + type: string + description: The name of the attribute + value: + type: string + description: The value of the attribute + required: + - key + - value + required: + - custom_field_name_prefix + - attributes + description: >- + Additional details with attributes that will be added to the + result. This can be percentages, scores, or any text. + + + We generally recommend using short attribute keys and a short + custom_field_name_prefix to avoid overflowing the ATS UI. + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - label + - url + example: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + PostAtsCandidatesCandidateIdTagsParameterCandidateId: + type: string + description: Kombo ID of the candidate you want to add the tag to. + required: [] + PostAtsCandidatesCandidateIdTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdTagsRequestBody: + allOf: + - type: object + properties: + tag: + type: object + properties: + name: + type: string + minLength: 1 + description: >- + The name of the tag you would like to add. Kombo will find + out the right ID of the tag so you don't have to. + required: + - name + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - tag + example: + tag: + name: Excellent Fit + DeleteAtsCandidatesCandidateIdTagsParameterCandidateId: + type: string + description: Kombo ID of the candidate you want to remove the tag from. + required: [] + DeleteAtsCandidatesCandidateIdTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + DeleteAtsCandidatesCandidateIdTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteAtsCandidatesCandidateIdTagsRequestBody: + allOf: + - type: object + properties: + tag: + type: object + properties: + name: + type: string + description: The name of the tag you would like to remove. + required: + - name + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - tag + example: + tag: + name: Excellent Fit + GetAtsTagsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsTagsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsTagsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsTagsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsTagsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsTagsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsApplicationStagesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsApplicationStagesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsApplicationStagesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsApplicationStagesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsApplicationStagesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsApplicationStagesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsApplicationStagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsApplicationStagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsJobsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsJobsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsJobsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsJobsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsJobsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsJobsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsJobsParameterJobCodes: + type: string + description: Filter by a comma-separated list of job codes. + required: [] + GetAtsJobsParameterPostUrl: + type: string + description: >- + Filter by the `post_url` field. Can be used to find a job based on its + public posting URL. + required: [] + GetAtsJobsParameterStatus: + type: string + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + description: >- + **(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by the + `status` field. Can be used to find a job based on its status. + required: [] + GetAtsJobsParameterStatuses: + type: string + description: >- + Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, + `ARCHIVED` + + + Leave this blank to get results matching all values. + required: [] + GetAtsJobsParameterVisibilities: + type: string + description: >- + Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, `UNLISTED`, + `CONFIDENTIAL` + + + Leave this blank to get results matching all values. + required: [] + GetAtsJobsParameterNameContains: + type: string + description: >- + Filter by the `name` field. Can be used to find a job by keywords + present in the job name. + required: [] + GetAtsJobsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + job_code: + nullable: true + type: string + description: >- + The human readable job code. Some systems expose this + as the Requisition Code/ID. + required: [] + description: + nullable: true + type: string + description: >- + Description of the job. This field is usually returned + as HTML. + required: [] + confidential: + nullable: true + type: boolean + description: >- + **(⚠️ Deprecated)** It makes more sense to store the + visibility of a job in an enum. Therefore, we + introduced the `visibility` enum on jobs. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - SEASONAL + - INTERNSHIP + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + The type of employment contract. In rare cases where + can't find a clear mapping, the original string is + passed through. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 4 standardized values (`OPEN`, `CLOSED`, + `DRAFT`, or `ARCHIVED`) **or** — in rare cases where + can't find a clear mapping — the original string + passed through. + required: [] + visibility: + nullable: true + oneOf: + - type: string + enum: + - PUBLIC + - INTERNAL + - UNLISTED + - CONFIDENTIAL + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + Describes the visibility of the job: + + + - `PUBLIC`: visible to everyone, published on a job + board + + - `INTERNAL`: only visible to employees of the company + itself + + - `UNLISTED`: anyone can apply but only if they have + the link to it + + - `CONFIDENTIAL`: nobody can apply and it's only + visible in the ATS to people who were invited to it + + + Useful if you are providing a job board and want to + post public open jobs of your customers/partners. + + In rare cases where can't find a clear mapping, the + original string is passed through. + required: [] + category: + nullable: true + type: string + description: The category of the job (often the job industry). + required: [] + department: + nullable: true + type: string + required: [] + post_url: + nullable: true + type: string + description: >- + The public job posting URL of the ATS itself. This can + be used by external job boards to redirect applicants. + required: [] + experience_level: + nullable: true + type: string + required: [] + remote_work_status: + nullable: true + oneOf: + - type: string + enum: + - REMOTE + - HYBRID + - TEMPORARY + - ON_SITE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + Defines if the job supports remote work and if so, to + what extent. + required: [] + salary_amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The salary amount in the given currency. + required: [] + salary_amount_from: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The lower bound of the salary range. + required: [] + salary_amount_to: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The upper bound of the salary range. + required: [] + salary_currency: + nullable: true + type: string + description: >- + Salary currency usually returned in [ISO 4217 currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + required: [] + salary_period: + nullable: true + oneOf: + - type: string + enum: + - YEAR + - MONTH + - TWO_WEEKS + - WEEK + - DAY + - HOUR + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + The period of the salary amount (not equal to the pay + frequency). + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: The location of the listed job. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + opened_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + closed_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: >- + The date and time the object was created in the remote + system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: >- + A timestamp retrieved from the remote system, + describing when the resource was last updated. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + contact_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated)** The user ID of the contact person + for this job. We strongly recommend using the new + `hiring_team` property instead as it provides more + complete and accurate information about the ATS users + connected to a job. + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - job_code + - description + - confidential + - weekly_hours + - employment_type + - status + - visibility + - category + - department + - post_url + - experience_level + - remote_work_status + - salary_amount + - salary_amount_from + - salary_amount_to + - salary_currency + - salary_period + - location + - custom_fields + - opened_at + - closed_at + - remote_created_at + - remote_updated_at + - contact_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + description: >- +

Kombo is hiring engineers! If you are reading this + and you are located in Berlin, Germany, feel free to + contact us about this position.

+ confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + - type: object + properties: + stages: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + - type: object + properties: + index: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + description: >- + Numeric index following the order of the + stages if they are ordered in the underlying + tool. + required: [] + example: + index: 0 + required: + - index + required: [] + description: >- + Application stages a candidate can be in for this + particular job. + required: [] + screening_questions: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + title: + nullable: true + type: string + required: [] + description: + nullable: true + type: string + required: [] + format: + nullable: true + oneOf: + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - SINGLE_LINE + - MULTI_LINE + default: null + description: >- + If unavailable, we recommend displaying + a single-line input. + required: [] + max_length: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + required: [] + type: + type: string + enum: + - TEXT + required: [] + required: + - type + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - SLIDER + - FIELD + default: FIELD + required: [] + max: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + default: null + required: [] + min: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + default: null + required: [] + type: + type: string + enum: + - NUMBER + required: [] + required: + - type + - type: object + properties: + type: + type: string + enum: + - FILE + required: [] + required: + - type + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - DROPDOWN + - RADIO + default: null + required: [] + options: + type: array + items: + type: object + properties: + id: + type: string + description: >- + Kombo ID of this question option. Use + this ID to specify the answer to this + question. + required: [] + remote_id: + nullable: true + type: string + default: null + description: >- + ID in the connected ATS. This might be + null as some systems only use the name + to identify the option. + required: [] + name: + type: string + description: Content of the question option. + required: [] + required: + - id + - name + required: [] + type: + type: string + enum: + - SINGLE_SELECT + required: [] + required: + - options + - type + - type: object + properties: + type: + type: string + enum: + - BOOLEAN + required: [] + required: + - type + - type: object + properties: + type: + type: string + enum: + - DATE + required: [] + required: + - type + - type: object + properties: + options: + type: array + items: + type: object + properties: + id: + type: string + description: >- + Kombo ID of this question option. Use + this ID to specify the answer to this + question. + required: [] + remote_id: + nullable: true + type: string + default: null + description: >- + ID in the connected ATS. This might be + null as some systems only use the name + to identify the option. + required: [] + name: + type: string + description: Content of the question option. + required: [] + required: + - id + - name + required: [] + type: + type: string + enum: + - MULTI_SELECT + required: [] + required: + - options + - type + - type: object + properties: + type: + type: string + enum: + - INFORMATION + description: This is just a text block. + required: [] + required: + - type + - type: object + properties: + raw_question: + format: any + description: >- + We pass the original question data along + so you can handle it. + required: [] + type: + type: string + enum: + - UNKNOWN + description: >- + When we're not able to map a specific + question type yet, we will return this + type. Every `UNKNOWN` question will also + be parsed and unified by us at some + point. This is just a temporary + workaround so you still get all + questions. + required: [] + required: + - type + required: [] + required: + - id + - remote_id + - title + - description + - format + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + title: Which is your primary programming language? + description: >- + Please enter the language you are most + comfortable with. + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + - type: object + properties: + index: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + required: [] + required: + nullable: true + type: boolean + required: [] + required: + - index + - required + example: + index: 0 + required: true + required: [] + required: [] + job_postings: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + description_html: + nullable: true + type: string + required: [] + status: + nullable: true + type: string + enum: + - ACTIVE + - INACTIVE + - DRAFT + required: [] + visibility: + nullable: true + type: string + enum: + - PUBLIC + - INTERNAL + - UNLISTED + required: [] + required: + - id + - remote_id + - description_html + - status + - visibility + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + required: [] + hiring_team: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the user. + required: [] + last_name: + nullable: true + type: string + description: Last name of the user. + required: [] + email: + nullable: true + type: string + format: email + description: >- + Email of the user. If the email address is + invalid, it will be set to null. + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + - type: object + properties: + hiring_team_roles: + type: array + items: + type: string + enum: + - RECRUITER + - HIRING_MANAGER + example: RECRUITER + description: >- + Array of the roles of the user for this + specific job. Currently only `RECRUITER` and + `HIRING_MANAGER` are mapped into our unified + schema. + required: [] + required: + - hiring_team_roles + required: [] + required: [] + required: + - stages + - screening_questions + - job_postings + - hiring_team + description: >- + The hiring team allows you to sync users into your system + who can access the job and its applications. + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + description: >- +

Kombo is hiring engineers! If you are reading this and you + are located in Berlin, Germany, feel free to contact us about + this position.

+ confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + stages: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + index: 0 + screening_questions: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + title: Which is your primary programming language? + description: Please enter the language you are most comfortable with. + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + index: 0 + required: true + job_postings: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + hiring_team: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + hiring_team_roles: + - RECRUITER + required: + - status + - data + GetAtsJobsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsJobsJobIdApplicationsParameterJobId: + type: string + description: >- + Kombo ID or Remote ID of the Job this candidate should apply for. If you + want to use the ID of the integrated system (remote_id) you need to + prefix the id with "remote:". You can use the remote ID if you do not + want to sync jobs. + required: [] + PostAtsJobsJobIdApplicationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo identifies that + the application was accepted and the candidate hired, it + will be `HIRED`. If the application was rejected or the + candidate declined, it will be `DECLINED`. If the + application is still in process, it will be `PENDING`. + + Kombo will always try to deliver this information as + reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + current_stage_id: + nullable: true + type: string + description: ID of the current application stage + required: [] + job_id: + nullable: true + type: string + required: [] + candidate_id: + nullable: true + type: string + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + - current_stage_id + - job_id + - candidate_id + - custom_fields + - changed_at + - remote_deleted_at + - remote_created_at + - remote_updated_at + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it + might sometimes be compromised of multiple identifiers + if a system doesn't provide a clear primary key. + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + candidate: + nullable: true + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + company: + nullable: true + type: string + description: The current company of the candidate. + required: [] + title: + nullable: true + type: string + description: The current job title of the candidate. + required: [] + confidential: + nullable: true + type: boolean + description: >- + Whether the candidate's profile is confidential in + the ATS. + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + nullable: true + type: string + default: null + description: >- + Kombo exposes type information through this + field. If we don't get any information from + the tool, we will set this to `null`. + required: [] + required: + - phone_number + default: [] + description: A list of phone numbers of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through this + field. If we don't get any information from + the tool, we will set this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate with an + optional type. If an email address is invalid, it + will be filtered out. + required: [] + social_media: + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + description: List of social media accounts of the candidate. + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the candidate. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: [] + required: + - tags + required: [] + required: + - current_stage + - job + - candidate + required: [] + warnings: + type: array + items: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: [] + required: + - status + - data + - warnings + PostAtsJobsJobIdApplicationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsJobsJobIdApplicationsRequestBody: + allOf: + - type: object + properties: + stage_id: + type: string + description: >- + Stage this candidate should be in. If left out, the default + stage for this job will be used. You can obtain the possible + `stage_id`s from the `get-jobs` endpoint. + candidate: + type: object + properties: + first_name: + type: string + last_name: + type: string + email_address: + type: string + format: email + description: >- + The primary email address this application will be created + with. + company: + type: string + description: The company where the applicant is currently working. + title: + type: string + description: The current job title of the applicant. + phone_number: + type: string + location: + type: object + properties: + city: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + applicant. + required: + - country + gender: + type: string + enum: + - MALE + - FEMALE + - OTHER + description: >- + The gender of the applicant. Must be one of `MALE`, + `FEMALE`, or `OTHER`. + availability_date: + description: The date the applicant is available to start working. + 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 + salary_expectations: + type: object + properties: + period: + type: string + enum: + - MONTH + - YEAR + description: >- + The period of the salary expectations. Must be one of + `MONTH` or `YEAR`. + amount: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of the salary expectations. + required: + - period + - amount + description: >- + The salary expectations of the applicant. We will + automatically convert the amount to a format that is + suitable for the ATS you are using. For example, if you are + using monthly salary expectations, we will convert the + amount to a yearly salary if the ATS expects yearly salary + expectations. + social_links: + type: array + items: + type: object + properties: + url: + type: string + format: url + required: + - url + default: [] + description: >- + A list of social media links of the applicant. The links + must be valid URLs. + required: + - first_name + - last_name + - email_address + attachments: + type: array + items: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you provide + `data` and optional if you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + default: [] + description: >- + Array of the attachments you would like to upload. The first CV + in the attachments will be treated as the resume of the + candidate when the tool allows previewing a resume. + source: + type: object + properties: + name: + type: string + description: >- + Name of the source (e.g., `"Example Job Board"`). + + + Note that this **only** works for ATS systems that support + creating a source through the API right now. This includes + Breezy HR, Fountain, Pinpoint, RECRU, Recruitee, Sage HR, + and Haufe Umantis. For all other ATSs, the source will be + ignored at the moment. + description: >- + **(⚠️ Deprecated - Use [automatic source + writing](/ats/features/application-attribution#automatic-attribution) + instead)** Optional source information that will be attached to + the candidate. If + + you're a job board or recruiting service, you can use this to + make sure your + + customers can see which candidates came from you. + + + This is deprecated because writing sources requires users to do + some setup in most ATSs. + gdpr_consent: + type: object + properties: + expires_at: + description: >- + Until when the candidate has granted the company they're + applying to permission to process their personal data. + 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 + given: + type: boolean + description: Whether the candidate has given consent. + description: >- + Optional GDPR consent information required in some jurisdictions + (like the Czech Republic or Slovakia). + remote_fields: + allOf: + - type: object + properties: + successfactors: + type: object + properties: + Candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `Candidate` object. + JobApplication: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `JobApplication` object. + copyJobApplicationAttachments: + type: boolean + description: >- + If set to true, we will copy custom attachments from + the JobApplication to the Candidate. + description: Fields specific to SAP SuccessFactors. + teamtailor: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Teamtailor's + `Candidate` object. + greenhouse: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Candidate` object. + application: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Application` object. + description: Fields specific to Greenhouse. + lever: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Lever's + `Candidate` object. Note: make sure to submit the + keys and values in the correct form data format. + description: Fields specific to Lever. + workable: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Workable's + `Candidate` object. + description: Fields specific to Workable. + bullhorn: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Bullhorn's + `Candidate` object. + description: Fields specific to Bullhorn. + description: >- + Additional fields that we will pass through to specific ATS + systems. + - type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already + pass a value by default, but you can use this to + override it. + description: >- + Headers we will pass with `POST` requests to + Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + description: >- + Additional fields that we will pass through to specific ATS + systems. + screening_question_answers: + type: array + items: + type: object + properties: + question_id: + type: string + description: >- + ID of the question returned by the Kombo API. We'll report + a warning in the logs if the question can't be found on + the job. + answer: + oneOf: + - type: string + description: >- + Answer to a `TEXT` question or the option ID of the + answer to a `SINGLE_SELECT` question. + - type: boolean + description: Answer to a `BOOLEAN` question. + - type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Answer to a `NUMBER` question. + - type: array + items: + type: string + description: >- + Answer to a `MULTI_SELECT` question. The array + elements are the IDs of the selected options. + - description: >- + Answer to a `DATE` question as an ISO 8601 date + string. + 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 + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + description: Answer to a `FILE` question. + description: >- + Answer to a question. This will be validated based on the + question format and throw an error if the answer is + invalid. Here is a description of each question type and + the required answer format: + + + `TEXT` - Simply provide a "string" answer. + + + `SINGLE_SELECT` - Provide the ID of the answer as a + string. + + + `MULTI_SELECT` - Provide a string array containing the + question IDs of the selected options. + + + `BOOLEAN` - Either `true` or `false`. + + + `NUMBER` - A number. + + + `DATE` - Provide the answer as an ISO 8601 date string. + + + `FILE` - Please select Option 6 in the dropdown above to + see the required format. + required: + - question_id + - answer + description: >- + Array of answers to screening questions. Currently, not all + question types are supported and unsupported ones will not be + submitted. + + + The available questions a job can be retrieved from the get jobs + endpoint. The answers will be validated based on the format of + the the questions. Make sure to follow this schema to avoid + errors. + example: + - question_id: D8yPrjXXvA2XeBksTmrVvKSn + answer: 'Yes' + required: + - candidate + example: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + GetAtsUsersParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsUsersParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsUsersParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsUsersParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsUsersParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsUsersParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsUsersSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the user. + required: [] + last_name: + nullable: true + type: string + description: Last name of the user. + required: [] + email: + nullable: true + type: string + format: email + description: >- + Email of the user. If the email address is invalid, it + will be set to null. + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsUsersErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAssessmentPackagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + packages: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + type: string + required: [] + description: + type: string + required: [] + updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + nullable: true + type: string + enum: + - BEHAVIORAL + - VIDEO_INTERVIEW + - SKILLS_TEST + - BACKGROUND_CHECK + - REFERENCE_CHECK + required: [] + required: + - id + - name + - description + - updated_at + - type + required: [] + required: + - packages + example: + packages: + - id: '1001' + name: TypeScript + description: TypeScript coding skills assessments + updated_at: '2023-06-29T18:47:40.890Z' + type: SKILLS_TEST + required: + - status + - data + GetAssessmentPackagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentPackagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAssessmentPackagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentPackagesRequestBody: + allOf: + - type: object + properties: + packages: + type: array + items: + type: object + properties: + id: + type: string + description: A unique identifier for the assessment package. + type: + type: string + enum: + - BEHAVIORAL + - VIDEO_INTERVIEW + - SKILLS_TEST + - BACKGROUND_CHECK + - REFERENCE_CHECK + name: + type: string + description: The name of the assessment package. + description: + type: string + description: >- + Description about the package. Some ATSs will display this + in their UI. + required: + - id + - type + - name + - description + required: + - packages + example: + packages: + - id: '1001' + type: SKILLS_TEST + name: TypeScript + description: TypeScript coding skills assessments + - id: '1002' + type: VIDEO_INTERVIEW + name: Video Interview + description: Video interview to assess communication skills + GetAssessmentOrdersOpenParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAssessmentOrdersOpenParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAssessmentOrdersOpenSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + package_id: + type: string + required: [] + candidate: + type: object + properties: + email: + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + phone: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - email + required: + - id + - package_id + - candidate + required: [] + required: + - next + - results + required: + - status + - data + GetAssessmentOrdersOpenErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentOrdersAssessmentOrderIdResultParameterAssessmentOrderId: + type: string + required: [] + PutAssessmentOrdersAssessmentOrderIdResultSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAssessmentOrdersAssessmentOrderIdResultErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentOrdersAssessmentOrderIdResultRequestBody: + allOf: + - type: object + properties: + status: + type: string + enum: + - COMPLETED + - CANCELLED + - OPEN + description: >- + Status of the assessment. Must be one of `COMPLETE` or + `CANCELLED`. + result_url: + type: string + format: url + completed_at: + 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 + score: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + max_score: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + attributes: + type: array + items: + type: object + properties: + field: + type: string + value: + type: string + required: + - field + - value + default: [] + required: + - status + - result_url + - completed_at + example: + status: COMPLETED + score: 90 + max_score: 100 + result_url: https://example.com + completed_at: '2023-04-04T00:00:00.000Z' + attributes: + - field: remarks + value: Test completed with passing score + PostConnectCreateLinkSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + link: + type: string + format: url + required: [] + required: + - link + example: + link: >- + https://connect.kombo.dev/v1?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + required: + - status + - data + PostConnectCreateLinkErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectCreateLinkRequestBody: + allOf: + - type: object + properties: + end_user_email: + type: string + format: email + description: The email of the user this link is meant for. + end_user_organization_name: + type: string + minLength: 1 + description: The name of the user's organization. + end_user_origin_id: + nullable: true + type: string + minLength: 1 + description: The id the user/organization has in your own database. + default: null + remote_environment: + nullable: true + type: string + default: null + description: >- + If the tool you want to connect offers different environments, + you can specify which one you want to connect to here. If you + don't specify this, we'll assume you want to use the production + environment. Note that this can only be used if you've also + specified a tool through `integration_tool`. + integration_category: + type: string + enum: + - HRIS + - ATS + - ASSESSMENT + default: HRIS + description: Category of the integration you want your customer to create. + integration_tool: + nullable: true + type: string + enum: + - personio + - workday + - workdaycustomreport + - workdaycustomreportsftp + - successfactors + - smartrecruiters + - factorial + - oraclerecruiting + - lever + - icims + - recruitee + - greenhouse + - teamtailor + - ashby + - onlyfy + - rexx + - afas + - bamboohr + - bullhorn + - workable + - payfitcustomer + - payfitpartner + - payfit + - fountain + - kenjo + - heavenhr + - hibob + - softgarden + - cezannehr + - entraid + - azuread + - googleworkspace + - pinpoint + - welcometothejungle + - dvinci + - join + - deel + - remotecom + - jobvite + - okta + - sagehr + - humaans + - traffit + - erecruiter + - eurecia + - umantis + - jobylon + - oraclehcm + - taleez + - officient + - sesamehr + - charliehr + - hrworks + - abacus + - otys + - zohopeople + - gusto + - breathehr + - catalystone + - mirus + - alexishr + - eploy + - rippling + - sapling + - nmbrs + - heyrecruit + - peoplehr + - recruhr + - jazzhr + - lucca + - bite + - planday + - homerun + - haileyhr + - silae + - mysolution + - carerix + - datev + - datevlug + - sympa + - breezyhr + - flatchr + - applicantstack + - talentsoft + - talentsoftcustomer + - concludis + - iriscascade + - sandbox + - sftp + default: null + description: Pre-define a tool this integration link can be used for. + language: + type: string + enum: + - en + - de + - fr + default: en + description: Language of the connection flow UI. + scope_config_id: + nullable: true + type: string + default: null + description: >- + Specify a scope config that should be used for this integration. + This is an advanced feature, only use it if you know what you're + doing! + enable_filtering: + type: boolean + default: false + description: >- + Enable the (filtering + feature)[https://docs.kombo.dev/other/filtering] for the + integration. HRIS only. + required: + - end_user_email + - end_user_organization_name + example: + end_user_email: test@example.com + end_user_organization_name: Test Inc. + integration_category: HRIS + integration_tool: personio + end_user_origin_id: '123' + language: en + GetConnectIntegrationByTokenTokenParameterToken: + type: string + required: [] + GetConnectIntegrationByTokenTokenSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tool: + type: string + required: [] + id: + type: string + required: [] + end_user_origin_id: + nullable: true + type: string + required: [] + end_user_organization_name: + type: string + required: [] + end_user_email: + nullable: true + type: string + format: email + required: [] + required: + - tool + - id + - end_user_origin_id + - end_user_organization_name + - end_user_email + example: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + required: + - status + - data + GetConnectIntegrationByTokenTokenErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectActivateIntegrationSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tool: + type: string + required: [] + id: + type: string + required: [] + end_user_origin_id: + nullable: true + type: string + required: [] + end_user_organization_name: + type: string + required: [] + end_user_email: + nullable: true + type: string + format: email + required: [] + required: + - tool + - id + - end_user_origin_id + - end_user_organization_name + - end_user_email + example: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + required: + - status + - data + PostConnectActivateIntegrationErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectActivateIntegrationRequestBody: + allOf: + - type: object + properties: + token: + type: string + required: + - token + PostCustomDatevPassthroughSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostCustomDatevPassthroughErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPassthroughRequestBody: + allOf: + - 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 + file_type: + type: string + enum: + - STAMMDATEN + - BEWEGUNGSDATEN + file_name: + type: string + required: + - file_content + - accounting_month + - target_system + - file_type + - file_name + 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`) + required: [] + PutCustomDatevEmployeesEmployeeIdPreparePayrollSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutCustomDatevEmployeesEmployeeIdPreparePayrollErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutCustomDatevEmployeesEmployeeIdPreparePayrollRequestBody: + allOf: + - 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Number of hours this employee has worked. + lohnart: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + lohnart: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: This amount value will be mapped to Datev "Wert" field. + lohnart: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Choose a valid Lodas Lohnart. + bearbeitungsschluessel: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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 + example: + 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 + 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`) + required: [] + PutCustomDatevEmployeesEmployeeIdCompensationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutCustomDatevEmployeesEmployeeIdCompensationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutCustomDatevEmployeesEmployeeIdCompensationsRequestBody: + allOf: + - 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount that this employee will be paid. + currency: + type: string + enum: + - 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 + exclusiveMinimum: false + maximum: 9999 + exclusiveMaximum: false + 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 + example: + effective_date: '2022-12-01' + compensations: + - amount: 4500 + currency: EUR + period: MONTH + lohnart: 200 + - amount: 30 + currency: EUR + period: HOUR + GetCustomDatevDataPushesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + data_pushes: + type: array + items: + type: object + properties: + id: + type: string + required: [] + type: + type: string + enum: + - GENERAL + - PAYROLL + description: Type of the executed data push. + required: [] + 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 + required: [] + upload_jobs: + type: array + items: + type: object + properties: + id: + type: string + required: [] + file_name: + type: string + required: [] + 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. + required: [] + file: + type: string + description: Actual content of the file. + required: [] + 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: [] + required: + - id + - type + - created_at + - upload_jobs + required: [] + required: + - data_pushes + required: + - status + - data + GetCustomDatevDataPushesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataGeneralSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + files: + type: array + items: + type: object + properties: + name: + type: string + required: [] + content: + type: string + required: [] + required: + - name + - content + required: [] + required: + - files + required: + - status + - data + PostCustomDatevPushDataGeneralErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataGeneralRequestBody: + type: object + PostCustomDatevPushDataPayrollSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + files: + type: array + items: + type: object + properties: + name: + type: string + required: [] + content: + type: string + required: [] + required: + - name + - content + required: [] + required: + - files + required: + - status + - data + PostCustomDatevPushDataPayrollErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataPayrollRequestBody: + allOf: + - 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`) + required: [] + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsRequestBody: + allOf: + - 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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 + example: + supplement_code: '200' + effective_date: '2024-01-14' + element_amount: 6 + responses: {} + parameters: {} + examples: {} + requestBodies: {} + headers: {} + securitySchemes: + ApiKey: + type: http + scheme: bearer + description: >- + Create an API key on the [Secrets](https://app.kombo.dev/secrets) page + in the Kombo dashboard. + links: {} + callbacks: {} +tags: + - name: General + - name: Kombo Connect + description: >- + Endpoints for Kombo Connect, our end-user-facing flow for setting up new + integrations. + - name: Unified HRIS API + description: Unified endpoints to access all the HR concepts you might need. + - name: Unified ATS API + description: Unified endpoints to access all the ATS concepts you might need. + - name: Unified ATS-Assessment API + description: >- + Unified endpoints to operate Assessments for many applicant tracking + systems. +servers: + - url: https://api.kombo.dev/v1 +security: + - ApiKey: [] diff --git a/sdks/db/custom-request-specs/localizely.com.yaml b/sdks/db/custom-request-specs/localizely.com.yaml new file mode 100644 index 0000000000..e7812e5b41 --- /dev/null +++ b/sdks/db/custom-request-specs/localizely.com.yaml @@ -0,0 +1,631 @@ +openapi: 3.0.1 +info: + title: Localizely API + description: >- +

Getting started

Localizely API is built on REST.
You can use this API for importing & exporting + your localization files in order to automate the process with `curl` scripts + or external CI tools.
Response is returned in JSON form even in + case of error.

If you Authenticate with your API token on this + page by clicking "Authorize" button, you can make API calls directly from + here with "Try it out", and generate such `curl` examples.

API + Authentication

Authenticate your account by sending your API token as + a request header `X-Api-Token`.
The token can be found under My Profile + page.
A user must have an Admin role in the project in order to access + the project with his token.
API requests without authentication will + fail.

Base url: `https://api.localizely.com`

+ termsOfService: https://localizely.com/terms-of-service/ + version: 1.2.1 +servers: + - url: https://api.localizely.com + description: Generated server url +paths: + /v1/projects/{project_id}/files/upload: + post: + tags: + - Upload API + summary: Upload translations for a language + operationId: importLocalizationFile + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + - name: branch + in: query + description: >- + Name of the branch to upload file into. Only in case of activated + branching feature. + required: false + schema: + type: string + - name: lang_code + in: query + description: >- + Language to upload, specified as language code. e.g. `en`, `en_GB` + or `en-GB` + required: true + schema: + type: string + - name: overwrite + in: query + description: >- + If translation in given language should be overwritten with modified + translation from uploading file. + required: false + schema: + type: boolean + default: false + - name: reviewed + in: query + description: >- + If uploading translations, that are added, should be marked as + Reviewed. For uploading translations that are only modified it will + have effect only if `overwrite` is set to `true`. + required: false + schema: + type: boolean + default: false + - name: tag_added + in: query + description: >- + Optional list of tags to add to new translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_added_keys=NEW&tag_added_keys=NEW_SPRINT05` + required: false + schema: + type: array + items: + type: string + - name: tag_updated + in: query + description: >- + Optional list of tags to add to updated translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_updated_keys=UPDATED&tag_updated_keys=UPDATED_SPRINT05` + required: false + schema: + type: array + items: + type: string + - name: tag_removed + in: query + description: >- + Optional list of tags to add to removed translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_removed_keys=REMOVED&tag_removed_keys=REMOVED_SPRINT05` + required: false + schema: + type: array + items: + type: string + requestBody: + content: + multipart/form-data: + schema: + required: + - file + type: object + properties: + file: + type: string + description: >- + Uploading file. Supported following formats: `Flutter ARB, + Android XML, iOS strings, iOS stringsdict, Angular XLF, + Gettext PO, Gettext POT, Java properties, Ruby on Rails + yaml, .NET resx, flat json, csv, Excel .xlsx, Excel .xls` + format: binary + responses: + '200': + description: OK, file uploaded + '400': + description: >- + Error codes:
 
- `invalid_import_file` when file + invalid. Returned with `errors` list
- + `max_upload_size_exceeded` when uploading file exceeds size limit
- `upgrade_required` when uploading more string keys than accepted + by owner's account plan limit
- `projects_limit_read_only` when + project is in read-only state due to exceeded projects limit + + `'bad_request'` when request generally is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/InvalidImportFileErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] + /v1/projects/{project_id}/branches/{branch}: + post: + tags: + - Branch API + summary: Create a new branch + operationId: createBranch + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + format: uuid + - name: branch + in: path + description: Name of the branch to be created + required: true + schema: + maxLength: 200 + minLength: 0 + type: string + - name: source_branch + in: query + description: Name of the source branch from which new branch will be created + required: true + schema: + type: string + responses: + '200': + description: OK, created + '400': + description: >- + Error codes:
 
- `bad_request` when request generally + is not well formed
- `limit_reached` when project already has + max allowed number of branches
- `projects_limit_read_only` + when project is in read-only state due to exceeded projects limit + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] + /v1/projects/{project_id}/status: + get: + tags: + - Translation Status API + summary: Get Translation Status for the project + operationId: getTranslationStatus + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + - name: branch + in: query + description: >- + Name of the branch to get translation status for. Only in case of + activated branching feature. + required: false + schema: + type: string + responses: + '200': + description: OK, data returned + content: + '*/*': + schema: + $ref: '#/components/schemas/ProjectStatusDto' + '400': + description: >- + Error codes:
 
- `bad_request` when request generally + is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] + /v1/projects/{project_id}/files/download: + get: + tags: + - Download API + summary: Download translations for a language in a specified file format + description: >- + Note: This endpoint is intended for getting translation files to + your source-code. This endpoint should not be called directly from you + app in runtime, as it has rate-limiting.
For over-the-air + translation updates please consider using our SDK + for Flutter or integrate with AWS S3 bucket. + operationId: getLocalizationFile + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + - name: branch + in: query + description: >- + Name of the branch to download file from. Only in case of activated + branching feature. + required: false + schema: + type: string + - name: lang_codes + in: query + description: >- + Language to download, specified as language code. e.g. `en`, `en_GB` + or `en-GB`. For multiple languages use comma separator. If omitted, + all languages are downloaded. + required: false + schema: + type: string + - name: type + in: query + description: File format + required: true + schema: + type: string + enum: + - android_xml + - ios_strings + - ios_stringsdict + - java_properties + - rails_yaml + - angular_xlf + - flutter_arb + - dotnet_resx + - po + - pot + - json + - csv + - xlsx + - name: java_properties_encoding + in: query + description: >- + (Only for Java .properties files download) Character encoding. + Default is `latin_1`. + required: false + schema: + type: string + enum: + - utf_8 + - latin_1 + - name: include_tags + in: query + description: >- + Optional list of tags to be downloaded.
If not set, all string + keys will be considered for download.

Multiple tags can be + defined in a following way: + `&include_tags=ANDROID&include_tags=ANDROID_SPRINT05`. + required: false + schema: + type: array + items: + type: string + - name: exclude_tags + in: query + description: >- + Optional list of tags to be excluded from download.
If not set, + all string keys will be considered for download.

Multiple + tags can be defined in a following way: + `&exclude_tags=REMOVED&exclude_tags=REMOVED_SPRINT05`. + required: false + schema: + type: array + items: + type: string + - name: export_empty_as + in: query + description: >- + Optional. How you would like empty translations to be exported. + Allowed values are `empty` to keep empty, `main` to replace with the + main language value, or `skip` to omit. + required: false + schema: + type: string + default: empty + enum: + - empty + - main + - skip + responses: + '200': + description: OK, file returned + '400': + description: >- + Error codes:
 
- `invalid_export_data_rails_yaml` + when data collision for yaml download
- `bad_request` when + request generally is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] +components: + schemas: + ErrorDto: + type: object + properties: + errorCode: + type: string + enum: + - already_exists + - too_long + - too_many_requests + - bad_request + - not_configured + - bad_captcha + - bad_turnstile + - bad_url + - confirmation_invalid + - forbidden_email + - main_locale_invalid + - branching_disabled + - not_activated + - invalid_password + - invalid_import_file + - invalid_export_data_rails_yaml + - forbidden + - internal_error + - not_found + - upgrade_required + - subscription_change_disabled_in_past_due + - subscription_creation_still_processing + - order_creation_still_processing + - branching_not_supported + - ota_not_supported + - string_keys_limit + - projects_limit + - projects_limit_read_only + - limit_reached + - import_keys_limit_exceeded + - max_upload_size_exceeded + - prevention_limit_reached + - tags_prevention_limit_reached + - string_key_not_found + - merge_outdated + - mt_locale_not_supported + - mt_main_translation_empty + - mt_main_translation_not_supported + - mt_source_translation_too_long + - mt_chars_missing + - mt_no_selected_strings + - tm_upload_file_invalid + - tm_upload_file_max_entries_exceeded + - tm_upload_file_version_not_supported + - tm_max_total_entries_exceeded + - tm_max_total_memories_exceeded + - glossary_locale_cant_remove + - glossary_upload_file_invalid + - glossary_upload_file_column_separator_invalid + - glossary_upload_file_headers_invalid + - glossary_upload_file_max_terms_exceeded + - glossary_max_total_terms_exceeded + - glossary_max_total_glossaries_exceeded + - order_oversize + - github_not_supported + - github_token_invalid + - github_token_scope_invalid + - github_url_invalid + - github_branch_invalid + - github_repo_invalid + - github_config_file_missing + - github_config_file_invalid + - github_push_no_changes + - gitlab_not_supported + - gitlab_token_invalid + - gitlab_token_scope_invalid + - gitlab_url_invalid + - gitlab_branch_invalid + - gitlab_repo_invalid + - gitlab_config_file_missing + - gitlab_config_file_invalid + - gitlab_push_no_changes + - bitbucket_not_supported + - bitbucket_token_invalid + - bitbucket_token_scope_invalid + - bitbucket_url_invalid + - bitbucket_branch_invalid + - bitbucket_repo_invalid + - bitbucket_config_file_missing + - bitbucket_config_file_invalid + - bitbucket_push_no_changes + - aws_s3_not_supported + - aws_s3_credentials_invalid + - aws_s3_permissions_invalid + - aws_s3_bucket_invalid + - aws_s3_region_invalid + - expired + - unauthorized + - unexpected_error + - service_unavailable + errorMessage: + type: string + errorData: + type: object + additionalProperties: + type: object + ImportFileError: + type: object + properties: + line: + type: integer + format: int32 + position: + type: integer + format: int32 + errorMessage: + type: string + InvalidImportFileErrorDto: + type: object + properties: + errorCode: + type: string + enum: + - already_exists + - too_long + - too_many_requests + - bad_request + - not_configured + - bad_captcha + - bad_turnstile + - bad_url + - confirmation_invalid + - forbidden_email + - main_locale_invalid + - branching_disabled + - not_activated + - invalid_password + - invalid_import_file + - invalid_export_data_rails_yaml + - forbidden + - internal_error + - not_found + - upgrade_required + - subscription_change_disabled_in_past_due + - subscription_creation_still_processing + - order_creation_still_processing + - branching_not_supported + - ota_not_supported + - string_keys_limit + - projects_limit + - projects_limit_read_only + - limit_reached + - import_keys_limit_exceeded + - max_upload_size_exceeded + - prevention_limit_reached + - tags_prevention_limit_reached + - string_key_not_found + - merge_outdated + - mt_locale_not_supported + - mt_main_translation_empty + - mt_main_translation_not_supported + - mt_source_translation_too_long + - mt_chars_missing + - mt_no_selected_strings + - tm_upload_file_invalid + - tm_upload_file_max_entries_exceeded + - tm_upload_file_version_not_supported + - tm_max_total_entries_exceeded + - tm_max_total_memories_exceeded + - glossary_locale_cant_remove + - glossary_upload_file_invalid + - glossary_upload_file_column_separator_invalid + - glossary_upload_file_headers_invalid + - glossary_upload_file_max_terms_exceeded + - glossary_max_total_terms_exceeded + - glossary_max_total_glossaries_exceeded + - order_oversize + - github_not_supported + - github_token_invalid + - github_token_scope_invalid + - github_url_invalid + - github_branch_invalid + - github_repo_invalid + - github_config_file_missing + - github_config_file_invalid + - github_push_no_changes + - gitlab_not_supported + - gitlab_token_invalid + - gitlab_token_scope_invalid + - gitlab_url_invalid + - gitlab_branch_invalid + - gitlab_repo_invalid + - gitlab_config_file_missing + - gitlab_config_file_invalid + - gitlab_push_no_changes + - bitbucket_not_supported + - bitbucket_token_invalid + - bitbucket_token_scope_invalid + - bitbucket_url_invalid + - bitbucket_branch_invalid + - bitbucket_repo_invalid + - bitbucket_config_file_missing + - bitbucket_config_file_invalid + - bitbucket_push_no_changes + - aws_s3_not_supported + - aws_s3_credentials_invalid + - aws_s3_permissions_invalid + - aws_s3_bucket_invalid + - aws_s3_region_invalid + - expired + - unauthorized + - unexpected_error + - service_unavailable + errorMessage: + type: string + errorData: + type: object + additionalProperties: + type: object + errors: + type: array + items: + $ref: '#/components/schemas/ImportFileError' + ProjectLocaleStatsDto: + type: object + properties: + langCode: + type: string + description: Language code (ie `en` or `en-US`) + langName: + type: string + description: Language name (ie `English` or `English (US)`) + strings: + type: integer + description: Total number of string keys in the project + format: int32 + reviewed: + type: integer + description: Number of reviewed string keys for a language + format: int32 + reviewedProgress: + type: integer + description: Reviewed progress for a language, in percentage + format: int32 + description: Translation status per language + ProjectStatusDto: + type: object + properties: + strings: + type: integer + description: Total number of string keys in the project + format: int32 + reviewedProgress: + type: integer + description: Total reviewed progress across all languages, in percentage + format: int32 + languages: + type: array + description: Translation status per language + items: + $ref: '#/components/schemas/ProjectLocaleStatsDto' + securitySchemes: + API auth: + type: apiKey + name: X-Api-Token + in: header diff --git a/sdks/db/custom-request-specs/mambu.com_PaymentOrder.yaml b/sdks/db/custom-request-specs/mambu.com_PaymentOrder.yaml new file mode 100644 index 0000000000..39623be976 --- /dev/null +++ b/sdks/db/custom-request-specs/mambu.com_PaymentOrder.yaml @@ -0,0 +1,6259 @@ +openapi: 3.0.1 +info: + title: Payment Order API + description: Initiates payment orders. + version: v1.44.15 +paths: + /accounts/{accountId}/blocking-rules: + post: + tags: + - SEPA Direct Debit + description: >- + Request a blocking rule to be added to a specific Mambu account. When a + blocking rule has been added for a specific mandate ID, collection + requests for that mandate will be rejected and a pacs.002 message sent + as response with reason code MS02. If no specific mandate ID is + provided, all direct debit collection requests for the given account + will be rejected. For more information on blocking SEPA Direct Debits, + consult the [Blocking SEPA Direct + Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) + article in our user guide. + operationId: createBlockingRule + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + description: ID of the Mambu Deposit account. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateBlockingRule' + examples: + createProductBlockingRule: + summary: >- + Request blocking all SEPA Direct Debits for the specified + account. + description: createProductBlockingRule + value: + product: SEPA_DIRECT_DEBIT + createCeditorMandateBlockingRule: + summary: >- + Request blocking SEPA Direct Debits for a specific mandate for + the specified account. + description: createCeditorMandateBlockingRule + value: + product: SEPA_DIRECT_DEBIT + creditorMandate: + mandateRelatedInformation: + mandateIdentification: '578798984' + creditorSchemeIdentification: + identification: + privateIdentification: ID777444887 + responses: + '202': + description: Accepted - The Blocking Rule has been prepared for processing. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + productCannotBeBlocked: + summary: Specified payment product cannot be blocked. + description: productCannotBeBlocked + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + path: product + text: SEPA_CREDIT_TRANSFER cannot be blocked + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + delete: + tags: + - SEPA Direct Debit + description: >- + Request deletion of blocking rules for the specified Mambu account. If + no request body is provided, all rules for the account will be removed, + if you provide a JSON body with a specific mandate ID, only the rule for + that mandate will be removed. For more information on blocking SEPA + Direct Debits, consult the [Blocking SEPA Direct + Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) + article in our user guide. + operationId: deleteBlockingRules + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + description: ID of the Mambu Deposit account. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteBlockingRule' + examples: + deleteAllBlockingRules: + summary: Delete all blocking rules for the specified account. + description: deleteAllBlockingRules + value: null + deleteProductBlockingRule: + summary: Delete product blocking rule for the specified account. + description: deleteProductBlockingRule + value: + product: SEPA_DIRECT_DEBIT + deleteCreditorMandateBlockingRule: + summary: >- + Delete creditor mandate blocking rule for the specified + account. + description: deleteCreditorMandateBlockingRule + value: + product: SEPA_DIRECT_DEBIT + creditorMandate: + mandateRelatedInformation: + mandateIdentification: '578798984' + creditorSchemeIdentification: + identification: + privateIdentification: ID777444887 + responses: + '202': + description: >- + Accepted - Blocking rules for the specified account have been + submitted for deletion. + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /accounts/{accountId}/identifications: + get: + description: >- + Gets associations of an external account identification (IBAN or + proprietary) to a Mambu Account. + operationId: getMapping + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + - name: limit + in: query + schema: + maximum: 1000 + minimum: 1 + type: integer + description: >- + Limit the number of identifications retrieved. The default limit + is 50, can be specified up to 1000. + format: int32 + default: 50 + - name: offset + in: query + schema: + minimum: 0 + type: integer + description: >- + Offset determines how many records will be skipped before being + included in the returned results. The default offset value is 0. + format: int64 + default: 0 + responses: + '200': + description: OK - List existing external identifications. + headers: + Items-Offset: + description: The index of the first returned item. + required: true + style: simple + schema: + type: integer + Items-Limit: + description: The requested page size. + required: true + style: simple + schema: + type: integer + Items-Total: + description: The total count of available items. + required: true + style: simple + schema: + type: integer + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Identification' + examples: + Identification: + summary: List of identifications + description: Identification + value: + - iban: DE46606951125202071272 + - currency: USD + - other: + identification: ABCDE1234F + scheme: PAN + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + post: + description: >- + Adds association of an external account identification (IBAN or + proprietary) to a Mambu Account. The currency of the association will be + the one of the underlining Mambu account. If an IBAN is supposed to be a + multi-currency one, this API needs to be invoked multiple times with + different Mambu accounts (for the different currencies). + operationId: createMapping + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccountMapping' + examples: + createMambuAccountMapping: + summary: >- + Create mapping between a proprietary identification and a + Mambu Account + description: createMambuAccountMapping + value: + identification: + other: + identification: ABCDE1234F + scheme: PAN + iban: DE46606951125202071272 + currency: USD + responses: + '201': + description: Created - Association successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/AccountMappingResponse' + examples: + accountMappingResponse: + summary: Successful account identification request. + description: accountMappingResponse + value: {} + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidIdentification: + summary: IBAN is not valid. + description: invalidIdentification + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + /accounts/identifications: + put: + description: >- + Create or replace associations of an external account identification + (IBAN or proprietary) to one of Mambu Accounts. The currency of the + association will be the one of the underlining Mambu account. + operationId: createMappings + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccountMappings' + examples: + createMambuAccountMappings: + summary: >- + Create mapping between a proprietary identification and + multiple Mambu Accounts with different currencies + description: createMambuAccountMappings + value: |- + { + "identification": { + "iban": "DE46606951125202071272" + }, + "accountIds": [ + "123", + ] + } + responses: + '201': + description: Created - Association successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/AccountMappingResponse' + examples: + accountMappingResponse: + summary: Successful account identification request. + description: accountMappingResponse + value: {} + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidIdentification: + summary: IBAN is not valid. + description: invalidIdentification + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + /accounts/identifications:search: + post: + description: >- + Searches identifications (with MambuID included) based on provided + filter criteria + operationId: searchAccountIdentifications + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccountIdentificationsSearchRequestDTO' + responses: + '200': + description: OK - List of found identifications with accountId + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AccountIdentificationsSearchResponseDTO' + examples: + AccountIdentificationsSearchResponse: + summary: Successful account identification search response. + description: AccountIdentificationsSearchResponse + value: + - accountId: test123 + currency: EUR + type: DEPOSIT + identification: + iban: DE46606951125202071272 + identification: ABCDE1234F + scheme: PAN + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidSearchFilter: + summary: Search filter is not valid + description: invalidSearchFilter + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: >- + searchAccountIdentifications.arg0.filterCriteria[0].field + text: >- + filterCriteria[0].field Should be one of: schema, + iban, currency, identification + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + /collections: + post: + tags: + - SEPA Direct Debit + description: >- + Creates a collection initiation request. This covers the flows as + described in the [SEPA Direct + Debit](https://support.mambu.com/docs/sepa-direct-debit-creditor-flow) + section of our user guide. + operationId: initiateCollection + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionDTO' + examples: + initiateCollectionRequest: + summary: >- + Initiate collection request for accounts identified by IBAN + and creditor agent identified by BIC. + description: initiateCollectionRequest + value: + debtorAccount: + identification: + iban: DE46606951125202071272 + currency: EUR + debtorName: John Doe + serviceLevel: SEPA + instructedAmount: + currency: EUR + amount: '500' + creditorAccount: + identification: + iban: DE16195554277485442959 + currency: EUR + creditorName: Merchant123 + paymentIdentification: + transactionIdentification: 113T9bs6ad48ga1216d772430401s01sd2 + requestedExecutionDate: '2020-09-01' + mandateRelatedInformation: + mandateIdentification: 16ead91c975c4881a60c + dateOfSignature: '2020-01-31' + paymentTypeInformation: + sequenceType: FRST + creditorSchemeIdentification: + identification: + privateIdentification: I48799148795 + responses: + '201': + description: >- + Created - Collection Initiation request was correctly performed (but + not yet accepted) nor executed. + headers: + Location: + description: >- + Location of the created collection order request resource, for + future reference or status polling. + required: true + style: simple + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + examples: + initiateCollectionResponse: + summary: Successful collection initiation response. + description: initiateCollectionResponse + value: + transactionStatus: RCVD + collectionId: e38458a4-d955-4a39-8e21-9608e9600b3d + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + missingMandatoryField: + summary: Identification for debtor account was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: debtorAccount.identification + text: debtorAccount.identification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /log: + post: + operationId: logArgument + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LogRequest' + required: true + responses: + default: + description: default response + content: + application/json: {} + tags: + - External Account Representation + /payments/financial-institution-credit-transfers: + post: + operationId: initiateCreditTransfer + parameters: + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FinancialInstitutionPaymentDTO' + responses: + default: + description: default response + content: + application/json: {} + /payments/credit-transfers: + post: + operationId: initiateCreditTransfer_1 + parameters: + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Iso20022PaymentDTO' + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Credit Transfers + /payments: + post: + tags: + - SEPA Credit Transfers + description: >- + Creates a payment initiation request. Payments using the SEPA Credit + Transfer scheme can only be created for the current date. A pacs.008 + message will be generated from the data provided in this request. For + more information on how these fields map to SEPA XML messages, refer to + the [SEPA Credit Transfer Techincal + Information](https://support.mambu.com/docs/sepa-credit-transfer-technical-information#pacs00800102) + article in our user guide. + operationId: initiatePayment + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InitiationPaymentDTO' + examples: + initiatePaymentRequest: + summary: >- + Initiate same day payment request for accounts identified by + IBAN and creditor agent identified by BIC with creditor and + debtor address information. + description: initiatePaymentRequest + value: + debtorAccount: + identification: + iban: DE46606951125202071272 + currency: EUR + debtorName: John Doe + debtorAddress: + street: Karl-Liebknecht-Str. 5 + buildingNumber: '5234' + city: Berlin + postalCode: '10178' + countryCode: DE + serviceLevel: SEPA + instructedAmount: + currency: EUR + amount: '500' + creditorAccount: + identification: + iban: DE16195554277485442959 + currency: EUR + creditorAgent: + institutionIdentification: + bicfi: DEUTDEFF + creditorName: Merchant123 + creditorAddress: + street: Am Olympiapark 1 + buildingNumber: '1' + city: Munchen + postalCode: '80809' + countryCode: DE + responses: + '201': + description: >- + Created - Payment Initiation request was correctly performed (but + not yet accepted) nor executed. + headers: + Location: + description: >- + Location of the created payment order request resource, for + future reference or status polling. + required: true + style: simple + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse' + examples: + initiatePaymentResponse: + summary: Successful payment initiation request. + description: initiatePaymentResponse + value: + transactionStatus: RCVD + paymentId: e38458a4-d955-4a39-8e21-9608e9600b3d + transactionFeeIndicator: false + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + missingMandatoryField: + summary: Identification for debtor account was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: debtorAccount.identification + text: debtorAccount.identification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders/{id}/executions: + get: + tags: + - Standing Order + description: Get executions of standing order + operationId: getExecutionsByStandingOrderId + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: ApiKey + in: header + description: ApiKey header that is used for authentication + required: true + schema: + type: string + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - Standing orders executions retrieval was successful. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderExecutionResponse' + examples: + StandingOrderExecutionResponse: + description: StandingOrderExecutionResponse + value: + - standingOrderId: standing-order-id-qwerty + paymentOrderId: paymentorderid54 + requestedExecuteOn: '2023-01-26T15:51:27' + status: FAILED + creationDate: '2023-01-26T15:52:27.865848Z' + type: RETRY + failReason: INSUFFICIENT_FUNDS + /payments/standing-orders/{id}: + get: + tags: + - Standing Order + description: Gets Standing order information + operationId: getStandingOrderDetails + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - Returns Standing order item. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderGetResponse' + examples: + standingOrderGetResponse: + summary: Standing order get response. + description: standingOrderGetResponse + value: + id: 9726992c-bda4-4867-9264-f9168337d0ec + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '500' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + lastExecution: '2022-11-17' + nextExecution: '2022-11-18' + paymentsCount: 2 + ownerId: some-owner-id + retryCount: 3 + suspendDateFrom: null + suspendDateTo: null + '404': + description: Not found - cannot find the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + standingOrderNotFound: + summary: Unable to get Standing order + description: standingOrderNotFound + value: + tppMessages: + - category: ERROR + code: RESOURCE_UNKNOWN + text: >- + Unable to find Standing order with id: + 9726992c-bda4-4867-9264-f9168337d0ec. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + delete: + tags: + - Standing Order + description: Cancel Standing order + operationId: cancelStandingOrder + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '204': + description: Standing order canceled. + '404': + description: Not found - cannot find the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + standingOrderNotFound: + summary: Unable to find Standing order + description: standingOrderNotFound + value: + tppMessages: + - category: ERROR + code: RESOURCE_UNKNOWN + text: >- + Unable to find Standing order with id: + 9726992c-bda4-4867-9264-f9168337d0ec. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders: + post: + tags: + - Standing Order + description: >- + API creates standing orders. Standing order creation will trigger + periodic payments for provided frequency from start date until the end + date. + operationId: createStandingOrder + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderDTO' + examples: + createStandingOrder: + summary: Create standing orders + description: createStandingOrder + value: | + { + "payment": { + "scheme": "SEPA", + "instructedAmount": { + "currency": "EUR", + "amount": "500" + }, + "debtorAccount": { + "identification": { + "iban": "DE87200500001234567890" + }, + "currency": "EUR" + }, + "creditorAccount": { + "identification": { + "other": { + "identification": "1234", + "scheme": "PAN" + } + }, + "currency": "EUR" + }, + "creditorName": "CreditorName", + "debtorName": "DebtorName", + "remittanceInformationUnstructured": "Remittance Info" + }, + "startDate": [ + 2022, + 11, + 8 + ], + "frequency": "DAILY", + "endDate": [ + 2022, + 11, + 8 + ], + "ownerId": "some-owner-id", + "retryPolicy": { + “ + "retryCount": "3" + } + } + responses: + '201': + description: Created - Standing order successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderCreateResponse' + examples: + standingOrderCreateResponse: + summary: Successful standing order request. + description: standingOrderCreateResponse + value: + id: 9726992c-bda4-4867-9264-f9168337d0ec + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidStandingOrderRequest: + summary: IBAN is not valid. + description: invalidStandingOrderRequest + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders:search: + post: + tags: + - Standing Order + description: Search for standing orders by search filters such as ownerId + operationId: searchStandingOrders + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: ApiKey + in: header + description: ApiKey header that is used for authentication + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSearchRequest' + examples: + standingOrderSearchRequest: + summary: Search for standing orders by search filters + description: standingOrderSearchRequest + value: |- + { + "filterCriteria": [ + { + "field": "OWNER_ID", + "operator": "EQUALS", + "value": "string" + } + { + "field": "STATUS", + "operator": "EQUALS", + "value": "string" + } + ], + "limit": 500, + "offset": 0 + } + responses: + '200': + description: OK - Standing orders search was successful. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSearchResponse' + examples: + StandingOrderSearchResponse: + description: StandingOrderSearchResponse + value: + - ownerId: some_kind_of_id_from_client + id: 9726992c-bda4-4867-9264-f9168337d0ec + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '500' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + - ownerId: some_kind_of_id_from_client + id: 9726992c-bda4-4867-9264-13245679fe + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '100' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + suspendDateFrom: null + suspendDateTo: null + /payments/standing-orders:suspend: + post: + tags: + - Standing Order + description: API suspends standing order for a particular period of time. + operationId: suspendStandingOrder + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSuspendDTO' + examples: + suspendStandingOrder: + summary: Suspend standing order + description: suspendStandingOrder + value: + id: 9726992c-bda4-4867-9264-f9168337d0ec + startDate: + - 2022 + - 11 + - 8 + endDate: + - 2022 + - 11 + - 9 + responses: + '200': + description: OK - Standing order successfully suspended. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidStandingOrderSuspendRequest: + summary: request is invalid + description: invalidStandingOrderSuspendRequest + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: id + text: id must not be null + - category: ERROR + code: FORMAT_ERROR + path: endDate + text: endDate must not be null + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}: + get: + operationId: getCollectionDetails + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + description: >- + ID of the collection order, as received in the response to a `POST + /collections` request or from the instruction ID field of a + collection. You can retrieve the instruction ID in the Payment + Gateway UI by opening up the detail view of a collection and + looking for the value of `InstId` in the Payment Identification + object. + - name: detailsLevel + in: query + schema: + type: string + description: >- + Details level of the response. `STATUS` and `FULL` detail levels + are supported. `STATUS` will return the current status and a + timestamp of when the collection order was last modified. The + default value of `FULL` will return a complete set of information + about the collection order. + default: FULL + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Direct Debit + /payments/credit-transfers/{paymentId}: + get: + operationId: creditTransferDetails + parameters: + - name: paymentId + in: path + required: true + schema: + type: string + description: >- + ID of the payment order, as received in the response to a `POST + /payments` request + - name: detailsLevel + in: query + schema: + type: string + description: >- + Details level of the response. STATUS and FULL detail levels are + supported. `STATUS` will return the current status and a timestamp + of when the payment order was last modified. The default value of + `FULL` will return a complete set of information about the payment + order. + default: FULL + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Credit Transfers + /payments/{paymentId}: + get: + operationId: getPaymentDetails + parameters: + - name: paymentId + in: path + required: true + schema: + type: string + description: >- + ID of the payment order, as received in the response to a `POST + /payments` request + - name: detailsLevel + in: query + schema: + type: string + description: >- + Details level of the response. STATUS and FULL detail levels are + supported. `STATUS` will return the current status and a timestamp + of when the payment order was last modified. The default value of + `FULL` will return a complete set of information about the payment + order. + default: FULL + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Credit Transfers + /payments:settleInstantPayment: + post: + tags: + - SEPA Credit Transfers + description: Accepts requests for an instant payment settlement. + operationId: settleInstantPayment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InstantPaymentSettlement' + examples: + instantPaymentSettlementRequest: + summary: Request settlement for an instant payment. + description: instantPaymentSettlementRequest + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transaction: + debtorAgent: + institutionIdentification: + bicfi: FUBKDE71 + paymentIdentification: + transactionIdentification: 00730100632BHGCRWC + acceptanceDateTime: '2023-04-05T09:07:37' + required: true + responses: + '202': + description: >- + Accepted - The instant payment settlement request has been accepted + for processing. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:reject: + post: + tags: + - SEPA Credit Transfers + description: Manually Reject an Outgoing Payment. + operationId: manuallyRejectOutgoingPayment + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified payment order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expected status is: TO_BE_SENT. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:recall: + post: + tags: + - SEPA Credit Transfers + description: Recall an outgoing payment. + operationId: recallOutgoingPayment + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Recall' + required: true + responses: + '200': + description: OK - Payment marked to be recalled successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badRecallReasonCode: + summary: A non SEPA compliant recall reason code was provided. + description: badRecallReasonCode + value: + tppMessages: + - category: ERROR + code: INVALID_REQUEST_BODY + text: '' + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: |- + { + "tppMessages": [ + { + "category": "ERROR", + "code": "SERVICE_INVALID", + "text": "There was an error processing your request. } + ] + } + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:denyOutgoingRecall: + post: + tags: + - SEPA Credit Transfers + description: Deny an Outgoing Recall. + operationId: denyOutgoingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified outgoing recall has been marked to be rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidPaymentOrderId: + summary: No payment order found for given id. + description: invalidPaymentOrderId + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Order + bac5161bd53348fa8dfc143cae49ba13 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:denyIncomingRecall: + post: + tags: + - SEPA Credit Transfers + description: Deny an Incoming Recall. + operationId: denyIncomingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CancellationDetails' + required: true + responses: + '200': + description: OK - The specified incoming recall has been marked to be rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequest: + summary: >- + The request is invalid for the current state of the + transaction. + description: invalidRequest + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Database update failed due to invalid request, + expected number of updated rows is 1, actual number + is: 0. The error message is: pending.authorized.failed + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:approveOutgoingRecall: + post: + tags: + - SEPA Credit Transfers + description: Approve an Outgoing Recall. + operationId: approveOutgoingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified outgoing recall has been authorized. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidPaymentOrderId: + summary: No payment order found for given id. + description: invalidPaymentOrderId + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Order + bac5161bd53348fa8dfc143cae49ba13 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:approveIncomingRecall: + post: + tags: + - SEPA Credit Transfers + description: Approve an Incoming Recall. + operationId: approveIncomingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified incoming recall has been authorized. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequest: + summary: >- + The request is invalid for the current state of the + transaction. + description: invalidRequest + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Database update failed due to invalid request, + expected number of updated rows is 1, actual number + is: 0. The error message is: pending.authorized.failed + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}/aml:resendCallout: + post: + tags: + - AML + description: Resends the AML callout for an Outgoing payment. + operationId: resendCTAmlCallout + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The AML callout was resent for the provided payment order. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/incoming: + post: + tags: + - Incoming Messages + description: Creates an incoming message request. + operationId: submitIncomingMessage + parameters: + - name: X-Request-ID + in: header + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: X-Payment-Scheme + in: header + description: Specifies payment scheme for processing. + required: false + schema: + type: string + description: Specifies payment scheme for processing. + - name: Content-Type + in: header + required: true + schema: + type: string + requestBody: + content: + application/xml: + schema: + type: string + examples: + incomingCreditTransferRequest: + summary: Request processing for the given incoming pacs.008 message. + description: incomingCreditTransferRequest + value: >- + + ... + text/plain: + schema: + type: string + required: true + responses: + '202': + description: >- + Accepted - Incoming file accepted and is due for processing, when + incoming scheduler is configured to run. Outgoing (complete / + partial) pacs.002 will be published in case of complete / partial + processing of incoming pacs.008. If the incoming pacs.008 is + completely failed then a rejected pacs.002 will be published. + Outgoing pacs.004 will be published for failed transaction from + incoming pacs.008. + content: + application/json: + schema: + $ref: '#/components/schemas/IncomingMessageResponse' + examples: + incomingPacs008Response: + summary: Successful accept incoming payment message + description: incomingPacs008Response + value: + messageId: SCTORD200020190305ORD000011119 + messageType: urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02 + incomingCamt056Response: + summary: Successful accept incoming payment recall message + description: incomingCamt056Response + value: + messageId: 568R9154000000000000000000000000010 + messageType: urn:iso:std:iso:20022:tech:xsd:camt.056.001.01 + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body may not be empty + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/json" instead of "application/xml". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/aml: + post: + tags: + - AML + description: >- + Accepts AML check results for Payment Orders, for example SEPA Credit + Transfers. + operationId: processPaymentAmlResponse + parameters: + - name: Content-Type + in: header + description: application/json + required: true + - name: X-Request-ID + in: header + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AmlResult' + examples: + amlInformation: + summary: AML check result. + description: amlInformation + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transactions: + - status: Accepted + paymentIdentification: + transactionIdentification: 00730100632BHGCRWC + debtorAgent: + institutionIdentification: + bicfi: BTRLRO22 + interbankSettlementDate: '2019-06-28' + required: true + responses: + '200': + description: OK - The AML check result has been prepared for processing. + content: + '*/*': + schema: + type: string + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + content: + '*/*': + schema: + type: string + /inquiries:skipStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: >- + Skips response for Request for Status Update on Recall with given + details. + operationId: skipStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SkipStatusUpdateOnRecall' + examples: + skipStatusUpdateOnRecall: + summary: >- + Request for skipping Request for Status Update on Recall + response + description: skipStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + required: true + responses: + '200': + description: >- + OK - Request for skipping Status Update on Recall response was + received + '400': + description: Bad Request - Invalid Transaction Status. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: >- + Transaction status is invalid for skipping Status Update on + Recall response. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: 'Transaction has invalid status: REPLY_SKIPPED' + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:requestStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create inquiry to request status update for a payment cancellation. + operationId: requestStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalCamt056Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Payment Cancellation Request transaction + not found. Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: >- + The original Payment Cancellation Request transaction not + found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:requestStatusUpdateOnInquiry: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create status update request for existing camt.087 or camt.027 inquiry + operationId: requestStatusUpdateOnInquiry + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalInquiryData' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:rejectStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: >- + Handles negative response for Request for Status Update on Recall with + given details. + operationId: rejectStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RejectStatusUpdateOnRecall' + examples: + rejectStatusUpdateOnRecall: + summary: >- + Request for handling Request for Status Update on Recall + negative response + description: rejectStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + originalMessageIdentification: 22b8f938c6154877886a0c1fc9e74166 + originalInstructionIdentification: 562f8f9f8c6154844886a0c1fc9e7451 + cancellationDetails: + rejectionReason: ARDT + required: true + responses: + '200': + description: >- + OK - Request for Status Update on Recall negative response was + received + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body must not be empty + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:claimValueDateCorrection: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create inquiry to request claim for value-date change. + operationId: claimValueDateCorrection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalPacs008Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit Transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit Transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original Credit Transfer transaction for 123456 not + found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:claimNonReceipt: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create inquiry for claim of non-receipt + operationId: claimNonReceipt + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalPacs008Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:acceptStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: >- + Handles positive response for Request for Status Update on Recall with + given details. + operationId: acceptStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AcceptStatusUpdateOnRecall' + examples: + acceptStatusUpdateOnRecall: + summary: >- + Request for handling Request for Status Update on Recall + positive response + description: acceptStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + originalMessageIdentification: 22b8f938c6154877886a0c1fc9e74166 + originalInstructionIdentification: 562f8f9f8c6154844886a0c1fc9e7451 + required: true + responses: + '200': + description: >- + OK - Request for Status Update on Recall positive response was + received + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body must not be empty + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionOrderId}:reject: + post: + tags: + - SEPA Direct Debit + description: Manually Reject an Outgoing Collection. + operationId: manuallyRejectOutgoingCollection + parameters: + - name: collectionOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified collection order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expected status is: TO_BE_SENT. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionOrderId}:rejectIncoming: + post: + tags: + - SEPA Direct Debit + description: Manually Reject an Incoming Collection. + operationId: manuallyRejectIncomingCollection + parameters: + - name: collectionOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified collection order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expecting one of the following statuses: + PENDING_SETTLEMENT, RECEIVED. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}:reverse: + post: + tags: + - SEPA Direct Debit + description: Reverse a Collection Instruction. + operationId: reverse + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Reverse' + required: true + responses: + '200': + description: OK - Collection Instruction marked to be reversed successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badReversalReasonCode: + summary: A non SEPA compliant refund reason code was provided. + description: badReversalReasonCode + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: value 'MS01' not supported + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}:refund: + post: + tags: + - SEPA Direct Debit + description: Refund a Collection Instruction. + operationId: refund + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Refund' + required: true + responses: + '200': + description: OK - Collection Instruction marked to be refunded successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badRefundReasonCode: + summary: A non SEPA compliant refund reason code was provided. + description: badRefundReasonCode + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: value 'MD02' not supported + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}/aml:resendCallout: + post: + tags: + - AML + description: Resends the AML callout for an Outgoing collection. + operationId: resendDDAmlCallout + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The AML callout was resent for the provided collection order. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/aml: + post: + tags: + - AML + description: >- + Accepts AML check results for collections, for example, SEPA Direct + Debits. + operationId: processCollectionAmlResponse + parameters: + - name: Content-Type + in: header + description: application/json + required: true + - name: X-Request-ID + in: header + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AmlResult' + examples: + amlInformation: + summary: AML check result. + description: amlInformation + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transactions: + - status: Accepted + collectionIdentification: + transactionIdentification: 00730100632BHGCRWC + creditorAgent: + institutionIdentification: + bicfi: BTRLRO22 + interbankSettlementDate: '2019-06-28' + required: true + responses: + '200': + description: OK - The AML check result has been prepared for processing. + content: + '*/*': + schema: + type: string + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + content: + '*/*': + schema: + type: string + /aml:resendCallouts: + post: + tags: + - AML + description: Resends the AML callouts. + operationId: resendAmlCallouts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ResendAmlFilter' + required: true + responses: + '200': + description: OK - The AML callouts were resent. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/json" instead of "application/xml". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /accounts/identifications:mask: + post: + tags: + - External Account Representation + description: Mask identifications from Payments Gateway. + operationId: mask + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IdentificationsToMask' + required: true + responses: + '200': + description: OK - Identifications masked. This operation is irreversible. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + identificationAlreadyMasked: + summary: >- + At least one of the provided identifications was already + masked + description: identificationAlreadyMasked + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Following identifications are already masked: + DK0643182702662691 + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /instructions: + get: + tags: + - Search Messages + description: Retrieve the SEPA messages details. + operationId: findSepaMessages + parameters: + - name: sepaMessageFilter + in: query + required: true + schema: + $ref: '#/components/schemas/SepaMessageFilter' + responses: + '200': + description: OK - SEPA Messages Details were correctly found. + content: + application/json: + schema: + $ref: '#/components/schemas/SepaMessages' + examples: + pacs.008 instruction information: + summary: Information retrieved for a pacs.008 message + description: pacs.008 instruction information + value: + instructions: + - FIToFICstmrCdtTrf: + grpHdr: + msgId: 22b8f938c6154877886a0c1fc9e74166 + creDtTm: '2019-04-11T09:08:45+03:00' + nbOfTxs: '2' + ttlIntrBkSttlmAmt: + value: 200 + ccy: EUR + intrBkSttlmDt: '2019-04-11T00:00:00+03:00' + sttlmInf: + clrSys: + prtry: ST2 + instgAgt: + finInstnId: + bic: ABVRATW1XXX + cdtTrfTxInf: + - pmtId: + instrId: 82d7125b36014c2e8cc442a3586badd0 + endToEndId: NOTPROVIDED + txId: 4112f6688c846a89bee2b2c476f1145 + pmtTpInf: + svcLvl: + cd: SEPA + intrBkSttlmAmt: + value: 100 + ccy: EUR + accptncDtTm: '2019-04-11T09:08:45+03:00' + chrgBr: SLEV + dbtr: + nm: John Doe + dbtrAcct: + id: + iban: RO59INGBW91QIQFZSG6IZBJT + dbtrAgt: + finInstnId: + bic: INGBROBU + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: BT + pstlAdr: + ctry: DE + cdtrAcct: + id: + iban: RO75BTRLBSIJS00RPQWYLYWL + _metadata: + transactionSn: 1 + transactionStatus: RECEIVED + paymentId: 67eacbf33f1b4eaea8d1055a2a01adea + - pmtId: + instrId: 108cf3f5fd833aa5bc5efb90c0dee19e + endToEndId: NOTPROVIDED + txId: 758e663666ae40be8e9278a9e4e899f9 + pmtTpInf: + svcLvl: + cd: SEPA + intrBkSttlmAmt: + value: 100 + ccy: EUR + accptncDtTm: '2019-04-11T09:08:45+03:00' + chrgBr: SLEV + dbtr: + nm: John Doe + dbtrAcct: + id: + iban: RO59INGBW91QIQFZSG6IZBJT + dbtrAgt: + finInstnId: + bic: INGBROBU + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: BT + pstlAdr: + ctry: DE + cdtrAcct: + id: + iban: RO94BTRLVU048EN2KBPTVT7U + _metadata: + transactionSn: 2 + transactionStatus: RECEIVED + paymentId: fcaae256fed94018958326c9cb752aeb + _metadata: + bulkSn: 1 + direction: I + messageId: pacs.008 + transactions: 2 + pacs.004 instruction information: + summary: Information retrieved for a pacs.004 message + description: pacs.004 instruction information + value: + instructions: + - PmtRtr: + grpHdr: + msgId: '1' + creDtTm: '2018-11-26T21:47:57+02:00' + nbOfTxs: '1' + ttlRtrdIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + intrBkSttlmDt: '2018-11-26T00:00:00+02:00' + sttlmInf: + sttlmMtd: CLRG + clrSys: + prtry: ST2 + txInf: + - rtrId: '2020181126130827322001' + orgnlGrpInf: + orgnlMsgId: '1231231312' + orgnlMsgNmId: pacs.008 + orgnlEndToEndId: 10864caa82034bc8a12e4bf3e117d10d + orgnlTxId: '8097758122275259' + rtrdIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + rtrRsnInf: + orgtr: + id: + orgId: + bicorBEI: DABADKKK + rsn: + cd: AC_01 + orgnlTxRef: + intrBkSttlmDt: '2018-11-26T00:00:00+02:00' + sttlmInf: + sttlmMtd: CLRG + pmtTpInf: + svcLvl: + cd: SEPA + dbtr: + nm: Hanne Doe + dbtrAcct: + id: + iban: DK0643182702662691 + dbtrAgt: + finInstnId: + bic: DABADKKK + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: John Doe + cdtrAcct: + id: + iban: RO69BTRL3333444433334444 + _metadata: + transactionSn: 14 + transactionStatus: RECEIVED + returnReason: AC01 + paymentId: 22886adc407e4280b7df22a966d08425 + _metadata: + bulkSn: 10 + direction: I + messageId: pacs.004.001.02 + procstatus: REPLIED + transactions: 1 + camt.056 instruction information: + summary: Information retrieved for a camt.056 message + description: camt.056 instruction information + value: + instructions: + - FIToFIPmtCxlReq: + assgnmt: + id: msg-id-camt.056.001.01 + assgnr: + agt: + finInstnId: + bic: TESTXXXXXXX + assgne: + agt: + finInstnId: + bic: TESTXXXXXXX + creDtTm: 2019-05-14T21:00:00.000+0000 + ctrlData: + nbOfTxs: 1 + undrlyg: + - txInf: + cxlId: 000R9087000000011 + orgnlGrpInf: + orgnlMsgId: SCTORD15682019 + orgnlMsgNmId: pacs.008.001.02 + orgnlInstrId: '6630844036108666' + orgnlEndToEndId: NOTPROVIDED + orgnlTxId: '8097758122275259' + orgnlIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + orgnlIntrBkSttlmDt: 2019-06-19T21:00:00.000+0000 + cxlRsnInf: + - orgtr: + nm: Beneficioso beneficiar io + rsn: + cd: DUPL + orgnlTxRef: + sttlmInf: + sttlmMtd: CLRG + clrSys: + cd: REP + pmtTpInf: + svcLvl: + cd: SEPA + rmtInf: + ustrd: + - Pruebas para CECA 1 + ultmtDbtr: + nm: EUR + dbtr: + nm: ENRIQUE ROMERA MARTINEZ DE MIGUEL + dbtrAcct: + id: + iban: ES1011110001087939390799 + dbtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtr: + nm: Beneficioso beneficiario + cdtrAcct: + id: + iban: ES6520950001153279157264 + _metadata: + transactionSn: 2 + transactionStatus: TO_BE_SENT + returnReason: DUPL + paymentId: poId + _metadata: + bulkSn: 2 + direction: I + messageId: camt.056.001.01 + procstatus: RETRIEVED + transactions: 1 + camt.029 instruction information: + summary: Information retrieved for a camt.029 message + description: camt.029 instruction information + value: + instructions: + - RsltnOfInvstgtn: + assgnmt: + id: msg-id-camt.029.001.03 + assgnr: + agt: + finInstnId: + bic: TESTXXXXXXX + assgne: + agt: + finInstnId: + bic: TESTXXXXXXX + creDtTm: 2019-05-14T21:00:00.000+0000 + sts: + conf: RJCT + cxlDtls: + - txInfAndSts: + cxlStsId: 568R9 + orgnlGrpInf: + orgnlMsgId: SCTORD156820190620000000000001 + orgnlMsgNmId: pacs.008.001.02 + orgnlInstrId: a5fbae19e3d24522963ad60d018f2e49 + orgnlEndToEndId: 7456b0bb2c1a4209b87b4636995c5d08 + orgnlTxId: '1002' + txCxlSts: RJCR + cxlStsRsnInf: + - orgtr: + id: + orgId: + bicorBEI: TESTXXXXXXX + rsn: + cd: AGNT + orgnlTxRef: + intrBkSttlmAmt: + value: 4000.5 + ccy: EUR + intrBkSttlmDt: 2019-06-19T21:00:00.000+0000 + sttlmInf: + sttlmMtd: CLRG + clrSys: + prtry: ACHT1234567890123456789012345678905 + pmtTpInf: + svcLvl: + cd: SEPA + rmtInf: + ustrd: + - Pruebas para CECA 1 + dbtr: + nm: ENRIQUE ROMERA MARTINEZ DE MIGUEL + dbtrAcct: + id: + iban: ES1011110001087939390799 + dbtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtr: + nm: Beneficioso beneficiario + cdtrAcct: + id: + iban: ES6520950001153279157264 + _metadata: + transactionSn: 3 + transactionStatus: TO_BE_SENT + returnReason: RJCT + paymentId: poId + _metadata: + bulkSn: 3 + direction: O + messageId: camt.029.001.03 + procstatus: RETRIEVED + transactions: 1 + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidDirection: + summary: The provided direction value is not valid + description: invalidDirection + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: 'direction invalid value: example_invalid_direction' + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. +components: + schemas: + AcceptStatusUpdateOnRecall: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/TransactionInformation' + required: + - groupHeader + - transactionInformation + type: object + AccountDTO: + description: Settlement account used when settlement method is INDA/INGA. + properties: + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + identification: + $ref: '#/components/schemas/IdentificationDTO' + required: + - identification + type: object + AccountIdentificationsFilterCriteriaDTO: + description: Account identification search criteria + properties: + field: + description: >- + Contains the actual searching fields that can be native (one from + the provided list) + enum: + - SCHEME + - IBAN + - IDENTIFICATION + type: string + operator: + description: >- + EQUALS - checks that 'field' equals to 'value' (strict equals, does + not support parts or masks) + enum: + - EQUALS + - IN + - BETWEEN + - GREATER_THAN + - LESS_THAN + type: string + value: + description: The value to match the searching criteria + type: string + required: + - field + - operator + type: object + AccountIdentificationsSearchRequestDTO: + properties: + filterCriteria: + description: Account identification search criteria + items: + $ref: '#/components/schemas/AccountIdentificationsFilterCriteriaDTO' + type: array + required: + - filterCriteria + type: object + AccountIdentificationsSearchResponseDTO: + properties: + accountId: + description: AccountID (Unique and unambiguous identification for the account.) + type: string + currency: + description: Account currency + type: string + identification: + $ref: '#/components/schemas/Identification' + type: + description: Account type + type: string + required: + - accountId + - identification + type: object + AccountInternalIdentification: + description: >- + Mambu Accounts corresponding to the current IBAN / proprietary + identification + properties: + currency: + type: string + id: + type: string + type: + enum: + - DEPOSIT + - LOAN + type: string + type: object + AccountMappingResponse: + properties: + internalAccounts: + description: >- + Mambu Accounts corresponding to the current IBAN / proprietary + identification + items: + $ref: '#/components/schemas/AccountInternalIdentification' + type: array + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + AddressDTO: + properties: + buildingNumber: + description: ' The building or street number of the address. Must not exceed 16 characters.' + maxLength: 16 + minLength: 1 + type: string + city: + description: The city of the address. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + countryCode: + description: >- + Two characters as defined by ISO 3166. For example `DE` for Germany, + `TZ` for Tanzania. + maxLength: 2 + minLength: 2 + type: string + postalCode: + description: The postal code of the address. Must not exceed 16 characters. + maxLength: 16 + minLength: 1 + type: string + street: + description: The street name of the adress. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - countryCode + type: object + Agent: + description: Financial institution servicing an account for the debtor. + properties: + institutionIdentification: + $ref: '#/components/schemas/InstitutionIdentification' + required: + - institutionIdentification + type: object + AgentDTO: + description: >- + Financial institution servicing an account for the creditor. This field + is mandatory when proprietary ('other') creditor account identification + is used. + properties: + account: + $ref: '#/components/schemas/AccountDTO' + institutionIdentification: + $ref: '#/components/schemas/InstitutionIdentificationDTO' + required: + - institutionIdentification + type: object + AmendmentInformationDetailsDTO: + description: List of mandate elements that have been modified. + properties: + originalCreditorSchemeIdentification: + $ref: '#/components/schemas/OriginalCreditorSchemeIdentificationDTO' + originalDebtorAccount: + $ref: '#/components/schemas/AccountDTO' + originalDebtorAgent: + $ref: '#/components/schemas/AgentDTO' + originalMandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the original mandate. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + type: object + AmlPaymentIdentification: + description: Payment instruction reference. + properties: + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. + type: string + required: + - transactionIdentification + type: object + AmlResult: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeader' + transactions: + description: List of AML result checks, one per Payment Order. + items: + $ref: '#/components/schemas/AmlTransactionResult' + type: array + required: + - groupHeader + - transactions + type: object + AmlTransactionResult: + description: List of AML result checks, one per Payment Order. + properties: + debtorAgent: + $ref: '#/components/schemas/Agent' + interbankSettlementDate: + description: >- + InterbankSettlementDate from the original instruction in the format + `YYYY-MM-DD`. + maxLength: 10 + minLength: 10 + type: string + paymentIdentification: + $ref: '#/components/schemas/AmlPaymentIdentification' + status: + description: >- + Actual status of the AML investigation. Must be one of `ACCEPTED`, + `SUSPENDED`, `REJECTED`, `MANUAL_REDIRECT_EXTERNAL` or + `MANUAL_REDIRECT_INTERNAL`. + enum: + - ACCEPTED + - SUSPENDED + - REJECTED + - MANUAL_REDIRECT_EXTERNAL + - MANUAL_REDIRECT_INTERNAL + type: string + required: + - debtorAgent + - interbankSettlementDate + - paymentIdentification + - status + type: object + AmountDTO: + properties: + amount: + description: >- + The amount given with fractional digits, where fractions must be + compliant to the currency definition. Negative amounts are signed by + minus. The decimal separator is a dot. + maxLength: 12 + minLength: 1 + type: string + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + required: + - amount + - currency + type: object + Assignment: + description: Assignment + properties: + creationDateTime: + description: creation date time + format: date-time + type: string + identification: + description: camt.027/camt.087 assignment id + type: string + type: object + CancellationDetails: + properties: + additionalInformation: + description: >- + Further details on the cancellation request reason. The order must + be as defined in the SEPA guideline. The prefixes will be added + automatically. First occurrence will be added to the first + (mandatory) entry of additional information. When denying a recall, + if you do not want to add extra information to the mandatory + occurrence, please provide an empty string. For Legal additional + information, second and third occurrence will be added on the second + and third additional information. + items: + description: >- + Further details on the cancellation request reason. The order must + be as defined in the SEPA guideline. The prefixes will be added + automatically. First occurrence will be added to the first + (mandatory) entry of additional information. When denying a + recall, if you do not want to add extra information to the + mandatory occurrence, please provide an empty string. For Legal + additional information, second and third occurrence will be added + on the second and third additional information. + type: string + type: array + originalRecallReasonAdditionalInformation: + description: >- + Further details on the cancellation reason which can be used when + the recall rejection reason was AC03 for a recall made by the + originator or FRAD for a recall made by the financial institution. + The prefixes will be added automatically. Up to 10 occurrences are + allowed. + items: + description: >- + Further details on the cancellation reason which can be used when + the recall rejection reason was AC03 for a recall made by the + originator or FRAD for a recall made by the financial institution. + The prefixes will be added automatically. Up to 10 occurrences are + allowed. + type: string + type: array + rejectionReason: + description: >- + Reason for the cancellation status. Only ARDT, AC04, AM04, NOAS, + NOOR, CUST, LEGL, AGNT are allowed. + enum: + - ARDT + - AC04 + - AM04 + - NOAS + - NOOR + - CUST + - LEGL + - AGNT + type: string + required: + - rejectionReason + type: object + CollectionDTO: + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + creditorSchemeIdentification: + $ref: '#/components/schemas/CreditorSchemeIdentificationDTO' + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + mandateRelatedInformation: + $ref: '#/components/schemas/MandateDTO' + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentificationDTO' + paymentTypeInformation: + $ref: '#/components/schemas/PaymentTypeInformationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - creditorSchemeIdentification + - debtorAccount + - debtorName + - instructedAmount + - mandateRelatedInformation + - paymentTypeInformation + type: object + CollectionResponse: + properties: + collectionId: + description: >- + Resource identification of the generated payment initiation + resource. + type: string + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + transactionFeeIndicator: + description: >- + If set to `true`, the transaction will involve additional costs or + fees. + type: boolean + transactionStatus: + description: >- + PSD2 transaction status codes: + enum: + - ACSC + - ACSP + - ACTC + - CPVP + - RCVD + - PDNG + - RJCT + type: string + required: + - collectionId + - transactionStatus + type: object + CreateAccountMapping: + properties: + identification: + $ref: '#/components/schemas/Identification' + required: + - identification + type: object + CreateAccountMappings: + properties: + accountIds: + description: >- + IDs of the Mambu Accounts which will be correlated to the IBAN or + proprietary identification. The association will be made on account + currency. + items: + description: >- + IDs of the Mambu Accounts which will be correlated to the IBAN or + proprietary identification. The association will be made on + account currency. + type: string + type: array + identification: + $ref: '#/components/schemas/Identification' + required: + - accountIds + - identification + type: object + CreateBlockingRule: + properties: + creditorMandate: + $ref: '#/components/schemas/CreditorMandateDTO' + product: + description: >- + Payment Product to which this rule applies. For now, blocking rules + can be applied to `SEPA_DIRECT_DEBIT` only + type: string + required: + - product + type: object + CreditorMandateDTO: + description: >- + Collection mandate identification for deleting a rule applying to a + specific mandate. + properties: + creditorSchemeIdentification: + $ref: '#/components/schemas/CreditorSchemeIdentificationDTO' + mandateRelatedInformation: + $ref: '#/components/schemas/MandateRelatedInformationDTO' + required: + - creditorSchemeIdentification + - mandateRelatedInformation + type: object + CreditorSchemeIdentification: + properties: + identification: + description: Object containing the identifier. + properties: + privateIdentification: + description: Unique and unambiguous identification of a person, eg, passport. + example: ABC123 + type: string + required: + - privateIdentification + type: object + CreditorSchemeIdentificationDTO: + description: Credit party that signs the mandate. + properties: + identification: + $ref: '#/components/schemas/IdentificationDTO' + required: + - identification + type: object + DeleteBlockingRule: + properties: + creditorMandate: + $ref: '#/components/schemas/CreditorMandateDTO' + product: + description: >- + Payment product to remove blocking rules from. Must be + `SEPA_DIRECT_DEBIT`. + type: string + required: + - product + type: object + FailedPaymentResponse: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + required: + - tppMessages + type: object + FilterCriteria: + properties: + field: + type: string + operator: + type: string + value: + type: string + required: + - field + - operator + - value + type: object + FinancialInstitutionPaymentDTO: + properties: + categoryPurposeCode: + description: >- + Specifies the high level purpose of the payment based on a set of + pre-defined categories. + maxLength: 4 + minLength: 1 + type: string + creditor: + $ref: '#/components/schemas/AgentDTO' + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + debtor: + $ref: '#/components/schemas/AgentDTO' + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + intermediaryAgent1: + $ref: '#/components/schemas/AgentDTO' + intermediaryAgent2: + $ref: '#/components/schemas/AgentDTO' + intermediaryAgent3: + $ref: '#/components/schemas/AgentDTO' + paymentIdentification: + $ref: '#/components/schemas/Iso20022PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditor + - debtor + - instructedAmount + - scheme + - settlementInformation + type: object + GroupHeader: + description: GroupHeader information from the original instruction. + properties: + messageIdentification: + description: Message Identification from the original instruction. + type: string + required: + - messageIdentification + type: object + GroupHeaderIncoming: + description: >- + Set of characteristics shared by all individual transactions included in + the Request for Status Update on Recall message + properties: + creationDateTime: + description: >- + Date and time at which the inquiry message was created. Accepted + format: yyyy-MM-ddTHH:mm:ss + type: string + instructingAgent: + description: >- + Agent that is instructed by the previous party in the chain to carry + out the (set of) instruction(s). + type: string + messageIdentification: + description: Message identification to identify the inquiry message + type: string + required: + - creationDateTime + - instructingAgent + - messageIdentification + type: object + Identification: + description: Identification + properties: + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + iban: + description: >- + ISO 13616 International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. + maxLength: 34 + minLength: 15 + type: string + other: + $ref: '#/components/schemas/Other' + type: object + Identification-IBAN: + properties: + iban: + description: >- + ISO 13616 International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. + maxLength: 34 + minLength: 15 + type: string + type: object + IdentificationDTO: + description: Unique and unambiguous identification for the account. + properties: + iban: + description: >- + International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. Must be between 15 and 34 characters. + maxLength: 34 + minLength: 15 + type: string + other: + $ref: '#/components/schemas/OtherDTO' + type: object + IdentificationsToMask: + properties: + identifications: + items: + $ref: '#/components/schemas/Identification-IBAN' + type: array + required: + - identifications + type: object + IncomingMessageResponse: + properties: + messageId: + description: Resource identification of the incoming message + type: string + messageType: + description: URN namespace of the incoming message + type: string + required: + - messageId + - messageType + type: object + InitiationPaymentDTO: + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + type: object + InstantPaymentIdentification: + description: Payment instruction reference. + properties: + acceptanceDateTime: + description: >- + AcceptanceDateTime from the original instruction; must be in the + same format as it was sent in the original instruction. + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. + type: string + required: + - acceptanceDateTime + - transactionIdentification + type: object + InstantPaymentSettlement: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeader' + transaction: + $ref: '#/components/schemas/InstantTransaction' + required: + - groupHeader + - transaction + type: object + InstantTransaction: + description: Original transaction information. + properties: + debtorAgent: + $ref: '#/components/schemas/Agent' + paymentIdentification: + $ref: '#/components/schemas/InstantPaymentIdentification' + required: + - debtorAgent + - paymentIdentification + type: object + InstitutionIdentification: + description: >- + Unique and unambiguous identification of a financial institution, as + assigned under an internationally recognised identification scheme. + properties: + bicfi: + description: >- + ISO 9362 Business identifier code (BIC) - code allocated to a + financial institution. Must be between 8 and 11 characters. + maxLength: 11 + minLength: 8 + type: string + required: + - bicfi + type: object + InstitutionIdentificationDTO: + description: >- + Unique and unambiguous identification of a financial institution, as + assigned under an internationally recognised identification scheme. + properties: + bicfi: + description: >- + ISO 9362 Business identifier code (BIC) - code allocated to a + financial institution. Must be between 8 and 11 characters. + maxLength: 11 + minLength: 8 + type: string + required: + - bicfi + type: object + Iso20022PaymentDTO: + properties: + categoryPurposeCode: + description: >- + Specifies the high level purpose of the payment based on a set of + pre-defined categories. + maxLength: 4 + minLength: 1 + type: string + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + paymentIdentification: + $ref: '#/components/schemas/Iso20022PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + - scheme + - settlementInformation + type: object + Iso20022PaymentIdentificationDTO: + properties: + endToEndIdentification: + description: >- + Unique identification assigned by the payer to identify the + transaction. This identification will be returned to the payer and + passed on to the beneficiary. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. If left empty, Mambu transaction id will + be used. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + uetr: + description: >- + Universally unique identifier to provide an end-to-end reference of + a payment transaction. + maxLength: 36 + minLength: 36 + type: string + type: object + LogRequest: + properties: + log: + maxLength: 300 + minLength: 1 + type: string + required: + - log + type: object + MandateDTO: + description: >- + Set of elements used to provide further details of the direct debit + mandate signed between the creditor and the debtor. + properties: + amendmentInformationDetails: + $ref: '#/components/schemas/AmendmentInformationDetailsDTO' + dateOfSignature: + description: >- + Date on which the direct debit mandate has been signed by the debtor + in the format `YYYY-MM-DD`. + type: string + mandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the mandate. + type: string + required: + - dateOfSignature + - mandateIdentification + type: object + MandateRelatedInformationDTO: + properties: + mandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the collection mandate. + type: string + required: + - mandateIdentification + type: object + Message: + description: List of SEPA instructions. + type: object + OriginalCamt056Data: + properties: + cancellationIdentification: + description: Cancellation identification. + type: string + groupHeader: + $ref: '#/components/schemas/GroupHeader' + historicCancellationRequest: + description: Original camt.056.001.01 message body XML for historical requests. + type: string + required: + - cancellationIdentification + type: object + OriginalCreditorSchemeIdentificationDTO: + description: Original creditor scheme identification that has been modified. + properties: + identification: + $ref: '#/components/schemas/IdentificationDTO' + name: + description: Name of the creditor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + type: object + OriginalInquiryData: + properties: + assignment: + $ref: '#/components/schemas/Assignment' + caseIdentification: + description: camt.027/camt.087 case id + type: string + historicClaimRequest: + description: Optional historic camt.087 or camt.027 xml + type: string + messageTypeName: + description: messageTypeName + enum: + - PACS_002_001_03 + - PACS_002_001_10 + - PACS_002_001_12 + - PACS_003_001_02 + - PACS_003_001_08 + - PACS_004_001_02 + - PACS_004_001_09 + - PACS_004_001_11 + - PACS_007_001_02 + - PACS_007_001_09 + - PACS_008_001_02 + - PACS_008_001_08 + - PACS_008_001_10 + - PACS_028_001_01 + - PACS_028_001_03 + - CAMT_027_001_06 + - CAMT_027_001_07 + - CAMT_029_001_03 + - CAMT_029_001_08 + - CAMT_029_001_09 + - CAMT_029_001_11 + - CAMT_056_001_01 + - CAMT_056_001_08 + - CAMT_056_001_10 + - CAMT_087_001_05 + - CAMT_087_001_06 + - SIC_PACS_008_001_08 + - SIC_PACS_004_001_09 + - SIC_PACS_002_001_10 + - MT_103 + - MT_103_RETURN + - UNKNOWN + type: string + required: + - caseIdentification + - messageTypeName + type: object + OriginalPacs008Data: + properties: + claimedValueDate: + description: Claimed value-date for change. + format: date + type: string + groupHeader: + $ref: '#/components/schemas/Pacs008GroupHeader' + historicCreditTransferRequest: + description: Original pacs.008 message body XML for historical requests. + type: string + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentification' + required: + - paymentIdentification + type: object + Other: + description: >- + Unique identification of an account, as assigned by the account + servicer, using other identification scheme. + properties: + identification: + description: Identification assigned by an institution. + maxLength: 34 + minLength: 1 + type: string + scheme: + description: Name of the identification scheme. + maxLength: 35 + minLength: 1 + type: string + required: + - identification + - scheme + type: object + OtherDTO: + description: >- + Unique identification of an account, as assigned by the account + servicer, using any other identification scheme. + properties: + identification: + description: >- + Identification assigned by an institution. Must not exceed 34 + characters. + maxLength: 34 + minLength: 1 + type: string + scheme: + description: >- + Name or code of the identification scheme. Must not exceed 35 + characters. + maxLength: 35 + minLength: 1 + type: string + required: + - identification + - scheme + type: object + Pacs008GroupHeader: + description: Original pacs.008 group header information. + properties: + messageIdentification: + description: Original message identification. + type: string + settlementDate: + description: Original settlement date. + format: date + type: string + required: + - messageIdentification + type: object + PartyIdentificationDTO: + description: Beneficiary’s identification. + properties: + code: + description: >- + A four-letter code specifying the type of identification being used. + For valid codes an external catalogue should be consulted such as + the one provided in the [ISO 20022 External Code + Sets](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 1 + type: string + issuer: + description: >- + The official body who provided the identification. Must not exceed + 35 characters. + maxLength: 35 + minLength: 1 + type: string + privateIdentification: + description: >- + Unique and unambiguous identification of a person, eg, passport. + Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + proprietary: + description: >- + A proprietary type of identification for the party to the + transaction. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - privateIdentification + type: object + PaymentDTO: + description: Payment details for standing order + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + type: object + PaymentDetails: + properties: + transactionStatus: + description: >- + PSD2 transaction status codes: + enum: + - ACSC + - ACSP + - ACTC + - RCVD + - PDNG + - RJCT + type: string + PaymentIdentification: + description: Payment identification. + properties: + transactionIdentification: + description: Original transaction identification. + type: string + type: object + PaymentIdentificationDTO: + description: Payment instruction reference. + properties: + endToEndIdentification: + description: >- + Unique identification assigned by the payer to identify the + transaction. This identification will be returned to the payer and + passed on to the beneficiary. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. If left empty, Mambu transaction id will + be used. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + type: object + PaymentResponse: + properties: + paymentId: + description: >- + Resource identification of the generated payment initiation + resource. + type: string + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + transactionFeeIndicator: + description: >- + If value is `true`, the transaction will involve additional + transaction costs or fees. + type: boolean + transactionStatus: + description: 'RCVD: Payment initiation has been received by the receiving agent.' + enum: + - RCVD + type: string + required: + - paymentId + - transactionStatus + type: object + PaymentResponse-TPP: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + PaymentTypeInformationDTO: + description: Set of elements used to further specify the type of transaction. + properties: + sequenceType: + description: >- + Identifies the direct debit sequence, such as first, recurrent, + final or one-off (`FRST`, `RCUR`, `FNAL`, `OOFF`). + type: string + required: + - sequenceType + type: object + PrivateIdentificationDTO: + description: Unique and unambiguous identification of a party. + properties: + privateIdentification: + description: >- + Unique and unambiguous identification of a person, eg, passport. + Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - privateIdentification + type: object + Recall: + properties: + customerRecallReasonCode: + description: >- + Customer reason for outgoing payment recall, as defined in the SEPA + guideline + enum: + - AM09 + - AC03 + type: string + recallReasonCode: + description: Reason for outgoing payment recall, as defined in the SEPA guideline + enum: + - FRAD + - TECH + - CUST + - DUPL + type: string + required: + - recallReasonCode + type: object + Refund: + properties: + reasonCode: + description: Reason for an interbank Refund, as defined in the SEPA guideline + enum: + - MD01 + - MD06 + type: string + required: + - reasonCode + type: object + RejectStatusUpdateOnRecall: + properties: + cancellationDetails: + $ref: '#/components/schemas/CancellationDetails' + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/TransactionInformation' + required: + - cancellationDetails + - groupHeader + - transactionInformation + type: object + RemittanceDTO: + description: >- + Payment details. Structured message. Generally, these fields are used to + provide invoice or creditor reference information. References should + conform to ISO 11649, international standard of reference information. + properties: + reference: + description: >- + The actual reference. Must not exceed 35 characters. If providing a + reference number, the `referenceType` should also be provided. + maxLength: 35 + minLength: 1 + type: string + referenceIssuer: + description: >- + The entity which created or generated the reference. Must not exceed + 35 characters. + maxLength: 35 + minLength: 1 + type: string + referenceType: + description: The type of reference provided. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - reference + type: object + ResendAmlFilter: + properties: + category: + description: Message Category. Supported values are SEPA_CT, SEPA_DD or TGT. + enum: + - SEPA_CT + - SEPA_DD + - TGT + type: string + direction: + description: >- + Message Direction. Supported values are I (incoming) or O + (outgoing). + enum: + - I + - O + type: string + instructingAgent: + description: >- + Agent that instructs the next party in the chain to carry out the + (set of) instruction(s). + type: string + interbankSettlementDate: + description: >- + Date on which the amount of money ceases to be available to the + agent that owes it and when the amount of money becomes available to + the agent to which it is due. Accepted format: yyyy-MM-dd + type: string + messageId: + description: Incoming message identification. + type: string + required: + - direction + type: object + RetryPolicyDTO: + description: Failing standing orders retry policy + properties: + retryCount: + description: Specifies how many times the failing standing order will be retried + format: int32 + type: integer + type: object + Reverse: + properties: + reasonCode: + description: Reason for an interbank Reversal, as defined in the SEPA guideline + enum: + - AM05 + - MS02 + - MS03 + type: string + required: + - reasonCode + type: object + SepaMessageFilter: + properties: + dateFrom: + description: >- + Start date from which the messages should be filtered. Accepted + format: yyyy-MM-dd + type: string + dateTo: + description: >- + End date up until which the messages should be filtered. Accepted + format: yyyy-MM-dd + type: string + direction: + description: Message Direction. Supported values are I (incoming) or O (outgoing) + type: string + limit: + description: >- + Limit of the number of objects returned by the server. Defaults to + 20. + format: int32 + maximum: 100 + minimum: 1 + type: integer + messageId: + description: Message ID, representing the GrpHdr>>MsgId field of the message + type: string + messageType: + description: >- + Message type. Accepted values are pacs.008.001.02, pacs.004.001.02, + pacs.003.001.02, camt.056.001.01, camt.029.001.03 + type: string + network: + description: >- + Network for which the instructions should be received. SEPA is the + only value allowed + type: string + offset: + description: Offset from which the results should be provided. Defaults to 0. + format: int32 + minimum: 0 + type: integer + paymentId: + description: Payment ID, id provided when creating a new payment + type: string + transactionsLimit: + description: >- + Limit of the number of transactions returned by the server. Defaults + to 10. If the transactionsLimit is 0 only message headers will be + returned. If the transactionsLimit or transactionsOffset is bigger + than 0 then the messageId parameter has to be used as transactions + pagination in only available for one message. + format: int32 + minimum: 0 + type: integer + transactionsOffset: + description: >- + Offset from which the transactions should be provided. Defaults to + 0. If the transactionsLimit or transactionsOffset is bigger than 0 + then the messageId parameter has to be used as transactions + pagination in only available for one message. + format: int32 + minimum: 0 + type: integer + required: + - direction + type: object + SepaMessages: + properties: + instructions: + description: List of SEPA instructions. + items: + $ref: '#/components/schemas/Message' + type: array + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + SettlementInformationDTO: + description: >- + Specifies the details on how the settlement of the transaction(s) + between the instructing agent and the instructed agent is completed. + properties: + clearingSystem: + description: Clearing system when settlement method is CLRG. + type: string + settlementAccount: + $ref: '#/components/schemas/AccountDTO' + settlementMethod: + description: >- + Method used to settle the payment: INDA (instructed agent), INGA + (instructing agent), CLRG (clearing system) + type: string + required: + - settlementMethod + type: object + SkipStatusUpdateOnRecall: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/StatusRequestIdentification' + required: + - groupHeader + - transactionInformation + type: object + StandingOrderCreateResponse: + properties: + id: + description: Standing order id + type: string + type: object + StandingOrderDTO: + properties: + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + ownerId: + description: Standing order owner id + maxLength: 36 + minLength: 1 + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + retryPolicy: + $ref: '#/components/schemas/RetryPolicyDTO' + startDate: + description: Standing order start date + format: date + type: string + required: + - frequency + - ownerId + - payment + - retryPolicy + - startDate + type: object + StandingOrderExecutionResponse: + properties: + creationDate: + description: Entry creation date and time + format: date-time + type: string + failReason: + description: Holds short failure description + enum: + - INSUFFICIENT_FUNDS(401) + - ACCOUNT_INACTIVE(407) + - OTHER(-1) + type: string + paymentOrderId: + description: Payment order id + type: string + requestedExecuteOn: + description: Date and time at which payment is initiated + format: date-time + type: string + standingOrderId: + description: Standing order id + type: string + status: + description: Status of payment execution + enum: + - RUNNING + - COMPLETED + - FAILED + type: string + type: + description: Execution type + enum: + - REGULAR + - RETRY + type: string + type: object + StandingOrderGetResponse: + properties: + creationDateTime: + description: Standing order creation date and time + format: date-time + type: string + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + id: + description: Standing order id + type: string + lastExecution: + description: Standing order's last payment execution date + format: date + type: string + nextExecution: + description: Standing order's next payment execution date + format: date + type: string + ownerId: + description: Standing order owner id + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + paymentsCount: + description: Standing order's count of payments executed so far + format: int32 + type: integer + retryCount: + description: Standing order's retry count setting + format: int32 + type: integer + startDate: + description: Standing order start date + format: date + type: string + status: + description: Standing order status + enum: + - ACTIVE + - SUSPENDED + - CANCELED + - WITHDRAWN + type: string + suspendDateFrom: + description: Standing order suspend start date + format: date + type: string + suspendDateTo: + description: Standing order suspend end date (inclusive) + format: date + type: string + type: object + StandingOrderSearchRequest: + properties: + filterCriteria: + items: + $ref: '#/components/schemas/FilterCriteria' + maxItems: 2 + minItems: 1 + type: array + limit: + format: int32 + maximum: 500 + minimum: 1 + type: integer + offset: + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + required: + - filterCriteria + type: object + StandingOrderSearchResponse: + properties: + creationDateTime: + description: Standing order creation date and time + format: date-time + type: string + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + id: + description: Standing order id + type: string + ownerId: + description: Standing order owner id + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + retryCount: + description: Standing order's retry count setting + format: int32 + type: integer + startDate: + description: Standing order start date + format: date + type: string + status: + description: Standing order status + enum: + - ACTIVE + - SUSPENDED + - CANCELED + - WITHDRAWN + type: string + suspendDateFrom: + description: Standing order suspend start date + format: date + type: string + suspendDateTo: + description: Standing order suspend end date (inclusive) + format: date + type: string + type: object + StandingOrderSuspendDTO: + properties: + endDate: + description: Suspend standing order till date (inclusive) + format: date + type: string + id: + description: Standing order id + maxLength: 36 + minLength: 1 + type: string + startDate: + description: Suspend standing order from date + format: date + type: string + required: + - endDate + - id + type: object + StatusRequestIdentification: + description: Information concerning the Request for Status Update on Recall message + properties: + statusRequestIdentification: + description: >- + Unique identification, as assigned by an instructing party for an + instructed party, to identify the status request + type: string + required: + - statusRequestIdentification + type: object + TPPMessage: + description: Messages to the TPP on operational issues. + properties: + category: + description: Category designates the message severity. + enum: + - ERROR + - WARN + type: string + code: + description: >- + Message error + codes: + enum: + - ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION + - FEATURE_NOT_ENABLED + - FORMAT_ERROR + - INVALID_MESSAGE_TYPE + - INVALID_REQUEST_BODY + - INVALID_TRANSACTION_STATE + - INVALID_TRANSACTION_STATUS + - ORIGINAL_MESSAGE_ALREADY_REPLIED + - ORIGINAL_MESSAGE_PENDING_REPLY + - PARAMETER_NOT_SUPPORTED + - PAYMENT_FAILED + - SERVICE_INVALID + - NOT_FOUND + - RESOURCE_UNKNOWN + type: string + path: + type: string + text: + description: Additional explaining text. + maxLength: 512 + minLength: 1 + type: string + required: + - category + - code + type: object + TppMessagesResponse: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + required: + - tppMessages + type: object + TransactionInformation: + description: >- + Information concerning the original transaction, to which the Request + for Status Update on Recall message refers + properties: + originalInstructionIdentification: + description: >- + Unique identification, as assigned by the original instructing party + for the original instructed party, to unambiguously identify the + original instruction. + type: string + originalMessageIdentification: + description: >- + Point to point reference assigned by the original instructing party + to identify the original group of individual transactions + type: string + statusRequestIdentification: + description: >- + Unique identification, as assigned by an instructing party for an + instructed party, to identify the status request + type: string + required: + - originalInstructionIdentification + - originalMessageIdentification + - statusRequestIdentification + type: object +tags: + - name: AML + description: > + If you are using an external service to check payments as part of your + Anti Money Laundering obligations, these endpoints receive responses which + will lead to unblocking funds and transferring them to the recipient + account in the case of an all clear or returning funds to the payer in + cases where there a compliance issue has been identified. + + + For more general information on AML flows, including how the necessary + suspense accounting should be set up in Mambu, please refer to the [AML + and Suspense + Accounts](https://support.mambu.com/docs/aml-suspense-accounting) section + of our User Guide. + - name: External Account Representation + description: >- + The External Account Representation (EAR) endpoints are used to associate + IBANs with Mambu account IDs so that payments made using the Mambu Payment + Gateway are routed to the correct accounts. + + + An IBAN can be mapped to multiple accounts but can only be associated to + one account per currency, so, for example, the same IBAN can be mapped to + one underlying Mambu account using EUR, another using GBP and another + using CHF, but not to two accounts both in EUR denomination. + + + + - name: Incoming Messages + description: > + This endpoint is the main entry point to the Mambu Payment Gateway for + external systems. + + + For more information on the types of messages accepted by this endpoint, + please refer to the [supported + flows](https://support.mambu.com/docs/payment-gateway-introduction#supported-flows) + section of the introduction to the Mambu Payment Gateway article in our + User Guide. + + + + - name: SEPA Credit Transfers + description: > + These endpoints are used for making and receiving SEPA credit transfers + through the Mambu Payment Gateway. + + + For more information on supported messages, flows and technical + information, including examples of generated XML messages and how the + fields map to these API requests, please refer to the [SEPA Credit + Transfer](https://support.mambu.com/docs/sepa-credit-transfers) section of + our User Guide. + - name: SEPA Credit Transfer Inquiries + description: > + These APIs allow you to submit inquiries for SEPA payments including for + cases where the customer claims to have not received the funds, the value + date was not correctly recorded or to request a status update for payments + which have been cancelled. + + + For more information on the types of inquiry supported and how to submit + and respond to inquiries via the Mambu Payment Gateway UI, please refer to + the relevant section of our User Guide, such as the [SEPA credit transfer + inquiries](https://support.mambu.com/docs/sct-inquiries) article for SEPA + credit transfers. + - name: SEPA Direct Debit + description: > + SEPA Direct Debit Payments are one time or recurring payments made using + the Single European Payment Area scheme for transactions made in Euros + between accounts at banks within the SEPA area, which includes all EU + countries as well as other territories such as Liechtenstein, Switzerland, + the United Kingdom, Andorra and Nordic countries. + + + Mambu supports both the Core SEPA rulebook for individuals and the B2B + scheme for companies. For more information on supported messages, flows + and technical information, please refer to the [SEPA Direct + Debit](https://support.mambu.com/docs/sepa-direct-debit) section of our + user guide. + - name: Search Messages + description: > + Use this endpoint to search for SEPA Credit Transfer and Direct Debit + messages received by the Mambu Payment Gateway. + - name: Settings + description: > + These endpoints allow you to configure settings for the Mambu Payment + Gateway such as setting callback URLs which will be notified on certain + actions. +servers: + - url: https://TENANT_NAME.mambu.com/api/v1 diff --git a/sdks/db/fixed-specs-cache/in-mobile-fixed-spec.yaml b/sdks/db/fixed-specs-cache/in-mobile-fixed-spec.yaml index c9f56130ea..44a002b14d 100644 --- a/sdks/db/fixed-specs-cache/in-mobile-fixed-spec.yaml +++ b/sdks/db/fixed-specs-cache/in-mobile-fixed-spec.yaml @@ -6,12 +6,12 @@ publishJson: metaDescription: >- inMobile er en SMS-Gateway testet af over 8.000 brugere. Vi håndterer over 150 mio. SMS-beskeder årligt og tilstræber en oppetid på 100%, men sandheden - er 99,99%. + er 99,99%. Uanset, om det drejer sig om at informere dine kunder, medarbejdere eller andre personer, som er vigtige for din virksomhed, gør inMobile det nemt for - de rette personer at få besked på det rette tidspunkt. + de rette personer at få besked på det rette tidspunkt. Du får adgang til en brugervenlig SMS-Gateway og et gennemtestet API, som du diff --git a/sdks/db/fixed-specs-cache/kombo-fixed-spec.yaml b/sdks/db/fixed-specs-cache/kombo-fixed-spec.yaml new file mode 100644 index 0000000000..ed6bcd2057 --- /dev/null +++ b/sdks/db/fixed-specs-cache/kombo-fixed-spec.yaml @@ -0,0 +1,29601 @@ +publishJson: + company: Kombo + serviceName: false + sdkName: kombo-{language}-sdk + clientName: Kombo + metaDescription: >- + Kombo is changing how B2B SaaS companies provide HR integrations to their + customers. Instead of having to build and maintain many APIs themselves, + Kombos customers can integrate with Kombo's API once and offer dozens of + APIs to their customers instantly. + apiStatusUrls: inherit + homepage: kombo.dev + developerDocumentation: docs.kombo.dev + categories: + - integrations + - ats + - hris + - payroll +rawSpecString: | + openapi: 3.0.0 + info: + title: Kombo API + version: 1.0.0 + paths: + /check-api-key: + get: + operationId: GetCheckApiKey + responses: + '200': + description: GET /check-api-key Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCheckApiKeySuccessfulResponse' + examples: + example1: + value: + status: success + data: + environment_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + customer_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + '400': + description: GET /check-api-key Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCheckApiKeyErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: Check whether your API key is working properly. + summary: Check API key + tags: + - General + /force-sync: + post: + operationId: PostForceSync + responses: + '200': + description: POST /force-sync Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncSuccessfulResponse' + examples: + example1: + value: + status: success + data: + already_queued: false + sync_id: 119ihtp91nA3dqRFiV67nXS6 + '400': + description: POST /force-sync Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Trigger a sync for a specific integration. + + + Please note that it is **not** necessary nor recommended to + call this endpoint periodically on your side. Kombo already performs + period syncs for you and you should only trigger syncs yourself in + special cases (like when a user clicks on a "Sync" button in your + app). + summary: Trigger sync + tags: + - General + requestBody: + description: POST /force-sync request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncRequestBody' + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: workday:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /passthrough/{tool}/{api}: + post: + operationId: PostPassthroughToolApi + responses: + '200': + description: POST /passthrough/:tool/:api Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiSuccessfulResponse' + '400': + description: POST /passthrough/:tool/:api Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Send a request to the specified integration's native API. + + + At Kombo we put a lot of work into making sure that our unified API + covers all our customers' use cases and that they never have to think + about integration-specific logic again. There are cases, however, where + our customers want to build features that are very integration-specific. + That's where this endpoint comes in. + + + Pass in details about the request you want to make to the integration's + API and we'll forward it for you. We'll also take care of setting the + right base URL and authenticating your requests. + + + To get started, please pick the relevant API (some tools provide + multiple to due different base URLs or authentication schemes) from the + table below and pass in the `{tool}/{api}` identifier as part of the + path. + + + |Integration|`{tool}/{api}`|Description| + + |---|---|---| + + |Personio|`personio/personnel`|Personio's [Personnel Data + API](https://developer.personio.de/reference/get_company-employees). We + automatically authenticate all requests using the client ID and secret + and use `https://api.personio.de/v1` as the base URL.| + + |Workday|`workday/soap`|[Workday's SOAP + API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). + We automatically authenticate all requests. Set `data` to your raw xml + string. Use `/` as your `path`, as we will always send requests to + `https://{domain}/ccx/service/{tenant}/{service_name}/38.2`. Set your + `method` to `POST`. You need to specify the `api_options` object and set + `service_name` to the name of the service you want to call. Find all + available services + [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). + The string that you submit as `data` will be the content of the + `soapenv:Body` tag in the request.| + + |SAP SuccessFactors|`successfactors/odata-v2`|[SuccessFactors' OData V2 + API](https://help.sap.com/doc/74597e67f54d4f448252bad4c2b601c9/2211/en-US/SF_HCM_OData_API_REF_en.pdf). + We automatically authenticate all requests and use + `https://{api_domain}/odata/v2` as the base URL.| + + |Lever|`lever/v1`|[Lever's v1 + API](https://hire.lever.co/developer/documentation). We automatically + authenticate all requests using the partner credentials which have been + configured in the Lever tool settings (this uses Kombo's partner + credentials by default).| + + |Recruitee|`recruitee/default`|The [Recruitee + API](https://api.recruitee.com/docs/index.html). We automatically + authenticate all requests and use + `https://api.recruitee.com/c/{company_id}` as the base URL.| + + |Greenhouse|`greenhouse/harvest`|Greenhouse [Harvest + API](https://developers.greenhouse.io/harvest.html). We automatically + authenticate all requests using the API key and use + `https://harvest.greenhouse.io/v1` as the base URL.| + + |Teamtailor|`teamtailor/v1`|Teamtailor's + [JSON-API](https://docs.teamtailor.com/). We authenticate all request + with the Teamtailor API key and use the base URL + `https://api.teamtailor.com/v1`.| + + |Personio|`personio/recruiting`|Personio's [Recruiting + API](https://developer.personio.de/reference/get_company-employees). We + automatically authenticate all requests using the Recruiting access + token and use `https://api.personio.de/v1/recruiting` as the base URL.| + + |Personio|`personio/jobboard`|API endpoints exposed on Personio's public + job board pages ([currently just the XML + feed](https://developer.personio.de/reference/get_xml)). We + automatically use the right `https://{company}.jobs.personio.de` base + URL.| + + |BambooHR|`bamboohr/v1`|BambooHR's + [API](https://documentation.bamboohr.com/reference/get-employee). We + automatically authenticate all requests using the customer credentials + `https://api.bamboohr.com/api/gateway.php/{subdomain}/v1` as the base + URL.| + + |Workable|`workable/v1`|Workable's + [API](https://workable.readme.io/reference/generate-an-access-token). We + automatically authenticate all requests using the client ID and secret + and use `https://subdomain.workable.com/spi/v3` as the base URL.| + + |HiBob|`hibob/v1`|[HibBob's v1 + API](https://apidocs.hibob.com/reference/get_people). We automatically + authenticate all requests using the service user credentials (or, for + old integrations, the API key) and use `https://api.hibob.com/v1` as the + base URL.| + + |Pinpoint|`pinpoint/v1`|Pinpoint's + [JSON:API](https://developers.pinpointhq.com/docs). We automatically + authenticate all requests using the `X-API-KEY` header and use + `https://{subdomain}.pinpointhq.com/api/v1` as the base URL.| + + |Haufe Umantis|`umantis/v1`|[Umantis API + v1](https://recruitingapp-91005709.umantis.com/api/v1/swagger-ui). We + automatically authenticate all requests and use + `https://{subdomain}.umantis.com/api/v1` as the base URL.| + + |HRworks|`hrworks/v2`|HRWorks's v2 + [API](https://developers.hrworks.de/2.0/endpoints). We automatically + authenticate all requests using the customer credentials.| + + |JazzHR|`jazzhr/v1`|[JazzHR's v1 + API](https://www.resumatorapi.com/v1/#!`). We automatically authenticate + all requests.| + + + Please note that the passthrough API endpoints are only meant for + edge cases. That's why we only expose them for new integrations after + understanding a concrete customer use case. If you have such a use case + in mind, please reach out to Kombo. + summary: Send passthrough request + tags: + - General + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: greenhouse:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: tool + in: path + required: true + description: >- + The ID of the tool whose passthrough API you want to call (e.g., + `personio`). + schema: + $ref: '#/components/schemas/PostPassthroughToolApiParameterTool' + - name: api + in: path + required: true + description: >- + The ID of the passthrough API you want to call (some tools provide + multiple). Check the endpoint description for a list of all + available APIs. + schema: + $ref: '#/components/schemas/PostPassthroughToolApiParameterApi' + requestBody: + description: POST /passthrough/:tool/:api request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiRequestBody' + /integrations/{integration_id}: + delete: + operationId: DeleteIntegrationsIntegrationId + responses: + '200': + description: DELETE /integrations/:integration_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdSuccessfulResponse + '400': + description: DELETE /integrations/:integration_id Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: |- + Delete the specified integration. + **⚠️ This can not be undone!** + summary: Delete integration + tags: + - General + parameters: + - name: integration_id + in: path + required: true + description: DELETE /integrations/:integration_id parameter + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdParameterIntegrationId + requestBody: + description: DELETE /integrations/:integration_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteIntegrationsIntegrationIdRequestBody' + get: + operationId: GetIntegrationsIntegrationId + responses: + '200': + description: GET /integrations/:integration_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetIntegrationsIntegrationIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: factorial:8d1hpPsbjxUkoCoa1veLZGe5 + tool: + id: factorial + label: Factorial + internal_label: null + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + category: HRIS + status: ACTIVE + end_user: + organization_name: Acme + creator_email: example-integration-creator@acme.com + origin_id: 2DQJAUtSzzzKP9buDTvUvPk3 + scope_config: + id: B1hu5NGyhdjSq5X3hxEz4bAN + name: Anonymous Scopes + created_at: '2022-08-07T14:01:29.196Z' + beta: false + '400': + description: GET /integrations/:integration_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetIntegrationsIntegrationIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Get the specified integration with everything you need to display it to + your customer. + summary: Get integration details + tags: + - General + parameters: + - name: integration_id + in: path + required: true + description: GET /integrations/:integration_id parameter + schema: + $ref: >- + #/components/schemas/GetIntegrationsIntegrationIdParameterIntegrationId + /integrations/{integration_id}/relink: + post: + operationId: PostIntegrationsIntegrationIdRelink + responses: + '200': + description: POST /integrations/:integration_id/relink Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkSuccessfulResponse + '400': + description: POST /integrations/:integration_id/relink Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Create a link that will allow the user to reconnect an integration. This + is useful if you want to allow your users to update the credentials if + the old ones for example expired. + + + Embed this the same way you would [embed the connect + link](https://api.kombo.dev). By default, the link will be valid for 1 + hour. + + + ### Example Request Body + + + ```json + + { + "language": "en" + } + + ``` + summary: Create reconnection link + tags: + - General + parameters: + - name: integration_id + in: path + required: true + description: POST /integrations/:integration_id/relink parameter + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkParameterIntegrationId + examples: + example1: + value: personio:93fCvorjZ2jas7ZekX1V1n5d + requestBody: + description: POST /integrations/:integration_id/relink request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkRequestBody + examples: + example1: + value: + language: en + /tools/{category}: + get: + operationId: GetToolsCategory + responses: + '200': + description: GET /tools/:category Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetToolsCategorySuccessfulResponse' + examples: + example1: + value: + status: success + data: + tools: + - id: factorial + label: Factorial + internal_label: null + assets: + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + icon_black_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon-black.svg + coverage: + read_models: + - id: hris_employees + label: Employees + - id: hris_teams + label: Groups + write_actions: + - id: hris_create_employee + label: Create employee + features: + - id: automatic_source_writing + label: Automatic Source Writing + '400': + description: GET /tools/:category Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetToolsCategoryErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Get a list of the tools (i.e., integrations) enabled in your + environment. + This can (in combination with the `integration_tool` parameter of [the "Create Link" endpoint](https://api.kombo.dev)) be used to, for example, display a custom list or grid of available integrations to your end users instead of exposing Kombo Connect's standard tool selector. + summary: Get tools + parameters: + - name: category + in: path + required: true + description: GET /tools/:category parameter + schema: + $ref: '#/components/schemas/GetToolsCategoryParameterCategory' + tags: + - General + /hris/provisioning-groups/{group_id}/diff: + post: + operationId: PostHrisProvisioningGroupsGroupIdDiff + responses: + '200': + description: POST /hris/provisioning-groups/:group_id/diff Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffSuccessfulResponse + '400': + description: POST /hris/provisioning-groups/:group_id/diff Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Get the list of users to provision, deprovision, and optionally update + based on the users you've already provisioned in your system. + summary: Get provisioning diff + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: group_id + in: path + required: true + description: ID of the provisioning group (currently only `default` is allowed). + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffParameterGroupId + examples: + example1: + value: n39n320clr8c5amf8v83nbch + requestBody: + description: POST /hris/provisioning-groups/:group_id/diff request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffRequestBody + examples: + example1: + value: + provisioned_users: + - origin_id: your_id_123 + email: johndoe@example.com + options: + employee_fields: + - id + - first_name + - last_name + tags: + - Unified HRIS API + /hris/provisioning-groups/{group_id}/setup-links: + post: + operationId: PostHrisProvisioningGroupsGroupIdSetupLinks + responses: + '200': + description: >- + POST /hris/provisioning-groups/:group_id/setup-links Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksSuccessfulResponse + examples: + example1: + value: + status: success + data: + url: >- + https://connect.kombo.dev/v1/provisioning?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + expires_at: '2023-10-11T12:00:00.000Z' + '400': + description: POST /hris/provisioning-groups/:group_id/setup-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Create a new link that can be passed to the Kombo Connect SDK to open + the provisioning setup UI. + summary: Create provisioning setup link + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: group_id + in: path + required: true + description: ID of the provisioning group (currently only `default` is allowed). + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId + examples: + example1: + value: n39n320clr8c5amf8v83nbch + requestBody: + description: POST /hris/provisioning-groups/:group_id/setup-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody + examples: + example1: + value: + language: en + /hris/employees: + get: + operationId: GetHrisEmployees + responses: + '200': + description: GET /hris/employees Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmployeesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + employments: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + time_off_balances: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + manager: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJg + work_email: john.doe@acme.com + remote_id: '32' + groups: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + legal_entity: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + work_location: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: GET /hris/employees Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmployeesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all employees. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Not interested in most fields? You can use our [our Scopes + feature](https://api.kombo.dev) to customize what data points are + synced. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get employees + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterRemoteIds' + - name: employment_status + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** + Filter by the `employment_status` field. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatus' + - name: employment_statuses + in: query + required: false + description: >- + Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, + `LEAVE` + + * `ACTIVE`: the employee is **actively employed** + + * `PENDING`: the employee is **not actively employed yet** (but they + signed their contract or are part of an onboarding process) + + * `INACTIVE`: a full-time employee is no longer employed, or, for a + contract worker when their contract runs out + + * `LEAVE`: the employee is still employed but **currently on leave** + (note that not all HR systems support this status — use our absences + API for detailed information) + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatuses' + - name: group_ids + in: query + required: false + description: >- + Filter by a comma-separated list of group IDs. We will only return + employees that are members of _any_ of the groups. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterGroupIds' + - name: legal_entity_ids + in: query + required: false + description: >- + Filter by a comma-separated list of legal entity IDs. We will only + return employees that are members of _any_ of the legal entities. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterLegalEntityIds' + - name: work_location_ids + in: query + required: false + description: >- + Filter by a comma-separated list of work location IDs. We will only + return employees who are at _any_ of the work locations. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterWorkLocationIds' + - name: work_emails + in: query + required: false + description: >- + Filter by a comma-separated list of work emails. We will only return + employees who have _any_ of the work emails. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterWorkEmails' + - name: personal_emails + in: query + required: false + description: >- + Filter by a comma-separated list of personal emails. We will only + return employees who have _any_ of the personal emails. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterPersonalEmails' + post: + operationId: PostHrisEmployees + responses: + '200': + description: POST /hris/employees Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + '400': + description: POST /hris/employees Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new employee. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "first_name": "John", + "last_name": "Doe", + "work_email": "john.doe@acme.com", + "gender": "MALE", + "job_title": "Integrations Team Lead", + "home_address": { + "city": "Berlin", + "country": "DE", + "state": "Berlin", + "street_1": "Sonnenallee 63", + "zip_code": "12045" + }, + "date_of_birth": "1986-01-01", + "start_date": "2020-04-07" + } + + ``` + summary: Create employee + tags: + - Unified HRIS API + requestBody: + description: POST /hris/employees request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesRequestBody' + examples: + example1: + value: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /hris/employees/{employee_id}: + patch: + operationId: PatchHrisEmployeesEmployeeId + responses: + '200': + description: PATCH /hris/employees/:employee_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchHrisEmployeesEmployeeIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + '400': + description: PATCH /hris/employees/:employee_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Update an employee. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "BkgfzSr5muN9cUTMD4wDQFn4", + "first_name": "John", + "last_name": "Doe", + "work_email": "john.doe@acme.com", + "ssn": "555-32-6395", + "tax_id": "12 345 678 901", + "gender": "MALE", + "marital_status": "MARRIED", + "date_of_birth": "1986-01-01", + "start_date": "2020-04-07", + "termination_date": "2022-05-20", + "job_title": "Integrations Team Lead", + "nationality": "DE", + "home_address": { + "city": "Berlin", + "country": "DE", + "state": "Berlin", + "street_1": "Sonnenallee 63", + "zip_code": "12045" + } + } + + ``` + summary: Update employee + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr: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/PatchHrisEmployeesEmployeeIdParameterEmployeeId + examples: + example1: + value: BkgfzSr5muN9cUTMD4wDQFn4 + requestBody: + description: PATCH /hris/employees/:employee_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdRequestBody' + examples: + example1: + value: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + marital_status: MARRIED + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + termination_date: '2022-05-20' + job_title: Integrations Team Lead + nationality: DE + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + /hris/employees/{employee_id}/attachments: + post: + operationId: PostHrisEmployeesEmployeeIdAttachments + responses: + '200': + description: POST /hris/employees/:employee_id/attachments Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsSuccessfulResponse + '400': + description: POST /hris/employees/:employee_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Currently in closed beta. + + **This endpoint is currently in closed beta!** We're testing it + with selected customers before its public release. If you're interested + in learning more or getting early access, please reach out. + summary: Add attachment to employees 🦄 + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: employee_id + in: path + required: true + description: POST /hris/employees/:employee_id/attachments parameter + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsParameterEmployeeId + requestBody: + description: POST /hris/employees/:employee_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsRequestBody + tags: + - Unified HRIS API + /hris/teams: + get: + operationId: GetHrisTeams + responses: + '200': + description: GET /hris/teams Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTeamsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + '400': + description: GET /hris/teams Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTeamsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Get the teams. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Please use [the `/groups` endpoint](https://api.kombo.dev) instead. It returns the same data but the naming makes more sense as the model not only includes teams but also departments and cost centers.. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get teams (deprecated) + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterRemoteIds' + /hris/groups: + get: + operationId: GetHrisGroups + responses: + '200': + description: GET /hris/groups Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisGroupsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + '400': + description: GET /hris/groups Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisGroupsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all "groups" (teams, departments, and cost centers). + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get groups + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterRemoteIds' + /hris/employments: + get: + operationId: GetHrisEmployments + responses: + '200': + description: GET /hris/employments Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmploymentsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + '400': + description: GET /hris/employments Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmploymentsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all employments. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get employments + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterRemoteIds' + /hris/locations: + get: + operationId: GetHrisLocations + responses: + '200': + description: GET /hris/locations Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLocationsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: GET /hris/locations Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLocationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all work locations. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get work locations + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterRemoteIds' + /hris/absence-types: + get: + operationId: GetHrisAbsenceTypes + responses: + '200': + description: GET /hris/absence-types Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/absence-types Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all absence types. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get absence types + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterRemoteIds' + /hris/time-off-balances: + get: + operationId: GetHrisTimeOffBalances + responses: + '200': + description: GET /hris/time-off-balances Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/time-off-balances Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all time off balances. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get time off balances + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterRemoteIds' + - name: employee_id + in: query + required: false + description: Filter by a specific employee using their ID. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterEmployeeId' + /hris/absences: + get: + operationId: GetHrisAbsences + responses: + '200': + description: GET /hris/absences Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsencesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/absences Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsencesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all absences. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get absences + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterRemoteIds' + - name: date_from + in: query + required: false + description: >- + Filter for all the absences that either start _or_ haven't ended yet + on/after this day. If you imagine a calendar displaying absences, + this defines the left-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterDateFrom' + - name: date_until + in: query + required: false + description: >- + Filter for absences that start on or before this day (but might + continue after). If you imagine a calendar displaying absences, this + defines the right-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterDateUntil' + - name: type_ids + in: query + required: false + description: Filter by a comma-separated list of absence type IDs. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTypeIds' + - name: employee_id + in: query + required: false + description: Filter by a specific employee using their ID. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterEmployeeId' + - name: time_from + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for + absences that either start after or start before and end after a + certain time. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTimeFrom' + - name: time_until + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter + for absences that start before a certain time. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTimeUntil' + post: + operationId: PostHrisAbsences + responses: + '200': + description: POST /hris/absences Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: POST /hris/absences Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new absence. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Check [this page](https://api.kombo.dev) for a detailed guide. + + + + This endpoint requires the permission **Manage absences** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "wXJMxwDvPAjrJ4CyqdV9", + "absence_type_id": "3YKtQ7qedsrcCady1jSyAkY1", + "start_date": "2019-09-17", + "end_date": "2019-09-21", + "start_half_day": false, + "end_half_day": false, + "employee_note": "Visiting the aliens", + "start_time": "08:30:00", + "end_time": "16:00:00" + } + + ``` + summary: Create absence + tags: + - Unified HRIS API + requestBody: + description: POST /hris/absences request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesRequestBody' + examples: + example1: + value: + employee_id: wXJMxwDvPAjrJ4CyqdV9 + absence_type_id: 3YKtQ7qedsrcCady1jSyAkY1 + start_date: '2019-09-17' + end_date: '2019-09-21' + start_time: '08:30:00' + end_time: '16:00:00' + start_half_day: false + end_half_day: false + employee_note: Visiting the aliens + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /hris/absences/{absence_id}: + delete: + operationId: DeleteHrisAbsencesAbsenceId + responses: + '200': + description: DELETE /hris/absences/:absence_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteHrisAbsencesAbsenceIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: DELETE /hris/absences/:absence_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Delete this absence. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage absences** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "absence_id": "wXJMxwDvPAjrJ4CyqdV9" + } + + ``` + summary: Delete absence + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: absence_id + in: path + required: true + description: The ID of the absence + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdParameterAbsenceId' + examples: + example1: + value: wXJMxwDvPAjrJ4CyqdV9 + requestBody: + description: DELETE /hris/absences/:absence_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdRequestBody' + examples: + example1: + value: {} + /hris/legal-entities: + get: + operationId: GetHrisLegalEntities + responses: + '200': + description: GET /hris/legal-entities Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + '400': + description: GET /hris/legal-entities Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all legal entites. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get legal entities + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterRemoteIds' + /ats/applications: + get: + operationId: GetAtsApplications + responses: + '200': + description: GET /ats/applications Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + candidate: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + interviews: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + title: Interview with John Doe + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + '400': + description: GET /ats/applications Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all applications. + + + Visit our in depth guide to learn more about: + + - 💡 [Being aware of which applications are + tracked](/ats/features/implementation-guide/tracking-created-applications#be-aware-of-which-applications-are-tracked) + + - 🚦 [Hiring + signals](/ats/features/implementation-guide/tracking-created-applications#hiring-signals) + + - 📈 [Application stage + changes](/ats/features/implementation-guide/tracking-created-applications#application-stage-changes) + + - ❓ [ATS-specific + limitations](/ats/features/implementation-guide/tracking-created-applications#ats-specific-limitations) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get applications + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterRemoteIds' + - name: outcome + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter + applications by outcome. This allows you to get applications that + are for example `PENDING`, `HIRED`, or `DECLINED`. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterOutcome' + - name: outcomes + in: query + required: false + description: |- + Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` + * `PENDING`: The application is still being processed. + * `HIRED`: The candidate was hired. + * `DECLINED`: The candidate was declined. + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterOutcomes' + - name: remote_created_after + in: query + required: false + description: >- + Filter applications by the day they were created in the remote + system. This allows you to get applications that were created on or + after a certain day. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterRemoteCreatedAfter' + /ats/applications/{application_id}/stage: + put: + operationId: PutAtsApplicationsApplicationIdStage + responses: + '200': + description: PUT /ats/applications/:application_id/stage Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageSuccessfulResponse + '400': + description: PUT /ats/applications/:application_id/stage Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Moves an application to a specified stage. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "stage_id": "3PJ8PZhZZa1eEdd2DtPNtVup" + } + + ``` + summary: Move application to stage + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: PUT /ats/applications/:application_id/stage parameter + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageParameterApplicationId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: PUT /ats/applications/:application_id/stage request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageRequestBody + examples: + example1: + value: + stage_id: 3PJ8PZhZZa1eEdd2DtPNtVup + /ats/applications/{application_id}/result-links: + post: + operationId: PostAtsApplicationsApplicationIdResultLinks + responses: + '200': + description: >- + POST /ats/applications/:application_id/result-links Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/result-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a result link to an application. + + This can, for example, be used to link a candidate back to a test + result/assessment in your application. As not all ATS tools have a + "result link" feature, we sometimes repurpose other fields to expose it. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "application_id": "8Xi6iZrwusZqJmDGXs49GBmJ", + "label": "Assessment Result", + "url": "https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG", + "details": { + "custom_field_name_prefix": "Acme:", + "attributes": [ + { + "key": "Score", + "value": "100%" + }, + { + "key": "Time", + "value": "2:30h" + } + ] + } + } + + ``` + summary: Add result link to application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: Kombo ID of the application you want to create the link for. + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksParameterApplicationId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/applications/:application_id/result-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksRequestBody + examples: + example1: + value: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + /ats/applications/{application_id}/notes: + post: + operationId: PostAtsApplicationsApplicationIdNotes + responses: + '200': + description: POST /ats/applications/:application_id/notes Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/notes Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a note to an application. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Add extra information to an application. This can be any extra text + information you want to add to an application. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "content": "A new message from the candidate is available in YourChat!", + "content_type": "PLAIN_TEXT" + } + + ``` + summary: Add note to application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: Kombo ID of the application you want to create the note for. + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesParameterApplicationId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/applications/:application_id/notes request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesRequestBody + examples: + example1: + value: + content: A new message from the candidate is available in YourChat! + content_type: PLAIN_TEXT + /ats/applications/{application_id}/attachments: + post: + operationId: PostAtsApplicationsApplicationIdAttachments + responses: + '200': + description: >- + POST /ats/applications/:application_id/attachments Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: |- + Uploads an attachment file for the specified applicant. + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + ### Example Request Body + + ```json + { + "application_id": "GRKdd9dibYKKCrmGRSMJf3wu", + "attachment": { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + } + ``` + summary: Add attachment to application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: POST /ats/applications/:application_id/attachments parameter + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: POST /ats/applications/:application_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsRequestBody + examples: + example1: + value: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + /ats/candidates: + get: + operationId: GetAtsCandidates + responses: + '200': + description: GET /ats/candidates Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsCandidatesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + applications: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + '400': + description: GET /ats/candidates Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsCandidatesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all candidates. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get candidates + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterRemoteIds' + - name: email + in: query + required: false + description: >- + Filter the candidates based on an email address. When set, returns + only the candidates where the given `email` is in + `email_addresses`. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterEmail' + post: + operationId: PostAtsCandidates + responses: + '200': + description: POST /ats/candidates Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesSuccessfulResponse' + '400': + description: POST /ats/candidates Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new candidate and application for the specified job. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + We realized that in practice it was always more about creating _applications_ instead of _candidates_, so we created a new, more aptly named one that you should use instead: [Create application](https://api.kombo.dev) + + Using it also has the benefit that we return the newly created applicant at the root level, so you can easily store its ID. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "candidate": { + "first_name": "Frank", + "last_name": "Doe", + "company": "Acme Inc.", + "title": "Head of Integrations", + "email_address": "frank.doe@example.com", + "phone_number": "+1-541-754-3010", + "gender": "MALE", + "salary_expectations": { + "amount": 100000, + "period": "YEAR" + }, + "availability_date": "2021-01-01", + "location": { + "city": "New York", + "country": "US" + }, + "social_links": [ + { + "url": "https://www.linkedin.com/in/frank-doe-123456789/" + }, + { + "url": "https://twitter.com/frankdoe" + } + ] + }, + "application": { + "job_id": "BDpgnpZ148nrGh4mYHNxJBgx", + "stage_id": "8x3YKRDcuRnwShdh96ShBNn1" + }, + "screening_question_answers": [ + { + "question_id": "3phFBNXRweGnDmsU9o2vdPuQ", + "answer": "Yes" + }, + { + "question_id": "EYJjhMQT3LtVKXnTbnRT8s6U", + "answer": [ + "GUzE666zfyjeoCJX6A8n7wh6", + "5WPHzzKAv8cx97KtHRUV96U8", + "7yZfKGzWigXxxRTygqAfHvyE" + ] + } + ], + "attachments": [ + { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + ] + } + + ``` + summary: Create candidate + tags: + - Unified ATS API + requestBody: + description: POST /ats/candidates request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesRequestBody' + examples: + example1: + value: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + social_links: + - url: https://www.linkedin.com/in/frank-doe-123456789/ + - url: https://twitter.com/frankdoe + application: + job_id: BDpgnpZ148nrGh4mYHNxJBgx + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /ats/candidates/{candidate_id}: + patch: + operationId: PatchAtsCandidatesCandidateId + responses: + '200': + description: PATCH /ats/candidates/:candidate_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdSuccessfulResponse + '400': + description: PATCH /ats/candidates/:candidate_id Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Currently in closed beta. + + **This endpoint is currently in closed beta!** We're testing it + with selected customers before its public release. If you're interested + in learning more or getting early access, please reach out. + summary: Update candidate 🦄 + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: PATCH /ats/candidates/:candidate_id parameter + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdParameterCandidateId + requestBody: + description: PATCH /ats/candidates/:candidate_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAtsCandidatesCandidateIdRequestBody' + tags: + - Unified ATS API + /ats/candidates/{candidate_id}/attachments: + post: + operationId: PostAtsCandidatesCandidateIdAttachments + responses: + '200': + description: POST /ats/candidates/:candidate_id/attachments Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Uploads an attachment file for the specified candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "candidate_id": "GRKdd9dibYKKCrmGRSMJf3wu", + "attachment": { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + } + + ``` + summary: Add attachment to candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: POST /ats/candidates/:candidate_id/attachments parameter + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsParameterCandidateId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: POST /ats/candidates/:candidate_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsRequestBody + examples: + example1: + value: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + /ats/candidates/{candidate_id}/result-links: + post: + operationId: PostAtsCandidatesCandidateIdResultLinks + responses: + '200': + description: POST /ats/candidates/:candidate_id/result-links Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/result-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a result link to a candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Please use [add result link to application](https://api.kombo.dev) instead. + This can, for example, be used to link a candidate back to a test + result/assessment in your application. As not all ATS tools have a + "result link" feature, we sometimes repurpose other fields to expose it. + + + This action is deprecated because result links usually concern + applications and not candidates. Use endpoint nested under + `/applications` instead.. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "label": "Assessment Result", + "url": "https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG", + "details": { + "custom_field_name_prefix": "Acme:", + "attributes": [ + { + "key": "Score", + "value": "100%" + }, + { + "key": "Time", + "value": "2:30h" + } + ] + } + } + + ``` + summary: Add result link to candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: Kombo ID of the candidate you want to create the link for. + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/candidates/:candidate_id/result-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksRequestBody + examples: + example1: + value: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + /ats/candidates/{candidate_id}/tags: + post: + operationId: PostAtsCandidatesCandidateIdTags + responses: + '200': + description: POST /ats/candidates/:candidate_id/tags Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/tags Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a tag to a candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Kombo takes care of creating the tag if required, finding out the right + ID, and appending it to the list of tags. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "tag": { + "name": "Excellent Fit" + } + } + + ``` + summary: Add tag to candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: Kombo ID of the candidate you want to add the tag to. + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/candidates/:candidate_id/tags request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesCandidateIdTagsRequestBody' + examples: + example1: + value: + tag: + name: Excellent Fit + delete: + operationId: DeleteAtsCandidatesCandidateIdTags + responses: + '200': + description: DELETE /ats/candidates/:candidate_id/tags Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsSuccessfulResponse + '400': + description: DELETE /ats/candidates/:candidate_id/tags Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Remove a tag from a candidate based on its name. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + This will also succeed if the tag does not exist on the candidate. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "tag": { + "name": "Excellent Fit" + } + } + + ``` + summary: Remove tag from candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: Kombo ID of the candidate you want to remove the tag from. + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: DELETE /ats/candidates/:candidate_id/tags request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsRequestBody + examples: + example1: + value: + tag: + name: Excellent Fit + /ats/tags: + get: + operationId: GetAtsTags + responses: + '200': + description: GET /ats/tags Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsTagsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/tags Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsTagsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all tags. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get tags + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterRemoteIds' + /ats/application-stages: + get: + operationId: GetAtsApplicationStages + responses: + '200': + description: GET /ats/application-stages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/application-stages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Get all application stages available in the ATS. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Get all application stages available in the ATS. This is deprecated because most ATS systems have separate sets of stages for each job. We'd recommend using the `stages` property on jobs instead.. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get application stages + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: >- + #/components/schemas/GetAtsApplicationStagesParameterIncludeDeleted + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterRemoteIds' + /ats/jobs: + get: + operationId: GetAtsJobs + responses: + '200': + description: GET /ats/jobs Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsJobsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + description: >- +

Kombo is hiring engineers! If you are reading + this and you are located in Berlin, Germany, feel + free to contact us about this position.

+ confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + stages: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + index: 0 + screening_questions: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + title: Which is your primary programming language? + description: >- + Please enter the language you are most + comfortable with. + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + index: 0 + required: true + job_postings: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + hiring_team: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + hiring_team_roles: + - RECRUITER + '400': + description: GET /ats/jobs Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsJobsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all jobs. + + + Visit our in depth guide to learn more about: + + - 🔄 [Getting updates of the + data](/ats/features/implementation-guide/reading-jobs#getting-updates-of-the-data) + + - ❗ [Handling failing + syncs](/ats/features/implementation-guide/reading-jobs#handling-failing-syncs) + + - 🔍 [Letting your customer choose which jobs to + expose](/ats/features/implementation-guide/reading-jobs#let-your-customer-choose-which-jobs-to-expose-to-you) + + - 🔗 [Matching jobs in your database to ATS + jobs](/ats/features/implementation-guide/reading-jobs#match-jobs-in-your-database-to-ats-jobs) + + - 🗑️ [Reacting to deleted/closed + jobs](/ats/features/implementation-guide/reading-jobs#reacting-to-deleted-closed-jobs) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get jobs + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterRemoteIds' + - name: job_codes + in: query + required: false + description: Filter by a comma-separated list of job codes. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterJobCodes' + - name: post_url + in: query + required: false + description: >- + Filter by the `post_url` field. Can be used to find a job based on + its public posting URL. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterPostUrl' + - name: status + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by + the `status` field. Can be used to find a job based on its status. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterStatus' + - name: statuses + in: query + required: false + description: >- + Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, + `ARCHIVED` + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterStatuses' + - name: visibilities + in: query + required: false + description: >- + Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, + `UNLISTED`, `CONFIDENTIAL` + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterVisibilities' + - name: name_contains + in: query + required: false + description: >- + Filter by the `name` field. Can be used to find a job by keywords + present in the job name. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterNameContains' + /ats/jobs/{job_id}/applications: + post: + operationId: PostAtsJobsJobIdApplications + responses: + '200': + description: POST /ats/jobs/:job_id/applications Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsJobsJobIdApplicationsSuccessfulResponse + '400': + description: POST /ats/jobs/:job_id/applications Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new application and candidate for the specified job. + + + Visit our in depth guide to learn more about: + + - 🌐 [Setting the source of the + application](/ats/features/implementation-guide/creating-applications#set-the-source-of-the-application) + + - 📎 [Uploading attachments with the + application](/ats/features/implementation-guide/creating-applications#upload-attachments-with-the-application) + + - ♻️ [Retry + behaviour](/ats/features/implementation-guide/creating-applications#retry-behaviour) + + - ✏️ [Writing answers to screening + questions](/ats/features/implementation-guide/creating-applications#write-answers-to-screening-questions) + + - ⚠️ [Handling ATS-specific + limitations](/ats/features/implementation-guide/creating-applications#handle-ats-specific-limitations) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "stage_id": "8x3YKRDcuRnwShdh96ShBNn1", + "candidate": { + "first_name": "Frank", + "last_name": "Doe", + "company": "Acme Inc.", + "title": "Head of Integrations", + "email_address": "frank.doe@example.com", + "phone_number": "+1-541-754-3010", + "gender": "MALE", + "salary_expectations": { + "amount": 100000, + "period": "YEAR" + }, + "availability_date": "2021-01-01", + "location": { + "city": "New York", + "country": "US" + } + }, + "attachments": [ + { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + ], + "screening_question_answers": [ + { + "question_id": "3phFBNXRweGnDmsU9o2vdPuQ", + "answer": "Yes" + }, + { + "question_id": "EYJjhMQT3LtVKXnTbnRT8s6U", + "answer": [ + "GUzE666zfyjeoCJX6A8n7wh6", + "5WPHzzKAv8cx97KtHRUV96U8", + "7yZfKGzWigXxxRTygqAfHvyE" + ] + } + ] + } + + ``` + summary: Create application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: job_id + in: path + required: true + description: >- + Kombo ID or Remote ID of the Job this candidate should apply for. If + you want to use the ID of the integrated system (remote_id) you need + to prefix the id with "remote:". You can use the remote ID if you do + not want to sync jobs. + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsParameterJobId' + examples: + example1: + value: BDpgnpZ148nrGh4mYHNxJBgx + requestBody: + description: POST /ats/jobs/:job_id/applications request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsRequestBody' + examples: + example1: + value: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + /ats/users: + get: + operationId: GetAtsUsers + responses: + '200': + description: GET /ats/users Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsUsersSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/users Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsUsersErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all users. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get users + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterRemoteIds' + /assessment/packages: + get: + operationId: GetAssessmentPackages + responses: + '200': + description: GET /assessment/packages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentPackagesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + packages: + - id: '1001' + name: TypeScript + description: TypeScript coding skills assessments + updated_at: '2023-06-29T18:47:40.890Z' + type: SKILLS_TEST + '400': + description: GET /assessment/packages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentPackagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Get all available assessment packages for an integration. + + + This is mainly intended for debugging. As you always need to submit the + full list of available packages when using ["set + packages"](https://api.kombo.dev), there shouldn't ever be a need to + call this endpoint in production. + summary: Get packages + tags: + - Unified ATS (Assessment) API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + put: + operationId: PutAssessmentPackages + responses: + '200': + description: PUT /assessment/packages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesSuccessfulResponse' + '400': + description: PUT /assessment/packages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Replaces the list of available assessment packages. + + + Packages that have been previously submitted through this endpoint but + aren't included again will be marked as deleted. + summary: Set packages + requestBody: + description: PUT /assessment/packages request body + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesRequestBody' + examples: + example1: + value: + packages: + - id: '1001' + type: SKILLS_TEST + name: TypeScript + description: TypeScript coding skills assessments + - id: '1002' + type: VIDEO_INTERVIEW + name: Video Interview + description: Video interview to assess communication skills + tags: + - Unified ATS (Assessment) API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /assessment/orders/open: + get: + operationId: GetAssessmentOrdersOpen + responses: + '200': + description: GET /assessment/orders/open Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenSuccessfulResponse' + '400': + description: GET /assessment/orders/open Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: Get all open assessment orders of an integration. + summary: Get open orders + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenParameterPageSize' + tags: + - Unified ATS (Assessment) API + /assessment/orders/{assessment_order_id}/result: + put: + operationId: PutAssessmentOrdersAssessmentOrderIdResult + responses: + '200': + description: >- + PUT /assessment/orders/:assessment_order_id/result Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultSuccessfulResponse + '400': + description: PUT /assessment/orders/:assessment_order_id/result Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Updates an assessment order result. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + ### Example Request Body + + + ```json + + { + "status": "COMPLETED", + "result_url": "https://example.com", + "completed_at": "2023-04-04T00:00:00.000Z", + "score": 90, + "max_score": 100, + "attributes": [ + { + "field": "remarks", + "value": "Test completed with passing score" + } + ] + } + + ``` + summary: Update order result + tags: + - Unified ATS (Assessment) API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: assessment_order_id + in: path + required: true + description: PUT /assessment/orders/:assessment_order_id/result parameter + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultParameterAssessmentOrderId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: PUT /assessment/orders/:assessment_order_id/result request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultRequestBody + examples: + example1: + value: + status: COMPLETED + score: 90 + max_score: 100 + result_url: https://example.com + completed_at: '2023-04-04T00:00:00.000Z' + attributes: + - field: remarks + value: Test completed with passing score + /connect/create-link: + post: + operationId: PostConnectCreateLink + responses: + '200': + description: POST /connect/create-link Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkSuccessfulResponse' + examples: + example1: + value: + status: success + data: + link: >- + https://connect.kombo.dev/v1?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + '400': + description: POST /connect/create-link Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Generate a unique link that allows your user to enter the embedded Kombo + Connect flow. + + + > Check out [our full guide](https://api.kombo.dev) for more details + about implementing the connection flow into your app. + + + > Kombo will not deduplicate integrations for you that are created with + this endpoint. You are responsible for keeping track of integrations in + your system and prevent customers from connecting the same tool again. + Use the [reconnection link](https://api.kombo.dev) endpoint if you want + a customer to update their credentials. + + + ### Example Request Body + + + ```json + + { + "end_user_email": "test@example.com", + "end_user_organization_name": "Test Inc.", + "end_user_origin_id": "123", + "integration_category": "HRIS", + "integration_tool": "personio", + "language": "en" + } + + ``` + summary: Create connection link + tags: + - Kombo Connect + requestBody: + description: POST /connect/create-link request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkRequestBody' + examples: + example1: + value: + end_user_email: test@example.com + end_user_organization_name: Test Inc. + integration_category: HRIS + integration_tool: personio + end_user_origin_id: '123' + language: en + /connect/integration-by-token/{token}: + get: + operationId: GetConnectIntegrationByTokenToken + responses: + '200': + description: GET /connect/integration-by-token/:token Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenSuccessfulResponse + examples: + example1: + value: + status: success + data: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + '400': + description: GET /connect/integration-by-token/:token Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Use this endpoint with the token you get from the connection flow to + retrieve information about the created integration. + + It works in a similar way as the OAuth2 code flow to securely retrieve information and connect the integration to your user. + + > Check out [our full guide](https://api.kombo.dev) for more details + about implementing the connection flow into your app. + + + This endpoint is used to ensure users can't trick your system connecting + their + + account in your system to another customers integration. You don't get + the integration ID + + from the `showKomboConnect(link)` function but only the short lived + token used + + for this endpoint so that users can't send you arbitrary data that you + would put + + into your system. + summary: Get integration by token + tags: + - Kombo Connect + parameters: + - name: token + in: path + required: true + description: GET /connect/integration-by-token/:token parameter + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenParameterToken + /connect/activate-integration: + post: + operationId: PostConnectActivateIntegration + responses: + '200': + description: POST /connect/activate-integration Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostConnectActivateIntegrationSuccessfulResponse + examples: + example1: + value: + status: success + data: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + '400': + description: POST /connect/activate-integration Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostConnectActivateIntegrationErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Use this endpoint with the token you get from the connection flow to + retrieve information about the created integration. It works in a + similar way as the OAuth2 code flow to securely retrieve information and + connect the integration to your user. You do not need to call this + endpoint for an integration to become active. + + + We are deprecating this endpoint in favour of the [get + integration by code endpoint](https://api.kombo.dev). To migrate you + only have to change to the new API endpoint. + + + ### Example Request Body + + + ```json + + { + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXNzYWdlIjoiVGhpcyBpcyBub3QgYW4gYWN0dWFsIHRva2VuLiJ9.JulqgOZBMKceI8vh9YLpVX51efND0ZyfUNHDXLrPz_4" + } + + ``` + summary: Activate integration (optional) + tags: + - Kombo Connect + requestBody: + description: POST /connect/activate-integration request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectActivateIntegrationRequestBody' + /custom/datev/passthrough: + post: + operationId: PostCustomDatevPassthrough + responses: + '200': + description: POST /custom/datev/passthrough Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPassthroughSuccessfulResponse + '400': + description: POST /custom/datev/passthrough Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPassthroughErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Write raw DATEV ASCII file + tags: + - Custom Endpoints + requestBody: + description: POST /custom/datev/passthrough request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPassthroughRequestBody' + 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 + /custom/datev/employees/{employee_id}/prepare-payroll: + put: + operationId: PutCustomDatevEmployeesEmployeeIdPreparePayroll + responses: + '200': + description: >- + PUT /custom/datev/employees/:employee_id/prepare-payroll Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollSuccessfulResponse + '400': + description: >- + PUT /custom/datev/employees/:employee_id/prepare-payroll Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "EvLV61zdahkN4ftPJbmPCkdv", + "payroll_run": { + "date": "2022-05-01" + }, + "hourly_payments": [ + { + "hours": 14, + "lohnart": 200 + }, + { + "hours": 16, + "lohnart": 232 + } + ], + "fixed_payments": [ + { + "amount": 560, + "lohnart": 100 + } + ], + "custom_lodas": [ + { + "amount": 8, + "lohnart": 300, + "bearbeitungsschluessel": 4 + } + ] + } + + ``` + summary: Prepare DATEV Payroll + 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 + /custom/datev/employees/{employee_id}/compensations: + put: + operationId: PutCustomDatevEmployeesEmployeeIdCompensations + responses: + '200': + description: >- + PUT /custom/datev/employees/:employee_id/compensations Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsSuccessfulResponse + '400': + description: >- + PUT /custom/datev/employees/:employee_id/compensations Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Sets the compensations for an employee on the specified effective date. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + 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. + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "3bdhemmSP1TPQDGWtRveRot9", + "effective_date": "2022-12-01", + "compensations": [ + { + "amount": 4500, + "currency": "EUR", + "period": "MONTH", + "lohnart": 200 + }, + { + "amount": 30, + "currency": "EUR", + "period": "HOUR" + } + ] + } + + ``` + summary: Set DATEV compensations + 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 + /custom/datev/data-pushes: + get: + operationId: GetCustomDatevDataPushes + responses: + '200': + description: GET /custom/datev/data-pushes Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetCustomDatevDataPushesSuccessfulResponse + '400': + description: GET /custom/datev/data-pushes Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCustomDatevDataPushesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Get DATEV data pushes + 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 + /custom/datev/push-data/general: + post: + operationId: PostCustomDatevPushDataGeneral + responses: + '200': + description: POST /custom/datev/push-data/general Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataGeneralSuccessfulResponse + '400': + description: POST /custom/datev/push-data/general Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataGeneralErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Push general data to DATEV + tags: + - Custom Endpoints + requestBody: + description: POST /custom/datev/push-data/general request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPushDataGeneralRequestBody' + 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 + /custom/datev/push-data/payroll: + post: + operationId: PostCustomDatevPushDataPayroll + responses: + '200': + description: POST /custom/datev/push-data/payroll Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataPayrollSuccessfulResponse + '400': + description: POST /custom/datev/push-data/payroll Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataPayrollErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Push payroll data to DATEV + tags: + - Custom Endpoints + requestBody: + description: POST /custom/datev/push-data/payroll request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPushDataPayrollRequestBody' + 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 + /custom/silae/employees/{employee_id}/payroll-supplements: + post: + operationId: PostCustomSilaeEmployeesEmployeeIdPayrollSupplements + responses: + '200': + description: >- + POST /custom/silae/employees/:employee_id/payroll-supplements + Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsSuccessfulResponse + '400': + description: >- + POST /custom/silae/employees/:employee_id/payroll-supplements Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Write a payroll supplement to Silae using the supplement code. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "EvLV61zdahkN4ftPJbmPCkdv", + "supplement_code": "200", + "effective_date": "2024-01-14", + "element_amount": 6 + } + + ``` + summary: Write Payroll Supplement + 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 + components: + schemas: + GetCheckApiKeySuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + environment_id: + type: string + required: [] + customer_id: + type: string + description: '**(⚠️ Deprecated)** Renamed to `environment_id`.' + required: [] + required: + - environment_id + - customer_id + example: + environment_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + customer_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + required: + - status + - data + GetCheckApiKeyErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostForceSyncSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + already_queued: + type: boolean + description: 'We only allow 1 concurrent sync to be running or queued. ' + required: [] + sync_id: + type: string + description: 'ID of the newly-created or already-queued-or-running sync. ' + required: [] + required: + - already_queued + - sync_id + example: + already_queued: false + sync_id: 119ihtp91nA3dqRFiV67nXS6 + required: + - status + - data + PostForceSyncErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostForceSyncRequestBody: + type: object + PostPassthroughToolApiParameterTool: + type: string + description: >- + The ID of the tool whose passthrough API you want to call (e.g., + `personio`). + required: [] + PostPassthroughToolApiParameterApi: + type: string + description: >- + The ID of the passthrough API you want to call (some tools provide + multiple). Check the endpoint description for a list of all available + APIs. + required: [] + PostPassthroughToolApiSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + url: + type: string + format: url + description: >- + The full URL of the request that we automatically assemble for + you based on the specified `api`, the specified `path`, and the + integration's auth credentials. You can use this to debug + path-related issues (e.g., the API returning 404 errors). + required: [] + status: + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + description: The HTTP status code returned from the remote system. + required: [] + headers: + type: object + additionalProperties: + oneOf: + - type: string + - type: array + items: + type: string + description: The HTTP headers returned from the remote system. + required: [] + data: + format: any + description: >- + The HTTP body returned from the remote system. This will either + be an array or object (in the case that JSON was returned) or a + string (in any other case). + required: [] + required: + - url + - status + - headers + required: + - status + - data + PostPassthroughToolApiErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostPassthroughToolApiRequestBody: + allOf: + - type: object + properties: + method: + type: string + enum: + - GET + - POST + - DELETE + - PUT + - PATCH + description: The HTTP method (e.g., `GET`) of the request. + path: + type: string + pattern: /^\// + description: >- + The path of the endpoint you want to call. We automatically + prepend the base URL of the API (all base URLs are documented in + the endpoint description). + headers: + type: object + additionalProperties: + type: string + description: >- + The headers to send with the request. Note that we automatically + supply any authentication-related headers. + params: + type: object + additionalProperties: + type: string + description: >- + The query parameters to send in addition to the ones in the + `path`. + data: + format: any + description: >- + The data to submit as part of the request body. This can either + be an array or object (in which case we will forward it as JSON) + or a string (in which case we will forward it raw). + response_as_base64: + type: boolean + description: >- + If set to `true`, the response will be returned as a + base64-encoded string. This is useful for binary data (e.g., + PDFs). + multipart_form_data: + type: array + items: + type: object + properties: + name: + type: string + description: The key of the form data + value: + oneOf: + - type: string + description: >- + The value of the form data (Can be an object if the + field is of the type file) + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + required: + - name + - value + description: >- + The data to submit as part of the request body if the + request's `Content-Type` is `multipart/form-data`. + description: >- + The data to submit as part of the request body if the request's + `Content-Type` is `multipart/form-data`. + api_options: + type: object + additionalProperties: + type: string + description: >- + Custom options interpreted by the passthrough API adapter you've + selected. These options are not documented right now as they're + only for very advanced use cases. + required: + - method + - path + example: + method: GET + path: /company/employees + DeleteIntegrationsIntegrationIdParameterIntegrationId: + type: string + required: [] + DeleteIntegrationsIntegrationIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + DeleteIntegrationsIntegrationIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteIntegrationsIntegrationIdRequestBody: + type: object + GetIntegrationsIntegrationIdParameterIntegrationId: + type: string + required: [] + GetIntegrationsIntegrationIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + required: [] + tool: + type: object + properties: + id: + type: string + description: The ID of the connected tool in Kombo (e.g. `factorial`). + required: [] + label: + type: string + required: [] + internal_label: + nullable: true + type: string + description: >- + Internal label that can help you debug specific variants of + the integration. Only show the `label` to your users. + required: [] + logo_url: + type: string + format: url + description: >- + URL to an SVG logo of the connected tool. The logo usually + contains the tool name. + required: [] + icon_url: + type: string + format: url + description: URL to a square SVG icon of the connected tool. + required: [] + required: + - id + - label + - internal_label + - logo_url + - icon_url + category: + type: string + enum: + - HRIS + - ATS + - ASSESSMENT + required: [] + status: + type: string + enum: + - ACTIVE + - INVALID + - INACTIVE + required: [] + end_user: + type: object + properties: + organization_name: + type: string + required: [] + creator_email: + nullable: true + type: string + format: email + required: [] + origin_id: + nullable: true + type: string + description: >- + The ID you have passed initially to the connection flow to + create this integration. + required: [] + required: + - organization_name + - creator_email + - origin_id + scope_config: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - name + created_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + beta: + type: boolean + required: [] + required: + - id + - tool + - category + - status + - end_user + - scope_config + - created_at + - beta + example: + id: factorial:8d1hpPsbjxUkoCoa1veLZGe5 + tool: + id: factorial + label: Factorial + internal_label: null + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + category: HRIS + status: ACTIVE + end_user: + organization_name: Acme + creator_email: example-integration-creator@acme.com + origin_id: 2DQJAUtSzzzKP9buDTvUvPk3 + scope_config: + id: B1hu5NGyhdjSq5X3hxEz4bAN + name: Anonymous Scopes + created_at: '2022-08-07T14:01:29.196Z' + beta: false + required: + - status + - data + GetIntegrationsIntegrationIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostIntegrationsIntegrationIdRelinkParameterIntegrationId: + type: string + required: [] + PostIntegrationsIntegrationIdRelinkSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + link: + type: string + format: url + required: [] + required: + - link + required: + - status + - data + PostIntegrationsIntegrationIdRelinkErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostIntegrationsIntegrationIdRelinkRequestBody: + allOf: + - type: object + properties: + language: + type: string + enum: + - en + - de + - fr + default: en + description: Language of the connection flow UI. + required: [] + example: + language: en + GetToolsCategoryParameterCategory: + type: string + enum: + - hris + - ats + - assessment + required: [] + GetToolsCategorySuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tools: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + internal_label: + nullable: true + type: string + description: >- + Internal label that can help you debug specific variants + of the integration. Only show the `label` to your users. + required: [] + assets: + type: object + properties: + logo_url: + type: string + required: [] + icon_url: + type: string + required: [] + icon_black_url: + type: string + required: [] + required: + - logo_url + - icon_url + - icon_black_url + coverage: + type: object + properties: + read_models: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + description: List of models we can read for this tool. + required: [] + write_actions: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + description: List of supported write actions for this tool. + required: [] + features: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + required: [] + required: + - read_models + - write_actions + - features + description: >- + This describes the supported models and actions of this + tool. + required: + - id + - label + - internal_label + - assets + - coverage + required: [] + required: + - tools + example: + tools: + - id: factorial + label: Factorial + internal_label: null + assets: + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + icon_black_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon-black.svg + coverage: + read_models: + - id: hris_employees + label: Employees + - id: hris_teams + label: Groups + write_actions: + - id: hris_create_employee + label: Create employee + features: + - id: automatic_source_writing + label: Automatic Source Writing + required: + - status + - data + GetToolsCategoryErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdDiffParameterGroupId: + type: string + description: ID of the provisioning group (currently only `default` is allowed). + required: [] + PostHrisProvisioningGroupsGroupIdDiffSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + users: + type: object + properties: + to_provision: + type: array + items: + type: object + properties: + email: + nullable: true + type: string + format: email + description: The email address of the user. + required: [] + employee: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + required: [] + avatar: + nullable: true + type: string + required: [] + work_location_id: + nullable: true + type: string + required: [] + legal_entity_id: + nullable: true + type: string + required: [] + description: >- + The field of the underlying employee (which ones are + included depends on the `employee_fields` array you + supplied). + required: [] + required: + - email + - employee + description: >- + The users we've found in the HR systems who match the + provisioning filters but haven't been provisioned in your + system yet. + required: [] + to_deprovision: + type: array + items: + type: object + properties: + origin_id: + type: string + description: >- + _Your_ ID for this user (that you submitted through + `origin_id`). + required: [] + email: + type: string + format: email + description: The email address of the user. + required: [] + required: + - origin_id + - email + description: >- + The users who've been provisioned in your system but + couldn't be found in the HR system or don't match the + provisioning filters. + required: [] + already_provisioned: + type: array + items: + type: object + properties: + origin_id: + type: string + description: >- + _Your_ ID for this user (that you submitted through + `origin_id`). + required: [] + email: + type: string + format: email + description: The email address of the user. + required: [] + employee: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + required: [] + avatar: + nullable: true + type: string + required: [] + work_location_id: + nullable: true + type: string + required: [] + legal_entity_id: + nullable: true + type: string + required: [] + description: >- + The field of the underlying employee (which ones are + included depends on the `employee_fields` array you + supplied). + required: [] + required: + - origin_id + - email + - employee + description: >- + The users who are in the HR system and match the + provisioning filters but have already been provisioned in + your system. + required: [] + required: + - to_provision + - to_deprovision + - already_provisioned + required: + - users + description: The users to provision, deprovision, and optionally update. + required: + - status + - data + PostHrisProvisioningGroupsGroupIdDiffErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdDiffRequestBody: + allOf: + - type: object + properties: + provisioned_users: + type: array + items: + type: object + properties: + origin_id: + type: string + description: >- + _Your_ ID for this user (_not_ an ID retrieved from + Kombo). + email: + type: string + format: email + description: This user's email address. + required: + - origin_id + - email + description: Array of the already provisioned users in your system. + options: + type: object + properties: + employee_fields: + type: array + items: + type: string + enum: + - id + - remote_id + - first_name + - last_name + - groups + - avatar + - work_location_id + - legal_entity_id + description: The employee fields relevant for your use case. + required: + - employee_fields + description: Options to customize what we return. + required: + - provisioned_users + - options + example: + provisioned_users: + - origin_id: your_id_123 + email: johndoe@example.com + options: + employee_fields: + - id + - first_name + - last_name + PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId: + type: string + description: ID of the provisioning group (currently only `default` is allowed). + required: [] + PostHrisProvisioningGroupsGroupIdSetupLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + url: + type: string + format: url + description: The setup link URL to pass to the Kombo Connect SDK. + required: [] + expires_at: + description: When this link expires. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - url + - expires_at + example: + url: >- + https://connect.kombo.dev/v1/provisioning?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + expires_at: '2023-10-11T12:00:00.000Z' + required: + - status + - data + PostHrisProvisioningGroupsGroupIdSetupLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody: + allOf: + - type: object + properties: + language: + type: string + enum: + - en + - de + - fr + default: en + description: >- + Language of the UI. Please note that the provisioning setup UI + is _not_ translated yet but we're working on it and setting this + already will make sure the translations appear once released. + required: [] + example: + language: en + GetHrisEmployeesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisEmployeesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisEmployeesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisEmployeesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisEmployeesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisEmployeesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisEmployeesParameterEmploymentStatus: + type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + description: >- + **(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** + Filter by the `employment_status` field. + required: [] + GetHrisEmployeesParameterEmploymentStatuses: + type: string + description: >- + Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, + `LEAVE` + + * `ACTIVE`: the employee is **actively employed** + + * `PENDING`: the employee is **not actively employed yet** (but they + signed their contract or are part of an onboarding process) + + * `INACTIVE`: a full-time employee is no longer employed, or, for a + contract worker when their contract runs out + + * `LEAVE`: the employee is still employed but **currently on leave** + (note that not all HR systems support this status — use our absences API + for detailed information) + + + Leave this blank to get results matching all values. + required: [] + GetHrisEmployeesParameterGroupIds: + type: string + description: >- + Filter by a comma-separated list of group IDs. We will only return + employees that are members of _any_ of the groups. + required: [] + GetHrisEmployeesParameterLegalEntityIds: + type: string + description: >- + Filter by a comma-separated list of legal entity IDs. We will only + return employees that are members of _any_ of the legal entities. + required: [] + GetHrisEmployeesParameterWorkLocationIds: + type: string + description: >- + Filter by a comma-separated list of work location IDs. We will only + return employees who are at _any_ of the work locations. + required: [] + GetHrisEmployeesParameterWorkEmails: + type: string + description: >- + Filter by a comma-separated list of work emails. We will only return + employees who have _any_ of the work emails. + required: [] + GetHrisEmployeesParameterPersonalEmails: + type: string + description: >- + Filter by a comma-separated list of personal emails. We will only return + employees who have _any_ of the personal emails. + required: [] + GetHrisEmployeesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + required: [] + employee_number: + nullable: true + type: string + description: An optional, organization-internal employee number. + required: [] + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + nationality: + nullable: true + type: string + description: The employee’s nationality. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. Not + all HR systems provide an explicit display name, so we + recommend falling back to `first_name` and + `last_name`. + required: [] + job_title: + nullable: true + type: string + description: The employee’s job title. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email + address is invalid, we will set this to `null`. + required: [] + personal_email: + nullable: true + type: string + format: email + description: >- + The employee’s personal email address. If the email + address is invalid, we will set this to `null`. + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + nullable: true + type: string + description: Social security number + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, + `NON_BINARY`, or `NOT_SPECIFIED`) **or** — in rare + cases where can't find a clear mapping — the original + string passed through. + required: [] + ethnicity: + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where + can't find a clear mapping — the original string + passed through. + required: [] + marital_status: + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, + `SEPARATED`, or `NOT_MARRIED`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + required: [] + employment_status: + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed + yet** (but they signed their contract or are part of + an onboarding process) + + - `INACTIVE`: the employee is **not actively + employed** anymore + + - `LEAVE`: the employee is still employed but + **currently on leave** (note that not all HR systems + support this status — use our absences API for + detailed information) + + + Please note that in rare cases, where we can't find a + clear mapping, the original string is passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, + `PART_TIME`, `CONTRACT`, `INTERNSHIP`, `FREELANCE`, + `WORKING_STUDENT`, `APPRENTICESHIP`, or `TRAINING`) + **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The employee's weekly working hours. + required: [] + avatar: + nullable: true + type: string + description: >- + URL to the employee’s avatar. This is either the raw + URL from the HR system (in cases where it can be + requested without short-lived authentication) _or_ a + URL to a temporarily cached version of the file hosted + by Kombo. Kombo will delete the cached file after its + deletion in the source system. + required: [] + work_location_id: + nullable: true + type: string + description: >- + The ID of the employee’s work location. Can be used to + retrieve the work location from the `hris_locations` + endpoint. + required: [] + legal_entity_id: + nullable: true + type: string + description: The ID of the employee’s legal entity. + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + nullable: true + type: string + default: null + description: >- + The internationally unique IBAN identifying this + account. + required: [] + bic: + nullable: true + type: string + default: null + description: >- + The internationally unique BIC/SWIFT code + identifying the bank behind this account. + required: [] + account_number: + nullable: true + type: string + default: null + description: >- + The bank-specific account number. Some companies + use the account number field to put the IBAN + here. + required: [] + holder_name: + nullable: true + type: string + default: null + description: The name of the holder of this account. + required: [] + bank_name: + nullable: true + type: string + default: null + description: The name of the bank behind this account. + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + type: string + description: >- + Bank routing number (e.g. DE Bankleitzahl, + GB Sort Code, US ABA routing number, AU BSB + code + required: [] + type: + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + nullable: true + description: >- + The date the employee started working for the + organization. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + nullable: true + description: >- + The date when the employment ends. Can be in the past + or future. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: >- + The date and time the object was created in the remote + system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + - type: object + properties: + employments: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + job_title: + nullable: true + type: string + description: >- + **(⚠️ Deprecated)** We now provide the + `job_title` directly on the employee model. + required: [] + pay_rate: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + pay_period: + nullable: true + oneOf: + - type: string + enum: + - HOUR + - DAY + - WEEK + - TWO_WEEKS + - HALF_MONTH + - MONTH + - TWO_MONTHS + - QUARTER + - HALF_YEAR + - YEAR + required: [] + - type: string + description: >- + If we can't find a clear mapping: The + original string passed through. + required: [] + description: >- + One of 10 standardized values (`HOUR`, `DAY`, + `WEEK`, `TWO_WEEKS`, `HALF_MONTH`, `MONTH`, + `TWO_MONTHS`, `QUARTER`, `HALF_YEAR`, or `YEAR`) + **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + pay_frequency: + nullable: true + oneOf: + - type: string + enum: + - DAILY + - WEEKLY + - BIWEEKLY + - MONTHLY + - SEMIMONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - PRO_RATA + required: [] + - type: string + description: >- + If we can't find a clear mapping: The + original string passed through. + required: [] + description: >- + One of 9 standardized values (`DAILY`, `WEEKLY`, + `BIWEEKLY`, `MONTHLY`, `SEMIMONTHLY`, + `QUARTERLY`, `SEMIANNUALLY`, `ANNUALLY`, or + `PRO_RATA`) **or** — in rare cases where can't + find a clear mapping — the original string + passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The + original string passed through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, + `PART_TIME`, `CONTRACT`, `INTERNSHIP`, + `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in + rare cases where can't find a clear mapping — + the original string passed through. + required: [] + pay_currency: + nullable: true + type: string + description: >- + Pay currency usually returned in [ISO 4217 + currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + required: [] + effective_date: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - job_title + - pay_rate + - pay_period + - pay_frequency + - employment_type + - pay_currency + - effective_date + - changed_at + - remote_deleted_at + - remote_data + - custom_fields + example: + id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: [] + time_off_balances: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + type_id: + type: string + required: [] + balance: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount time available to the employee. + required: [] + balance_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + used: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + used_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - type_id + - balance + - balance_unit + - changed_at + - remote_deleted_at + - used + - used_unit + - remote_data + example: + id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + required: [] + manager: + nullable: true + type: object + properties: + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. + Not all HR systems provide an explicit display + name, so we recommend falling back to `first_name` + and `last_name`. + required: [] + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email + address is invalid, we will set this to `null`. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + required: [] + required: + - first_name + - last_name + - display_full_name + - id + - work_email + - remote_id + example: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJg + work_email: john.doe@acme.com + remote_id: '32' + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, + `TEAM`, and `COST_CENTER` + required: [] + required: + - id + - remote_id + - name + - type + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + required: [] + legal_entity: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with + the raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + required: + - id + - remote_id + - name + - address + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, + `TEAM`, and `COST_CENTER` + required: [] + required: + - id + - remote_id + - name + - type + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + description: >- + **(⚠️ Deprecated - Please use `groups` instead. It + includes the same data and the naming is less + confusing.)** Maintained field for backwards + compatibility. + required: [] + work_location: + nullable: true + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with + the raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + type: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - type + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - employments + - time_off_balances + - manager + - groups + - legal_entity + - teams + - work_location + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + employments: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + time_off_balances: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + manager: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJg + work_email: john.doe@acme.com + remote_id: '32' + groups: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + legal_entity: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + work_location: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + GetHrisEmployeesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_number: + nullable: true + type: string + description: An optional, organization-internal employee number. + required: [] + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + nationality: + nullable: true + type: string + description: The employee’s nationality. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. Not all HR + systems provide an explicit display name, so we recommend + falling back to `first_name` and `last_name`. + required: [] + job_title: + nullable: true + type: string + description: The employee’s job title. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email address is + invalid, we will set this to `null`. + required: [] + personal_email: + nullable: true + type: string + format: email + description: >- + The employee’s personal email address. If the email address is + invalid, we will set this to `null`. + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + nullable: true + type: string + description: Social security number + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, `NON_BINARY`, or + `NOT_SPECIFIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + ethnicity: + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where can't find a + clear mapping — the original string passed through. + required: [] + marital_status: + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, `SEPARATED`, or + `NOT_MARRIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + employment_status: + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed yet** (but + they signed their contract or are part of an onboarding process) + + - `INACTIVE`: the employee is **not actively employed** anymore + + - `LEAVE`: the employee is still employed but **currently on + leave** (note that not all HR systems support this status — use + our absences API for detailed information) + + + Please note that in rare cases, where we can't find a clear + mapping, the original string is passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases where + can't find a clear mapping — the original string passed through. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The employee's weekly working hours. + required: [] + avatar: + nullable: true + type: string + description: >- + URL to the employee’s avatar. This is either the raw URL from + the HR system (in cases where it can be requested without + short-lived authentication) _or_ a URL to a temporarily cached + version of the file hosted by Kombo. Kombo will delete the + cached file after its deletion in the source system. + required: [] + work_location_id: + nullable: true + type: string + description: >- + The ID of the employee’s work location. Can be used to retrieve + the work location from the `hris_locations` endpoint. + required: [] + legal_entity_id: + nullable: true + type: string + description: The ID of the employee’s legal entity. + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw address + string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains the + first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + nullable: true + type: string + default: null + description: The internationally unique IBAN identifying this account. + required: [] + bic: + nullable: true + type: string + default: null + description: >- + The internationally unique BIC/SWIFT code identifying the + bank behind this account. + required: [] + account_number: + nullable: true + type: string + default: null + description: >- + The bank-specific account number. Some companies use the + account number field to put the IBAN here. + required: [] + holder_name: + nullable: true + type: string + default: null + description: The name of the holder of this account. + required: [] + bank_name: + nullable: true + type: string + default: null + description: The name of the bank behind this account. + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + type: string + description: >- + Bank routing number (e.g. DE Bankleitzahl, GB Sort + Code, US ABA routing number, AU BSB code + required: [] + type: + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + nullable: true + description: The date the employee started working for the organization. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + nullable: true + description: The date when the employment ends. Can be in the past or future. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: The date and time the object was created in the remote system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + required: + - status + - data + PostHrisEmployeesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesRequestBody: + allOf: + - type: object + properties: + first_name: + type: string + last_name: + type: string + work_email: + type: string + format: email + description: >- + The email address of the employee to be created. For tools where + the personal email address is required, we map this input to the + personal email. This is documented on a per-tool basis. + gender: + type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + description: The gender of the employee. + job_title: + type: string + description: Title of the position this person is working in. + home_address: + type: object + properties: + street_1: + type: string + street_2: + type: string + city: + type: string + state: + type: string + zip_code: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's home address. For systems that have other formats + than `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO + Codes to the appropriate value. + description: The employee's home address. + date_of_birth: + description: >- + The employee's date of birth. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + mobile_phone_number: + type: string + nationality: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + start_date: + description: >- + Start date of the employee. Also considered to be the hire date. + This is a plain date (i.e., `yyyy-MM-dd`), all time information + is discarded. + 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 + remote_fields: + type: object + properties: + humaans: + type: object + properties: + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Humaans `Employee` + object. + description: Fields specific to Humaans. + silae: + type: object + properties: + siret: + type: string + description: >- + The siret of the company. The siret can be found as the + remote ID of a Silae legal entity. + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employee` + object. + employment: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employment` + object. + description: Fields specific to Silae. + required: + - silae + description: >- + Additional fields that we will pass through to specific HRIS + systems. + required: + - first_name + - last_name + - work_email + example: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + PatchHrisEmployeesEmployeeIdParameterEmployeeId: + 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`) + required: [] + PatchHrisEmployeesEmployeeIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_number: + nullable: true + type: string + description: An optional, organization-internal employee number. + required: [] + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + nationality: + nullable: true + type: string + description: The employee’s nationality. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. Not all HR + systems provide an explicit display name, so we recommend + falling back to `first_name` and `last_name`. + required: [] + job_title: + nullable: true + type: string + description: The employee’s job title. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email address is + invalid, we will set this to `null`. + required: [] + personal_email: + nullable: true + type: string + format: email + description: >- + The employee’s personal email address. If the email address is + invalid, we will set this to `null`. + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + nullable: true + type: string + description: Social security number + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, `NON_BINARY`, or + `NOT_SPECIFIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + ethnicity: + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where can't find a + clear mapping — the original string passed through. + required: [] + marital_status: + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, `SEPARATED`, or + `NOT_MARRIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + employment_status: + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed yet** (but + they signed their contract or are part of an onboarding process) + + - `INACTIVE`: the employee is **not actively employed** anymore + + - `LEAVE`: the employee is still employed but **currently on + leave** (note that not all HR systems support this status — use + our absences API for detailed information) + + + Please note that in rare cases, where we can't find a clear + mapping, the original string is passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases where + can't find a clear mapping — the original string passed through. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The employee's weekly working hours. + required: [] + avatar: + nullable: true + type: string + description: >- + URL to the employee’s avatar. This is either the raw URL from + the HR system (in cases where it can be requested without + short-lived authentication) _or_ a URL to a temporarily cached + version of the file hosted by Kombo. Kombo will delete the + cached file after its deletion in the source system. + required: [] + work_location_id: + nullable: true + type: string + description: >- + The ID of the employee’s work location. Can be used to retrieve + the work location from the `hris_locations` endpoint. + required: [] + legal_entity_id: + nullable: true + type: string + description: The ID of the employee’s legal entity. + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw address + string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains the + first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + nullable: true + type: string + default: null + description: The internationally unique IBAN identifying this account. + required: [] + bic: + nullable: true + type: string + default: null + description: >- + The internationally unique BIC/SWIFT code identifying the + bank behind this account. + required: [] + account_number: + nullable: true + type: string + default: null + description: >- + The bank-specific account number. Some companies use the + account number field to put the IBAN here. + required: [] + holder_name: + nullable: true + type: string + default: null + description: The name of the holder of this account. + required: [] + bank_name: + nullable: true + type: string + default: null + description: The name of the bank behind this account. + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + type: string + description: >- + Bank routing number (e.g. DE Bankleitzahl, GB Sort + Code, US ABA routing number, AU BSB code + required: [] + type: + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + nullable: true + description: The date the employee started working for the organization. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + nullable: true + description: The date when the employment ends. Can be in the past or future. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: The date and time the object was created in the remote system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + required: + - status + - data + PatchHrisEmployeesEmployeeIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PatchHrisEmployeesEmployeeIdRequestBody: + allOf: + - type: object + properties: + first_name: + type: string + last_name: + type: string + work_email: + type: string + format: email + description: >- + The email address of the employee to be created. For tools where + the personal email address is required, we map this input to the + personal email. This is documented on a per-tool basis. + gender: + type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + description: The gender of the employee. + job_title: + type: string + description: Title of the position this person is working in. + home_address: + type: object + properties: + street_1: + type: string + street_2: + type: string + city: + type: string + state: + type: string + zip_code: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's home address. For systems that have other formats + than `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO + Codes to the appropriate value. + description: The employee's home address. + date_of_birth: + description: >- + The employee's date of birth. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + mobile_phone_number: + type: string + nationality: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + start_date: + description: >- + Start date of the employee. Also considered to be the hire date. + This is a plain date (i.e., `yyyy-MM-dd`), all time information + is discarded. + 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 + remote_fields: + type: object + properties: + humaans: + type: object + properties: + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Humaans `Employee` + object. + description: Fields specific to Humaans. + silae: + type: object + properties: + siret: + type: string + description: >- + The siret of the company. The siret can be found as the + remote ID of a Silae legal entity. + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employee` + object. + employment: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employment` + object. + description: Fields specific to Silae. + required: + - silae + description: >- + Additional fields that we will pass through to specific HRIS + systems. + required: + - first_name + - last_name + - work_email + example: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + - type: object + properties: + ssn: + type: string + description: Social security number of the employee. + marital_status: + type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + description: Marital status of an employee. + termination_date: + description: >- + Date on which the employment ends. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + tax_id: + type: string + description: >- + Tax ID of the employee. Most contries have different formats of + that. In Germany, this is the `Steuer ID` and in the US it's the + `TIN`. + nationality: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + required: [] + PostHrisEmployeesEmployeeIdAttachmentsParameterEmployeeId: + type: string + required: [] + PostHrisEmployeesEmployeeIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostHrisEmployeesEmployeeIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesEmployeeIdAttachmentsRequestBody: + type: object + GetHrisTeamsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisTeamsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisTeamsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisTeamsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisTeamsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisTeamsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisTeamsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, `TEAM`, and + `COST_CENTER` + required: [] + parent_id: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - changed_at + - remote_deleted_at + - type + - parent_id + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: + - status + - data + GetHrisTeamsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisGroupsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisGroupsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisGroupsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisGroupsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisGroupsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisGroupsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisGroupsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, `TEAM`, and + `COST_CENTER` + required: [] + parent_id: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - changed_at + - remote_deleted_at + - type + - parent_id + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: + - status + - data + GetHrisGroupsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisEmploymentsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisEmploymentsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisEmploymentsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisEmploymentsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisEmploymentsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisEmploymentsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisEmploymentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + job_title: + nullable: true + type: string + description: >- + **(⚠️ Deprecated)** We now provide the `job_title` + directly on the employee model. + required: [] + pay_rate: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + pay_period: + nullable: true + oneOf: + - type: string + enum: + - HOUR + - DAY + - WEEK + - TWO_WEEKS + - HALF_MONTH + - MONTH + - TWO_MONTHS + - QUARTER + - HALF_YEAR + - YEAR + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string + passed through. + required: [] + description: >- + One of 10 standardized values (`HOUR`, `DAY`, `WEEK`, + `TWO_WEEKS`, `HALF_MONTH`, `MONTH`, `TWO_MONTHS`, + `QUARTER`, `HALF_YEAR`, or `YEAR`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + required: [] + pay_frequency: + nullable: true + oneOf: + - type: string + enum: + - DAILY + - WEEKLY + - BIWEEKLY + - MONTHLY + - SEMIMONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - PRO_RATA + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string + passed through. + required: [] + description: >- + One of 9 standardized values (`DAILY`, `WEEKLY`, + `BIWEEKLY`, `MONTHLY`, `SEMIMONTHLY`, `QUARTERLY`, + `SEMIANNUALLY`, `ANNUALLY`, or `PRO_RATA`) **or** — in + rare cases where can't find a clear mapping — the original + string passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string + passed through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + required: [] + pay_currency: + nullable: true + type: string + description: >- + Pay currency usually returned in [ISO 4217 currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + required: [] + effective_date: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - job_title + - pay_rate + - pay_period + - pay_frequency + - employment_type + - pay_currency + - effective_date + - changed_at + - remote_deleted_at + - remote_data + - custom_fields + example: + id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: + - status + - data + GetHrisEmploymentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisLocationsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisLocationsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisLocationsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisLocationsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisLocationsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisLocationsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisLocationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw + address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains + the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + type: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - type + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + GetHrisLocationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisAbsenceTypesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisAbsenceTypesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisAbsenceTypesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisAbsenceTypesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisAbsenceTypesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisAbsenceTypesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisAbsenceTypesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + nullable: true + type: boolean + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and `end_half_day`) + for this absence type. + required: [] + exact_times_supported: + nullable: true + type: boolean + description: >- + `true` if the system supports exact times (absences with a + `start_time` and an `end_time`) for this absence, `false` + if not. + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisAbsenceTypesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisTimeOffBalancesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisTimeOffBalancesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisTimeOffBalancesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisTimeOffBalancesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisTimeOffBalancesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisTimeOffBalancesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisTimeOffBalancesParameterEmployeeId: + type: string + description: Filter by a specific employee using their ID. + required: [] + GetHrisTimeOffBalancesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + type_id: + type: string + required: [] + balance: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount time available to the employee. + required: [] + balance_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + used: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + used_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - type_id + - balance + - balance_unit + - changed_at + - remote_deleted_at + - used + - used_unit + - remote_data + example: + id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + - type: object + properties: + type: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + nullable: true + type: boolean + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and + `end_half_day`) for this absence type. + required: [] + exact_times_supported: + nullable: true + type: boolean + description: >- + `true` if the system supports exact times + (absences with a `start_time` and an `end_time`) + for this absence, `false` if not. + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - type + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisTimeOffBalancesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisAbsencesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisAbsencesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisAbsencesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisAbsencesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisAbsencesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisAbsencesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisAbsencesParameterDateFrom: + description: >- + Filter for all the absences that either start _or_ haven't ended yet + on/after this day. If you imagine a calendar displaying absences, this + defines the left-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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: [] + GetHrisAbsencesParameterDateUntil: + description: >- + Filter for absences that start on or before this day (but might continue + after). If you imagine a calendar displaying absences, this defines the + right-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all + time information is discarded. + 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: [] + GetHrisAbsencesParameterTypeIds: + type: string + description: Filter by a comma-separated list of absence type IDs. + required: [] + GetHrisAbsencesParameterEmployeeId: + type: string + description: Filter by a specific employee using their ID. + required: [] + GetHrisAbsencesParameterTimeFrom: + description: >- + **(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for + absences that either start after or start before and end after a certain + time. + 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: [] + GetHrisAbsencesParameterTimeUntil: + description: >- + **(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter for + absences that start before a certain time. + 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: [] + GetHrisAbsencesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + required: [] + employee_id: + type: string + required: [] + approver_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible + for approving this absence. + required: [] + start_date: + nullable: true + type: string + description: >- + The date this absence starts in the `yyyy-MM-dd` + format. + required: [] + end_date: + nullable: true + type: string + description: The date this absence ends in the `yyyy-MM-dd` format. + required: [] + start_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence starts in the middle of the day, + `false` if not, and `null` if the absence type doesn't + support half-day absences. If an absence goes across + multiple days and `start_half_day` is set, it means + that on the last day the absence is only on the first + half of the day. + required: [] + end_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence ends in the middle of the day, + `false` if not, and `null` if the absence type doesn't + support half-day absences. If an absence goes across + multiple days and `end_half_day` is set, it means that + on the first day the absence only starts in the second + half-day. + required: [] + start_time: + nullable: true + type: string + description: >- + The time at which this absence starts. Follows the + format `HH:mm:ss` (e.g., `14:45:15`). + required: [] + end_time: + nullable: true + type: string + description: >- + The time at which this absence ends. Follows the + format `HH:mm:ss` (e.g., `14:45:15`). + required: [] + amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of time this absence takes. + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + description: >- + The unit of time for this absence. Can be `HOURS` or + `DAYS`. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in + rare cases where can't find a clear mapping — the + original string passed through. + required: [] + employee_note: + nullable: true + type: string + description: A note the employee has added to this absence. + required: [] + type_id: + nullable: true + type: string + description: The Kombo absence type ID of this absence. + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + type: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + nullable: true + type: boolean + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and + `end_half_day`) for this absence type. + required: [] + exact_times_supported: + nullable: true + type: boolean + description: >- + `true` if the system supports exact times + (absences with a `start_time` and an `end_time`) + for this absence, `false` if not. + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - type + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisAbsencesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisAbsencesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_id: + type: string + required: [] + approver_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible for + approving this absence. + required: [] + start_date: + nullable: true + type: string + description: The date this absence starts in the `yyyy-MM-dd` format. + required: [] + end_date: + nullable: true + type: string + description: The date this absence ends in the `yyyy-MM-dd` format. + required: [] + start_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence starts in the middle of the day, `false` + if not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `start_half_day` is set, it means that on the last day the + absence is only on the first half of the day. + required: [] + end_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence ends in the middle of the day, `false` if + not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `end_half_day` is set, it means that on the first day the + absence only starts in the second half-day. + required: [] + start_time: + nullable: true + type: string + description: >- + The time at which this absence starts. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + end_time: + nullable: true + type: string + description: >- + The time at which this absence ends. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of time this absence takes. + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + description: The unit of time for this absence. Can be `HOURS` or `DAYS`. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in rare cases + where can't find a clear mapping — the original string passed + through. + required: [] + employee_note: + nullable: true + type: string + description: A note the employee has added to this absence. + required: [] + type_id: + nullable: true + type: string + description: The Kombo absence type ID of this absence. + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + PostHrisAbsencesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisAbsencesRequestBody: + allOf: + - type: object + properties: + employee_id: + type: string + description: >- + The ID of the employee in Kombo or their ID in the remote system + by prefixing it with `remote:` (e.g., `remote:12312`) + absence_type_id: + type: string + description: The ID of the absence type in Kombo (not its `remote_id`). + status: + type: string + enum: + - REQUESTED + - APPROVED + description: >- + Specify if the absence should be created in the requested or + approved state. Please note that some tools might approve + absences automatically if they were created for an absence type + that does not require approval. There are more edge cases that + might cause an absence to be approved automatically. + default: REQUESTED + start_date: + description: >- + When the absence starts. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + end_date: + description: >- + When the absence ends. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + start_half_day: + type: boolean + description: '`true` if the absence should start in the middle of the day.' + default: false + end_half_day: + type: boolean + description: '`true` if the absence should end in the middle of the day.' + default: false + amount: + type: number + format: double + minimum: 0 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: >- + Specifying this also requires specifying `unit`. This is + supported by very few tools. + unit: + type: string + enum: + - HOURS + - DAYS + description: Specifying this also requires specifying `amount`. + employee_note: + nullable: true + type: string + description: A note describing the reason for this absence. + start_time: + type: string + pattern: /^(?:2[0-3]|[01]?\d):[0-5]?\d(:[0-5]?\d)?$/ + description: >- + When the absence begins. Follows the format `HH:mm` or + `HH:mm:ss` (e.g., `14:45:15`). If `start_time` is specified, + `end_time` has to be specified as well. + end_time: + type: string + pattern: /^(?:2[0-3]|[01]?\d):[0-5]?\d(:[0-5]?\d)?$/ + description: >- + When the absence ends. Follows the format `HH:mm` or `HH:mm:ss` + (e.g., `14:45:15`). If `end_time` is specified, `start_time` has + to be specified as well. + required: + - employee_id + - absence_type_id + - employee_note + example: + employee_id: wXJMxwDvPAjrJ4CyqdV9 + absence_type_id: 3YKtQ7qedsrcCady1jSyAkY1 + start_date: '2019-09-17' + end_date: '2019-09-21' + start_time: '08:30:00' + end_time: '16:00:00' + start_half_day: false + end_half_day: false + employee_note: Visiting the aliens + DeleteHrisAbsencesAbsenceIdParameterAbsenceId: + type: string + description: The ID of the absence + required: [] + DeleteHrisAbsencesAbsenceIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_id: + type: string + required: [] + approver_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible for + approving this absence. + required: [] + start_date: + nullable: true + type: string + description: The date this absence starts in the `yyyy-MM-dd` format. + required: [] + end_date: + nullable: true + type: string + description: The date this absence ends in the `yyyy-MM-dd` format. + required: [] + start_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence starts in the middle of the day, `false` + if not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `start_half_day` is set, it means that on the last day the + absence is only on the first half of the day. + required: [] + end_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence ends in the middle of the day, `false` if + not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `end_half_day` is set, it means that on the first day the + absence only starts in the second half-day. + required: [] + start_time: + nullable: true + type: string + description: >- + The time at which this absence starts. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + end_time: + nullable: true + type: string + description: >- + The time at which this absence ends. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of time this absence takes. + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + description: The unit of time for this absence. Can be `HOURS` or `DAYS`. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in rare cases + where can't find a clear mapping — the original string passed + through. + required: [] + employee_note: + nullable: true + type: string + description: A note the employee has added to this absence. + required: [] + type_id: + nullable: true + type: string + description: The Kombo absence type ID of this absence. + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + DeleteHrisAbsencesAbsenceIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteHrisAbsencesAbsenceIdRequestBody: + type: object + GetHrisLegalEntitiesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisLegalEntitiesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisLegalEntitiesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisLegalEntitiesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisLegalEntitiesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisLegalEntitiesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisLegalEntitiesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. + We recommend using this as a stable primary key for + syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it + might sometimes be compromised of multiple identifiers if + a system doesn't provide a clear primary key. + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw + address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains + the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted when + Kombo can't retrieve them from the remote system anymore. + Kombo will also anonymize entries 14 days after they + disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - changed_at + - remote_deleted_at + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + required: + - status + - data + GetHrisLegalEntitiesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsApplicationsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsApplicationsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsApplicationsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsApplicationsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsApplicationsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsApplicationsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsApplicationsParameterOutcome: + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + **(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter + applications by outcome. This allows you to get applications that are + for example `PENDING`, `HIRED`, or `DECLINED`. + required: [] + GetAtsApplicationsParameterOutcomes: + type: string + description: |- + Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` + * `PENDING`: The application is still being processed. + * `HIRED`: The candidate was hired. + * `DECLINED`: The candidate was declined. + + + Leave this blank to get results matching all values. + required: [] + GetAtsApplicationsParameterRemoteCreatedAfter: + description: >- + Filter applications by the day they were created in the remote system. + This allows you to get applications that were created on or after a + certain day. + 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: [] + GetAtsApplicationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo identifies + that the application was accepted and the candidate + hired, it will be `HIRED`. If the application was + rejected or the candidate declined, it will be + `DECLINED`. If the application is still in process, it + will be `PENDING`. + + Kombo will always try to deliver this information as + reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + current_stage_id: + nullable: true + type: string + description: ID of the current application stage + required: [] + job_id: + nullable: true + type: string + required: [] + candidate_id: + nullable: true + type: string + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + - current_stage_id + - job_id + - candidate_id + - custom_fields + - changed_at + - remote_deleted_at + - remote_created_at + - remote_updated_at + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + candidate: + nullable: true + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through + this field. If we don't get any + information from the tool, we will set + this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate + with an optional type. If an email address is + invalid, it will be filtered out. + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email_addresses + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + - type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + required: [] + required: + - tags + required: [] + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + interviews: + type: array + items: + type: object + properties: + id: + type: string + description: The globally unique Kombo ID of the interview. + required: [] + remote_id: + nullable: true + type: string + description: >- + The ID of the interview in the integrated + system. + required: [] + title: + nullable: true + type: string + description: The title of the interview. + required: [] + starting_at: + nullable: true + description: The start time of the interview. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + ending_at: + nullable: true + description: The end time of the interview. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. + If not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with + the raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the interview. + required: [] + required: + - id + - remote_id + - title + - starting_at + - ending_at + - location + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + title: Interview with John Doe + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + required: [] + required: + - candidate + - current_stage + - job + - interviews + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + candidate: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + interviews: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + title: Interview with John Doe + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + required: + - status + - data + GetAtsApplicationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAtsApplicationsApplicationIdStageParameterApplicationId: + type: string + required: [] + PutAtsApplicationsApplicationIdStageSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAtsApplicationsApplicationIdStageErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAtsApplicationsApplicationIdStageRequestBody: + allOf: + - type: object + properties: + stage_id: + type: string + description: >- + The ID of the stage to move the application to. This ID must be + the ID of a stage that is connected to the job that the + application is connected to. + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - stage_id + example: + stage_id: 3PJ8PZhZZa1eEdd2DtPNtVup + PostAtsApplicationsApplicationIdResultLinksParameterApplicationId: + type: string + description: Kombo ID of the application you want to create the link for. + required: [] + PostAtsApplicationsApplicationIdResultLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdResultLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdResultLinksRequestBody: + allOf: + - type: object + properties: + label: + type: string + description: >- + If we can display a display name for the link, we will use this + label. + url: + type: string + format: url + description: URL of the link. + details: + type: object + properties: + custom_field_name_prefix: + type: string + description: >- + That will be added to the attribute labels if they are used + for custom fields. If you specify `Acme:` as the prefix, the + custom field will be named `Acme: Score`. Putting in the + name of your company/product is a good idea. + attributes: + type: array + items: + type: object + properties: + key: + type: string + description: The name of the attribute + value: + type: string + description: The value of the attribute + required: + - key + - value + required: + - custom_field_name_prefix + - attributes + description: >- + Additional details with attributes that will be added to the + result. This can be percentages, scores, or any text. + + + We generally recommend using short attribute keys and a short + custom_field_name_prefix to avoid overflowing the ATS UI. + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - label + - url + example: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + PostAtsApplicationsApplicationIdNotesParameterApplicationId: + type: string + description: Kombo ID of the application you want to create the note for. + required: [] + PostAtsApplicationsApplicationIdNotesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdNotesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdNotesRequestBody: + allOf: + - type: object + properties: + content: + type: string + description: UTF-8 content of the note. + content_type: + type: string + enum: + - PLAIN_TEXT + description: >- + Content type of the note. Currently only `PLAIN_TEXT` is + supported. + remote_fields: + type: object + properties: + teamtailor: + type: object + properties: + user_id: + type: string + description: >- + ID of the user that created the note. Defaults to the + first admin user found. + description: Teamtailor specific remote fields for the note. + greenhouse: + type: object + properties: + visibility: + type: string + enum: + - admin_only + - private + - public + description: Visibility of the created note. + description: Greenhouse specific remote fields for the note. + recruitee: + type: object + properties: + visibility: + format: any + description: Visibility of the created note. + is_json: + type: boolean + description: >- + Whether the note is in a stringified JSON format. If + true, content should contain a valid JSON as per the + [Recruitee API + documentation](https://docs.recruitee.com/reference/candidatesidnotes) + (body_json field). If false we add the note as a plain + text. + description: Recruitee specific remote fields for the note. + description: Tool specific remote fields for the note. + required: + - content + - content_type + example: + content: A new message from the candidate is available in YourChat! + content_type: PLAIN_TEXT + PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId: + type: string + required: [] + PostAtsApplicationsApplicationIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdAttachmentsRequestBody: + allOf: + - type: object + properties: + attachment: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., `application/pdf`). + This is required if you provide `data` and optional if + you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to upload. + You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to upload. + You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - attachment + example: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + GetAtsCandidatesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsCandidatesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsCandidatesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsCandidatesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsCandidatesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsCandidatesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsCandidatesParameterEmail: + type: string + format: email + description: >- + Filter the candidates based on an email address. When set, returns only + the candidates where the given `email` is in `email_addresses`. + required: [] + GetAtsCandidatesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + company: + nullable: true + type: string + description: The current company of the candidate. + required: [] + title: + nullable: true + type: string + description: The current job title of the candidate. + required: [] + confidential: + nullable: true + type: boolean + description: >- + Whether the candidate's profile is confidential in the + ATS. + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + nullable: true + type: string + default: null + description: >- + Kombo exposes type information through this + field. If we don't get any information from the + tool, we will set this to `null`. + required: [] + required: + - phone_number + default: [] + description: A list of phone numbers of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through this + field. If we don't get any information from the + tool, we will set this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate with an + optional type. If an email address is invalid, it will + be filtered out. + required: [] + social_media: + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + description: List of social media accounts of the candidate. + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the candidate. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + applications: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo + identifies that the application was accepted + and the candidate hired, it will be `HIRED`. + If the application was rejected or the + candidate declined, it will be `DECLINED`. + If the application is still in process, it + will be `PENDING`. + + Kombo will always try to deliver this + information as reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object + generated by Kombo. We recommend using + this as a stable primary key for + syncing. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote + system. We don't recommend using this as + a primary key on your side as it might + sometimes be compromised of multiple + identifiers if a system doesn't provide + a clear primary key. + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + required: + - current_stage + - job + required: [] + required: [] + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: [] + required: + - applications + - tags + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + applications: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: + - status + - data + GetAtsCandidatesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + company: + nullable: true + type: string + description: The current company of the candidate. + required: [] + title: + nullable: true + type: string + description: The current job title of the candidate. + required: [] + confidential: + nullable: true + type: boolean + description: Whether the candidate's profile is confidential in the ATS. + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + nullable: true + type: string + default: null + description: >- + Kombo exposes type information through this field. If + we don't get any information from the tool, we will + set this to `null`. + required: [] + required: + - phone_number + default: [] + description: A list of phone numbers of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through this field. If + we don't get any information from the tool, we will + set this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate with an optional + type. If an email address is invalid, it will be filtered + out. + required: [] + social_media: + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + description: List of social media accounts of the candidate. + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw + address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains + the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the candidate. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + applications: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo + identifies that the application was accepted and + the candidate hired, it will be `HIRED`. If the + application was rejected or the candidate + declined, it will be `DECLINED`. If the + application is still in process, it will be + `PENDING`. + + Kombo will always try to deliver this information + as reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object + generated by Kombo. We recommend using this as + a stable primary key for syncing. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. + We don't recommend using this as a primary key + on your side as it might sometimes be + compromised of multiple identifiers if a + system doesn't provide a clear primary key. + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + required: + - current_stage + - job + required: [] + required: [] + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: [] + required: + - applications + - tags + required: [] + warnings: + type: array + items: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: [] + required: + - status + - data + - warnings + PostAtsCandidatesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesRequestBody: + allOf: + - type: object + properties: + candidate: + type: object + properties: + first_name: + type: string + last_name: + type: string + email_address: + type: string + format: email + description: >- + The primary email address this application will be created + with. + company: + type: string + description: The company where the applicant is currently working. + title: + type: string + description: The current job title of the applicant. + phone_number: + type: string + location: + type: object + properties: + city: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + applicant. + required: + - country + gender: + type: string + enum: + - MALE + - FEMALE + - OTHER + description: >- + The gender of the applicant. Must be one of `MALE`, + `FEMALE`, or `OTHER`. + availability_date: + description: The date the applicant is available to start working. + 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 + salary_expectations: + type: object + properties: + period: + type: string + enum: + - MONTH + - YEAR + description: >- + The period of the salary expectations. Must be one of + `MONTH` or `YEAR`. + amount: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of the salary expectations. + required: + - period + - amount + description: >- + The salary expectations of the applicant. We will + automatically convert the amount to a format that is + suitable for the ATS you are using. For example, if you are + using monthly salary expectations, we will convert the + amount to a yearly salary if the ATS expects yearly salary + expectations. + social_links: + type: array + items: + type: object + properties: + url: + type: string + format: url + required: + - url + default: [] + description: >- + A list of social media links of the applicant. The links + must be valid URLs. + required: + - first_name + - last_name + - email_address + application: + type: object + properties: + job_id: + type: string + description: >- + Kombo ID or Remote ID of the Job this candidate should apply + for. If you want to use the ID of the integrated system + (remote_id) you need to prefix the id with "remote:". You + can use the remote ID if you do not want to sync jobs. + stage_id: + type: string + description: >- + Stage this candidate should be in. If left out, the default + stage for this job will be used. + required: + - job_id + description: >- + Currently, every candidate has one application. If you are + interested in talent pools, please contact Kombo. + screening_question_answers: + type: array + items: + type: object + properties: + question_id: + type: string + description: >- + ID of the question returned by the Kombo API. We'll report + a warning in the logs if the question can't be found on + the job. + answer: + oneOf: + - type: string + description: >- + Answer to a `TEXT` question or the option ID of the + answer to a `SINGLE_SELECT` question. + - type: boolean + description: Answer to a `BOOLEAN` question. + - type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Answer to a `NUMBER` question. + - type: array + items: + type: string + description: >- + Answer to a `MULTI_SELECT` question. The array + elements are the IDs of the selected options. + - description: >- + Answer to a `DATE` question as an ISO 8601 date + string. + 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 + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + description: Answer to a `FILE` question. + description: >- + Answer to a question. This will be validated based on the + question format and throw an error if the answer is + invalid. Here is a description of each question type and + the required answer format: + + + `TEXT` - Simply provide a "string" answer. + + + `SINGLE_SELECT` - Provide the ID of the answer as a + string. + + + `MULTI_SELECT` - Provide a string array containing the + question IDs of the selected options. + + + `BOOLEAN` - Either `true` or `false`. + + + `NUMBER` - A number. + + + `DATE` - Provide the answer as an ISO 8601 date string. + + + `FILE` - Please select Option 6 in the dropdown above to + see the required format. + required: + - question_id + - answer + description: >- + Array of answers to screening questions. Currently, not all + question types are supported and unsupported ones will not be + submitted. + + + The available questions a job can be retrieved from the get jobs + endpoint. The answers will be validated based on the format of + the the questions. Make sure to follow this schema to avoid + errors. + example: + - question_id: D8yPrjXXvA2XeBksTmrVvKSn + answer: 'Yes' + attachments: + type: array + items: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you provide + `data` and optional if you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + default: [] + description: Array of the attachments you would like upload. + source: + type: object + properties: + name: + type: string + description: >- + Name of the source (e.g., `"Example Job Board"`). + + + Note that this **only** works for ATS systems that support + creating a source through the API right now. This includes + Breezy HR, Fountain, Pinpoint, RECRU, Recruitee, Sage HR, + and Haufe Umantis. For all other ATSs, the source will be + ignored at the moment. + description: >- + **(⚠️ Deprecated - Use [automatic source + writing](/ats/features/application-attribution#automatic-attribution) + instead)** Optional source information that will be attached to + the candidate. If + + you're a job board or recruiting service, you can use this to + make sure your + + customers can see which candidates came from you. + + + This is deprecated because writing sources requires users to do + some setup in most ATSs. + gdpr_consent: + type: object + properties: + expires_at: + description: >- + Until when the candidate has granted the company they're + applying to permission to process their personal data. + 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 + given: + type: boolean + description: Whether the candidate has given consent. + description: >- + Optional GDPR consent information required in some jurisdictions + (like the Czech Republic or Slovakia). + remote_fields: + allOf: + - type: object + properties: + successfactors: + type: object + properties: + Candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `Candidate` object. + JobApplication: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `JobApplication` object. + copyJobApplicationAttachments: + type: boolean + description: >- + If set to true, we will copy custom attachments from + the JobApplication to the Candidate. + description: Fields specific to SAP SuccessFactors. + teamtailor: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Teamtailor's + `Candidate` object. + greenhouse: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Candidate` object. + application: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Application` object. + description: Fields specific to Greenhouse. + lever: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Lever's + `Candidate` object. Note: make sure to submit the + keys and values in the correct form data format. + description: Fields specific to Lever. + workable: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Workable's + `Candidate` object. + description: Fields specific to Workable. + bullhorn: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Bullhorn's + `Candidate` object. + description: Fields specific to Bullhorn. + description: >- + Additional fields that we will pass through to specific ATS + systems. + - type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already + pass a value by default, but you can use this to + override it. + description: >- + Headers we will pass with `POST` requests to + Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - candidate + - application + example: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + social_links: + - url: https://www.linkedin.com/in/frank-doe-123456789/ + - url: https://twitter.com/frankdoe + application: + job_id: BDpgnpZ148nrGh4mYHNxJBgx + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + PatchAtsCandidatesCandidateIdParameterCandidateId: + type: string + required: [] + PatchAtsCandidatesCandidateIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PatchAtsCandidatesCandidateIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PatchAtsCandidatesCandidateIdRequestBody: + type: object + PostAtsCandidatesCandidateIdAttachmentsParameterCandidateId: + type: string + required: [] + PostAtsCandidatesCandidateIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdAttachmentsRequestBody: + allOf: + - type: object + properties: + attachment: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., `application/pdf`). + This is required if you provide `data` and optional if + you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to upload. + You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to upload. + You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - attachment + example: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + PostAtsCandidatesCandidateIdResultLinksParameterCandidateId: + type: string + description: Kombo ID of the candidate you want to create the link for. + required: [] + PostAtsCandidatesCandidateIdResultLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdResultLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdResultLinksRequestBody: + allOf: + - type: object + properties: + label: + type: string + description: >- + If we can display a display name for the link, we will use this + label. + url: + type: string + format: url + description: URL of the link. + details: + type: object + properties: + custom_field_name_prefix: + type: string + description: >- + That will be added to the attribute labels if they are used + for custom fields. If you specify `Acme:` as the prefix, the + custom field will be named `Acme: Score`. Putting in the + name of your company/product is a good idea. + attributes: + type: array + items: + type: object + properties: + key: + type: string + description: The name of the attribute + value: + type: string + description: The value of the attribute + required: + - key + - value + required: + - custom_field_name_prefix + - attributes + description: >- + Additional details with attributes that will be added to the + result. This can be percentages, scores, or any text. + + + We generally recommend using short attribute keys and a short + custom_field_name_prefix to avoid overflowing the ATS UI. + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - label + - url + example: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + PostAtsCandidatesCandidateIdTagsParameterCandidateId: + type: string + description: Kombo ID of the candidate you want to add the tag to. + required: [] + PostAtsCandidatesCandidateIdTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdTagsRequestBody: + allOf: + - type: object + properties: + tag: + type: object + properties: + name: + type: string + minLength: 1 + description: >- + The name of the tag you would like to add. Kombo will find + out the right ID of the tag so you don't have to. + required: + - name + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - tag + example: + tag: + name: Excellent Fit + DeleteAtsCandidatesCandidateIdTagsParameterCandidateId: + type: string + description: Kombo ID of the candidate you want to remove the tag from. + required: [] + DeleteAtsCandidatesCandidateIdTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + DeleteAtsCandidatesCandidateIdTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteAtsCandidatesCandidateIdTagsRequestBody: + allOf: + - type: object + properties: + tag: + type: object + properties: + name: + type: string + description: The name of the tag you would like to remove. + required: + - name + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - tag + example: + tag: + name: Excellent Fit + GetAtsTagsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsTagsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsTagsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsTagsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsTagsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsTagsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsApplicationStagesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsApplicationStagesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsApplicationStagesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsApplicationStagesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsApplicationStagesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsApplicationStagesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsApplicationStagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsApplicationStagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsJobsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsJobsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsJobsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsJobsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsJobsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsJobsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsJobsParameterJobCodes: + type: string + description: Filter by a comma-separated list of job codes. + required: [] + GetAtsJobsParameterPostUrl: + type: string + description: >- + Filter by the `post_url` field. Can be used to find a job based on its + public posting URL. + required: [] + GetAtsJobsParameterStatus: + type: string + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + description: >- + **(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by the + `status` field. Can be used to find a job based on its status. + required: [] + GetAtsJobsParameterStatuses: + type: string + description: >- + Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, + `ARCHIVED` + + + Leave this blank to get results matching all values. + required: [] + GetAtsJobsParameterVisibilities: + type: string + description: >- + Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, `UNLISTED`, + `CONFIDENTIAL` + + + Leave this blank to get results matching all values. + required: [] + GetAtsJobsParameterNameContains: + type: string + description: >- + Filter by the `name` field. Can be used to find a job by keywords + present in the job name. + required: [] + GetAtsJobsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + job_code: + nullable: true + type: string + description: >- + The human readable job code. Some systems expose this + as the Requisition Code/ID. + required: [] + description: + nullable: true + type: string + description: >- + Description of the job. This field is usually returned + as HTML. + required: [] + confidential: + nullable: true + type: boolean + description: >- + **(⚠️ Deprecated)** It makes more sense to store the + visibility of a job in an enum. Therefore, we + introduced the `visibility` enum on jobs. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - SEASONAL + - INTERNSHIP + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + The type of employment contract. In rare cases where + can't find a clear mapping, the original string is + passed through. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 4 standardized values (`OPEN`, `CLOSED`, + `DRAFT`, or `ARCHIVED`) **or** — in rare cases where + can't find a clear mapping — the original string + passed through. + required: [] + visibility: + nullable: true + oneOf: + - type: string + enum: + - PUBLIC + - INTERNAL + - UNLISTED + - CONFIDENTIAL + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + Describes the visibility of the job: + + + - `PUBLIC`: visible to everyone, published on a job + board + + - `INTERNAL`: only visible to employees of the company + itself + + - `UNLISTED`: anyone can apply but only if they have + the link to it + + - `CONFIDENTIAL`: nobody can apply and it's only + visible in the ATS to people who were invited to it + + + Useful if you are providing a job board and want to + post public open jobs of your customers/partners. + + In rare cases where can't find a clear mapping, the + original string is passed through. + required: [] + category: + nullable: true + type: string + description: The category of the job (often the job industry). + required: [] + department: + nullable: true + type: string + required: [] + post_url: + nullable: true + type: string + description: >- + The public job posting URL of the ATS itself. This can + be used by external job boards to redirect applicants. + required: [] + experience_level: + nullable: true + type: string + required: [] + remote_work_status: + nullable: true + oneOf: + - type: string + enum: + - REMOTE + - HYBRID + - TEMPORARY + - ON_SITE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + Defines if the job supports remote work and if so, to + what extent. + required: [] + salary_amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The salary amount in the given currency. + required: [] + salary_amount_from: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The lower bound of the salary range. + required: [] + salary_amount_to: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The upper bound of the salary range. + required: [] + salary_currency: + nullable: true + type: string + description: >- + Salary currency usually returned in [ISO 4217 currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + required: [] + salary_period: + nullable: true + oneOf: + - type: string + enum: + - YEAR + - MONTH + - TWO_WEEKS + - WEEK + - DAY + - HOUR + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + The period of the salary amount (not equal to the pay + frequency). + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: The location of the listed job. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + opened_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + closed_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: >- + The date and time the object was created in the remote + system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: >- + A timestamp retrieved from the remote system, + describing when the resource was last updated. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + contact_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated)** The user ID of the contact person + for this job. We strongly recommend using the new + `hiring_team` property instead as it provides more + complete and accurate information about the ATS users + connected to a job. + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - job_code + - description + - confidential + - weekly_hours + - employment_type + - status + - visibility + - category + - department + - post_url + - experience_level + - remote_work_status + - salary_amount + - salary_amount_from + - salary_amount_to + - salary_currency + - salary_period + - location + - custom_fields + - opened_at + - closed_at + - remote_created_at + - remote_updated_at + - contact_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + description: >- +

Kombo is hiring engineers! If you are reading this + and you are located in Berlin, Germany, feel free to + contact us about this position.

+ confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + - type: object + properties: + stages: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + - type: object + properties: + index: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + description: >- + Numeric index following the order of the + stages if they are ordered in the underlying + tool. + required: [] + example: + index: 0 + required: + - index + required: [] + description: >- + Application stages a candidate can be in for this + particular job. + required: [] + screening_questions: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + title: + nullable: true + type: string + required: [] + description: + nullable: true + type: string + required: [] + format: + nullable: true + oneOf: + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - SINGLE_LINE + - MULTI_LINE + default: null + description: >- + If unavailable, we recommend displaying + a single-line input. + required: [] + max_length: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + required: [] + type: + type: string + enum: + - TEXT + required: [] + required: + - type + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - SLIDER + - FIELD + default: FIELD + required: [] + max: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + default: null + required: [] + min: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + default: null + required: [] + type: + type: string + enum: + - NUMBER + required: [] + required: + - type + - type: object + properties: + type: + type: string + enum: + - FILE + required: [] + required: + - type + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - DROPDOWN + - RADIO + default: null + required: [] + options: + type: array + items: + type: object + properties: + id: + type: string + description: >- + Kombo ID of this question option. Use + this ID to specify the answer to this + question. + required: [] + remote_id: + nullable: true + type: string + default: null + description: >- + ID in the connected ATS. This might be + null as some systems only use the name + to identify the option. + required: [] + name: + type: string + description: Content of the question option. + required: [] + required: + - id + - name + required: [] + type: + type: string + enum: + - SINGLE_SELECT + required: [] + required: + - options + - type + - type: object + properties: + type: + type: string + enum: + - BOOLEAN + required: [] + required: + - type + - type: object + properties: + type: + type: string + enum: + - DATE + required: [] + required: + - type + - type: object + properties: + options: + type: array + items: + type: object + properties: + id: + type: string + description: >- + Kombo ID of this question option. Use + this ID to specify the answer to this + question. + required: [] + remote_id: + nullable: true + type: string + default: null + description: >- + ID in the connected ATS. This might be + null as some systems only use the name + to identify the option. + required: [] + name: + type: string + description: Content of the question option. + required: [] + required: + - id + - name + required: [] + type: + type: string + enum: + - MULTI_SELECT + required: [] + required: + - options + - type + - type: object + properties: + type: + type: string + enum: + - INFORMATION + description: This is just a text block. + required: [] + required: + - type + - type: object + properties: + raw_question: + format: any + description: >- + We pass the original question data along + so you can handle it. + required: [] + type: + type: string + enum: + - UNKNOWN + description: >- + When we're not able to map a specific + question type yet, we will return this + type. Every `UNKNOWN` question will also + be parsed and unified by us at some + point. This is just a temporary + workaround so you still get all + questions. + required: [] + required: + - type + required: [] + required: + - id + - remote_id + - title + - description + - format + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + title: Which is your primary programming language? + description: >- + Please enter the language you are most + comfortable with. + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + - type: object + properties: + index: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + required: [] + required: + nullable: true + type: boolean + required: [] + required: + - index + - required + example: + index: 0 + required: true + required: [] + required: [] + job_postings: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + description_html: + nullable: true + type: string + required: [] + status: + nullable: true + type: string + enum: + - ACTIVE + - INACTIVE + - DRAFT + required: [] + visibility: + nullable: true + type: string + enum: + - PUBLIC + - INTERNAL + - UNLISTED + required: [] + required: + - id + - remote_id + - description_html + - status + - visibility + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + required: [] + hiring_team: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the user. + required: [] + last_name: + nullable: true + type: string + description: Last name of the user. + required: [] + email: + nullable: true + type: string + format: email + description: >- + Email of the user. If the email address is + invalid, it will be set to null. + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + - type: object + properties: + hiring_team_roles: + type: array + items: + type: string + enum: + - RECRUITER + - HIRING_MANAGER + example: RECRUITER + description: >- + Array of the roles of the user for this + specific job. Currently only `RECRUITER` and + `HIRING_MANAGER` are mapped into our unified + schema. + required: [] + required: + - hiring_team_roles + required: [] + required: [] + required: + - stages + - screening_questions + - job_postings + - hiring_team + description: >- + The hiring team allows you to sync users into your system + who can access the job and its applications. + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + description: >- +

Kombo is hiring engineers! If you are reading this and you + are located in Berlin, Germany, feel free to contact us about + this position.

+ confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + stages: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + index: 0 + screening_questions: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + title: Which is your primary programming language? + description: Please enter the language you are most comfortable with. + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + index: 0 + required: true + job_postings: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + hiring_team: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + hiring_team_roles: + - RECRUITER + required: + - status + - data + GetAtsJobsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsJobsJobIdApplicationsParameterJobId: + type: string + description: >- + Kombo ID or Remote ID of the Job this candidate should apply for. If you + want to use the ID of the integrated system (remote_id) you need to + prefix the id with "remote:". You can use the remote ID if you do not + want to sync jobs. + required: [] + PostAtsJobsJobIdApplicationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo identifies that + the application was accepted and the candidate hired, it + will be `HIRED`. If the application was rejected or the + candidate declined, it will be `DECLINED`. If the + application is still in process, it will be `PENDING`. + + Kombo will always try to deliver this information as + reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + current_stage_id: + nullable: true + type: string + description: ID of the current application stage + required: [] + job_id: + nullable: true + type: string + required: [] + candidate_id: + nullable: true + type: string + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + - current_stage_id + - job_id + - candidate_id + - custom_fields + - changed_at + - remote_deleted_at + - remote_created_at + - remote_updated_at + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it + might sometimes be compromised of multiple identifiers + if a system doesn't provide a clear primary key. + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + candidate: + nullable: true + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + company: + nullable: true + type: string + description: The current company of the candidate. + required: [] + title: + nullable: true + type: string + description: The current job title of the candidate. + required: [] + confidential: + nullable: true + type: boolean + description: >- + Whether the candidate's profile is confidential in + the ATS. + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + nullable: true + type: string + default: null + description: >- + Kombo exposes type information through this + field. If we don't get any information from + the tool, we will set this to `null`. + required: [] + required: + - phone_number + default: [] + description: A list of phone numbers of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through this + field. If we don't get any information from + the tool, we will set this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate with an + optional type. If an email address is invalid, it + will be filtered out. + required: [] + social_media: + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + description: List of social media accounts of the candidate. + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the candidate. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: [] + required: + - tags + required: [] + required: + - current_stage + - job + - candidate + required: [] + warnings: + type: array + items: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: [] + required: + - status + - data + - warnings + PostAtsJobsJobIdApplicationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsJobsJobIdApplicationsRequestBody: + allOf: + - type: object + properties: + stage_id: + type: string + description: >- + Stage this candidate should be in. If left out, the default + stage for this job will be used. You can obtain the possible + `stage_id`s from the `get-jobs` endpoint. + candidate: + type: object + properties: + first_name: + type: string + last_name: + type: string + email_address: + type: string + format: email + description: >- + The primary email address this application will be created + with. + company: + type: string + description: The company where the applicant is currently working. + title: + type: string + description: The current job title of the applicant. + phone_number: + type: string + location: + type: object + properties: + city: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + applicant. + required: + - country + gender: + type: string + enum: + - MALE + - FEMALE + - OTHER + description: >- + The gender of the applicant. Must be one of `MALE`, + `FEMALE`, or `OTHER`. + availability_date: + description: The date the applicant is available to start working. + 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 + salary_expectations: + type: object + properties: + period: + type: string + enum: + - MONTH + - YEAR + description: >- + The period of the salary expectations. Must be one of + `MONTH` or `YEAR`. + amount: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of the salary expectations. + required: + - period + - amount + description: >- + The salary expectations of the applicant. We will + automatically convert the amount to a format that is + suitable for the ATS you are using. For example, if you are + using monthly salary expectations, we will convert the + amount to a yearly salary if the ATS expects yearly salary + expectations. + social_links: + type: array + items: + type: object + properties: + url: + type: string + format: url + required: + - url + default: [] + description: >- + A list of social media links of the applicant. The links + must be valid URLs. + required: + - first_name + - last_name + - email_address + attachments: + type: array + items: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you provide + `data` and optional if you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + default: [] + description: >- + Array of the attachments you would like to upload. The first CV + in the attachments will be treated as the resume of the + candidate when the tool allows previewing a resume. + source: + type: object + properties: + name: + type: string + description: >- + Name of the source (e.g., `"Example Job Board"`). + + + Note that this **only** works for ATS systems that support + creating a source through the API right now. This includes + Breezy HR, Fountain, Pinpoint, RECRU, Recruitee, Sage HR, + and Haufe Umantis. For all other ATSs, the source will be + ignored at the moment. + description: >- + **(⚠️ Deprecated - Use [automatic source + writing](/ats/features/application-attribution#automatic-attribution) + instead)** Optional source information that will be attached to + the candidate. If + + you're a job board or recruiting service, you can use this to + make sure your + + customers can see which candidates came from you. + + + This is deprecated because writing sources requires users to do + some setup in most ATSs. + gdpr_consent: + type: object + properties: + expires_at: + description: >- + Until when the candidate has granted the company they're + applying to permission to process their personal data. + 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 + given: + type: boolean + description: Whether the candidate has given consent. + description: >- + Optional GDPR consent information required in some jurisdictions + (like the Czech Republic or Slovakia). + remote_fields: + allOf: + - type: object + properties: + successfactors: + type: object + properties: + Candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `Candidate` object. + JobApplication: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `JobApplication` object. + copyJobApplicationAttachments: + type: boolean + description: >- + If set to true, we will copy custom attachments from + the JobApplication to the Candidate. + description: Fields specific to SAP SuccessFactors. + teamtailor: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Teamtailor's + `Candidate` object. + greenhouse: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Candidate` object. + application: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Application` object. + description: Fields specific to Greenhouse. + lever: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Lever's + `Candidate` object. Note: make sure to submit the + keys and values in the correct form data format. + description: Fields specific to Lever. + workable: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Workable's + `Candidate` object. + description: Fields specific to Workable. + bullhorn: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Bullhorn's + `Candidate` object. + description: Fields specific to Bullhorn. + description: >- + Additional fields that we will pass through to specific ATS + systems. + - type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already + pass a value by default, but you can use this to + override it. + description: >- + Headers we will pass with `POST` requests to + Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + description: >- + Additional fields that we will pass through to specific ATS + systems. + screening_question_answers: + type: array + items: + type: object + properties: + question_id: + type: string + description: >- + ID of the question returned by the Kombo API. We'll report + a warning in the logs if the question can't be found on + the job. + answer: + oneOf: + - type: string + description: >- + Answer to a `TEXT` question or the option ID of the + answer to a `SINGLE_SELECT` question. + - type: boolean + description: Answer to a `BOOLEAN` question. + - type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Answer to a `NUMBER` question. + - type: array + items: + type: string + description: >- + Answer to a `MULTI_SELECT` question. The array + elements are the IDs of the selected options. + - description: >- + Answer to a `DATE` question as an ISO 8601 date + string. + 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 + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + description: Answer to a `FILE` question. + description: >- + Answer to a question. This will be validated based on the + question format and throw an error if the answer is + invalid. Here is a description of each question type and + the required answer format: + + + `TEXT` - Simply provide a "string" answer. + + + `SINGLE_SELECT` - Provide the ID of the answer as a + string. + + + `MULTI_SELECT` - Provide a string array containing the + question IDs of the selected options. + + + `BOOLEAN` - Either `true` or `false`. + + + `NUMBER` - A number. + + + `DATE` - Provide the answer as an ISO 8601 date string. + + + `FILE` - Please select Option 6 in the dropdown above to + see the required format. + required: + - question_id + - answer + description: >- + Array of answers to screening questions. Currently, not all + question types are supported and unsupported ones will not be + submitted. + + + The available questions a job can be retrieved from the get jobs + endpoint. The answers will be validated based on the format of + the the questions. Make sure to follow this schema to avoid + errors. + example: + - question_id: D8yPrjXXvA2XeBksTmrVvKSn + answer: 'Yes' + required: + - candidate + example: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + GetAtsUsersParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsUsersParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsUsersParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsUsersParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsUsersParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsUsersParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsUsersSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the user. + required: [] + last_name: + nullable: true + type: string + description: Last name of the user. + required: [] + email: + nullable: true + type: string + format: email + description: >- + Email of the user. If the email address is invalid, it + will be set to null. + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsUsersErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAssessmentPackagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + packages: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + type: string + required: [] + description: + type: string + required: [] + updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + nullable: true + type: string + enum: + - BEHAVIORAL + - VIDEO_INTERVIEW + - SKILLS_TEST + - BACKGROUND_CHECK + - REFERENCE_CHECK + required: [] + required: + - id + - name + - description + - updated_at + - type + required: [] + required: + - packages + example: + packages: + - id: '1001' + name: TypeScript + description: TypeScript coding skills assessments + updated_at: '2023-06-29T18:47:40.890Z' + type: SKILLS_TEST + required: + - status + - data + GetAssessmentPackagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentPackagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAssessmentPackagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentPackagesRequestBody: + allOf: + - type: object + properties: + packages: + type: array + items: + type: object + properties: + id: + type: string + description: A unique identifier for the assessment package. + type: + type: string + enum: + - BEHAVIORAL + - VIDEO_INTERVIEW + - SKILLS_TEST + - BACKGROUND_CHECK + - REFERENCE_CHECK + name: + type: string + description: The name of the assessment package. + description: + type: string + description: >- + Description about the package. Some ATSs will display this + in their UI. + required: + - id + - type + - name + - description + required: + - packages + example: + packages: + - id: '1001' + type: SKILLS_TEST + name: TypeScript + description: TypeScript coding skills assessments + - id: '1002' + type: VIDEO_INTERVIEW + name: Video Interview + description: Video interview to assess communication skills + GetAssessmentOrdersOpenParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAssessmentOrdersOpenParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAssessmentOrdersOpenSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + package_id: + type: string + required: [] + candidate: + type: object + properties: + email: + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + phone: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - email + required: + - id + - package_id + - candidate + required: [] + required: + - next + - results + required: + - status + - data + GetAssessmentOrdersOpenErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentOrdersAssessmentOrderIdResultParameterAssessmentOrderId: + type: string + required: [] + PutAssessmentOrdersAssessmentOrderIdResultSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAssessmentOrdersAssessmentOrderIdResultErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentOrdersAssessmentOrderIdResultRequestBody: + allOf: + - type: object + properties: + status: + type: string + enum: + - COMPLETED + - CANCELLED + - OPEN + description: >- + Status of the assessment. Must be one of `COMPLETE` or + `CANCELLED`. + result_url: + type: string + format: url + completed_at: + 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 + score: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + max_score: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + attributes: + type: array + items: + type: object + properties: + field: + type: string + value: + type: string + required: + - field + - value + default: [] + required: + - status + - result_url + - completed_at + example: + status: COMPLETED + score: 90 + max_score: 100 + result_url: https://example.com + completed_at: '2023-04-04T00:00:00.000Z' + attributes: + - field: remarks + value: Test completed with passing score + PostConnectCreateLinkSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + link: + type: string + format: url + required: [] + required: + - link + example: + link: >- + https://connect.kombo.dev/v1?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + required: + - status + - data + PostConnectCreateLinkErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectCreateLinkRequestBody: + allOf: + - type: object + properties: + end_user_email: + type: string + format: email + description: The email of the user this link is meant for. + end_user_organization_name: + type: string + minLength: 1 + description: The name of the user's organization. + end_user_origin_id: + nullable: true + type: string + minLength: 1 + description: The id the user/organization has in your own database. + default: null + remote_environment: + nullable: true + type: string + default: null + description: >- + If the tool you want to connect offers different environments, + you can specify which one you want to connect to here. If you + don't specify this, we'll assume you want to use the production + environment. Note that this can only be used if you've also + specified a tool through `integration_tool`. + integration_category: + type: string + enum: + - HRIS + - ATS + - ASSESSMENT + default: HRIS + description: Category of the integration you want your customer to create. + integration_tool: + nullable: true + type: string + enum: + - personio + - workday + - workdaycustomreport + - workdaycustomreportsftp + - successfactors + - smartrecruiters + - factorial + - oraclerecruiting + - lever + - icims + - recruitee + - greenhouse + - teamtailor + - ashby + - onlyfy + - rexx + - afas + - bamboohr + - bullhorn + - workable + - payfitcustomer + - payfitpartner + - payfit + - fountain + - kenjo + - heavenhr + - hibob + - softgarden + - cezannehr + - entraid + - azuread + - googleworkspace + - pinpoint + - welcometothejungle + - dvinci + - join + - deel + - remotecom + - jobvite + - okta + - sagehr + - humaans + - traffit + - erecruiter + - eurecia + - umantis + - jobylon + - oraclehcm + - taleez + - officient + - sesamehr + - charliehr + - hrworks + - abacus + - otys + - zohopeople + - gusto + - breathehr + - catalystone + - mirus + - alexishr + - eploy + - rippling + - sapling + - nmbrs + - heyrecruit + - peoplehr + - recruhr + - jazzhr + - lucca + - bite + - planday + - homerun + - haileyhr + - silae + - mysolution + - carerix + - datev + - datevlug + - sympa + - breezyhr + - flatchr + - applicantstack + - talentsoft + - talentsoftcustomer + - concludis + - iriscascade + - sandbox + - sftp + default: null + description: Pre-define a tool this integration link can be used for. + language: + type: string + enum: + - en + - de + - fr + default: en + description: Language of the connection flow UI. + scope_config_id: + nullable: true + type: string + default: null + description: >- + Specify a scope config that should be used for this integration. + This is an advanced feature, only use it if you know what you're + doing! + enable_filtering: + type: boolean + default: false + description: >- + Enable the (filtering + feature)[https://docs.kombo.dev/other/filtering] for the + integration. HRIS only. + required: + - end_user_email + - end_user_organization_name + example: + end_user_email: test@example.com + end_user_organization_name: Test Inc. + integration_category: HRIS + integration_tool: personio + end_user_origin_id: '123' + language: en + GetConnectIntegrationByTokenTokenParameterToken: + type: string + required: [] + GetConnectIntegrationByTokenTokenSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tool: + type: string + required: [] + id: + type: string + required: [] + end_user_origin_id: + nullable: true + type: string + required: [] + end_user_organization_name: + type: string + required: [] + end_user_email: + nullable: true + type: string + format: email + required: [] + required: + - tool + - id + - end_user_origin_id + - end_user_organization_name + - end_user_email + example: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + required: + - status + - data + GetConnectIntegrationByTokenTokenErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectActivateIntegrationSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tool: + type: string + required: [] + id: + type: string + required: [] + end_user_origin_id: + nullable: true + type: string + required: [] + end_user_organization_name: + type: string + required: [] + end_user_email: + nullable: true + type: string + format: email + required: [] + required: + - tool + - id + - end_user_origin_id + - end_user_organization_name + - end_user_email + example: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + required: + - status + - data + PostConnectActivateIntegrationErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectActivateIntegrationRequestBody: + allOf: + - type: object + properties: + token: + type: string + required: + - token + PostCustomDatevPassthroughSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostCustomDatevPassthroughErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPassthroughRequestBody: + allOf: + - 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 + file_type: + type: string + enum: + - STAMMDATEN + - BEWEGUNGSDATEN + file_name: + type: string + required: + - file_content + - accounting_month + - target_system + - file_type + - file_name + 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`) + required: [] + PutCustomDatevEmployeesEmployeeIdPreparePayrollSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutCustomDatevEmployeesEmployeeIdPreparePayrollErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutCustomDatevEmployeesEmployeeIdPreparePayrollRequestBody: + allOf: + - 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Number of hours this employee has worked. + lohnart: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + lohnart: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: This amount value will be mapped to Datev "Wert" field. + lohnart: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Choose a valid Lodas Lohnart. + bearbeitungsschluessel: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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 + example: + 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 + 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`) + required: [] + PutCustomDatevEmployeesEmployeeIdCompensationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutCustomDatevEmployeesEmployeeIdCompensationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutCustomDatevEmployeesEmployeeIdCompensationsRequestBody: + allOf: + - 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount that this employee will be paid. + currency: + type: string + enum: + - 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 + exclusiveMinimum: false + maximum: 9999 + exclusiveMaximum: false + 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 + example: + effective_date: '2022-12-01' + compensations: + - amount: 4500 + currency: EUR + period: MONTH + lohnart: 200 + - amount: 30 + currency: EUR + period: HOUR + GetCustomDatevDataPushesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + data_pushes: + type: array + items: + type: object + properties: + id: + type: string + required: [] + type: + type: string + enum: + - GENERAL + - PAYROLL + description: Type of the executed data push. + required: [] + 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 + required: [] + upload_jobs: + type: array + items: + type: object + properties: + id: + type: string + required: [] + file_name: + type: string + required: [] + 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. + required: [] + file: + type: string + description: Actual content of the file. + required: [] + 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: [] + required: + - id + - type + - created_at + - upload_jobs + required: [] + required: + - data_pushes + required: + - status + - data + GetCustomDatevDataPushesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataGeneralSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + files: + type: array + items: + type: object + properties: + name: + type: string + required: [] + content: + type: string + required: [] + required: + - name + - content + required: [] + required: + - files + required: + - status + - data + PostCustomDatevPushDataGeneralErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataGeneralRequestBody: + type: object + PostCustomDatevPushDataPayrollSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + files: + type: array + items: + type: object + properties: + name: + type: string + required: [] + content: + type: string + required: [] + required: + - name + - content + required: [] + required: + - files + required: + - status + - data + PostCustomDatevPushDataPayrollErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataPayrollRequestBody: + allOf: + - 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`) + required: [] + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsRequestBody: + allOf: + - 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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 + example: + supplement_code: '200' + effective_date: '2024-01-14' + element_amount: 6 + responses: {} + parameters: {} + examples: {} + requestBodies: {} + headers: {} + securitySchemes: + ApiKey: + type: http + scheme: bearer + description: >- + Create an API key on the [Secrets](https://app.kombo.dev/secrets) page + in the Kombo dashboard. + links: {} + callbacks: {} + tags: + - name: General + - name: Kombo Connect + description: >- + Endpoints for Kombo Connect, our end-user-facing flow for setting up new + integrations. + - name: Unified HRIS API + description: Unified endpoints to access all the HR concepts you might need. + - name: Unified ATS API + description: Unified endpoints to access all the ATS concepts you might need. + - name: Unified ATS-Assessment API + description: >- + Unified endpoints to operate Assessments for many applicant tracking + systems. + servers: + - url: https://api.kombo.dev/v1 + security: + - ApiKey: [] +konfigCliVersion: 1.38.34 diff --git a/sdks/db/fixed-specs-cache/localizely-fixed-spec.yaml b/sdks/db/fixed-specs-cache/localizely-fixed-spec.yaml new file mode 100644 index 0000000000..ca04150692 --- /dev/null +++ b/sdks/db/fixed-specs-cache/localizely-fixed-spec.yaml @@ -0,0 +1,659 @@ +publishJson: + company: Localizely + serviceName: false + sdkName: localizely-{language}-sdk + clientName: Localizely + metaDescription: >- + Localizely is a translation management system for agile teams that + streamlines software localization. + + + We believe translation management for apps should be easy, so the team can + focus on things that bring business value. + + + Developers can easily integrate translations into the apps build process, + and managers can easily collaborate with translators. + + + We built Localizely from our experience by working on software projects with + 2 to 100 languages. + apiStatusUrls: inherit + homepage: localizely.com + developerDocumentation: api.localizely.com/swagger-ui/index.html + categories: + - language + - translation +rawSpecString: | + openapi: 3.0.1 + info: + title: Localizely API + description: >- +

Getting started

Localizely API is built on REST.
You can use this API for importing & exporting + your localization files in order to automate the process with `curl` scripts + or external CI tools.
Response is returned in JSON form even in + case of error.

If you Authenticate with your API token on this + page by clicking "Authorize" button, you can make API calls directly from + here with "Try it out", and generate such `curl` examples.

API + Authentication

Authenticate your account by sending your API token as + a request header `X-Api-Token`.
The token can be found under My Profile + page.
A user must have an Admin role in the project in order to access + the project with his token.
API requests without authentication will + fail.

Base url: `https://api.localizely.com`

+ termsOfService: https://localizely.com/terms-of-service/ + version: 1.2.1 + servers: + - url: https://api.localizely.com + description: Generated server url + paths: + /v1/projects/{project_id}/files/upload: + post: + tags: + - Upload API + summary: Upload translations for a language + operationId: importLocalizationFile + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + - name: branch + in: query + description: >- + Name of the branch to upload file into. Only in case of activated + branching feature. + required: false + schema: + type: string + - name: lang_code + in: query + description: >- + Language to upload, specified as language code. e.g. `en`, `en_GB` + or `en-GB` + required: true + schema: + type: string + - name: overwrite + in: query + description: >- + If translation in given language should be overwritten with modified + translation from uploading file. + required: false + schema: + type: boolean + default: false + - name: reviewed + in: query + description: >- + If uploading translations, that are added, should be marked as + Reviewed. For uploading translations that are only modified it will + have effect only if `overwrite` is set to `true`. + required: false + schema: + type: boolean + default: false + - name: tag_added + in: query + description: >- + Optional list of tags to add to new translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_added_keys=NEW&tag_added_keys=NEW_SPRINT05` + required: false + schema: + type: array + items: + type: string + - name: tag_updated + in: query + description: >- + Optional list of tags to add to updated translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_updated_keys=UPDATED&tag_updated_keys=UPDATED_SPRINT05` + required: false + schema: + type: array + items: + type: string + - name: tag_removed + in: query + description: >- + Optional list of tags to add to removed translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_removed_keys=REMOVED&tag_removed_keys=REMOVED_SPRINT05` + required: false + schema: + type: array + items: + type: string + requestBody: + content: + multipart/form-data: + schema: + required: + - file + type: object + properties: + file: + type: string + description: >- + Uploading file. Supported following formats: `Flutter ARB, + Android XML, iOS strings, iOS stringsdict, Angular XLF, + Gettext PO, Gettext POT, Java properties, Ruby on Rails + yaml, .NET resx, flat json, csv, Excel .xlsx, Excel .xls` + format: binary + responses: + '200': + description: OK, file uploaded + '400': + description: >- + Error codes:
 
- `invalid_import_file` when file + invalid. Returned with `errors` list
- + `max_upload_size_exceeded` when uploading file exceeds size limit
- `upgrade_required` when uploading more string keys than accepted + by owner's account plan limit
- `projects_limit_read_only` when + project is in read-only state due to exceeded projects limit + + `'bad_request'` when request generally is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/InvalidImportFileErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] + /v1/projects/{project_id}/branches/{branch}: + post: + tags: + - Branch API + summary: Create a new branch + operationId: createBranch + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + format: uuid + - name: branch + in: path + description: Name of the branch to be created + required: true + schema: + maxLength: 200 + minLength: 0 + type: string + - name: source_branch + in: query + description: Name of the source branch from which new branch will be created + required: true + schema: + type: string + responses: + '200': + description: OK, created + '400': + description: >- + Error codes:
 
- `bad_request` when request generally + is not well formed
- `limit_reached` when project already has + max allowed number of branches
- `projects_limit_read_only` + when project is in read-only state due to exceeded projects limit + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] + /v1/projects/{project_id}/status: + get: + tags: + - Translation Status API + summary: Get Translation Status for the project + operationId: getTranslationStatus + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + - name: branch + in: query + description: >- + Name of the branch to get translation status for. Only in case of + activated branching feature. + required: false + schema: + type: string + responses: + '200': + description: OK, data returned + content: + '*/*': + schema: + $ref: '#/components/schemas/ProjectStatusDto' + '400': + description: >- + Error codes:
 
- `bad_request` when request generally + is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] + /v1/projects/{project_id}/files/download: + get: + tags: + - Download API + summary: Download translations for a language in a specified file format + description: >- + Note: This endpoint is intended for getting translation files to + your source-code. This endpoint should not be called directly from you + app in runtime, as it has rate-limiting.
For over-the-air + translation updates please consider using our SDK + for Flutter or integrate with AWS S3 bucket. + operationId: getLocalizationFile + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + - name: branch + in: query + description: >- + Name of the branch to download file from. Only in case of activated + branching feature. + required: false + schema: + type: string + - name: lang_codes + in: query + description: >- + Language to download, specified as language code. e.g. `en`, `en_GB` + or `en-GB`. For multiple languages use comma separator. If omitted, + all languages are downloaded. + required: false + schema: + type: string + - name: type + in: query + description: File format + required: true + schema: + type: string + enum: + - android_xml + - ios_strings + - ios_stringsdict + - java_properties + - rails_yaml + - angular_xlf + - flutter_arb + - dotnet_resx + - po + - pot + - json + - csv + - xlsx + - name: java_properties_encoding + in: query + description: >- + (Only for Java .properties files download) Character encoding. + Default is `latin_1`. + required: false + schema: + type: string + enum: + - utf_8 + - latin_1 + - name: include_tags + in: query + description: >- + Optional list of tags to be downloaded.
If not set, all string + keys will be considered for download.

Multiple tags can be + defined in a following way: + `&include_tags=ANDROID&include_tags=ANDROID_SPRINT05`. + required: false + schema: + type: array + items: + type: string + - name: exclude_tags + in: query + description: >- + Optional list of tags to be excluded from download.
If not set, + all string keys will be considered for download.

Multiple + tags can be defined in a following way: + `&exclude_tags=REMOVED&exclude_tags=REMOVED_SPRINT05`. + required: false + schema: + type: array + items: + type: string + - name: export_empty_as + in: query + description: >- + Optional. How you would like empty translations to be exported. + Allowed values are `empty` to keep empty, `main` to replace with the + main language value, or `skip` to omit. + required: false + schema: + type: string + default: empty + enum: + - empty + - main + - skip + responses: + '200': + description: OK, file returned + '400': + description: >- + Error codes:
 
- `invalid_export_data_rails_yaml` + when data collision for yaml download
- `bad_request` when + request generally is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] + components: + schemas: + ErrorDto: + type: object + properties: + errorCode: + type: string + enum: + - already_exists + - too_long + - too_many_requests + - bad_request + - not_configured + - bad_captcha + - bad_turnstile + - bad_url + - confirmation_invalid + - forbidden_email + - main_locale_invalid + - branching_disabled + - not_activated + - invalid_password + - invalid_import_file + - invalid_export_data_rails_yaml + - forbidden + - internal_error + - not_found + - upgrade_required + - subscription_change_disabled_in_past_due + - subscription_creation_still_processing + - order_creation_still_processing + - branching_not_supported + - ota_not_supported + - string_keys_limit + - projects_limit + - projects_limit_read_only + - limit_reached + - import_keys_limit_exceeded + - max_upload_size_exceeded + - prevention_limit_reached + - tags_prevention_limit_reached + - string_key_not_found + - merge_outdated + - mt_locale_not_supported + - mt_main_translation_empty + - mt_main_translation_not_supported + - mt_source_translation_too_long + - mt_chars_missing + - mt_no_selected_strings + - tm_upload_file_invalid + - tm_upload_file_max_entries_exceeded + - tm_upload_file_version_not_supported + - tm_max_total_entries_exceeded + - tm_max_total_memories_exceeded + - glossary_locale_cant_remove + - glossary_upload_file_invalid + - glossary_upload_file_column_separator_invalid + - glossary_upload_file_headers_invalid + - glossary_upload_file_max_terms_exceeded + - glossary_max_total_terms_exceeded + - glossary_max_total_glossaries_exceeded + - order_oversize + - github_not_supported + - github_token_invalid + - github_token_scope_invalid + - github_url_invalid + - github_branch_invalid + - github_repo_invalid + - github_config_file_missing + - github_config_file_invalid + - github_push_no_changes + - gitlab_not_supported + - gitlab_token_invalid + - gitlab_token_scope_invalid + - gitlab_url_invalid + - gitlab_branch_invalid + - gitlab_repo_invalid + - gitlab_config_file_missing + - gitlab_config_file_invalid + - gitlab_push_no_changes + - bitbucket_not_supported + - bitbucket_token_invalid + - bitbucket_token_scope_invalid + - bitbucket_url_invalid + - bitbucket_branch_invalid + - bitbucket_repo_invalid + - bitbucket_config_file_missing + - bitbucket_config_file_invalid + - bitbucket_push_no_changes + - aws_s3_not_supported + - aws_s3_credentials_invalid + - aws_s3_permissions_invalid + - aws_s3_bucket_invalid + - aws_s3_region_invalid + - expired + - unauthorized + - unexpected_error + - service_unavailable + errorMessage: + type: string + errorData: + type: object + additionalProperties: + type: object + ImportFileError: + type: object + properties: + line: + type: integer + format: int32 + position: + type: integer + format: int32 + errorMessage: + type: string + InvalidImportFileErrorDto: + type: object + properties: + errorCode: + type: string + enum: + - already_exists + - too_long + - too_many_requests + - bad_request + - not_configured + - bad_captcha + - bad_turnstile + - bad_url + - confirmation_invalid + - forbidden_email + - main_locale_invalid + - branching_disabled + - not_activated + - invalid_password + - invalid_import_file + - invalid_export_data_rails_yaml + - forbidden + - internal_error + - not_found + - upgrade_required + - subscription_change_disabled_in_past_due + - subscription_creation_still_processing + - order_creation_still_processing + - branching_not_supported + - ota_not_supported + - string_keys_limit + - projects_limit + - projects_limit_read_only + - limit_reached + - import_keys_limit_exceeded + - max_upload_size_exceeded + - prevention_limit_reached + - tags_prevention_limit_reached + - string_key_not_found + - merge_outdated + - mt_locale_not_supported + - mt_main_translation_empty + - mt_main_translation_not_supported + - mt_source_translation_too_long + - mt_chars_missing + - mt_no_selected_strings + - tm_upload_file_invalid + - tm_upload_file_max_entries_exceeded + - tm_upload_file_version_not_supported + - tm_max_total_entries_exceeded + - tm_max_total_memories_exceeded + - glossary_locale_cant_remove + - glossary_upload_file_invalid + - glossary_upload_file_column_separator_invalid + - glossary_upload_file_headers_invalid + - glossary_upload_file_max_terms_exceeded + - glossary_max_total_terms_exceeded + - glossary_max_total_glossaries_exceeded + - order_oversize + - github_not_supported + - github_token_invalid + - github_token_scope_invalid + - github_url_invalid + - github_branch_invalid + - github_repo_invalid + - github_config_file_missing + - github_config_file_invalid + - github_push_no_changes + - gitlab_not_supported + - gitlab_token_invalid + - gitlab_token_scope_invalid + - gitlab_url_invalid + - gitlab_branch_invalid + - gitlab_repo_invalid + - gitlab_config_file_missing + - gitlab_config_file_invalid + - gitlab_push_no_changes + - bitbucket_not_supported + - bitbucket_token_invalid + - bitbucket_token_scope_invalid + - bitbucket_url_invalid + - bitbucket_branch_invalid + - bitbucket_repo_invalid + - bitbucket_config_file_missing + - bitbucket_config_file_invalid + - bitbucket_push_no_changes + - aws_s3_not_supported + - aws_s3_credentials_invalid + - aws_s3_permissions_invalid + - aws_s3_bucket_invalid + - aws_s3_region_invalid + - expired + - unauthorized + - unexpected_error + - service_unavailable + errorMessage: + type: string + errorData: + type: object + additionalProperties: + type: object + errors: + type: array + items: + $ref: '#/components/schemas/ImportFileError' + ProjectLocaleStatsDto: + type: object + properties: + langCode: + type: string + description: Language code (ie `en` or `en-US`) + langName: + type: string + description: Language name (ie `English` or `English (US)`) + strings: + type: integer + description: Total number of string keys in the project + format: int32 + reviewed: + type: integer + description: Number of reviewed string keys for a language + format: int32 + reviewedProgress: + type: integer + description: Reviewed progress for a language, in percentage + format: int32 + description: Translation status per language + ProjectStatusDto: + type: object + properties: + strings: + type: integer + description: Total number of string keys in the project + format: int32 + reviewedProgress: + type: integer + description: Total reviewed progress across all languages, in percentage + format: int32 + languages: + type: array + description: Translation status per language + items: + $ref: '#/components/schemas/ProjectLocaleStatsDto' + securitySchemes: + API auth: + type: apiKey + name: X-Api-Token + in: header +konfigCliVersion: 1.38.34 diff --git a/sdks/db/fixed-specs-cache/mambu-payments-fixed-spec.yaml b/sdks/db/fixed-specs-cache/mambu-payments-fixed-spec.yaml new file mode 100644 index 0000000000..6f2ec10e24 --- /dev/null +++ b/sdks/db/fixed-specs-cache/mambu-payments-fixed-spec.yaml @@ -0,0 +1,6287 @@ +publishJson: + company: Mambu + serviceName: Payments + sdkName: mambu-payments-{language}-sdk + clientName: MambuPayments + metaDescription: >- + Heard of composable banking? The concept originated here at Mambu. We've + been champions of composable for over a decade. + + + Mambu is the only true SaaS cloud core banking platform. Our unique and + sustainable composable approach means that independent engines, systems and + connectors can be assembled in any configuration to meet business + requirements and the ever-changing demands of your customers. 260+ banks, + lenders, fintechs, and even retailers in 65 countries turn to us to help + them build modern digital financial products faster, securely and + cost-effectively. + + + Ready to become a Mambuvian? Check our Jobs tab. + apiStatusUrls: false + homepage: mambu.com + developerDocumentation: api.mambu.com/payments-api/#welcome + categories: + - finance + - banking +rawSpecString: | + openapi: 3.0.1 + info: + title: Payment Order API + description: Initiates payment orders. + version: v1.44.15 + paths: + /accounts/{accountId}/blocking-rules: + post: + tags: + - SEPA Direct Debit + description: >- + Request a blocking rule to be added to a specific Mambu account. When a + blocking rule has been added for a specific mandate ID, collection + requests for that mandate will be rejected and a pacs.002 message sent + as response with reason code MS02. If no specific mandate ID is + provided, all direct debit collection requests for the given account + will be rejected. For more information on blocking SEPA Direct Debits, + consult the [Blocking SEPA Direct + Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) + article in our user guide. + operationId: createBlockingRule + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + description: ID of the Mambu Deposit account. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateBlockingRule' + examples: + createProductBlockingRule: + summary: >- + Request blocking all SEPA Direct Debits for the specified + account. + description: createProductBlockingRule + value: + product: SEPA_DIRECT_DEBIT + createCeditorMandateBlockingRule: + summary: >- + Request blocking SEPA Direct Debits for a specific mandate for + the specified account. + description: createCeditorMandateBlockingRule + value: + product: SEPA_DIRECT_DEBIT + creditorMandate: + mandateRelatedInformation: + mandateIdentification: '578798984' + creditorSchemeIdentification: + identification: + privateIdentification: ID777444887 + responses: + '202': + description: Accepted - The Blocking Rule has been prepared for processing. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + productCannotBeBlocked: + summary: Specified payment product cannot be blocked. + description: productCannotBeBlocked + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + path: product + text: SEPA_CREDIT_TRANSFER cannot be blocked + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + delete: + tags: + - SEPA Direct Debit + description: >- + Request deletion of blocking rules for the specified Mambu account. If + no request body is provided, all rules for the account will be removed, + if you provide a JSON body with a specific mandate ID, only the rule for + that mandate will be removed. For more information on blocking SEPA + Direct Debits, consult the [Blocking SEPA Direct + Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) + article in our user guide. + operationId: deleteBlockingRules + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + description: ID of the Mambu Deposit account. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteBlockingRule' + examples: + deleteAllBlockingRules: + summary: Delete all blocking rules for the specified account. + description: deleteAllBlockingRules + value: null + deleteProductBlockingRule: + summary: Delete product blocking rule for the specified account. + description: deleteProductBlockingRule + value: + product: SEPA_DIRECT_DEBIT + deleteCreditorMandateBlockingRule: + summary: >- + Delete creditor mandate blocking rule for the specified + account. + description: deleteCreditorMandateBlockingRule + value: + product: SEPA_DIRECT_DEBIT + creditorMandate: + mandateRelatedInformation: + mandateIdentification: '578798984' + creditorSchemeIdentification: + identification: + privateIdentification: ID777444887 + responses: + '202': + description: >- + Accepted - Blocking rules for the specified account have been + submitted for deletion. + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /accounts/{accountId}/identifications: + get: + description: >- + Gets associations of an external account identification (IBAN or + proprietary) to a Mambu Account. + operationId: getMapping + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + - name: limit + in: query + schema: + maximum: 1000 + minimum: 1 + type: integer + description: >- + Limit the number of identifications retrieved. The default limit + is 50, can be specified up to 1000. + format: int32 + default: 50 + - name: offset + in: query + schema: + minimum: 0 + type: integer + description: >- + Offset determines how many records will be skipped before being + included in the returned results. The default offset value is 0. + format: int64 + default: 0 + responses: + '200': + description: OK - List existing external identifications. + headers: + Items-Offset: + description: The index of the first returned item. + required: true + style: simple + schema: + type: integer + Items-Limit: + description: The requested page size. + required: true + style: simple + schema: + type: integer + Items-Total: + description: The total count of available items. + required: true + style: simple + schema: + type: integer + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Identification' + examples: + Identification: + summary: List of identifications + description: Identification + value: + - iban: DE46606951125202071272 + - currency: USD + - other: + identification: ABCDE1234F + scheme: PAN + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + post: + description: >- + Adds association of an external account identification (IBAN or + proprietary) to a Mambu Account. The currency of the association will be + the one of the underlining Mambu account. If an IBAN is supposed to be a + multi-currency one, this API needs to be invoked multiple times with + different Mambu accounts (for the different currencies). + operationId: createMapping + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccountMapping' + examples: + createMambuAccountMapping: + summary: >- + Create mapping between a proprietary identification and a + Mambu Account + description: createMambuAccountMapping + value: + identification: + other: + identification: ABCDE1234F + scheme: PAN + iban: DE46606951125202071272 + currency: USD + responses: + '201': + description: Created - Association successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/AccountMappingResponse' + examples: + accountMappingResponse: + summary: Successful account identification request. + description: accountMappingResponse + value: {} + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidIdentification: + summary: IBAN is not valid. + description: invalidIdentification + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + /accounts/identifications: + put: + description: >- + Create or replace associations of an external account identification + (IBAN or proprietary) to one of Mambu Accounts. The currency of the + association will be the one of the underlining Mambu account. + operationId: createMappings + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccountMappings' + examples: + createMambuAccountMappings: + summary: >- + Create mapping between a proprietary identification and + multiple Mambu Accounts with different currencies + description: createMambuAccountMappings + value: |- + { + "identification": { + "iban": "DE46606951125202071272" + }, + "accountIds": [ + "123", + ] + } + responses: + '201': + description: Created - Association successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/AccountMappingResponse' + examples: + accountMappingResponse: + summary: Successful account identification request. + description: accountMappingResponse + value: {} + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidIdentification: + summary: IBAN is not valid. + description: invalidIdentification + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + /accounts/identifications:search: + post: + description: >- + Searches identifications (with MambuID included) based on provided + filter criteria + operationId: searchAccountIdentifications + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccountIdentificationsSearchRequestDTO' + responses: + '200': + description: OK - List of found identifications with accountId + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AccountIdentificationsSearchResponseDTO' + examples: + AccountIdentificationsSearchResponse: + summary: Successful account identification search response. + description: AccountIdentificationsSearchResponse + value: + - accountId: test123 + currency: EUR + type: DEPOSIT + identification: + iban: DE46606951125202071272 + identification: ABCDE1234F + scheme: PAN + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidSearchFilter: + summary: Search filter is not valid + description: invalidSearchFilter + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: >- + searchAccountIdentifications.arg0.filterCriteria[0].field + text: >- + filterCriteria[0].field Should be one of: schema, + iban, currency, identification + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + /collections: + post: + tags: + - SEPA Direct Debit + description: >- + Creates a collection initiation request. This covers the flows as + described in the [SEPA Direct + Debit](https://support.mambu.com/docs/sepa-direct-debit-creditor-flow) + section of our user guide. + operationId: initiateCollection + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionDTO' + examples: + initiateCollectionRequest: + summary: >- + Initiate collection request for accounts identified by IBAN + and creditor agent identified by BIC. + description: initiateCollectionRequest + value: + debtorAccount: + identification: + iban: DE46606951125202071272 + currency: EUR + debtorName: John Doe + serviceLevel: SEPA + instructedAmount: + currency: EUR + amount: '500' + creditorAccount: + identification: + iban: DE16195554277485442959 + currency: EUR + creditorName: Merchant123 + paymentIdentification: + transactionIdentification: 113T9bs6ad48ga1216d772430401s01sd2 + requestedExecutionDate: '2020-09-01' + mandateRelatedInformation: + mandateIdentification: 16ead91c975c4881a60c + dateOfSignature: '2020-01-31' + paymentTypeInformation: + sequenceType: FRST + creditorSchemeIdentification: + identification: + privateIdentification: I48799148795 + responses: + '201': + description: >- + Created - Collection Initiation request was correctly performed (but + not yet accepted) nor executed. + headers: + Location: + description: >- + Location of the created collection order request resource, for + future reference or status polling. + required: true + style: simple + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + examples: + initiateCollectionResponse: + summary: Successful collection initiation response. + description: initiateCollectionResponse + value: + transactionStatus: RCVD + collectionId: e38458a4-d955-4a39-8e21-9608e9600b3d + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + missingMandatoryField: + summary: Identification for debtor account was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: debtorAccount.identification + text: debtorAccount.identification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /log: + post: + operationId: logArgument + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LogRequest' + required: true + responses: + default: + description: default response + content: + application/json: {} + tags: + - External Account Representation + /payments/financial-institution-credit-transfers: + post: + operationId: initiateCreditTransfer + parameters: + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FinancialInstitutionPaymentDTO' + responses: + default: + description: default response + content: + application/json: {} + /payments/credit-transfers: + post: + operationId: initiateCreditTransfer_1 + parameters: + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Iso20022PaymentDTO' + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Credit Transfers + /payments: + post: + tags: + - SEPA Credit Transfers + description: >- + Creates a payment initiation request. Payments using the SEPA Credit + Transfer scheme can only be created for the current date. A pacs.008 + message will be generated from the data provided in this request. For + more information on how these fields map to SEPA XML messages, refer to + the [SEPA Credit Transfer Techincal + Information](https://support.mambu.com/docs/sepa-credit-transfer-technical-information#pacs00800102) + article in our user guide. + operationId: initiatePayment + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InitiationPaymentDTO' + examples: + initiatePaymentRequest: + summary: >- + Initiate same day payment request for accounts identified by + IBAN and creditor agent identified by BIC with creditor and + debtor address information. + description: initiatePaymentRequest + value: + debtorAccount: + identification: + iban: DE46606951125202071272 + currency: EUR + debtorName: John Doe + debtorAddress: + street: Karl-Liebknecht-Str. 5 + buildingNumber: '5234' + city: Berlin + postalCode: '10178' + countryCode: DE + serviceLevel: SEPA + instructedAmount: + currency: EUR + amount: '500' + creditorAccount: + identification: + iban: DE16195554277485442959 + currency: EUR + creditorAgent: + institutionIdentification: + bicfi: DEUTDEFF + creditorName: Merchant123 + creditorAddress: + street: Am Olympiapark 1 + buildingNumber: '1' + city: Munchen + postalCode: '80809' + countryCode: DE + responses: + '201': + description: >- + Created - Payment Initiation request was correctly performed (but + not yet accepted) nor executed. + headers: + Location: + description: >- + Location of the created payment order request resource, for + future reference or status polling. + required: true + style: simple + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse' + examples: + initiatePaymentResponse: + summary: Successful payment initiation request. + description: initiatePaymentResponse + value: + transactionStatus: RCVD + paymentId: e38458a4-d955-4a39-8e21-9608e9600b3d + transactionFeeIndicator: false + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + missingMandatoryField: + summary: Identification for debtor account was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: debtorAccount.identification + text: debtorAccount.identification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders/{id}/executions: + get: + tags: + - Standing Order + description: Get executions of standing order + operationId: getExecutionsByStandingOrderId + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: ApiKey + in: header + description: ApiKey header that is used for authentication + required: true + schema: + type: string + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - Standing orders executions retrieval was successful. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderExecutionResponse' + examples: + StandingOrderExecutionResponse: + description: StandingOrderExecutionResponse + value: + - standingOrderId: standing-order-id-qwerty + paymentOrderId: paymentorderid54 + requestedExecuteOn: '2023-01-26T15:51:27' + status: FAILED + creationDate: '2023-01-26T15:52:27.865848Z' + type: RETRY + failReason: INSUFFICIENT_FUNDS + /payments/standing-orders/{id}: + get: + tags: + - Standing Order + description: Gets Standing order information + operationId: getStandingOrderDetails + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - Returns Standing order item. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderGetResponse' + examples: + standingOrderGetResponse: + summary: Standing order get response. + description: standingOrderGetResponse + value: + id: 9726992c-bda4-4867-9264-f9168337d0ec + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '500' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + lastExecution: '2022-11-17' + nextExecution: '2022-11-18' + paymentsCount: 2 + ownerId: some-owner-id + retryCount: 3 + suspendDateFrom: null + suspendDateTo: null + '404': + description: Not found - cannot find the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + standingOrderNotFound: + summary: Unable to get Standing order + description: standingOrderNotFound + value: + tppMessages: + - category: ERROR + code: RESOURCE_UNKNOWN + text: >- + Unable to find Standing order with id: + 9726992c-bda4-4867-9264-f9168337d0ec. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + delete: + tags: + - Standing Order + description: Cancel Standing order + operationId: cancelStandingOrder + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '204': + description: Standing order canceled. + '404': + description: Not found - cannot find the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + standingOrderNotFound: + summary: Unable to find Standing order + description: standingOrderNotFound + value: + tppMessages: + - category: ERROR + code: RESOURCE_UNKNOWN + text: >- + Unable to find Standing order with id: + 9726992c-bda4-4867-9264-f9168337d0ec. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders: + post: + tags: + - Standing Order + description: >- + API creates standing orders. Standing order creation will trigger + periodic payments for provided frequency from start date until the end + date. + operationId: createStandingOrder + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderDTO' + examples: + createStandingOrder: + summary: Create standing orders + description: createStandingOrder + value: | + { + "payment": { + "scheme": "SEPA", + "instructedAmount": { + "currency": "EUR", + "amount": "500" + }, + "debtorAccount": { + "identification": { + "iban": "DE87200500001234567890" + }, + "currency": "EUR" + }, + "creditorAccount": { + "identification": { + "other": { + "identification": "1234", + "scheme": "PAN" + } + }, + "currency": "EUR" + }, + "creditorName": "CreditorName", + "debtorName": "DebtorName", + "remittanceInformationUnstructured": "Remittance Info" + }, + "startDate": [ + 2022, + 11, + 8 + ], + "frequency": "DAILY", + "endDate": [ + 2022, + 11, + 8 + ], + "ownerId": "some-owner-id", + "retryPolicy": { + “ + "retryCount": "3" + } + } + responses: + '201': + description: Created - Standing order successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderCreateResponse' + examples: + standingOrderCreateResponse: + summary: Successful standing order request. + description: standingOrderCreateResponse + value: + id: 9726992c-bda4-4867-9264-f9168337d0ec + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidStandingOrderRequest: + summary: IBAN is not valid. + description: invalidStandingOrderRequest + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders:search: + post: + tags: + - Standing Order + description: Search for standing orders by search filters such as ownerId + operationId: searchStandingOrders + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: ApiKey + in: header + description: ApiKey header that is used for authentication + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSearchRequest' + examples: + standingOrderSearchRequest: + summary: Search for standing orders by search filters + description: standingOrderSearchRequest + value: |- + { + "filterCriteria": [ + { + "field": "OWNER_ID", + "operator": "EQUALS", + "value": "string" + } + { + "field": "STATUS", + "operator": "EQUALS", + "value": "string" + } + ], + "limit": 500, + "offset": 0 + } + responses: + '200': + description: OK - Standing orders search was successful. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSearchResponse' + examples: + StandingOrderSearchResponse: + description: StandingOrderSearchResponse + value: + - ownerId: some_kind_of_id_from_client + id: 9726992c-bda4-4867-9264-f9168337d0ec + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '500' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + - ownerId: some_kind_of_id_from_client + id: 9726992c-bda4-4867-9264-13245679fe + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '100' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + suspendDateFrom: null + suspendDateTo: null + /payments/standing-orders:suspend: + post: + tags: + - Standing Order + description: API suspends standing order for a particular period of time. + operationId: suspendStandingOrder + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSuspendDTO' + examples: + suspendStandingOrder: + summary: Suspend standing order + description: suspendStandingOrder + value: + id: 9726992c-bda4-4867-9264-f9168337d0ec + startDate: + - 2022 + - 11 + - 8 + endDate: + - 2022 + - 11 + - 9 + responses: + '200': + description: OK - Standing order successfully suspended. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidStandingOrderSuspendRequest: + summary: request is invalid + description: invalidStandingOrderSuspendRequest + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: id + text: id must not be null + - category: ERROR + code: FORMAT_ERROR + path: endDate + text: endDate must not be null + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}: + get: + operationId: getCollectionDetails + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + description: >- + ID of the collection order, as received in the response to a `POST + /collections` request or from the instruction ID field of a + collection. You can retrieve the instruction ID in the Payment + Gateway UI by opening up the detail view of a collection and + looking for the value of `InstId` in the Payment Identification + object. + - name: detailsLevel + in: query + schema: + type: string + description: >- + Details level of the response. `STATUS` and `FULL` detail levels + are supported. `STATUS` will return the current status and a + timestamp of when the collection order was last modified. The + default value of `FULL` will return a complete set of information + about the collection order. + default: FULL + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Direct Debit + /payments/credit-transfers/{paymentId}: + get: + operationId: creditTransferDetails + parameters: + - name: paymentId + in: path + required: true + schema: + type: string + description: >- + ID of the payment order, as received in the response to a `POST + /payments` request + - name: detailsLevel + in: query + schema: + type: string + description: >- + Details level of the response. STATUS and FULL detail levels are + supported. `STATUS` will return the current status and a timestamp + of when the payment order was last modified. The default value of + `FULL` will return a complete set of information about the payment + order. + default: FULL + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Credit Transfers + /payments/{paymentId}: + get: + operationId: getPaymentDetails + parameters: + - name: paymentId + in: path + required: true + schema: + type: string + description: >- + ID of the payment order, as received in the response to a `POST + /payments` request + - name: detailsLevel + in: query + schema: + type: string + description: >- + Details level of the response. STATUS and FULL detail levels are + supported. `STATUS` will return the current status and a timestamp + of when the payment order was last modified. The default value of + `FULL` will return a complete set of information about the payment + order. + default: FULL + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Credit Transfers + /payments:settleInstantPayment: + post: + tags: + - SEPA Credit Transfers + description: Accepts requests for an instant payment settlement. + operationId: settleInstantPayment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InstantPaymentSettlement' + examples: + instantPaymentSettlementRequest: + summary: Request settlement for an instant payment. + description: instantPaymentSettlementRequest + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transaction: + debtorAgent: + institutionIdentification: + bicfi: FUBKDE71 + paymentIdentification: + transactionIdentification: 00730100632BHGCRWC + acceptanceDateTime: '2023-04-05T09:07:37' + required: true + responses: + '202': + description: >- + Accepted - The instant payment settlement request has been accepted + for processing. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:reject: + post: + tags: + - SEPA Credit Transfers + description: Manually Reject an Outgoing Payment. + operationId: manuallyRejectOutgoingPayment + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified payment order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expected status is: TO_BE_SENT. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:recall: + post: + tags: + - SEPA Credit Transfers + description: Recall an outgoing payment. + operationId: recallOutgoingPayment + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Recall' + required: true + responses: + '200': + description: OK - Payment marked to be recalled successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badRecallReasonCode: + summary: A non SEPA compliant recall reason code was provided. + description: badRecallReasonCode + value: + tppMessages: + - category: ERROR + code: INVALID_REQUEST_BODY + text: '' + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: |- + { + "tppMessages": [ + { + "category": "ERROR", + "code": "SERVICE_INVALID", + "text": "There was an error processing your request. } + ] + } + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:denyOutgoingRecall: + post: + tags: + - SEPA Credit Transfers + description: Deny an Outgoing Recall. + operationId: denyOutgoingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified outgoing recall has been marked to be rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidPaymentOrderId: + summary: No payment order found for given id. + description: invalidPaymentOrderId + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Order + bac5161bd53348fa8dfc143cae49ba13 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:denyIncomingRecall: + post: + tags: + - SEPA Credit Transfers + description: Deny an Incoming Recall. + operationId: denyIncomingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CancellationDetails' + required: true + responses: + '200': + description: OK - The specified incoming recall has been marked to be rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequest: + summary: >- + The request is invalid for the current state of the + transaction. + description: invalidRequest + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Database update failed due to invalid request, + expected number of updated rows is 1, actual number + is: 0. The error message is: pending.authorized.failed + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:approveOutgoingRecall: + post: + tags: + - SEPA Credit Transfers + description: Approve an Outgoing Recall. + operationId: approveOutgoingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified outgoing recall has been authorized. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidPaymentOrderId: + summary: No payment order found for given id. + description: invalidPaymentOrderId + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Order + bac5161bd53348fa8dfc143cae49ba13 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:approveIncomingRecall: + post: + tags: + - SEPA Credit Transfers + description: Approve an Incoming Recall. + operationId: approveIncomingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified incoming recall has been authorized. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequest: + summary: >- + The request is invalid for the current state of the + transaction. + description: invalidRequest + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Database update failed due to invalid request, + expected number of updated rows is 1, actual number + is: 0. The error message is: pending.authorized.failed + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}/aml:resendCallout: + post: + tags: + - AML + description: Resends the AML callout for an Outgoing payment. + operationId: resendCTAmlCallout + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The AML callout was resent for the provided payment order. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/incoming: + post: + tags: + - Incoming Messages + description: Creates an incoming message request. + operationId: submitIncomingMessage + parameters: + - name: X-Request-ID + in: header + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: X-Payment-Scheme + in: header + description: Specifies payment scheme for processing. + required: false + schema: + type: string + description: Specifies payment scheme for processing. + - name: Content-Type + in: header + required: true + schema: + type: string + requestBody: + content: + application/xml: + schema: + type: string + examples: + incomingCreditTransferRequest: + summary: Request processing for the given incoming pacs.008 message. + description: incomingCreditTransferRequest + value: >- + + ... + text/plain: + schema: + type: string + required: true + responses: + '202': + description: >- + Accepted - Incoming file accepted and is due for processing, when + incoming scheduler is configured to run. Outgoing (complete / + partial) pacs.002 will be published in case of complete / partial + processing of incoming pacs.008. If the incoming pacs.008 is + completely failed then a rejected pacs.002 will be published. + Outgoing pacs.004 will be published for failed transaction from + incoming pacs.008. + content: + application/json: + schema: + $ref: '#/components/schemas/IncomingMessageResponse' + examples: + incomingPacs008Response: + summary: Successful accept incoming payment message + description: incomingPacs008Response + value: + messageId: SCTORD200020190305ORD000011119 + messageType: urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02 + incomingCamt056Response: + summary: Successful accept incoming payment recall message + description: incomingCamt056Response + value: + messageId: 568R9154000000000000000000000000010 + messageType: urn:iso:std:iso:20022:tech:xsd:camt.056.001.01 + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body may not be empty + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/json" instead of "application/xml". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/aml: + post: + tags: + - AML + description: >- + Accepts AML check results for Payment Orders, for example SEPA Credit + Transfers. + operationId: processPaymentAmlResponse + parameters: + - name: Content-Type + in: header + description: application/json + required: true + - name: X-Request-ID + in: header + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AmlResult' + examples: + amlInformation: + summary: AML check result. + description: amlInformation + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transactions: + - status: Accepted + paymentIdentification: + transactionIdentification: 00730100632BHGCRWC + debtorAgent: + institutionIdentification: + bicfi: BTRLRO22 + interbankSettlementDate: '2019-06-28' + required: true + responses: + '200': + description: OK - The AML check result has been prepared for processing. + content: + '*/*': + schema: + type: string + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + content: + '*/*': + schema: + type: string + /inquiries:skipStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: >- + Skips response for Request for Status Update on Recall with given + details. + operationId: skipStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SkipStatusUpdateOnRecall' + examples: + skipStatusUpdateOnRecall: + summary: >- + Request for skipping Request for Status Update on Recall + response + description: skipStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + required: true + responses: + '200': + description: >- + OK - Request for skipping Status Update on Recall response was + received + '400': + description: Bad Request - Invalid Transaction Status. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: >- + Transaction status is invalid for skipping Status Update on + Recall response. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: 'Transaction has invalid status: REPLY_SKIPPED' + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:requestStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create inquiry to request status update for a payment cancellation. + operationId: requestStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalCamt056Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Payment Cancellation Request transaction + not found. Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: >- + The original Payment Cancellation Request transaction not + found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:requestStatusUpdateOnInquiry: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create status update request for existing camt.087 or camt.027 inquiry + operationId: requestStatusUpdateOnInquiry + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalInquiryData' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:rejectStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: >- + Handles negative response for Request for Status Update on Recall with + given details. + operationId: rejectStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RejectStatusUpdateOnRecall' + examples: + rejectStatusUpdateOnRecall: + summary: >- + Request for handling Request for Status Update on Recall + negative response + description: rejectStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + originalMessageIdentification: 22b8f938c6154877886a0c1fc9e74166 + originalInstructionIdentification: 562f8f9f8c6154844886a0c1fc9e7451 + cancellationDetails: + rejectionReason: ARDT + required: true + responses: + '200': + description: >- + OK - Request for Status Update on Recall negative response was + received + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body must not be empty + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:claimValueDateCorrection: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create inquiry to request claim for value-date change. + operationId: claimValueDateCorrection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalPacs008Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit Transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit Transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original Credit Transfer transaction for 123456 not + found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:claimNonReceipt: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create inquiry for claim of non-receipt + operationId: claimNonReceipt + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalPacs008Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:acceptStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: >- + Handles positive response for Request for Status Update on Recall with + given details. + operationId: acceptStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AcceptStatusUpdateOnRecall' + examples: + acceptStatusUpdateOnRecall: + summary: >- + Request for handling Request for Status Update on Recall + positive response + description: acceptStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + originalMessageIdentification: 22b8f938c6154877886a0c1fc9e74166 + originalInstructionIdentification: 562f8f9f8c6154844886a0c1fc9e7451 + required: true + responses: + '200': + description: >- + OK - Request for Status Update on Recall positive response was + received + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body must not be empty + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionOrderId}:reject: + post: + tags: + - SEPA Direct Debit + description: Manually Reject an Outgoing Collection. + operationId: manuallyRejectOutgoingCollection + parameters: + - name: collectionOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified collection order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expected status is: TO_BE_SENT. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionOrderId}:rejectIncoming: + post: + tags: + - SEPA Direct Debit + description: Manually Reject an Incoming Collection. + operationId: manuallyRejectIncomingCollection + parameters: + - name: collectionOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified collection order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expecting one of the following statuses: + PENDING_SETTLEMENT, RECEIVED. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}:reverse: + post: + tags: + - SEPA Direct Debit + description: Reverse a Collection Instruction. + operationId: reverse + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Reverse' + required: true + responses: + '200': + description: OK - Collection Instruction marked to be reversed successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badReversalReasonCode: + summary: A non SEPA compliant refund reason code was provided. + description: badReversalReasonCode + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: value 'MS01' not supported + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}:refund: + post: + tags: + - SEPA Direct Debit + description: Refund a Collection Instruction. + operationId: refund + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Refund' + required: true + responses: + '200': + description: OK - Collection Instruction marked to be refunded successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badRefundReasonCode: + summary: A non SEPA compliant refund reason code was provided. + description: badRefundReasonCode + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: value 'MD02' not supported + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}/aml:resendCallout: + post: + tags: + - AML + description: Resends the AML callout for an Outgoing collection. + operationId: resendDDAmlCallout + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The AML callout was resent for the provided collection order. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/aml: + post: + tags: + - AML + description: >- + Accepts AML check results for collections, for example, SEPA Direct + Debits. + operationId: processCollectionAmlResponse + parameters: + - name: Content-Type + in: header + description: application/json + required: true + - name: X-Request-ID + in: header + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AmlResult' + examples: + amlInformation: + summary: AML check result. + description: amlInformation + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transactions: + - status: Accepted + collectionIdentification: + transactionIdentification: 00730100632BHGCRWC + creditorAgent: + institutionIdentification: + bicfi: BTRLRO22 + interbankSettlementDate: '2019-06-28' + required: true + responses: + '200': + description: OK - The AML check result has been prepared for processing. + content: + '*/*': + schema: + type: string + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + content: + '*/*': + schema: + type: string + /aml:resendCallouts: + post: + tags: + - AML + description: Resends the AML callouts. + operationId: resendAmlCallouts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ResendAmlFilter' + required: true + responses: + '200': + description: OK - The AML callouts were resent. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/json" instead of "application/xml". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /accounts/identifications:mask: + post: + tags: + - External Account Representation + description: Mask identifications from Payments Gateway. + operationId: mask + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IdentificationsToMask' + required: true + responses: + '200': + description: OK - Identifications masked. This operation is irreversible. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + identificationAlreadyMasked: + summary: >- + At least one of the provided identifications was already + masked + description: identificationAlreadyMasked + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Following identifications are already masked: + DK0643182702662691 + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /instructions: + get: + tags: + - Search Messages + description: Retrieve the SEPA messages details. + operationId: findSepaMessages + parameters: + - name: sepaMessageFilter + in: query + required: true + schema: + $ref: '#/components/schemas/SepaMessageFilter' + responses: + '200': + description: OK - SEPA Messages Details were correctly found. + content: + application/json: + schema: + $ref: '#/components/schemas/SepaMessages' + examples: + pacs.008 instruction information: + summary: Information retrieved for a pacs.008 message + description: pacs.008 instruction information + value: + instructions: + - FIToFICstmrCdtTrf: + grpHdr: + msgId: 22b8f938c6154877886a0c1fc9e74166 + creDtTm: '2019-04-11T09:08:45+03:00' + nbOfTxs: '2' + ttlIntrBkSttlmAmt: + value: 200 + ccy: EUR + intrBkSttlmDt: '2019-04-11T00:00:00+03:00' + sttlmInf: + clrSys: + prtry: ST2 + instgAgt: + finInstnId: + bic: ABVRATW1XXX + cdtTrfTxInf: + - pmtId: + instrId: 82d7125b36014c2e8cc442a3586badd0 + endToEndId: NOTPROVIDED + txId: 4112f6688c846a89bee2b2c476f1145 + pmtTpInf: + svcLvl: + cd: SEPA + intrBkSttlmAmt: + value: 100 + ccy: EUR + accptncDtTm: '2019-04-11T09:08:45+03:00' + chrgBr: SLEV + dbtr: + nm: John Doe + dbtrAcct: + id: + iban: RO59INGBW91QIQFZSG6IZBJT + dbtrAgt: + finInstnId: + bic: INGBROBU + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: BT + pstlAdr: + ctry: DE + cdtrAcct: + id: + iban: RO75BTRLBSIJS00RPQWYLYWL + _metadata: + transactionSn: 1 + transactionStatus: RECEIVED + paymentId: 67eacbf33f1b4eaea8d1055a2a01adea + - pmtId: + instrId: 108cf3f5fd833aa5bc5efb90c0dee19e + endToEndId: NOTPROVIDED + txId: 758e663666ae40be8e9278a9e4e899f9 + pmtTpInf: + svcLvl: + cd: SEPA + intrBkSttlmAmt: + value: 100 + ccy: EUR + accptncDtTm: '2019-04-11T09:08:45+03:00' + chrgBr: SLEV + dbtr: + nm: John Doe + dbtrAcct: + id: + iban: RO59INGBW91QIQFZSG6IZBJT + dbtrAgt: + finInstnId: + bic: INGBROBU + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: BT + pstlAdr: + ctry: DE + cdtrAcct: + id: + iban: RO94BTRLVU048EN2KBPTVT7U + _metadata: + transactionSn: 2 + transactionStatus: RECEIVED + paymentId: fcaae256fed94018958326c9cb752aeb + _metadata: + bulkSn: 1 + direction: I + messageId: pacs.008 + transactions: 2 + pacs.004 instruction information: + summary: Information retrieved for a pacs.004 message + description: pacs.004 instruction information + value: + instructions: + - PmtRtr: + grpHdr: + msgId: '1' + creDtTm: '2018-11-26T21:47:57+02:00' + nbOfTxs: '1' + ttlRtrdIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + intrBkSttlmDt: '2018-11-26T00:00:00+02:00' + sttlmInf: + sttlmMtd: CLRG + clrSys: + prtry: ST2 + txInf: + - rtrId: '2020181126130827322001' + orgnlGrpInf: + orgnlMsgId: '1231231312' + orgnlMsgNmId: pacs.008 + orgnlEndToEndId: 10864caa82034bc8a12e4bf3e117d10d + orgnlTxId: '8097758122275259' + rtrdIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + rtrRsnInf: + orgtr: + id: + orgId: + bicorBEI: DABADKKK + rsn: + cd: AC_01 + orgnlTxRef: + intrBkSttlmDt: '2018-11-26T00:00:00+02:00' + sttlmInf: + sttlmMtd: CLRG + pmtTpInf: + svcLvl: + cd: SEPA + dbtr: + nm: Hanne Doe + dbtrAcct: + id: + iban: DK0643182702662691 + dbtrAgt: + finInstnId: + bic: DABADKKK + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: John Doe + cdtrAcct: + id: + iban: RO69BTRL3333444433334444 + _metadata: + transactionSn: 14 + transactionStatus: RECEIVED + returnReason: AC01 + paymentId: 22886adc407e4280b7df22a966d08425 + _metadata: + bulkSn: 10 + direction: I + messageId: pacs.004.001.02 + procstatus: REPLIED + transactions: 1 + camt.056 instruction information: + summary: Information retrieved for a camt.056 message + description: camt.056 instruction information + value: + instructions: + - FIToFIPmtCxlReq: + assgnmt: + id: msg-id-camt.056.001.01 + assgnr: + agt: + finInstnId: + bic: TESTXXXXXXX + assgne: + agt: + finInstnId: + bic: TESTXXXXXXX + creDtTm: 2019-05-14T21:00:00.000+0000 + ctrlData: + nbOfTxs: 1 + undrlyg: + - txInf: + cxlId: 000R9087000000011 + orgnlGrpInf: + orgnlMsgId: SCTORD15682019 + orgnlMsgNmId: pacs.008.001.02 + orgnlInstrId: '6630844036108666' + orgnlEndToEndId: NOTPROVIDED + orgnlTxId: '8097758122275259' + orgnlIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + orgnlIntrBkSttlmDt: 2019-06-19T21:00:00.000+0000 + cxlRsnInf: + - orgtr: + nm: Beneficioso beneficiar io + rsn: + cd: DUPL + orgnlTxRef: + sttlmInf: + sttlmMtd: CLRG + clrSys: + cd: REP + pmtTpInf: + svcLvl: + cd: SEPA + rmtInf: + ustrd: + - Pruebas para CECA 1 + ultmtDbtr: + nm: EUR + dbtr: + nm: ENRIQUE ROMERA MARTINEZ DE MIGUEL + dbtrAcct: + id: + iban: ES1011110001087939390799 + dbtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtr: + nm: Beneficioso beneficiario + cdtrAcct: + id: + iban: ES6520950001153279157264 + _metadata: + transactionSn: 2 + transactionStatus: TO_BE_SENT + returnReason: DUPL + paymentId: poId + _metadata: + bulkSn: 2 + direction: I + messageId: camt.056.001.01 + procstatus: RETRIEVED + transactions: 1 + camt.029 instruction information: + summary: Information retrieved for a camt.029 message + description: camt.029 instruction information + value: + instructions: + - RsltnOfInvstgtn: + assgnmt: + id: msg-id-camt.029.001.03 + assgnr: + agt: + finInstnId: + bic: TESTXXXXXXX + assgne: + agt: + finInstnId: + bic: TESTXXXXXXX + creDtTm: 2019-05-14T21:00:00.000+0000 + sts: + conf: RJCT + cxlDtls: + - txInfAndSts: + cxlStsId: 568R9 + orgnlGrpInf: + orgnlMsgId: SCTORD156820190620000000000001 + orgnlMsgNmId: pacs.008.001.02 + orgnlInstrId: a5fbae19e3d24522963ad60d018f2e49 + orgnlEndToEndId: 7456b0bb2c1a4209b87b4636995c5d08 + orgnlTxId: '1002' + txCxlSts: RJCR + cxlStsRsnInf: + - orgtr: + id: + orgId: + bicorBEI: TESTXXXXXXX + rsn: + cd: AGNT + orgnlTxRef: + intrBkSttlmAmt: + value: 4000.5 + ccy: EUR + intrBkSttlmDt: 2019-06-19T21:00:00.000+0000 + sttlmInf: + sttlmMtd: CLRG + clrSys: + prtry: ACHT1234567890123456789012345678905 + pmtTpInf: + svcLvl: + cd: SEPA + rmtInf: + ustrd: + - Pruebas para CECA 1 + dbtr: + nm: ENRIQUE ROMERA MARTINEZ DE MIGUEL + dbtrAcct: + id: + iban: ES1011110001087939390799 + dbtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtr: + nm: Beneficioso beneficiario + cdtrAcct: + id: + iban: ES6520950001153279157264 + _metadata: + transactionSn: 3 + transactionStatus: TO_BE_SENT + returnReason: RJCT + paymentId: poId + _metadata: + bulkSn: 3 + direction: O + messageId: camt.029.001.03 + procstatus: RETRIEVED + transactions: 1 + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidDirection: + summary: The provided direction value is not valid + description: invalidDirection + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: 'direction invalid value: example_invalid_direction' + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + components: + schemas: + AcceptStatusUpdateOnRecall: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/TransactionInformation' + required: + - groupHeader + - transactionInformation + type: object + AccountDTO: + description: Settlement account used when settlement method is INDA/INGA. + properties: + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + identification: + $ref: '#/components/schemas/IdentificationDTO' + required: + - identification + type: object + AccountIdentificationsFilterCriteriaDTO: + description: Account identification search criteria + properties: + field: + description: >- + Contains the actual searching fields that can be native (one from + the provided list) + enum: + - SCHEME + - IBAN + - IDENTIFICATION + type: string + operator: + description: >- + EQUALS - checks that 'field' equals to 'value' (strict equals, does + not support parts or masks) + enum: + - EQUALS + - IN + - BETWEEN + - GREATER_THAN + - LESS_THAN + type: string + value: + description: The value to match the searching criteria + type: string + required: + - field + - operator + type: object + AccountIdentificationsSearchRequestDTO: + properties: + filterCriteria: + description: Account identification search criteria + items: + $ref: '#/components/schemas/AccountIdentificationsFilterCriteriaDTO' + type: array + required: + - filterCriteria + type: object + AccountIdentificationsSearchResponseDTO: + properties: + accountId: + description: AccountID (Unique and unambiguous identification for the account.) + type: string + currency: + description: Account currency + type: string + identification: + $ref: '#/components/schemas/Identification' + type: + description: Account type + type: string + required: + - accountId + - identification + type: object + AccountInternalIdentification: + description: >- + Mambu Accounts corresponding to the current IBAN / proprietary + identification + properties: + currency: + type: string + id: + type: string + type: + enum: + - DEPOSIT + - LOAN + type: string + type: object + AccountMappingResponse: + properties: + internalAccounts: + description: >- + Mambu Accounts corresponding to the current IBAN / proprietary + identification + items: + $ref: '#/components/schemas/AccountInternalIdentification' + type: array + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + AddressDTO: + properties: + buildingNumber: + description: ' The building or street number of the address. Must not exceed 16 characters.' + maxLength: 16 + minLength: 1 + type: string + city: + description: The city of the address. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + countryCode: + description: >- + Two characters as defined by ISO 3166. For example `DE` for Germany, + `TZ` for Tanzania. + maxLength: 2 + minLength: 2 + type: string + postalCode: + description: The postal code of the address. Must not exceed 16 characters. + maxLength: 16 + minLength: 1 + type: string + street: + description: The street name of the adress. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - countryCode + type: object + Agent: + description: Financial institution servicing an account for the debtor. + properties: + institutionIdentification: + $ref: '#/components/schemas/InstitutionIdentification' + required: + - institutionIdentification + type: object + AgentDTO: + description: >- + Financial institution servicing an account for the creditor. This field + is mandatory when proprietary ('other') creditor account identification + is used. + properties: + account: + $ref: '#/components/schemas/AccountDTO' + institutionIdentification: + $ref: '#/components/schemas/InstitutionIdentificationDTO' + required: + - institutionIdentification + type: object + AmendmentInformationDetailsDTO: + description: List of mandate elements that have been modified. + properties: + originalCreditorSchemeIdentification: + $ref: '#/components/schemas/OriginalCreditorSchemeIdentificationDTO' + originalDebtorAccount: + $ref: '#/components/schemas/AccountDTO' + originalDebtorAgent: + $ref: '#/components/schemas/AgentDTO' + originalMandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the original mandate. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + type: object + AmlPaymentIdentification: + description: Payment instruction reference. + properties: + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. + type: string + required: + - transactionIdentification + type: object + AmlResult: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeader' + transactions: + description: List of AML result checks, one per Payment Order. + items: + $ref: '#/components/schemas/AmlTransactionResult' + type: array + required: + - groupHeader + - transactions + type: object + AmlTransactionResult: + description: List of AML result checks, one per Payment Order. + properties: + debtorAgent: + $ref: '#/components/schemas/Agent' + interbankSettlementDate: + description: >- + InterbankSettlementDate from the original instruction in the format + `YYYY-MM-DD`. + maxLength: 10 + minLength: 10 + type: string + paymentIdentification: + $ref: '#/components/schemas/AmlPaymentIdentification' + status: + description: >- + Actual status of the AML investigation. Must be one of `ACCEPTED`, + `SUSPENDED`, `REJECTED`, `MANUAL_REDIRECT_EXTERNAL` or + `MANUAL_REDIRECT_INTERNAL`. + enum: + - ACCEPTED + - SUSPENDED + - REJECTED + - MANUAL_REDIRECT_EXTERNAL + - MANUAL_REDIRECT_INTERNAL + type: string + required: + - debtorAgent + - interbankSettlementDate + - paymentIdentification + - status + type: object + AmountDTO: + properties: + amount: + description: >- + The amount given with fractional digits, where fractions must be + compliant to the currency definition. Negative amounts are signed by + minus. The decimal separator is a dot. + maxLength: 12 + minLength: 1 + type: string + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + required: + - amount + - currency + type: object + Assignment: + description: Assignment + properties: + creationDateTime: + description: creation date time + format: date-time + type: string + identification: + description: camt.027/camt.087 assignment id + type: string + type: object + CancellationDetails: + properties: + additionalInformation: + description: >- + Further details on the cancellation request reason. The order must + be as defined in the SEPA guideline. The prefixes will be added + automatically. First occurrence will be added to the first + (mandatory) entry of additional information. When denying a recall, + if you do not want to add extra information to the mandatory + occurrence, please provide an empty string. For Legal additional + information, second and third occurrence will be added on the second + and third additional information. + items: + description: >- + Further details on the cancellation request reason. The order must + be as defined in the SEPA guideline. The prefixes will be added + automatically. First occurrence will be added to the first + (mandatory) entry of additional information. When denying a + recall, if you do not want to add extra information to the + mandatory occurrence, please provide an empty string. For Legal + additional information, second and third occurrence will be added + on the second and third additional information. + type: string + type: array + originalRecallReasonAdditionalInformation: + description: >- + Further details on the cancellation reason which can be used when + the recall rejection reason was AC03 for a recall made by the + originator or FRAD for a recall made by the financial institution. + The prefixes will be added automatically. Up to 10 occurrences are + allowed. + items: + description: >- + Further details on the cancellation reason which can be used when + the recall rejection reason was AC03 for a recall made by the + originator or FRAD for a recall made by the financial institution. + The prefixes will be added automatically. Up to 10 occurrences are + allowed. + type: string + type: array + rejectionReason: + description: >- + Reason for the cancellation status. Only ARDT, AC04, AM04, NOAS, + NOOR, CUST, LEGL, AGNT are allowed. + enum: + - ARDT + - AC04 + - AM04 + - NOAS + - NOOR + - CUST + - LEGL + - AGNT + type: string + required: + - rejectionReason + type: object + CollectionDTO: + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + creditorSchemeIdentification: + $ref: '#/components/schemas/CreditorSchemeIdentificationDTO' + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + mandateRelatedInformation: + $ref: '#/components/schemas/MandateDTO' + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentificationDTO' + paymentTypeInformation: + $ref: '#/components/schemas/PaymentTypeInformationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - creditorSchemeIdentification + - debtorAccount + - debtorName + - instructedAmount + - mandateRelatedInformation + - paymentTypeInformation + type: object + CollectionResponse: + properties: + collectionId: + description: >- + Resource identification of the generated payment initiation + resource. + type: string + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + transactionFeeIndicator: + description: >- + If set to `true`, the transaction will involve additional costs or + fees. + type: boolean + transactionStatus: + description: >- + PSD2 transaction status codes: + enum: + - ACSC + - ACSP + - ACTC + - CPVP + - RCVD + - PDNG + - RJCT + type: string + required: + - collectionId + - transactionStatus + type: object + CreateAccountMapping: + properties: + identification: + $ref: '#/components/schemas/Identification' + required: + - identification + type: object + CreateAccountMappings: + properties: + accountIds: + description: >- + IDs of the Mambu Accounts which will be correlated to the IBAN or + proprietary identification. The association will be made on account + currency. + items: + description: >- + IDs of the Mambu Accounts which will be correlated to the IBAN or + proprietary identification. The association will be made on + account currency. + type: string + type: array + identification: + $ref: '#/components/schemas/Identification' + required: + - accountIds + - identification + type: object + CreateBlockingRule: + properties: + creditorMandate: + $ref: '#/components/schemas/CreditorMandateDTO' + product: + description: >- + Payment Product to which this rule applies. For now, blocking rules + can be applied to `SEPA_DIRECT_DEBIT` only + type: string + required: + - product + type: object + CreditorMandateDTO: + description: >- + Collection mandate identification for deleting a rule applying to a + specific mandate. + properties: + creditorSchemeIdentification: + $ref: '#/components/schemas/CreditorSchemeIdentificationDTO' + mandateRelatedInformation: + $ref: '#/components/schemas/MandateRelatedInformationDTO' + required: + - creditorSchemeIdentification + - mandateRelatedInformation + type: object + CreditorSchemeIdentification: + properties: + identification: + description: Object containing the identifier. + properties: + privateIdentification: + description: Unique and unambiguous identification of a person, eg, passport. + example: ABC123 + type: string + required: + - privateIdentification + type: object + CreditorSchemeIdentificationDTO: + description: Credit party that signs the mandate. + properties: + identification: + $ref: '#/components/schemas/IdentificationDTO' + required: + - identification + type: object + DeleteBlockingRule: + properties: + creditorMandate: + $ref: '#/components/schemas/CreditorMandateDTO' + product: + description: >- + Payment product to remove blocking rules from. Must be + `SEPA_DIRECT_DEBIT`. + type: string + required: + - product + type: object + FailedPaymentResponse: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + required: + - tppMessages + type: object + FilterCriteria: + properties: + field: + type: string + operator: + type: string + value: + type: string + required: + - field + - operator + - value + type: object + FinancialInstitutionPaymentDTO: + properties: + categoryPurposeCode: + description: >- + Specifies the high level purpose of the payment based on a set of + pre-defined categories. + maxLength: 4 + minLength: 1 + type: string + creditor: + $ref: '#/components/schemas/AgentDTO' + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + debtor: + $ref: '#/components/schemas/AgentDTO' + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + intermediaryAgent1: + $ref: '#/components/schemas/AgentDTO' + intermediaryAgent2: + $ref: '#/components/schemas/AgentDTO' + intermediaryAgent3: + $ref: '#/components/schemas/AgentDTO' + paymentIdentification: + $ref: '#/components/schemas/Iso20022PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditor + - debtor + - instructedAmount + - scheme + - settlementInformation + type: object + GroupHeader: + description: GroupHeader information from the original instruction. + properties: + messageIdentification: + description: Message Identification from the original instruction. + type: string + required: + - messageIdentification + type: object + GroupHeaderIncoming: + description: >- + Set of characteristics shared by all individual transactions included in + the Request for Status Update on Recall message + properties: + creationDateTime: + description: >- + Date and time at which the inquiry message was created. Accepted + format: yyyy-MM-ddTHH:mm:ss + type: string + instructingAgent: + description: >- + Agent that is instructed by the previous party in the chain to carry + out the (set of) instruction(s). + type: string + messageIdentification: + description: Message identification to identify the inquiry message + type: string + required: + - creationDateTime + - instructingAgent + - messageIdentification + type: object + Identification: + description: Identification + properties: + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + iban: + description: >- + ISO 13616 International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. + maxLength: 34 + minLength: 15 + type: string + other: + $ref: '#/components/schemas/Other' + type: object + Identification-IBAN: + properties: + iban: + description: >- + ISO 13616 International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. + maxLength: 34 + minLength: 15 + type: string + type: object + IdentificationDTO: + description: Unique and unambiguous identification for the account. + properties: + iban: + description: >- + International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. Must be between 15 and 34 characters. + maxLength: 34 + minLength: 15 + type: string + other: + $ref: '#/components/schemas/OtherDTO' + type: object + IdentificationsToMask: + properties: + identifications: + items: + $ref: '#/components/schemas/Identification-IBAN' + type: array + required: + - identifications + type: object + IncomingMessageResponse: + properties: + messageId: + description: Resource identification of the incoming message + type: string + messageType: + description: URN namespace of the incoming message + type: string + required: + - messageId + - messageType + type: object + InitiationPaymentDTO: + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + type: object + InstantPaymentIdentification: + description: Payment instruction reference. + properties: + acceptanceDateTime: + description: >- + AcceptanceDateTime from the original instruction; must be in the + same format as it was sent in the original instruction. + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. + type: string + required: + - acceptanceDateTime + - transactionIdentification + type: object + InstantPaymentSettlement: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeader' + transaction: + $ref: '#/components/schemas/InstantTransaction' + required: + - groupHeader + - transaction + type: object + InstantTransaction: + description: Original transaction information. + properties: + debtorAgent: + $ref: '#/components/schemas/Agent' + paymentIdentification: + $ref: '#/components/schemas/InstantPaymentIdentification' + required: + - debtorAgent + - paymentIdentification + type: object + InstitutionIdentification: + description: >- + Unique and unambiguous identification of a financial institution, as + assigned under an internationally recognised identification scheme. + properties: + bicfi: + description: >- + ISO 9362 Business identifier code (BIC) - code allocated to a + financial institution. Must be between 8 and 11 characters. + maxLength: 11 + minLength: 8 + type: string + required: + - bicfi + type: object + InstitutionIdentificationDTO: + description: >- + Unique and unambiguous identification of a financial institution, as + assigned under an internationally recognised identification scheme. + properties: + bicfi: + description: >- + ISO 9362 Business identifier code (BIC) - code allocated to a + financial institution. Must be between 8 and 11 characters. + maxLength: 11 + minLength: 8 + type: string + required: + - bicfi + type: object + Iso20022PaymentDTO: + properties: + categoryPurposeCode: + description: >- + Specifies the high level purpose of the payment based on a set of + pre-defined categories. + maxLength: 4 + minLength: 1 + type: string + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + paymentIdentification: + $ref: '#/components/schemas/Iso20022PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + - scheme + - settlementInformation + type: object + Iso20022PaymentIdentificationDTO: + properties: + endToEndIdentification: + description: >- + Unique identification assigned by the payer to identify the + transaction. This identification will be returned to the payer and + passed on to the beneficiary. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. If left empty, Mambu transaction id will + be used. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + uetr: + description: >- + Universally unique identifier to provide an end-to-end reference of + a payment transaction. + maxLength: 36 + minLength: 36 + type: string + type: object + LogRequest: + properties: + log: + maxLength: 300 + minLength: 1 + type: string + required: + - log + type: object + MandateDTO: + description: >- + Set of elements used to provide further details of the direct debit + mandate signed between the creditor and the debtor. + properties: + amendmentInformationDetails: + $ref: '#/components/schemas/AmendmentInformationDetailsDTO' + dateOfSignature: + description: >- + Date on which the direct debit mandate has been signed by the debtor + in the format `YYYY-MM-DD`. + type: string + mandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the mandate. + type: string + required: + - dateOfSignature + - mandateIdentification + type: object + MandateRelatedInformationDTO: + properties: + mandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the collection mandate. + type: string + required: + - mandateIdentification + type: object + Message: + description: List of SEPA instructions. + type: object + OriginalCamt056Data: + properties: + cancellationIdentification: + description: Cancellation identification. + type: string + groupHeader: + $ref: '#/components/schemas/GroupHeader' + historicCancellationRequest: + description: Original camt.056.001.01 message body XML for historical requests. + type: string + required: + - cancellationIdentification + type: object + OriginalCreditorSchemeIdentificationDTO: + description: Original creditor scheme identification that has been modified. + properties: + identification: + $ref: '#/components/schemas/IdentificationDTO' + name: + description: Name of the creditor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + type: object + OriginalInquiryData: + properties: + assignment: + $ref: '#/components/schemas/Assignment' + caseIdentification: + description: camt.027/camt.087 case id + type: string + historicClaimRequest: + description: Optional historic camt.087 or camt.027 xml + type: string + messageTypeName: + description: messageTypeName + enum: + - PACS_002_001_03 + - PACS_002_001_10 + - PACS_002_001_12 + - PACS_003_001_02 + - PACS_003_001_08 + - PACS_004_001_02 + - PACS_004_001_09 + - PACS_004_001_11 + - PACS_007_001_02 + - PACS_007_001_09 + - PACS_008_001_02 + - PACS_008_001_08 + - PACS_008_001_10 + - PACS_028_001_01 + - PACS_028_001_03 + - CAMT_027_001_06 + - CAMT_027_001_07 + - CAMT_029_001_03 + - CAMT_029_001_08 + - CAMT_029_001_09 + - CAMT_029_001_11 + - CAMT_056_001_01 + - CAMT_056_001_08 + - CAMT_056_001_10 + - CAMT_087_001_05 + - CAMT_087_001_06 + - SIC_PACS_008_001_08 + - SIC_PACS_004_001_09 + - SIC_PACS_002_001_10 + - MT_103 + - MT_103_RETURN + - UNKNOWN + type: string + required: + - caseIdentification + - messageTypeName + type: object + OriginalPacs008Data: + properties: + claimedValueDate: + description: Claimed value-date for change. + format: date + type: string + groupHeader: + $ref: '#/components/schemas/Pacs008GroupHeader' + historicCreditTransferRequest: + description: Original pacs.008 message body XML for historical requests. + type: string + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentification' + required: + - paymentIdentification + type: object + Other: + description: >- + Unique identification of an account, as assigned by the account + servicer, using other identification scheme. + properties: + identification: + description: Identification assigned by an institution. + maxLength: 34 + minLength: 1 + type: string + scheme: + description: Name of the identification scheme. + maxLength: 35 + minLength: 1 + type: string + required: + - identification + - scheme + type: object + OtherDTO: + description: >- + Unique identification of an account, as assigned by the account + servicer, using any other identification scheme. + properties: + identification: + description: >- + Identification assigned by an institution. Must not exceed 34 + characters. + maxLength: 34 + minLength: 1 + type: string + scheme: + description: >- + Name or code of the identification scheme. Must not exceed 35 + characters. + maxLength: 35 + minLength: 1 + type: string + required: + - identification + - scheme + type: object + Pacs008GroupHeader: + description: Original pacs.008 group header information. + properties: + messageIdentification: + description: Original message identification. + type: string + settlementDate: + description: Original settlement date. + format: date + type: string + required: + - messageIdentification + type: object + PartyIdentificationDTO: + description: Beneficiary’s identification. + properties: + code: + description: >- + A four-letter code specifying the type of identification being used. + For valid codes an external catalogue should be consulted such as + the one provided in the [ISO 20022 External Code + Sets](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 1 + type: string + issuer: + description: >- + The official body who provided the identification. Must not exceed + 35 characters. + maxLength: 35 + minLength: 1 + type: string + privateIdentification: + description: >- + Unique and unambiguous identification of a person, eg, passport. + Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + proprietary: + description: >- + A proprietary type of identification for the party to the + transaction. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - privateIdentification + type: object + PaymentDTO: + description: Payment details for standing order + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + type: object + PaymentDetails: + properties: + transactionStatus: + description: >- + PSD2 transaction status codes: + enum: + - ACSC + - ACSP + - ACTC + - RCVD + - PDNG + - RJCT + type: string + PaymentIdentification: + description: Payment identification. + properties: + transactionIdentification: + description: Original transaction identification. + type: string + type: object + PaymentIdentificationDTO: + description: Payment instruction reference. + properties: + endToEndIdentification: + description: >- + Unique identification assigned by the payer to identify the + transaction. This identification will be returned to the payer and + passed on to the beneficiary. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. If left empty, Mambu transaction id will + be used. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + type: object + PaymentResponse: + properties: + paymentId: + description: >- + Resource identification of the generated payment initiation + resource. + type: string + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + transactionFeeIndicator: + description: >- + If value is `true`, the transaction will involve additional + transaction costs or fees. + type: boolean + transactionStatus: + description: 'RCVD: Payment initiation has been received by the receiving agent.' + enum: + - RCVD + type: string + required: + - paymentId + - transactionStatus + type: object + PaymentResponse-TPP: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + PaymentTypeInformationDTO: + description: Set of elements used to further specify the type of transaction. + properties: + sequenceType: + description: >- + Identifies the direct debit sequence, such as first, recurrent, + final or one-off (`FRST`, `RCUR`, `FNAL`, `OOFF`). + type: string + required: + - sequenceType + type: object + PrivateIdentificationDTO: + description: Unique and unambiguous identification of a party. + properties: + privateIdentification: + description: >- + Unique and unambiguous identification of a person, eg, passport. + Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - privateIdentification + type: object + Recall: + properties: + customerRecallReasonCode: + description: >- + Customer reason for outgoing payment recall, as defined in the SEPA + guideline + enum: + - AM09 + - AC03 + type: string + recallReasonCode: + description: Reason for outgoing payment recall, as defined in the SEPA guideline + enum: + - FRAD + - TECH + - CUST + - DUPL + type: string + required: + - recallReasonCode + type: object + Refund: + properties: + reasonCode: + description: Reason for an interbank Refund, as defined in the SEPA guideline + enum: + - MD01 + - MD06 + type: string + required: + - reasonCode + type: object + RejectStatusUpdateOnRecall: + properties: + cancellationDetails: + $ref: '#/components/schemas/CancellationDetails' + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/TransactionInformation' + required: + - cancellationDetails + - groupHeader + - transactionInformation + type: object + RemittanceDTO: + description: >- + Payment details. Structured message. Generally, these fields are used to + provide invoice or creditor reference information. References should + conform to ISO 11649, international standard of reference information. + properties: + reference: + description: >- + The actual reference. Must not exceed 35 characters. If providing a + reference number, the `referenceType` should also be provided. + maxLength: 35 + minLength: 1 + type: string + referenceIssuer: + description: >- + The entity which created or generated the reference. Must not exceed + 35 characters. + maxLength: 35 + minLength: 1 + type: string + referenceType: + description: The type of reference provided. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - reference + type: object + ResendAmlFilter: + properties: + category: + description: Message Category. Supported values are SEPA_CT, SEPA_DD or TGT. + enum: + - SEPA_CT + - SEPA_DD + - TGT + type: string + direction: + description: >- + Message Direction. Supported values are I (incoming) or O + (outgoing). + enum: + - I + - O + type: string + instructingAgent: + description: >- + Agent that instructs the next party in the chain to carry out the + (set of) instruction(s). + type: string + interbankSettlementDate: + description: >- + Date on which the amount of money ceases to be available to the + agent that owes it and when the amount of money becomes available to + the agent to which it is due. Accepted format: yyyy-MM-dd + type: string + messageId: + description: Incoming message identification. + type: string + required: + - direction + type: object + RetryPolicyDTO: + description: Failing standing orders retry policy + properties: + retryCount: + description: Specifies how many times the failing standing order will be retried + format: int32 + type: integer + type: object + Reverse: + properties: + reasonCode: + description: Reason for an interbank Reversal, as defined in the SEPA guideline + enum: + - AM05 + - MS02 + - MS03 + type: string + required: + - reasonCode + type: object + SepaMessageFilter: + properties: + dateFrom: + description: >- + Start date from which the messages should be filtered. Accepted + format: yyyy-MM-dd + type: string + dateTo: + description: >- + End date up until which the messages should be filtered. Accepted + format: yyyy-MM-dd + type: string + direction: + description: Message Direction. Supported values are I (incoming) or O (outgoing) + type: string + limit: + description: >- + Limit of the number of objects returned by the server. Defaults to + 20. + format: int32 + maximum: 100 + minimum: 1 + type: integer + messageId: + description: Message ID, representing the GrpHdr>>MsgId field of the message + type: string + messageType: + description: >- + Message type. Accepted values are pacs.008.001.02, pacs.004.001.02, + pacs.003.001.02, camt.056.001.01, camt.029.001.03 + type: string + network: + description: >- + Network for which the instructions should be received. SEPA is the + only value allowed + type: string + offset: + description: Offset from which the results should be provided. Defaults to 0. + format: int32 + minimum: 0 + type: integer + paymentId: + description: Payment ID, id provided when creating a new payment + type: string + transactionsLimit: + description: >- + Limit of the number of transactions returned by the server. Defaults + to 10. If the transactionsLimit is 0 only message headers will be + returned. If the transactionsLimit or transactionsOffset is bigger + than 0 then the messageId parameter has to be used as transactions + pagination in only available for one message. + format: int32 + minimum: 0 + type: integer + transactionsOffset: + description: >- + Offset from which the transactions should be provided. Defaults to + 0. If the transactionsLimit or transactionsOffset is bigger than 0 + then the messageId parameter has to be used as transactions + pagination in only available for one message. + format: int32 + minimum: 0 + type: integer + required: + - direction + type: object + SepaMessages: + properties: + instructions: + description: List of SEPA instructions. + items: + $ref: '#/components/schemas/Message' + type: array + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + SettlementInformationDTO: + description: >- + Specifies the details on how the settlement of the transaction(s) + between the instructing agent and the instructed agent is completed. + properties: + clearingSystem: + description: Clearing system when settlement method is CLRG. + type: string + settlementAccount: + $ref: '#/components/schemas/AccountDTO' + settlementMethod: + description: >- + Method used to settle the payment: INDA (instructed agent), INGA + (instructing agent), CLRG (clearing system) + type: string + required: + - settlementMethod + type: object + SkipStatusUpdateOnRecall: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/StatusRequestIdentification' + required: + - groupHeader + - transactionInformation + type: object + StandingOrderCreateResponse: + properties: + id: + description: Standing order id + type: string + type: object + StandingOrderDTO: + properties: + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + ownerId: + description: Standing order owner id + maxLength: 36 + minLength: 1 + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + retryPolicy: + $ref: '#/components/schemas/RetryPolicyDTO' + startDate: + description: Standing order start date + format: date + type: string + required: + - frequency + - ownerId + - payment + - retryPolicy + - startDate + type: object + StandingOrderExecutionResponse: + properties: + creationDate: + description: Entry creation date and time + format: date-time + type: string + failReason: + description: Holds short failure description + enum: + - INSUFFICIENT_FUNDS(401) + - ACCOUNT_INACTIVE(407) + - OTHER(-1) + type: string + paymentOrderId: + description: Payment order id + type: string + requestedExecuteOn: + description: Date and time at which payment is initiated + format: date-time + type: string + standingOrderId: + description: Standing order id + type: string + status: + description: Status of payment execution + enum: + - RUNNING + - COMPLETED + - FAILED + type: string + type: + description: Execution type + enum: + - REGULAR + - RETRY + type: string + type: object + StandingOrderGetResponse: + properties: + creationDateTime: + description: Standing order creation date and time + format: date-time + type: string + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + id: + description: Standing order id + type: string + lastExecution: + description: Standing order's last payment execution date + format: date + type: string + nextExecution: + description: Standing order's next payment execution date + format: date + type: string + ownerId: + description: Standing order owner id + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + paymentsCount: + description: Standing order's count of payments executed so far + format: int32 + type: integer + retryCount: + description: Standing order's retry count setting + format: int32 + type: integer + startDate: + description: Standing order start date + format: date + type: string + status: + description: Standing order status + enum: + - ACTIVE + - SUSPENDED + - CANCELED + - WITHDRAWN + type: string + suspendDateFrom: + description: Standing order suspend start date + format: date + type: string + suspendDateTo: + description: Standing order suspend end date (inclusive) + format: date + type: string + type: object + StandingOrderSearchRequest: + properties: + filterCriteria: + items: + $ref: '#/components/schemas/FilterCriteria' + maxItems: 2 + minItems: 1 + type: array + limit: + format: int32 + maximum: 500 + minimum: 1 + type: integer + offset: + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + required: + - filterCriteria + type: object + StandingOrderSearchResponse: + properties: + creationDateTime: + description: Standing order creation date and time + format: date-time + type: string + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + id: + description: Standing order id + type: string + ownerId: + description: Standing order owner id + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + retryCount: + description: Standing order's retry count setting + format: int32 + type: integer + startDate: + description: Standing order start date + format: date + type: string + status: + description: Standing order status + enum: + - ACTIVE + - SUSPENDED + - CANCELED + - WITHDRAWN + type: string + suspendDateFrom: + description: Standing order suspend start date + format: date + type: string + suspendDateTo: + description: Standing order suspend end date (inclusive) + format: date + type: string + type: object + StandingOrderSuspendDTO: + properties: + endDate: + description: Suspend standing order till date (inclusive) + format: date + type: string + id: + description: Standing order id + maxLength: 36 + minLength: 1 + type: string + startDate: + description: Suspend standing order from date + format: date + type: string + required: + - endDate + - id + type: object + StatusRequestIdentification: + description: Information concerning the Request for Status Update on Recall message + properties: + statusRequestIdentification: + description: >- + Unique identification, as assigned by an instructing party for an + instructed party, to identify the status request + type: string + required: + - statusRequestIdentification + type: object + TPPMessage: + description: Messages to the TPP on operational issues. + properties: + category: + description: Category designates the message severity. + enum: + - ERROR + - WARN + type: string + code: + description: >- + Message error + codes: + enum: + - ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION + - FEATURE_NOT_ENABLED + - FORMAT_ERROR + - INVALID_MESSAGE_TYPE + - INVALID_REQUEST_BODY + - INVALID_TRANSACTION_STATE + - INVALID_TRANSACTION_STATUS + - ORIGINAL_MESSAGE_ALREADY_REPLIED + - ORIGINAL_MESSAGE_PENDING_REPLY + - PARAMETER_NOT_SUPPORTED + - PAYMENT_FAILED + - SERVICE_INVALID + - NOT_FOUND + - RESOURCE_UNKNOWN + type: string + path: + type: string + text: + description: Additional explaining text. + maxLength: 512 + minLength: 1 + type: string + required: + - category + - code + type: object + TppMessagesResponse: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + required: + - tppMessages + type: object + TransactionInformation: + description: >- + Information concerning the original transaction, to which the Request + for Status Update on Recall message refers + properties: + originalInstructionIdentification: + description: >- + Unique identification, as assigned by the original instructing party + for the original instructed party, to unambiguously identify the + original instruction. + type: string + originalMessageIdentification: + description: >- + Point to point reference assigned by the original instructing party + to identify the original group of individual transactions + type: string + statusRequestIdentification: + description: >- + Unique identification, as assigned by an instructing party for an + instructed party, to identify the status request + type: string + required: + - originalInstructionIdentification + - originalMessageIdentification + - statusRequestIdentification + type: object + tags: + - name: AML + description: > + If you are using an external service to check payments as part of your + Anti Money Laundering obligations, these endpoints receive responses which + will lead to unblocking funds and transferring them to the recipient + account in the case of an all clear or returning funds to the payer in + cases where there a compliance issue has been identified. + + + For more general information on AML flows, including how the necessary + suspense accounting should be set up in Mambu, please refer to the [AML + and Suspense + Accounts](https://support.mambu.com/docs/aml-suspense-accounting) section + of our User Guide. + - name: External Account Representation + description: >- + The External Account Representation (EAR) endpoints are used to associate + IBANs with Mambu account IDs so that payments made using the Mambu Payment + Gateway are routed to the correct accounts. + + + An IBAN can be mapped to multiple accounts but can only be associated to + one account per currency, so, for example, the same IBAN can be mapped to + one underlying Mambu account using EUR, another using GBP and another + using CHF, but not to two accounts both in EUR denomination. + + + + - name: Incoming Messages + description: > + This endpoint is the main entry point to the Mambu Payment Gateway for + external systems. + + + For more information on the types of messages accepted by this endpoint, + please refer to the [supported + flows](https://support.mambu.com/docs/payment-gateway-introduction#supported-flows) + section of the introduction to the Mambu Payment Gateway article in our + User Guide. + + + + - name: SEPA Credit Transfers + description: > + These endpoints are used for making and receiving SEPA credit transfers + through the Mambu Payment Gateway. + + + For more information on supported messages, flows and technical + information, including examples of generated XML messages and how the + fields map to these API requests, please refer to the [SEPA Credit + Transfer](https://support.mambu.com/docs/sepa-credit-transfers) section of + our User Guide. + - name: SEPA Credit Transfer Inquiries + description: > + These APIs allow you to submit inquiries for SEPA payments including for + cases where the customer claims to have not received the funds, the value + date was not correctly recorded or to request a status update for payments + which have been cancelled. + + + For more information on the types of inquiry supported and how to submit + and respond to inquiries via the Mambu Payment Gateway UI, please refer to + the relevant section of our User Guide, such as the [SEPA credit transfer + inquiries](https://support.mambu.com/docs/sct-inquiries) article for SEPA + credit transfers. + - name: SEPA Direct Debit + description: > + SEPA Direct Debit Payments are one time or recurring payments made using + the Single European Payment Area scheme for transactions made in Euros + between accounts at banks within the SEPA area, which includes all EU + countries as well as other territories such as Liechtenstein, Switzerland, + the United Kingdom, Andorra and Nordic countries. + + + Mambu supports both the Core SEPA rulebook for individuals and the B2B + scheme for companies. For more information on supported messages, flows + and technical information, please refer to the [SEPA Direct + Debit](https://support.mambu.com/docs/sepa-direct-debit) section of our + user guide. + - name: Search Messages + description: > + Use this endpoint to search for SEPA Credit Transfer and Direct Debit + messages received by the Mambu Payment Gateway. + - name: Settings + description: > + These endpoints allow you to configure settings for the Mambu Payment + Gateway such as setting callback URLs which will be notified on certain + actions. + servers: + - url: https://TENANT_NAME.mambu.com/api/v1 +konfigCliVersion: 1.38.34 diff --git a/sdks/db/fixed-specs/kombo-fixed-spec.yaml b/sdks/db/fixed-specs/kombo-fixed-spec.yaml new file mode 100644 index 0000000000..b31d303ba2 --- /dev/null +++ b/sdks/db/fixed-specs/kombo-fixed-spec.yaml @@ -0,0 +1,29973 @@ +openapi: 3.0.0 +info: + title: Kombo API + description: >- + Kombo is changing how B2B SaaS companies provide HR integrations to their + customers. Instead of having to build and maintain many APIs themselves, + Kombos customers can integrate with Kombo's API once and offer dozens of + APIs to their customers instantly. + version: 1.0.0 + x-konfig-ignore: + object-with-no-properties: true +servers: + - url: https://api.kombo.dev/v1 +tags: + - description: Unified endpoints to access all the ATS concepts you might need. + name: Unified ATS API + - description: Unified endpoints to access all the HR concepts you might need. + name: Unified HRIS API + - name: General + - name: Custom Endpoints + - name: Unified ATS (Assessment) API + - description: >- + Endpoints for Kombo Connect, our end-user-facing flow for setting up new + integrations. + name: Kombo Connect + - description: >- + Unified endpoints to operate Assessments for many applicant tracking + systems. + name: Unified ATS-Assessment API +paths: + /check-api-key: + get: + tags: + - General + summary: Check API key + operationId: General_verifyApiKey + description: Check whether your API key is working properly. + responses: + '200': + description: GET /check-api-key Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCheckApiKeySuccessfulResponse' + examples: + example1: + value: + status: success + data: + environment_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + customer_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + '400': + description: GET /check-api-key Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCheckApiKeyErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + /force-sync: + post: + tags: + - General + summary: Trigger sync + operationId: General_triggerSyncSpecificIntegration + description: >- + Trigger a sync for a specific integration. + + + Please note that it is **not** necessary nor recommended to + call this endpoint periodically on your side. Kombo already performs + period syncs for you and you should only trigger syncs yourself in + special cases (like when a user clicks on a "Sync" button in your + app). + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: workday:HWUTwvyx2wLoSUHphiWVrp28 + required: true + requestBody: + description: POST /force-sync request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncRequestBody' + responses: + '200': + description: POST /force-sync Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncSuccessfulResponse' + examples: + example1: + value: + status: success + data: + already_queued: false + sync_id: 119ihtp91nA3dqRFiV67nXS6 + '400': + description: POST /force-sync Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/GeneralTriggerSyncSpecificIntegrationResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + /passthrough/{tool}/{api}: + post: + tags: + - General + summary: Send passthrough request + operationId: General_forwardRequestToApi + description: >- + Send a request to the specified integration's native API. + + + At Kombo we put a lot of work into making sure that our unified API + covers all our customers' use cases and that they never have to think + about integration-specific logic again. There are cases, however, where + our customers want to build features that are very integration-specific. + That's where this endpoint comes in. + + + Pass in details about the request you want to make to the integration's + API and we'll forward it for you. We'll also take care of setting the + right base URL and authenticating your requests. + + + To get started, please pick the relevant API (some tools provide + multiple to due different base URLs or authentication schemes) from the + table below and pass in the `{tool}/{api}` identifier as part of the + path. + + + |Integration|`{tool}/{api}`|Description| + + |---|---|---| + + |Personio|`personio/personnel`|Personio's [Personnel Data + API](https://developer.personio.de/reference/get_company-employees). We + automatically authenticate all requests using the client ID and secret + and use `https://api.personio.de/v1` as the base URL.| + + |Workday|`workday/soap`|[Workday's SOAP + API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). + We automatically authenticate all requests. Set `data` to your raw xml + string. Use `/` as your `path`, as we will always send requests to + `https://{domain}/ccx/service/{tenant}/{service_name}/38.2`. Set your + `method` to `POST`. You need to specify the `api_options` object and set + `service_name` to the name of the service you want to call. Find all + available services + [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). + The string that you submit as `data` will be the content of the + `soapenv:Body` tag in the request.| + + |SAP SuccessFactors|`successfactors/odata-v2`|[SuccessFactors' OData V2 + API](https://help.sap.com/doc/74597e67f54d4f448252bad4c2b601c9/2211/en-US/SF_HCM_OData_API_REF_en.pdf). + We automatically authenticate all requests and use + `https://{api_domain}/odata/v2` as the base URL.| + + |Lever|`lever/v1`|[Lever's v1 + API](https://hire.lever.co/developer/documentation). We automatically + authenticate all requests using the partner credentials which have been + configured in the Lever tool settings (this uses Kombo's partner + credentials by default).| + + |Recruitee|`recruitee/default`|The [Recruitee + API](https://api.recruitee.com/docs/index.html). We automatically + authenticate all requests and use + `https://api.recruitee.com/c/{company_id}` as the base URL.| + + |Greenhouse|`greenhouse/harvest`|Greenhouse [Harvest + API](https://developers.greenhouse.io/harvest.html). We automatically + authenticate all requests using the API key and use + `https://harvest.greenhouse.io/v1` as the base URL.| + + |Teamtailor|`teamtailor/v1`|Teamtailor's + [JSON-API](https://docs.teamtailor.com/). We authenticate all request + with the Teamtailor API key and use the base URL + `https://api.teamtailor.com/v1`.| + + |Personio|`personio/recruiting`|Personio's [Recruiting + API](https://developer.personio.de/reference/get_company-employees). We + automatically authenticate all requests using the Recruiting access + token and use `https://api.personio.de/v1/recruiting` as the base URL.| + + |Personio|`personio/jobboard`|API endpoints exposed on Personio's public + job board pages ([currently just the XML + feed](https://developer.personio.de/reference/get_xml)). We + automatically use the right `https://{company}.jobs.personio.de` base + URL.| + + |BambooHR|`bamboohr/v1`|BambooHR's + [API](https://documentation.bamboohr.com/reference/get-employee). We + automatically authenticate all requests using the customer credentials + `https://api.bamboohr.com/api/gateway.php/{subdomain}/v1` as the base + URL.| + + |Workable|`workable/v1`|Workable's + [API](https://workable.readme.io/reference/generate-an-access-token). We + automatically authenticate all requests using the client ID and secret + and use `https://subdomain.workable.com/spi/v3` as the base URL.| + + |HiBob|`hibob/v1`|[HibBob's v1 + API](https://apidocs.hibob.com/reference/get_people). We automatically + authenticate all requests using the service user credentials (or, for + old integrations, the API key) and use `https://api.hibob.com/v1` as the + base URL.| + + |Pinpoint|`pinpoint/v1`|Pinpoint's + [JSON:API](https://developers.pinpointhq.com/docs). We automatically + authenticate all requests using the `X-API-KEY` header and use + `https://{subdomain}.pinpointhq.com/api/v1` as the base URL.| + + |Haufe Umantis|`umantis/v1`|[Umantis API + v1](https://recruitingapp-91005709.umantis.com/api/v1/swagger-ui). We + automatically authenticate all requests and use + `https://{subdomain}.umantis.com/api/v1` as the base URL.| + + |HRworks|`hrworks/v2`|HRWorks's v2 + [API](https://developers.hrworks.de/2.0/endpoints). We automatically + authenticate all requests using the customer credentials.| + + |JazzHR|`jazzhr/v1`|[JazzHR's v1 + API](https://www.resumatorapi.com/v1/#!`). We automatically authenticate + all requests.| + + + Please note that the passthrough API endpoints are only meant for + edge cases. That's why we only expose them for new integrations after + understanding a concrete customer use case. If you have such a use case + in mind, please reach out to Kombo. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: greenhouse:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + The ID of the tool whose passthrough API you want to call (e.g., + `personio`). + name: tool + in: path + required: true + schema: + $ref: '#/components/schemas/PostPassthroughToolApiParameterTool' + - description: >- + The ID of the passthrough API you want to call (some tools provide + multiple). Check the endpoint description for a list of all + available APIs. + name: api + in: path + required: true + schema: + $ref: '#/components/schemas/PostPassthroughToolApiParameterApi' + requestBody: + description: POST /passthrough/:tool/:api request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiRequestBody' + responses: + '200': + description: POST /passthrough/:tool/:api Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiSuccessfulResponse' + '400': + description: POST /passthrough/:tool/:api Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralForwardRequestToApiResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralForwardRequestToApi403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralForwardRequestToApi404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralForwardRequestToApi503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /integrations/{integration_id}: + delete: + tags: + - General + summary: Delete integration + operationId: General_deleteIntegration + description: |- + Delete the specified integration. + **⚠️ This can not be undone!** + parameters: + - description: DELETE /integrations/:integration_id parameter + name: integration_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdParameterIntegrationId + requestBody: + description: DELETE /integrations/:integration_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteIntegrationsIntegrationIdRequestBody' + responses: + '200': + description: DELETE /integrations/:integration_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdSuccessfulResponse + '400': + description: DELETE /integrations/:integration_id Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralDeleteIntegrationResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + get: + tags: + - General + summary: Get integration details + operationId: General_getIntegrationDetails + description: >- + Get the specified integration with everything you need to display it to + your customer. + parameters: + - description: GET /integrations/:integration_id parameter + name: integration_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/GetIntegrationsIntegrationIdParameterIntegrationId + responses: + '200': + description: GET /integrations/:integration_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetIntegrationsIntegrationIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: factorial:8d1hpPsbjxUkoCoa1veLZGe5 + tool: + id: factorial + label: Factorial + internal_label: null + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + category: HRIS + status: ACTIVE + end_user: + organization_name: Acme + creator_email: example-integration-creator@acme.com + origin_id: 2DQJAUtSzzzKP9buDTvUvPk3 + scope_config: + id: B1hu5NGyhdjSq5X3hxEz4bAN + name: Anonymous Scopes + created_at: '2022-08-07T14:01:29.196Z' + beta: false + '400': + description: GET /integrations/:integration_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetIntegrationsIntegrationIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralGetIntegrationDetailsResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + /integrations/{integration_id}/relink: + post: + tags: + - General + summary: Create reconnection link + operationId: General_createReconnectionLink + description: >- + Create a link that will allow the user to reconnect an integration. This + is useful if you want to allow your users to update the credentials if + the old ones for example expired. + + + Embed this the same way you would [embed the connect + link](https://api.kombo.dev). By default, the link will be valid for 1 + hour. + + + ### Example Request Body + + + ```json + + { + "language": "en" + } + + ``` + parameters: + - description: POST /integrations/:integration_id/relink parameter + name: integration_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkParameterIntegrationId + examples: + example1: + value: personio:93fCvorjZ2jas7ZekX1V1n5d + requestBody: + description: POST /integrations/:integration_id/relink request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkRequestBody + examples: + example1: + value: + language: en + responses: + '200': + description: POST /integrations/:integration_id/relink Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkSuccessfulResponse + '400': + description: POST /integrations/:integration_id/relink Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralCreateReconnectionLinkResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + /tools/{category}: + get: + tags: + - General + summary: Get tools + operationId: General_getToolsCategory + description: >- + Get a list of the tools (i.e., integrations) enabled in your + environment. + This can (in combination with the `integration_tool` parameter of [the "Create Link" endpoint](https://api.kombo.dev)) be used to, for example, display a custom list or grid of available integrations to your end users instead of exposing Kombo Connect's standard tool selector. + parameters: + - description: GET /tools/:category parameter + name: category + in: path + required: true + schema: + $ref: '#/components/schemas/GetToolsCategoryParameterCategory' + responses: + '200': + description: GET /tools/:category Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetToolsCategorySuccessfulResponse' + examples: + example1: + value: + status: success + data: + tools: + - id: factorialX + label: Factorial + internal_label: null + assets: + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + icon_black_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon-black.svg + coverage: + read_models: + - id: hris_employees + label: Employees + - id: hris_teams + label: Groups + write_actions: + - id: hris_create_employee + label: Create employee + features: + - id: automatic_source_writing + label: Automatic Source Writing + '400': + description: GET /tools/:category Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetToolsCategoryErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + /hris/provisioning-groups/{group_id}/diff: + post: + tags: + - Unified HRIS API + summary: Get provisioning diff + operationId: UnifiedHrisApi_getProvisioningDiff + description: >- + Get the list of users to provision, deprovision, and optionally update + based on the users you've already provisioned in your system. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: ID of the provisioning group (currently only `default` is allowed). + name: group_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffParameterGroupId + examples: + example1: + value: n39n320clr8c5amf8v83nbch + requestBody: + description: POST /hris/provisioning-groups/:group_id/diff request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffRequestBody + examples: + example1: + value: + provisioned_users: + - origin_id: your_id_123 + email: johndoe@example.com + options: + employee_fields: + - id + - first_name + - last_name + responses: + '200': + description: POST /hris/provisioning-groups/:group_id/diff Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffSuccessfulResponse + '400': + description: POST /hris/provisioning-groups/:group_id/diff Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + /hris/provisioning-groups/{group_id}/setup-links: + post: + tags: + - Unified HRIS API + summary: Create provisioning setup link + operationId: UnifiedHrisApi_createProvisioningSetupLink + description: >- + Create a new link that can be passed to the Kombo Connect SDK to open + the provisioning setup UI. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: ID of the provisioning group (currently only `default` is allowed). + name: group_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId + examples: + example1: + value: n39n320clr8c5amf8v83nbch + requestBody: + description: POST /hris/provisioning-groups/:group_id/setup-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody + examples: + example1: + value: + language: en + responses: + '200': + description: >- + POST /hris/provisioning-groups/:group_id/setup-links Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksSuccessfulResponse + examples: + example1: + value: + status: success + data: + url: >- + https://connect.kombo.dev/v1/provisioning?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + expires_at: '2023-10-11T12:00:00.000Z' + '400': + description: POST /hris/provisioning-groups/:group_id/setup-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedHrisApiCreateProvisioningSetupLinkResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + /hris/employees: + get: + tags: + - Unified HRIS API + summary: Get employees + operationId: UnifiedHrisApi_listEmployees + description: >- + Retrieve all employees. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Not interested in most fields? You can use our [our Scopes + feature](https://api.kombo.dev) to customize what data points are + synced. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterRemoteIds' + - description: >- + **(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** + Filter by the `employment_status` field. + name: employment_status + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatus' + - description: >- + Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, + `LEAVE` + + * `ACTIVE`: the employee is **actively employed** + + * `PENDING`: the employee is **not actively employed yet** (but they + signed their contract or are part of an onboarding process) + + * `INACTIVE`: a full-time employee is no longer employed, or, for a + contract worker when their contract runs out + + * `LEAVE`: the employee is still employed but **currently on leave** + (note that not all HR systems support this status — use our absences + API for detailed information) + + + Leave this blank to get results matching all values. + name: employment_statuses + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatuses' + - description: >- + Filter by a comma-separated list of group IDs. We will only return + employees that are members of _any_ of the groups. + name: group_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterGroupIds' + - description: >- + Filter by a comma-separated list of legal entity IDs. We will only + return employees that are members of _any_ of the legal entities. + name: legal_entity_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterLegalEntityIds' + - description: >- + Filter by a comma-separated list of work location IDs. We will only + return employees who are at _any_ of the work locations. + name: work_location_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterWorkLocationIds' + - description: >- + Filter by a comma-separated list of work emails. We will only return + employees who have _any_ of the work emails. + name: work_emails + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterWorkEmails' + - description: >- + Filter by a comma-separated list of personal emails. We will only + return employees who have _any_ of the personal emails. + name: personal_emails + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterPersonalEmails' + responses: + '200': + description: GET /hris/employees Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmployeesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + employments: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + time_off_balances: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + manager: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJgX + work_email: john.doe@acme.com + remote_id: '32' + groups: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + legal_entity: + id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + - id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + type: TEAM + work_location: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: GET /hris/employees Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmployeesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListEmployeesResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListEmployees403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListEmployees404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListEmployees503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + post: + tags: + - Unified HRIS API + summary: Create employee + operationId: UnifiedHrisApi_createEmployee + description: >- + Create a new employee. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "first_name": "John", + "last_name": "Doe", + "work_email": "john.doe@acme.com", + "gender": "MALE", + "job_title": "Integrations Team Lead", + "home_address": { + "city": "Berlin", + "country": "DE", + "state": "Berlin", + "street_1": "Sonnenallee 63", + "zip_code": "12045" + }, + "date_of_birth": "1986-01-01", + "start_date": "2020-04-07" + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + requestBody: + description: POST /hris/employees request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesRequestBody' + examples: + example1: + value: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + responses: + '200': + description: POST /hris/employees Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + '400': + description: POST /hris/employees Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiCreateEmployeeResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiCreateEmployee403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiCreateEmployee404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiCreateEmployee503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /hris/employees/{employee_id}: + patch: + tags: + - Unified HRIS API + summary: Update employee + operationId: UnifiedHrisApi_updateEmployee + description: >- + Update an employee. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "BkgfzSr5muN9cUTMD4wDQFn4", + "first_name": "John", + "last_name": "Doe", + "work_email": "john.doe@acme.com", + "ssn": "555-32-6395", + "tax_id": "12 345 678 901", + "gender": "MALE", + "marital_status": "MARRIED", + "date_of_birth": "1986-01-01", + "start_date": "2020-04-07", + "termination_date": "2022-05-20", + "job_title": "Integrations Team Lead", + "nationality": "DE", + "home_address": { + "city": "Berlin", + "country": "DE", + "state": "Berlin", + "street_1": "Sonnenallee 63", + "zip_code": "12045" + } + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + 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`) + name: employee_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PatchHrisEmployeesEmployeeIdParameterEmployeeId + examples: + example1: + value: BkgfzSr5muN9cUTMD4wDQFn4 + requestBody: + description: PATCH /hris/employees/:employee_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdRequestBody' + examples: + example1: + value: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + marital_status: MARRIED + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + termination_date: '2022-05-20' + job_title: Integrations Team Lead + nationality: DE + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + responses: + '200': + description: PATCH /hris/employees/:employee_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchHrisEmployeesEmployeeIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + '400': + description: PATCH /hris/employees/:employee_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiUpdateEmployeeResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiUpdateEmployee403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiUpdateEmployee404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiUpdateEmployee503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /hris/employees/{employee_id}/attachments: + post: + tags: + - Unified HRIS API + summary: Add attachment to employees 🦄 + operationId: UnifiedHrisApi_addAttachmentToEmployees + description: >- + Currently in closed beta. + + **This endpoint is currently in closed beta!** We're testing it + with selected customers before its public release. If you're interested + in learning more or getting early access, please reach out. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: POST /hris/employees/:employee_id/attachments parameter + name: employee_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsParameterEmployeeId + requestBody: + description: POST /hris/employees/:employee_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsRequestBody + responses: + '200': + description: POST /hris/employees/:employee_id/attachments Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsSuccessfulResponse + '400': + description: POST /hris/employees/:employee_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + /hris/teams: + get: + tags: + - Unified HRIS API + summary: Get teams (deprecated) + operationId: UnifiedHrisApi_listTeams + description: >- + Get the teams. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Please use [the `/groups` endpoint](https://api.kombo.dev) instead. It returns the same data but the naming makes more sense as the model not only includes teams but also departments and cost centers.. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterRemoteIds' + responses: + '200': + description: GET /hris/teams Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTeamsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + '400': + description: GET /hris/teams Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTeamsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListTeamsResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListTeams403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListTeams404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListTeams503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /hris/groups: + get: + tags: + - Unified HRIS API + summary: Get groups + operationId: UnifiedHrisApi_getAllGroups + description: >- + Retrieve all "groups" (teams, departments, and cost centers). + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterRemoteIds' + responses: + '200': + description: GET /hris/groups Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisGroupsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + '400': + description: GET /hris/groups Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisGroupsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetAllGroupsResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetAllGroups403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetAllGroups404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetAllGroups503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /hris/employments: + get: + tags: + - Unified HRIS API + summary: Get employments + operationId: UnifiedHrisApi_listEmployments + description: >- + Retrieve all employments. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterRemoteIds' + responses: + '200': + description: GET /hris/employments Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmploymentsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 12vpXR7BeqYNWDShXRgsonnmX + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + '400': + description: GET /hris/employments Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmploymentsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListEmploymentsResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListEmployments403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListEmployments404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListEmployments503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /hris/locations: + get: + tags: + - Unified HRIS API + summary: Get work locations + operationId: UnifiedHrisApi_getWorkLocations + description: >- + Retrieve all work locations. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterRemoteIds' + responses: + '200': + description: GET /hris/locations Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLocationsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: GET /hris/locations Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLocationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetWorkLocationsResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetWorkLocations403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetWorkLocations404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetWorkLocations503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /hris/absence-types: + get: + tags: + - Unified HRIS API + summary: Get absence types + operationId: UnifiedHrisApi_listAbsenceTypes + description: >- + Retrieve all absence types. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterRemoteIds' + responses: + '200': + description: GET /hris/absence-types Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/absence-types Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListAbsenceTypesResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListAbsenceTypes403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListAbsenceTypes404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiListAbsenceTypes503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /hris/time-off-balances: + get: + tags: + - Unified HRIS API + summary: Get time off balances + operationId: UnifiedHrisApi_getTimeOffBalances + description: >- + Retrieve all time off balances. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterRemoteIds' + - description: Filter by a specific employee using their ID. + name: employee_id + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterEmployeeId' + responses: + '200': + description: GET /hris/time-off-balances Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: FuyRuk5NqP3qTcThED3ymTuEX + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvDX + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/time-off-balances Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetTimeOffBalancesResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedHrisApiGetTimeOffBalances403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedHrisApiGetTimeOffBalances404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedHrisApiGetTimeOffBalances503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /hris/absences: + get: + tags: + - Unified HRIS API + summary: Get absences + operationId: UnifiedHrisApi_getAllAbsences + description: >- + Retrieve all absences. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterRemoteIds' + - description: >- + Filter for all the absences that either start _or_ haven't ended yet + on/after this day. If you imagine a calendar displaying absences, + this defines the left-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + name: date_from + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterDateFrom' + - description: >- + Filter for absences that start on or before this day (but might + continue after). If you imagine a calendar displaying absences, this + defines the right-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + name: date_until + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterDateUntil' + - description: Filter by a comma-separated list of absence type IDs. + name: type_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTypeIds' + - description: Filter by a specific employee using their ID. + name: employee_id + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterEmployeeId' + - description: >- + **(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for + absences that either start after or start before and end after a + certain time. + name: time_from + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTimeFrom' + - description: >- + **(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter + for absences that start before a certain time. + name: time_until + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTimeUntil' + responses: + '200': + description: GET /hris/absences Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsencesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvDX + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/absences Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsencesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetAllAbsencesResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetAllAbsences403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetAllAbsences404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetAllAbsences503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + post: + tags: + - Unified HRIS API + summary: Create absence + operationId: UnifiedHrisApi_createAbsence + description: >- + Create a new absence. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Check [this page](https://api.kombo.dev) for a detailed guide. + + + + This endpoint requires the permission **Manage absences** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "wXJMxwDvPAjrJ4CyqdV9", + "absence_type_id": "3YKtQ7qedsrcCady1jSyAkY1", + "start_date": "2019-09-17", + "end_date": "2019-09-21", + "start_half_day": false, + "end_half_day": false, + "employee_note": "Visiting the aliens", + "start_time": "08:30:00", + "end_time": "16:00:00" + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + requestBody: + description: POST /hris/absences request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesRequestBody' + examples: + example1: + value: + employee_id: wXJMxwDvPAjrJ4CyqdV9 + absence_type_id: 3YKtQ7qedsrcCady1jSyAkY1 + start_date: '2019-09-17' + end_date: '2019-09-21' + start_time: '08:30:00' + end_time: '16:00:00' + start_half_day: false + end_half_day: false + employee_note: Visiting the aliens + responses: + '200': + description: POST /hris/absences Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: POST /hris/absences Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiCreateAbsenceResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiCreateAbsence403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiCreateAbsence404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiCreateAbsence503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /hris/absences/{absence_id}: + delete: + tags: + - Unified HRIS API + summary: Delete absence + operationId: UnifiedHrisApi_deleteAbsenceById + description: >- + Delete this absence. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage absences** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "absence_id": "wXJMxwDvPAjrJ4CyqdV9" + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: The ID of the absence + name: absence_id + in: path + required: true + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdParameterAbsenceId' + examples: + example1: + value: wXJMxwDvPAjrJ4CyqdV9 + requestBody: + description: DELETE /hris/absences/:absence_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdRequestBody' + examples: + example1: + value: &ref_0 {} + responses: + '200': + description: DELETE /hris/absences/:absence_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteHrisAbsencesAbsenceIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: DELETE /hris/absences/:absence_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiDeleteAbsenceByIdResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedHrisApiDeleteAbsenceById403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedHrisApiDeleteAbsenceById404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedHrisApiDeleteAbsenceById503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /hris/legal-entities: + get: + tags: + - Unified HRIS API + summary: Get legal entities + operationId: UnifiedHrisApi_getAllLegalEntities + description: >- + Retrieve all legal entites. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterRemoteIds' + responses: + '200': + description: GET /hris/legal-entities Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + '400': + description: GET /hris/legal-entities Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedHrisApiGetAllLegalEntitiesResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedHrisApiGetAllLegalEntities403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedHrisApiGetAllLegalEntities404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedHrisApiGetAllLegalEntities503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/applications: + get: + tags: + - Unified ATS API + summary: Get applications + operationId: UnifiedAtsApi_getAllApplications + description: >- + Retrieve all applications. + + + Visit our in depth guide to learn more about: + + - 💡 [Being aware of which applications are + tracked](/ats/features/implementation-guide/tracking-created-applications#be-aware-of-which-applications-are-tracked) + + - 🚦 [Hiring + signals](/ats/features/implementation-guide/tracking-created-applications#hiring-signals) + + - 📈 [Application stage + changes](/ats/features/implementation-guide/tracking-created-applications#application-stage-changes) + + - ❓ [ATS-specific + limitations](/ats/features/implementation-guide/tracking-created-applications#ats-specific-limitations) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterRemoteIds' + - description: >- + **(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter + applications by outcome. This allows you to get applications that + are for example `PENDING`, `HIRED`, or `DECLINED`. + name: outcome + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterOutcome' + - description: |- + Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` + * `PENDING`: The application is still being processed. + * `HIRED`: The candidate was hired. + * `DECLINED`: The candidate was declined. + + + Leave this blank to get results matching all values. + name: outcomes + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterOutcomes' + - description: >- + Filter applications by the day they were created in the remote + system. This allows you to get applications that were created on or + after a certain day. + name: remote_created_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterRemoteCreatedAfter' + responses: + '200': + description: GET /ats/applications Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + candidate: + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: High Potential + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Initial Screening + job: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Backend Engineer + interviews: + - title: Interview with John Doe + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + '400': + description: GET /ats/applications Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetAllApplicationsResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiGetAllApplications403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiGetAllApplications404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiGetAllApplications503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/applications/{application_id}/stage: + put: + tags: + - Unified ATS API + summary: Move application to stage + operationId: UnifiedAtsApi_moveApplicationToStage + description: >- + Moves an application to a specified stage. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "stage_id": "3PJ8PZhZZa1eEdd2DtPNtVup" + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: PUT /ats/applications/:application_id/stage parameter + name: application_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageParameterApplicationId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: PUT /ats/applications/:application_id/stage request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageRequestBody + examples: + example1: + value: + stage_id: 3PJ8PZhZZa1eEdd2DtPNtVup + responses: + '200': + description: PUT /ats/applications/:application_id/stage Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageSuccessfulResponse + '400': + description: PUT /ats/applications/:application_id/stage Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiMoveApplicationToStageResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiMoveApplicationToStage403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiMoveApplicationToStage404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiMoveApplicationToStage503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/applications/{application_id}/result-links: + post: + tags: + - Unified ATS API + summary: Add result link to application + operationId: UnifiedAtsApi_addResultLink + description: >- + Add a result link to an application. + + This can, for example, be used to link a candidate back to a test + result/assessment in your application. As not all ATS tools have a + "result link" feature, we sometimes repurpose other fields to expose it. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "application_id": "8Xi6iZrwusZqJmDGXs49GBmJ", + "label": "Assessment Result", + "url": "https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG", + "details": { + "custom_field_name_prefix": "Acme:", + "attributes": [ + { + "key": "Score", + "value": "100%" + }, + { + "key": "Time", + "value": "2:30h" + } + ] + } + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: Kombo ID of the application you want to create the link for. + name: application_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksParameterApplicationId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/applications/:application_id/result-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksRequestBody + examples: + example1: + value: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + responses: + '200': + description: >- + POST /ats/applications/:application_id/result-links Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/result-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiAddResultLinkResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiAddResultLink403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiAddResultLink404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiAddResultLink503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/applications/{application_id}/notes: + post: + tags: + - Unified ATS API + summary: Add note to application + operationId: UnifiedAtsApi_addNoteToApplication + description: >- + Add a note to an application. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Add extra information to an application. This can be any extra text + information you want to add to an application. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "content": "A new message from the candidate is available in YourChat!", + "content_type": "PLAIN_TEXT" + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: Kombo ID of the application you want to create the note for. + name: application_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesParameterApplicationId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/applications/:application_id/notes request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesRequestBody + examples: + example1: + value: + content: A new message from the candidate is available in YourChat! + content_type: PLAIN_TEXT + responses: + '200': + description: POST /ats/applications/:application_id/notes Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/notes Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiAddNoteToApplicationResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddNoteToApplication403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddNoteToApplication404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddNoteToApplication503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/applications/{application_id}/attachments: + post: + tags: + - Unified ATS API + summary: Add attachment to application + operationId: UnifiedAtsApi_addAttachmentToApplication + description: |- + Uploads an attachment file for the specified applicant. + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + ### Example Request Body + + ```json + { + "application_id": "GRKdd9dibYKKCrmGRSMJf3wu", + "attachment": { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + } + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: POST /ats/applications/:application_id/attachments parameter + name: application_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: POST /ats/applications/:application_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsRequestBody + examples: + example1: + value: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + responses: + '200': + description: >- + POST /ats/applications/:application_id/attachments Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddAttachmentToApplicationResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddAttachmentToApplication403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddAttachmentToApplication404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddAttachmentToApplication503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/candidates: + get: + tags: + - Unified ATS API + summary: Get candidates + operationId: UnifiedAtsApi_getAllCandidates + description: >- + Retrieve all candidates. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterRemoteIds' + - description: >- + Filter the candidates based on an email address. When set, returns + only the candidates where the given `email` is in + `email_addresses`. + name: email + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterEmail' + responses: + '200': + description: GET /ats/candidates Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsCandidatesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - tags: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + name: High Potential + remote_id: '32' + title: Head of Marketing + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + applications: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: Initial Screening + remote_id: '32' + job: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: Backend Engineer + remote_id: '32' + '400': + description: GET /ats/candidates Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsCandidatesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetAllCandidatesResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetAllCandidates403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetAllCandidates404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetAllCandidates503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + post: + tags: + - Unified ATS API + summary: Create candidate + operationId: UnifiedAtsApi_createApplication + description: >- + Create a new candidate and application for the specified job. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + We realized that in practice it was always more about creating _applications_ instead of _candidates_, so we created a new, more aptly named one that you should use instead: [Create application](https://api.kombo.dev) + + Using it also has the benefit that we return the newly created applicant at the root level, so you can easily store its ID. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "candidate": { + "first_name": "Frank", + "last_name": "Doe", + "company": "Acme Inc.", + "title": "Head of Integrations", + "email_address": "frank.doe@example.com", + "phone_number": "+1-541-754-3010", + "gender": "MALE", + "salary_expectations": { + "amount": 100000, + "period": "YEAR" + }, + "availability_date": "2021-01-01", + "location": { + "city": "New York", + "country": "US" + }, + "social_links": [ + { + "url": "https://www.linkedin.com/in/frank-doe-123456789/" + }, + { + "url": "https://twitter.com/frankdoe" + } + ] + }, + "application": { + "job_id": "BDpgnpZ148nrGh4mYHNxJBgx", + "stage_id": "8x3YKRDcuRnwShdh96ShBNn1" + }, + "screening_question_answers": [ + { + "question_id": "3phFBNXRweGnDmsU9o2vdPuQ", + "answer": "Yes" + }, + { + "question_id": "EYJjhMQT3LtVKXnTbnRT8s6U", + "answer": [ + "GUzE666zfyjeoCJX6A8n7wh6", + "5WPHzzKAv8cx97KtHRUV96U8", + "7yZfKGzWigXxxRTygqAfHvyE" + ] + } + ], + "attachments": [ + { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + ] + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + requestBody: + description: POST /ats/candidates request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesRequestBody' + examples: + example1: + value: + candidate: + title: Head of Integrations + first_name: Frank + last_name: Doe + company: Acme Inc. + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + social_links: + - url: https://www.linkedin.com/in/frank-doe-123456789/ + - url: https://twitter.com/frankdoe + application: + job_id: BDpgnpZ148nrGh4mYHNxJBgx + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + responses: + '200': + description: POST /ats/candidates Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesSuccessfulResponse' + '400': + description: POST /ats/candidates Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiCreateApplicationResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiCreateApplication403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiCreateApplication404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiCreateApplication503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/candidates/{candidate_id}: + patch: + tags: + - Unified ATS API + summary: Update candidate 🦄 + operationId: UnifiedAtsApi_updateCandidate + description: >- + Currently in closed beta. + + **This endpoint is currently in closed beta!** We're testing it + with selected customers before its public release. If you're interested + in learning more or getting early access, please reach out. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: PATCH /ats/candidates/:candidate_id parameter + name: candidate_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdParameterCandidateId + requestBody: + description: PATCH /ats/candidates/:candidate_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAtsCandidatesCandidateIdRequestBody' + responses: + '200': + description: PATCH /ats/candidates/:candidate_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdSuccessfulResponse + '400': + description: PATCH /ats/candidates/:candidate_id Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + /ats/candidates/{candidate_id}/attachments: + post: + tags: + - Unified ATS API + summary: Add attachment to candidate + operationId: UnifiedAtsApi_addAttachmentToCandidate + description: >- + Uploads an attachment file for the specified candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "candidate_id": "GRKdd9dibYKKCrmGRSMJf3wu", + "attachment": { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: POST /ats/candidates/:candidate_id/attachments parameter + name: candidate_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsParameterCandidateId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: POST /ats/candidates/:candidate_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsRequestBody + examples: + example1: + value: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + responses: + '200': + description: POST /ats/candidates/:candidate_id/attachments Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddAttachmentToCandidateResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddAttachmentToCandidate403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddAttachmentToCandidate404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddAttachmentToCandidate503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/candidates/{candidate_id}/result-links: + post: + tags: + - Unified ATS API + summary: Add result link to candidate + operationId: UnifiedAtsApi_addResultLinkToCandidate + description: >- + Add a result link to a candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Please use [add result link to application](https://api.kombo.dev) instead. + This can, for example, be used to link a candidate back to a test + result/assessment in your application. As not all ATS tools have a + "result link" feature, we sometimes repurpose other fields to expose it. + + + This action is deprecated because result links usually concern + applications and not candidates. Use endpoint nested under + `/applications` instead.. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "label": "Assessment Result", + "url": "https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG", + "details": { + "custom_field_name_prefix": "Acme:", + "attributes": [ + { + "key": "Score", + "value": "100%" + }, + { + "key": "Time", + "value": "2:30h" + } + ] + } + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: Kombo ID of the candidate you want to create the link for. + name: candidate_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/candidates/:candidate_id/result-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksRequestBody + examples: + example1: + value: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + responses: + '200': + description: POST /ats/candidates/:candidate_id/result-links Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/result-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddResultLinkToCandidateResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddResultLinkToCandidate403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddResultLinkToCandidate404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiAddResultLinkToCandidate503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/candidates/{candidate_id}/tags: + post: + tags: + - Unified ATS API + summary: Add tag to candidate + operationId: UnifiedAtsApi_addCandidateTag + description: >- + Add a tag to a candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Kombo takes care of creating the tag if required, finding out the right + ID, and appending it to the list of tags. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "tag": { + "name": "Excellent Fit" + } + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: Kombo ID of the candidate you want to add the tag to. + name: candidate_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/candidates/:candidate_id/tags request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesCandidateIdTagsRequestBody' + examples: + example1: + value: + tag: + name: Excellent Fit + responses: + '200': + description: POST /ats/candidates/:candidate_id/tags Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/tags Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiAddCandidateTagResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiAddCandidateTag403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiAddCandidateTag404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiAddCandidateTag503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + delete: + tags: + - Unified ATS API + summary: Remove tag from candidate + operationId: UnifiedAtsApi_removeCandidateTag + description: >- + Remove a tag from a candidate based on its name. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + This will also succeed if the tag does not exist on the candidate. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "tag": { + "name": "Excellent Fit" + } + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: Kombo ID of the candidate you want to remove the tag from. + name: candidate_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: DELETE /ats/candidates/:candidate_id/tags request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsRequestBody + examples: + example1: + value: + tag: + name: Excellent Fit + responses: + '200': + description: DELETE /ats/candidates/:candidate_id/tags Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsSuccessfulResponse + '400': + description: DELETE /ats/candidates/:candidate_id/tags Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiRemoveCandidateTagResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiRemoveCandidateTag403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiRemoveCandidateTag404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiRemoveCandidateTag503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/tags: + get: + tags: + - Unified ATS API + summary: Get tags + operationId: UnifiedAtsApi_listTags + description: >- + Retrieve all tags. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsTagsParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsTagsParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsTagsParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsTagsParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsTagsParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsTagsParameterRemoteIds' + responses: + '200': + description: GET /ats/tags Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsTagsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/tags Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsTagsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiListTagsResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiListTags403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiListTags404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiListTags503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/application-stages: + get: + tags: + - Unified ATS API + summary: Get application stages + operationId: UnifiedAtsApi_getApplicationStages + description: >- + Get all application stages available in the ATS. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Get all application stages available in the ATS. This is deprecated because most ATS systems have separate sets of stages for each job. We'd recommend using the `stages` property on jobs instead.. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: >- + #/components/schemas/GetAtsApplicationStagesParameterIncludeDeleted + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterRemoteIds' + responses: + '200': + description: GET /ats/application-stages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/application-stages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetApplicationStagesResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiGetApplicationStages403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiGetApplicationStages404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiGetApplicationStages503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/jobs: + get: + tags: + - Unified ATS API + summary: Get jobs + operationId: UnifiedAtsApi_getJobs + description: >- + Retrieve all jobs. + + + Visit our in depth guide to learn more about: + + - 🔄 [Getting updates of the + data](/ats/features/implementation-guide/reading-jobs#getting-updates-of-the-data) + + - ❗ [Handling failing + syncs](/ats/features/implementation-guide/reading-jobs#handling-failing-syncs) + + - 🔍 [Letting your customer choose which jobs to + expose](/ats/features/implementation-guide/reading-jobs#let-your-customer-choose-which-jobs-to-expose-to-you) + + - 🔗 [Matching jobs in your database to ATS + jobs](/ats/features/implementation-guide/reading-jobs#match-jobs-in-your-database-to-ats-jobs) + + - 🗑️ [Reacting to deleted/closed + jobs](/ats/features/implementation-guide/reading-jobs#reacting-to-deleted-closed-jobs) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterRemoteIds' + - description: Filter by a comma-separated list of job codes. + name: job_codes + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterJobCodes' + - description: >- + Filter by the `post_url` field. Can be used to find a job based on + its public posting URL. + name: post_url + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterPostUrl' + - description: >- + **(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by + the `status` field. Can be used to find a job based on its status. + name: status + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterStatus' + - description: >- + Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, + `ARCHIVED` + + + Leave this blank to get results matching all values. + name: statuses + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterStatuses' + - description: >- + Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, + `UNLISTED`, `CONFIDENTIAL` + + + Leave this blank to get results matching all values. + name: visibilities + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterVisibilities' + - description: >- + Filter by the `name` field. Can be used to find a job by keywords + present in the job name. + name: name_contains + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsJobsParameterNameContains' + responses: + '200': + description: GET /ats/jobs Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsJobsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - description: >- +

Kombo is hiring engineers! If you are reading + this and you are located in Berlin, Germany, feel + free to contact us about this position.

+ id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + stages: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Initial Screening + index: 0 + screening_questions: + - title: Which is your primary programming language? + description: >- + Please enter the language you are most + comfortable with. + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + index: 0 + required: true + job_postings: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + hiring_team: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + hiring_team_roles: + - RECRUITER + '400': + description: GET /ats/jobs Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsJobsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetJobsResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetJobs403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetJobs404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetJobs503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/jobs/{job_id}/applications: + post: + tags: + - Unified ATS API + summary: Create application + operationId: UnifiedAtsApi_createApplicationCandidate + description: >- + Create a new application and candidate for the specified job. + + + Visit our in depth guide to learn more about: + + - 🌐 [Setting the source of the + application](/ats/features/implementation-guide/creating-applications#set-the-source-of-the-application) + + - 📎 [Uploading attachments with the + application](/ats/features/implementation-guide/creating-applications#upload-attachments-with-the-application) + + - ♻️ [Retry + behaviour](/ats/features/implementation-guide/creating-applications#retry-behaviour) + + - ✏️ [Writing answers to screening + questions](/ats/features/implementation-guide/creating-applications#write-answers-to-screening-questions) + + - ⚠️ [Handling ATS-specific + limitations](/ats/features/implementation-guide/creating-applications#handle-ats-specific-limitations) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "stage_id": "8x3YKRDcuRnwShdh96ShBNn1", + "candidate": { + "first_name": "Frank", + "last_name": "Doe", + "company": "Acme Inc.", + "title": "Head of Integrations", + "email_address": "frank.doe@example.com", + "phone_number": "+1-541-754-3010", + "gender": "MALE", + "salary_expectations": { + "amount": 100000, + "period": "YEAR" + }, + "availability_date": "2021-01-01", + "location": { + "city": "New York", + "country": "US" + } + }, + "attachments": [ + { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + ], + "screening_question_answers": [ + { + "question_id": "3phFBNXRweGnDmsU9o2vdPuQ", + "answer": "Yes" + }, + { + "question_id": "EYJjhMQT3LtVKXnTbnRT8s6U", + "answer": [ + "GUzE666zfyjeoCJX6A8n7wh6", + "5WPHzzKAv8cx97KtHRUV96U8", + "7yZfKGzWigXxxRTygqAfHvyE" + ] + } + ] + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + Kombo ID or Remote ID of the Job this candidate should apply for. If + you want to use the ID of the integrated system (remote_id) you need + to prefix the id with "remote:". You can use the remote ID if you do + not want to sync jobs. + name: job_id + in: path + required: true + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsParameterJobId' + examples: + example1: + value: BDpgnpZ148nrGh4mYHNxJBgx + requestBody: + description: POST /ats/jobs/:job_id/applications request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsRequestBody' + examples: + example1: + value: + candidate: + title: Head of Integrations + first_name: Frank + last_name: Doe + company: Acme Inc. + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + responses: + '200': + description: POST /ats/jobs/:job_id/applications Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsJobsJobIdApplicationsSuccessfulResponse + '400': + description: POST /ats/jobs/:job_id/applications Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiCreateApplicationCandidateResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiCreateApplicationCandidate403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiCreateApplicationCandidate404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsApiCreateApplicationCandidate503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /ats/users: + get: + tags: + - Unified ATS API + summary: Get users + operationId: UnifiedAtsApi_getAllUsers + description: >- + Retrieve all users. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsUsersParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsUsersParameterPageSize' + - description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + name: updated_after + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsUsersParameterUpdatedAfter' + - description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + name: include_deleted + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsUsersParameterIncludeDeleted' + - description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + name: ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsUsersParameterIds' + - description: Filter by a comma-separated list of remote IDs. + name: remote_ids + in: query + required: false + schema: + $ref: '#/components/schemas/GetAtsUsersParameterRemoteIds' + responses: + '200': + description: GET /ats/users Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsUsersSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/users Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsUsersErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetAllUsersResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetAllUsers403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetAllUsers404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/UnifiedAtsApiGetAllUsers503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /assessment/packages: + get: + tags: + - Unified ATS (Assessment) API + summary: Get packages + operationId: UnifiedAtsAssessmentApi_getAssessmentPackages + description: >- + Get all available assessment packages for an integration. + + + This is mainly intended for debugging. As you always need to submit the + full list of available packages when using ["set + packages"](https://api.kombo.dev), there shouldn't ever be a need to + call this endpoint in production. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + responses: + '200': + description: GET /assessment/packages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentPackagesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + packages: + - description: TypeScript coding skills assessments + id: '1001' + name: TypeScript + updated_at: '2023-06-29T18:47:40.890Z' + type: SKILLS_TEST + '400': + description: GET /assessment/packages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentPackagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + put: + tags: + - Unified ATS (Assessment) API + summary: Set packages + operationId: UnifiedAtsAssessmentApi_replaceAssessmentPackages + description: >- + Replaces the list of available assessment packages. + + + Packages that have been previously submitted through this endpoint but + aren't included again will be marked as deleted. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + requestBody: + description: PUT /assessment/packages request body + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesRequestBody' + examples: + example1: + value: + packages: + - description: TypeScript coding skills assessments + id: 1001X + type: SKILLS_TEST + name: TypeScript + - description: Video interview to assess communication skills + id: '1002' + type: VIDEO_INTERVIEW + name: Video Interview + responses: + '200': + description: PUT /assessment/packages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesSuccessfulResponse' + '400': + description: PUT /assessment/packages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + /assessment/orders/open: + get: + tags: + - Unified ATS (Assessment) API + summary: Get open orders + operationId: UnifiedAtsAssessmentApi_getOpenOrders + description: Get all open assessment orders of an integration. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + name: cursor + in: query + required: false + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenParameterCursor' + - description: The number of results to return per page. + name: page_size + in: query + required: false + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenParameterPageSize' + responses: + '200': + description: GET /assessment/orders/open Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenSuccessfulResponse' + '400': + description: GET /assessment/orders/open Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + /assessment/orders/{assessment_order_id}/result: + put: + tags: + - Unified ATS (Assessment) API + summary: Update order result + operationId: UnifiedAtsAssessmentApi_updateOrderResult + description: >- + Updates an assessment order result. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + ### Example Request Body + + + ```json + + { + "status": "COMPLETED", + "result_url": "https://example.com", + "completed_at": "2023-04-04T00:00:00.000Z", + "score": 90, + "max_score": 100, + "attributes": [ + { + "field": "remarks", + "value": "Test completed with passing score" + } + ] + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - description: PUT /assessment/orders/:assessment_order_id/result parameter + name: assessment_order_id + in: path + required: true + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultParameterAssessmentOrderId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: PUT /assessment/orders/:assessment_order_id/result request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultRequestBody + examples: + example1: + value: + status: COMPLETED + score: 90 + max_score: 100 + result_url: https://example.com + completed_at: '2023-04-04T00:00:00.000Z' + attributes: + - field: remarks + value: Test completed with passing score + responses: + '200': + description: >- + PUT /assessment/orders/:assessment_order_id/result Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultSuccessfulResponse + '400': + description: PUT /assessment/orders/:assessment_order_id/result Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsAssessmentApiUpdateOrderResultResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsAssessmentApiUpdateOrderResult403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsAssessmentApiUpdateOrderResult404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/UnifiedAtsAssessmentApiUpdateOrderResult503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /connect/create-link: + post: + tags: + - Kombo Connect + summary: Create connection link + operationId: KomboConnect_generateLink + description: >- + Generate a unique link that allows your user to enter the embedded Kombo + Connect flow. + + + > Check out [our full guide](https://api.kombo.dev) for more details + about implementing the connection flow into your app. + + + > Kombo will not deduplicate integrations for you that are created with + this endpoint. You are responsible for keeping track of integrations in + your system and prevent customers from connecting the same tool again. + Use the [reconnection link](https://api.kombo.dev) endpoint if you want + a customer to update their credentials. + + + ### Example Request Body + + + ```json + + { + "end_user_email": "test@example.com", + "end_user_organization_name": "Test Inc.", + "end_user_origin_id": "123", + "integration_category": "HRIS", + "integration_tool": "personio", + "language": "en" + } + + ``` + requestBody: + description: POST /connect/create-link request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkRequestBody' + examples: + example1: + value: + end_user_email: test@example.com + end_user_organization_name: Test Inc. + integration_category: HRIS + integration_tool: personio + end_user_origin_id: '123' + language: en + responses: + '200': + description: POST /connect/create-link Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkSuccessfulResponse' + examples: + example1: + value: + status: success + data: + link: >- + https://connect.kombo.dev/v1?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + '400': + description: POST /connect/create-link Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + /connect/integration-by-token/{token}: + get: + tags: + - Kombo Connect + summary: Get integration by token + operationId: KomboConnect_getIntegrationByToken + description: >- + Use this endpoint with the token you get from the connection flow to + retrieve information about the created integration. + + It works in a similar way as the OAuth2 code flow to securely retrieve information and connect the integration to your user. + + > Check out [our full guide](https://api.kombo.dev) for more details + about implementing the connection flow into your app. + + + This endpoint is used to ensure users can't trick your system connecting + their + + account in your system to another customers integration. You don't get + the integration ID + + from the `showKomboConnect(link)` function but only the short lived + token used + + for this endpoint so that users can't send you arbitrary data that you + would put + + into your system. + parameters: + - description: GET /connect/integration-by-token/:token parameter + name: token + in: path + required: true + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenParameterToken + responses: + '200': + description: GET /connect/integration-by-token/:token Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenSuccessfulResponse + examples: + example1: + value: + status: success + data: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + '400': + description: GET /connect/integration-by-token/:token Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + /connect/activate-integration: + post: + tags: + - Kombo Connect + summary: Activate integration (optional) + operationId: KomboConnect_activateIntegration + description: >- + Use this endpoint with the token you get from the connection flow to + retrieve information about the created integration. It works in a + similar way as the OAuth2 code flow to securely retrieve information and + connect the integration to your user. You do not need to call this + endpoint for an integration to become active. + + + We are deprecating this endpoint in favour of the [get + integration by code endpoint](https://api.kombo.dev). To migrate you + only have to change to the new API endpoint. + + + ### Example Request Body + + + ```json + + { + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXNzYWdlIjoiVGhpcyBpcyBub3QgYW4gYWN0dWFsIHRva2VuLiJ9.JulqgOZBMKceI8vh9YLpVX51efND0ZyfUNHDXLrPz_4" + } + + ``` + requestBody: + description: POST /connect/activate-integration request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectActivateIntegrationRequestBody' + responses: + '200': + description: POST /connect/activate-integration Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostConnectActivateIntegrationSuccessfulResponse + examples: + example1: + value: + status: success + data: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4EX + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + '400': + description: POST /connect/activate-integration Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostConnectActivateIntegrationErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + /custom/datev/passthrough: + post: + tags: + - Custom Endpoints + summary: Write raw DATEV ASCII file + operationId: CustomEndpoints_writeDatevAsciiFile + 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. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + 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 Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPassthroughSuccessfulResponse + '400': + description: POST /custom/datev/passthrough Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPassthroughErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsWriteDatevAsciiFileResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsWriteDatevAsciiFile403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsWriteDatevAsciiFile404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsWriteDatevAsciiFile503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /custom/datev/employees/{employee_id}/prepare-payroll: + put: + tags: + - Custom Endpoints + summary: Prepare DATEV Payroll + operationId: CustomEndpoints_prepareDatevPayroll + 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. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "EvLV61zdahkN4ftPJbmPCkdv", + "payroll_run": { + "date": "2022-05-01" + }, + "hourly_payments": [ + { + "hours": 14, + "lohnart": 200 + }, + { + "hours": 16, + "lohnart": 232 + } + ], + "fixed_payments": [ + { + "amount": 560, + "lohnart": 100 + } + ], + "custom_lodas": [ + { + "amount": 8, + "lohnart": 300, + "bearbeitungsschluessel": 4 + } + ] + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: datev:HWUTwvyx2wLoSUHphiWVrp28 + 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`) + name: employee_id + in: path + required: true + 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 Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollSuccessfulResponse + '400': + description: >- + PUT /custom/datev/employees/:employee_id/prepare-payroll Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsPrepareDatevPayrollResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsPrepareDatevPayroll403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsPrepareDatevPayroll404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsPrepareDatevPayroll503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /custom/datev/employees/{employee_id}/compensations: + put: + tags: + - Custom Endpoints + summary: Set DATEV compensations + operationId: CustomEndpoints_setDatevCompensations + description: >- + Sets the compensations for an employee on the specified effective date. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + 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. + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "3bdhemmSP1TPQDGWtRveRot9", + "effective_date": "2022-12-01", + "compensations": [ + { + "amount": 4500, + "currency": "EUR", + "period": "MONTH", + "lohnart": 200 + }, + { + "amount": 30, + "currency": "EUR", + "period": "HOUR" + } + ] + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: datev:HWUTwvyx2wLoSUHphiWVrp28 + 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`) + name: employee_id + in: path + required: true + 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 Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsSuccessfulResponse + '400': + description: >- + PUT /custom/datev/employees/:employee_id/compensations Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsSetDatevCompensationsResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsSetDatevCompensations403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsSetDatevCompensations404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsSetDatevCompensations503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /custom/datev/data-pushes: + get: + tags: + - Custom Endpoints + summary: Get DATEV data pushes + operationId: CustomEndpoints_getDataPushes + 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. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: datev:HWUTwvyx2wLoSUHphiWVrp28 + required: true + responses: + '200': + description: GET /custom/datev/data-pushes Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetCustomDatevDataPushesSuccessfulResponse + '400': + description: GET /custom/datev/data-pushes Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCustomDatevDataPushesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/CustomEndpointsGetDataPushesResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/CustomEndpointsGetDataPushes403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/CustomEndpointsGetDataPushes404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/CustomEndpointsGetDataPushes503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /custom/datev/push-data/general: + post: + tags: + - Custom Endpoints + summary: Push general data to DATEV + operationId: CustomEndpoints_pushGeneralDataToDatev + 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. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + 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 Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataGeneralSuccessfulResponse + '400': + description: POST /custom/datev/push-data/general Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataGeneralErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsPushGeneralDataToDatevResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsPushGeneralDataToDatev403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsPushGeneralDataToDatev404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsPushGeneralDataToDatev503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /custom/datev/push-data/payroll: + post: + tags: + - Custom Endpoints + summary: Push payroll data to DATEV + operationId: CustomEndpoints_pushPayrollData + 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. + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + 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 Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataPayrollSuccessfulResponse + '400': + description: POST /custom/datev/push-data/payroll Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataPayrollErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: '#/components/schemas/CustomEndpointsPushPayrollDataResponse' + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: '#/components/schemas/CustomEndpointsPushPayrollData403Response' + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: '#/components/schemas/CustomEndpointsPushPayrollData404Response' + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: '#/components/schemas/CustomEndpointsPushPayrollData503Response' + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + /custom/silae/employees/{employee_id}/payroll-supplements: + post: + tags: + - Custom Endpoints + summary: Write Payroll Supplement + operationId: CustomEndpoints_writePayrollSupplement + description: >- + Write a payroll supplement to Silae using the supplement code. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "EvLV61zdahkN4ftPJbmPCkdv", + "supplement_code": "200", + "effective_date": "2024-01-14", + "element_amount": 6 + } + + ``` + parameters: + - description: ID of the integration you want to interact with. + in: header + name: X-Integration-Id + schema: + type: string + example: silae:HWUTwvyx2wLoSUHphiWVrp28 + 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`) + name: employee_id + in: path + required: true + 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 + Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsSuccessfulResponse + '400': + description: >- + POST /custom/silae/employees/:employee_id/payroll-supplements Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsWritePayrollSupplementResponse + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsWritePayrollSupplement403Response + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsWritePayrollSupplement404Response + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + $ref: >- + #/components/schemas/CustomEndpointsWritePayrollSupplement503Response + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. +components: + parameters: {} + responses: {} + schemas: + GetCheckApiKeySuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + environment_id: + type: string + required: [] + customer_id: + description: '**(⚠️ Deprecated)** Renamed to `environment_id`.' + type: string + required: [] + required: + - environment_id + - customer_id + example: + environment_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + customer_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + required: + - status + - data + GetCheckApiKeyErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostForceSyncSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + already_queued: + description: 'We only allow 1 concurrent sync to be running or queued. ' + type: boolean + required: [] + sync_id: + description: 'ID of the newly-created or already-queued-or-running sync. ' + type: string + required: [] + required: + - already_queued + - sync_id + example: + already_queued: false + sync_id: 119ihtp91nA3dqRFiV67nXS6 + required: + - status + - data + PostForceSyncErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostForceSyncRequestBody: + type: object + PostPassthroughToolApiParameterTool: + description: >- + The ID of the tool whose passthrough API you want to call (e.g., + `personio`). + type: string + required: [] + PostPassthroughToolApiParameterApi: + description: >- + The ID of the passthrough API you want to call (some tools provide + multiple). Check the endpoint description for a list of all available + APIs. + type: string + required: [] + PostPassthroughToolApiSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + url: + description: >- + The full URL of the request that we automatically assemble for + you based on the specified `api`, the specified `path`, and the + integration's auth credentials. You can use this to debug + path-related issues (e.g., the API returning 404 errors). + type: string + format: url + required: [] + status: + description: The HTTP status code returned from the remote system. + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + required: [] + headers: + description: The HTTP headers returned from the remote system. + type: object + additionalProperties: + oneOf: + - type: string + - type: array + items: + type: string + required: [] + data: + description: >- + The HTTP body returned from the remote system. This will either + be an array or object (in the case that JSON was returned) or a + string (in any other case). + format: any + required: [] + required: + - url + - status + - headers + required: + - status + - data + PostPassthroughToolApiErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostPassthroughToolApiRequestBody: + allOf: + - type: object + properties: + method: + description: The HTTP method (e.g., `GET`) of the request. + type: string + enum: + - GET + - POST + - DELETE + - PUT + - PATCH + path: + description: >- + The path of the endpoint you want to call. We automatically + prepend the base URL of the API (all base URLs are documented in + the endpoint description). + type: string + pattern: /^\// + headers: + description: >- + The headers to send with the request. Note that we automatically + supply any authentication-related headers. + type: object + additionalProperties: + type: string + params: + description: >- + The query parameters to send in addition to the ones in the + `path`. + type: object + additionalProperties: + type: string + data: + description: >- + The data to submit as part of the request body. This can either + be an array or object (in which case we will forward it as JSON) + or a string (in which case we will forward it raw). + format: any + response_as_base64: + description: >- + If set to `true`, the response will be returned as a + base64-encoded string. This is useful for binary data (e.g., + PDFs). + type: boolean + multipart_form_data: + description: >- + The data to submit as part of the request body if the request's + `Content-Type` is `multipart/form-data`. + type: array + items: + description: >- + The data to submit as part of the request body if the + request's `Content-Type` is `multipart/form-data`. + type: object + properties: + name: + description: The key of the form data + type: string + value: + oneOf: + - description: >- + The value of the form data (Can be an object if the + field is of the type file) + type: string + - type: object + properties: + name: + description: Name of the file you want to upload. + type: string + content_type: + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + data: + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + type: string + data_url: + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + type: string + format: url + required: + - name + required: + - name + - value + api_options: + description: >- + Custom options interpreted by the passthrough API adapter you've + selected. These options are not documented right now as they're + only for very advanced use cases. + type: object + additionalProperties: + type: string + required: + - method + - path + example: + method: GET + path: /company/employees + DeleteIntegrationsIntegrationIdParameterIntegrationId: + type: string + required: [] + DeleteIntegrationsIntegrationIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + DeleteIntegrationsIntegrationIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteIntegrationsIntegrationIdRequestBody: + type: object + GetIntegrationsIntegrationIdParameterIntegrationId: + type: string + required: [] + GetIntegrationsIntegrationIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + required: [] + tool: + type: object + properties: + id: + description: The ID of the connected tool in Kombo (e.g. `factorial`). + type: string + required: [] + label: + type: string + required: [] + internal_label: + description: >- + Internal label that can help you debug specific variants of + the integration. Only show the `label` to your users. + nullable: true + type: string + required: [] + logo_url: + description: >- + URL to an SVG logo of the connected tool. The logo usually + contains the tool name. + type: string + format: url + required: [] + icon_url: + description: URL to a square SVG icon of the connected tool. + type: string + format: url + required: [] + required: + - id + - label + - internal_label + - logo_url + - icon_url + category: + type: string + enum: + - HRIS + - ATS + - ASSESSMENT + required: [] + status: + type: string + enum: + - ACTIVE + - INVALID + - INACTIVE + required: [] + end_user: + type: object + properties: + organization_name: + type: string + required: [] + creator_email: + nullable: true + type: string + format: email + required: [] + origin_id: + description: >- + The ID you have passed initially to the connection flow to + create this integration. + nullable: true + type: string + required: [] + required: + - organization_name + - creator_email + - origin_id + scope_config: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - name + created_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + beta: + type: boolean + required: [] + required: + - id + - tool + - category + - status + - end_user + - scope_config + - created_at + - beta + example: + id: factorial:8d1hpPsbjxUkoCoa1veLZGe5X + tool: + id: factorialX + label: Factorial + internal_label: null + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + category: HRIS + status: ACTIVE + end_user: + organization_name: Acme + creator_email: example-integration-creator@acme.com + origin_id: 2DQJAUtSzzzKP9buDTvUvPk3 + scope_config: + id: B1hu5NGyhdjSq5X3hxEz4bANX + name: Anonymous Scopes + created_at: '2022-08-07T14:01:29.196Z' + beta: false + required: + - status + - data + GetIntegrationsIntegrationIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostIntegrationsIntegrationIdRelinkParameterIntegrationId: + type: string + required: [] + PostIntegrationsIntegrationIdRelinkSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + link: + type: string + format: url + required: [] + required: + - link + required: + - status + - data + PostIntegrationsIntegrationIdRelinkErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostIntegrationsIntegrationIdRelinkRequestBody: + allOf: + - type: object + properties: + language: + description: Language of the connection flow UI. + type: string + enum: + - en + - de + - fr + default: en + required: [] + example: + language: en + GetToolsCategoryParameterCategory: + type: string + enum: + - hris + - ats + - assessment + required: [] + GetToolsCategorySuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tools: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + internal_label: + description: >- + Internal label that can help you debug specific variants + of the integration. Only show the `label` to your users. + nullable: true + type: string + required: [] + assets: + type: object + properties: + logo_url: + type: string + required: [] + icon_url: + type: string + required: [] + icon_black_url: + type: string + required: [] + required: + - logo_url + - icon_url + - icon_black_url + coverage: + description: >- + This describes the supported models and actions of this + tool. + type: object + properties: + read_models: + type: array + items: + description: List of models we can read for this tool. + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + required: [] + write_actions: + type: array + items: + description: List of supported write actions for this tool. + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + required: [] + features: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + required: [] + required: + - read_models + - write_actions + - features + required: + - id + - label + - internal_label + - assets + - coverage + required: [] + required: + - tools + example: + tools: + - id: factorialX + label: Factorial + internal_label: null + assets: + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + icon_black_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon-black.svg + coverage: + read_models: + - id: hris_employeesX + label: Employees + - id: hris_teamsX + label: Groups + write_actions: + - id: hris_create_employeeX + label: Create employee + features: + - id: automatic_source_writingX + label: Automatic Source Writing + required: + - status + - data + GetToolsCategoryErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdDiffParameterGroupId: + description: ID of the provisioning group (currently only `default` is allowed). + type: string + required: [] + PostHrisProvisioningGroupsGroupIdDiffSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + description: The users to provision, deprovision, and optionally update. + type: object + properties: + users: + type: object + properties: + to_provision: + description: >- + The users we've found in the HR systems who match the + provisioning filters but haven't been provisioned in your + system yet. + type: array + items: + type: object + properties: + email: + description: The email address of the user. + nullable: true + type: string + format: email + required: [] + employee: + description: >- + The field of the underlying employee (which ones are + included depends on the `employee_fields` array you + supplied). + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + required: [] + avatar: + nullable: true + type: string + required: [] + work_location_id: + nullable: true + type: string + required: [] + legal_entity_id: + nullable: true + type: string + required: [] + required: [] + required: + - email + - employee + required: [] + to_deprovision: + description: >- + The users who've been provisioned in your system but + couldn't be found in the HR system or don't match the + provisioning filters. + type: array + items: + type: object + properties: + origin_id: + description: >- + _Your_ ID for this user (that you submitted through + `origin_id`). + type: string + required: [] + email: + description: The email address of the user. + type: string + format: email + required: [] + required: + - origin_id + - email + required: [] + already_provisioned: + description: >- + The users who are in the HR system and match the + provisioning filters but have already been provisioned in + your system. + type: array + items: + type: object + properties: + origin_id: + description: >- + _Your_ ID for this user (that you submitted through + `origin_id`). + type: string + required: [] + email: + description: The email address of the user. + type: string + format: email + required: [] + employee: + description: >- + The field of the underlying employee (which ones are + included depends on the `employee_fields` array you + supplied). + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + required: [] + avatar: + nullable: true + type: string + required: [] + work_location_id: + nullable: true + type: string + required: [] + legal_entity_id: + nullable: true + type: string + required: [] + required: [] + required: + - origin_id + - email + - employee + required: [] + required: + - to_provision + - to_deprovision + - already_provisioned + required: + - users + required: + - status + - data + PostHrisProvisioningGroupsGroupIdDiffErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdDiffRequestBody: + allOf: + - type: object + properties: + provisioned_users: + description: Array of the already provisioned users in your system. + type: array + items: + type: object + properties: + origin_id: + description: >- + _Your_ ID for this user (_not_ an ID retrieved from + Kombo). + type: string + email: + description: This user's email address. + type: string + format: email + required: + - origin_id + - email + options: + description: Options to customize what we return. + type: object + properties: + employee_fields: + description: The employee fields relevant for your use case. + type: array + items: + type: string + enum: + - id + - remote_id + - first_name + - last_name + - groups + - avatar + - work_location_id + - legal_entity_id + required: + - employee_fields + required: + - provisioned_users + - options + example: + provisioned_users: + - origin_id: your_id_123 + email: johndoe@example.com + options: + employee_fields: + - id + - first_name + - last_name + PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId: + description: ID of the provisioning group (currently only `default` is allowed). + type: string + required: [] + PostHrisProvisioningGroupsGroupIdSetupLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + url: + description: The setup link URL to pass to the Kombo Connect SDK. + type: string + format: url + required: [] + expires_at: + description: When this link expires. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - url + - expires_at + example: + url: >- + https://connect.kombo.dev/v1/provisioning?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + expires_at: '2023-10-11T12:00:00.000Z' + required: + - status + - data + PostHrisProvisioningGroupsGroupIdSetupLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody: + allOf: + - type: object + properties: + language: + description: >- + Language of the UI. Please note that the provisioning setup UI + is _not_ translated yet but we're working on it and setting this + already will make sure the translations appear once released. + type: string + enum: + - en + - de + - fr + default: en + required: [] + example: + language: en + GetHrisEmployeesParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetHrisEmployeesParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetHrisEmployeesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisEmployeesParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetHrisEmployeesParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetHrisEmployeesParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetHrisEmployeesParameterEmploymentStatus: + description: >- + **(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** + Filter by the `employment_status` field. + type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + GetHrisEmployeesParameterEmploymentStatuses: + description: >- + Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, + `LEAVE` + + * `ACTIVE`: the employee is **actively employed** + + * `PENDING`: the employee is **not actively employed yet** (but they + signed their contract or are part of an onboarding process) + + * `INACTIVE`: a full-time employee is no longer employed, or, for a + contract worker when their contract runs out + + * `LEAVE`: the employee is still employed but **currently on leave** + (note that not all HR systems support this status — use our absences API + for detailed information) + + + Leave this blank to get results matching all values. + type: string + required: [] + GetHrisEmployeesParameterGroupIds: + description: >- + Filter by a comma-separated list of group IDs. We will only return + employees that are members of _any_ of the groups. + type: string + required: [] + GetHrisEmployeesParameterLegalEntityIds: + description: >- + Filter by a comma-separated list of legal entity IDs. We will only + return employees that are members of _any_ of the legal entities. + type: string + required: [] + GetHrisEmployeesParameterWorkLocationIds: + description: >- + Filter by a comma-separated list of work location IDs. We will only + return employees who are at _any_ of the work locations. + type: string + required: [] + GetHrisEmployeesParameterWorkEmails: + description: >- + Filter by a comma-separated list of work emails. We will only return + employees who have _any_ of the work emails. + type: string + required: [] + GetHrisEmployeesParameterPersonalEmails: + description: >- + Filter by a comma-separated list of personal emails. We will only return + employees who have _any_ of the personal emails. + type: string + required: [] + GetHrisEmployeesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + type: string + required: [] + employee_number: + description: An optional, organization-internal employee number. + nullable: true + type: string + required: [] + first_name: + description: The employee’s first name. + nullable: true + type: string + required: [] + last_name: + description: The employee’s last name. + nullable: true + type: string + required: [] + nationality: + description: The employee’s nationality. + nullable: true + type: string + required: [] + display_full_name: + description: >- + The employee’s full name, including middle names. Not + all HR systems provide an explicit display name, so we + recommend falling back to `first_name` and + `last_name`. + nullable: true + type: string + required: [] + job_title: + description: The employee’s job title. + nullable: true + type: string + required: [] + work_email: + description: >- + The employee’s work email address. If the email + address is invalid, we will set this to `null`. + nullable: true + type: string + format: email + required: [] + personal_email: + description: >- + The employee’s personal email address. If the email + address is invalid, we will set this to `null`. + nullable: true + type: string + format: email + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + description: Social security number + nullable: true + type: string + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, + `NON_BINARY`, or `NOT_SPECIFIED`) **or** — in rare + cases where can't find a clear mapping — the original + string passed through. + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + ethnicity: + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where + can't find a clear mapping — the original string + passed through. + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + marital_status: + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, + `SEPARATED`, or `NOT_MARRIED`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + employment_status: + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed + yet** (but they signed their contract or are part of + an onboarding process) + + - `INACTIVE`: the employee is **not actively + employed** anymore + + - `LEAVE`: the employee is still employed but + **currently on leave** (note that not all HR systems + support this status — use our absences API for + detailed information) + + + Please note that in rare cases, where we can't find a + clear mapping, the original string is passed through. + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + employment_type: + description: >- + One of 8 standardized values (`FULL_TIME`, + `PART_TIME`, `CONTRACT`, `INTERNSHIP`, `FREELANCE`, + `WORKING_STUDENT`, `APPRENTICESHIP`, or `TRAINING`) + **or** — in rare cases where can't find a clear + mapping — the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + weekly_hours: + description: The employee's weekly working hours. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + avatar: + description: >- + URL to the employee’s avatar. This is either the raw + URL from the HR system (in cases where it can be + requested without short-lived authentication) _or_ a + URL to a temporarily cached version of the file hosted + by Kombo. Kombo will delete the cached file after its + deletion in the source system. + nullable: true + type: string + required: [] + work_location_id: + description: >- + The ID of the employee’s work location. Can be used to + retrieve the work location from the `hris_locations` + endpoint. + nullable: true + type: string + required: [] + legal_entity_id: + description: The ID of the employee’s legal entity. + nullable: true + type: string + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with the + raw address string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field + contains the first part of the street information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + description: >- + The internationally unique IBAN identifying this + account. + nullable: true + type: string + default: null + required: [] + bic: + description: >- + The internationally unique BIC/SWIFT code + identifying the bank behind this account. + nullable: true + type: string + default: null + required: [] + account_number: + description: >- + The bank-specific account number. Some companies + use the account number field to put the IBAN + here. + nullable: true + type: string + default: null + required: [] + holder_name: + description: The name of the holder of this account. + nullable: true + type: string + default: null + required: [] + bank_name: + description: The name of the bank behind this account. + nullable: true + type: string + default: null + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + description: >- + Bank routing number (e.g. DE Bankleitzahl, + GB Sort Code, US ABA routing number, AU BSB + code + type: string + required: [] + type: + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + description: >- + The date the employee started working for the + organization. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + description: >- + The date when the employment ends. Can be in the past + or future. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + description: >- + The date and time the object was created in the remote + system. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + - type: object + properties: + employments: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + job_title: + description: >- + **(⚠️ Deprecated)** We now provide the + `job_title` directly on the employee model. + nullable: true + type: string + required: [] + pay_rate: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + pay_period: + description: >- + One of 10 standardized values (`HOUR`, `DAY`, + `WEEK`, `TWO_WEEKS`, `HALF_MONTH`, `MONTH`, + `TWO_MONTHS`, `QUARTER`, `HALF_YEAR`, or `YEAR`) + **or** — in rare cases where can't find a clear + mapping — the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - HOUR + - DAY + - WEEK + - TWO_WEEKS + - HALF_MONTH + - MONTH + - TWO_MONTHS + - QUARTER + - HALF_YEAR + - YEAR + required: [] + - description: >- + If we can't find a clear mapping: The + original string passed through. + type: string + required: [] + required: [] + pay_frequency: + description: >- + One of 9 standardized values (`DAILY`, `WEEKLY`, + `BIWEEKLY`, `MONTHLY`, `SEMIMONTHLY`, + `QUARTERLY`, `SEMIANNUALLY`, `ANNUALLY`, or + `PRO_RATA`) **or** — in rare cases where can't + find a clear mapping — the original string + passed through. + nullable: true + oneOf: + - type: string + enum: + - DAILY + - WEEKLY + - BIWEEKLY + - MONTHLY + - SEMIMONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - PRO_RATA + required: [] + - description: >- + If we can't find a clear mapping: The + original string passed through. + type: string + required: [] + required: [] + employment_type: + description: >- + One of 8 standardized values (`FULL_TIME`, + `PART_TIME`, `CONTRACT`, `INTERNSHIP`, + `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in + rare cases where can't find a clear mapping — + the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - description: >- + If we can't find a clear mapping: The + original string passed through. + type: string + required: [] + required: [] + pay_currency: + description: >- + Pay currency usually returned in [ISO 4217 + currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + nullable: true + type: string + required: [] + effective_date: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - job_title + - pay_rate + - pay_period + - pay_frequency + - employment_type + - pay_currency + - effective_date + - changed_at + - remote_deleted_at + - remote_data + - custom_fields + example: + id: 12vpXR7BeqYNWDShXRgsonnmX + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: [] + time_off_balances: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + type_id: + type: string + required: [] + balance: + description: The amount time available to the employee. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + balance_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + used: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + used_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - type_id + - balance + - balance_unit + - changed_at + - remote_deleted_at + - used + - used_unit + - remote_data + example: + id: FuyRuk5NqP3qTcThED3ymTuEX + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + required: [] + manager: + nullable: true + type: object + properties: + first_name: + description: The employee’s first name. + nullable: true + type: string + required: [] + last_name: + description: The employee’s last name. + nullable: true + type: string + required: [] + display_full_name: + description: >- + The employee’s full name, including middle names. + Not all HR systems provide an explicit display + name, so we recommend falling back to `first_name` + and `last_name`. + nullable: true + type: string + required: [] + id: + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + type: string + required: [] + work_email: + description: >- + The employee’s work email address. If the email + address is invalid, we will set this to `null`. + nullable: true + type: string + format: email + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + type: string + required: [] + required: + - first_name + - last_name + - display_full_name + - id + - work_email + - remote_id + example: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJgX + work_email: john.doe@acme.com + remote_id: '32' + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + type: + description: >- + Type of the group. Can be any of `DEPARTMENT`, + `TEAM`, and `COST_CENTER` + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + required: [] + required: + - id + - remote_id + - name + - type + example: + id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + type: TEAM + required: [] + legal_entity: + nullable: true + type: object + properties: + id: + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with + the raw address string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + required: + - id + - remote_id + - name + - address + example: + id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + description: >- + **(⚠️ Deprecated - Please use `groups` instead. It + includes the same data and the naming is less + confusing.)** Maintained field for backwards + compatibility. + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + type: + description: >- + Type of the group. Can be any of `DEPARTMENT`, + `TEAM`, and `COST_CENTER` + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + required: [] + required: + - id + - remote_id + - name + - type + example: + id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + type: TEAM + required: [] + work_location: + nullable: true + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with + the raw address string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + type: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - type + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - employments + - time_off_balances + - manager + - groups + - legal_entity + - teams + - work_location + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + employments: + - id: 12vpXR7BeqYNWDShXRgsonnmX + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + time_off_balances: + - id: FuyRuk5NqP3qTcThED3ymTuEX + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + manager: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJgX + work_email: john.doe@acme.com + remote_id: '32' + groups: + - id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + type: TEAM + legal_entity: + id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + - id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + type: TEAM + work_location: + id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + GetHrisEmployeesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + type: string + required: [] + employee_number: + description: An optional, organization-internal employee number. + nullable: true + type: string + required: [] + first_name: + description: The employee’s first name. + nullable: true + type: string + required: [] + last_name: + description: The employee’s last name. + nullable: true + type: string + required: [] + nationality: + description: The employee’s nationality. + nullable: true + type: string + required: [] + display_full_name: + description: >- + The employee’s full name, including middle names. Not all HR + systems provide an explicit display name, so we recommend + falling back to `first_name` and `last_name`. + nullable: true + type: string + required: [] + job_title: + description: The employee’s job title. + nullable: true + type: string + required: [] + work_email: + description: >- + The employee’s work email address. If the email address is + invalid, we will set this to `null`. + nullable: true + type: string + format: email + required: [] + personal_email: + description: >- + The employee’s personal email address. If the email address is + invalid, we will set this to `null`. + nullable: true + type: string + format: email + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + description: Social security number + nullable: true + type: string + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, `NON_BINARY`, or + `NOT_SPECIFIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + ethnicity: + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where can't find a + clear mapping — the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + marital_status: + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, `SEPARATED`, or + `NOT_MARRIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + employment_status: + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed yet** (but + they signed their contract or are part of an onboarding process) + + - `INACTIVE`: the employee is **not actively employed** anymore + + - `LEAVE`: the employee is still employed but **currently on + leave** (note that not all HR systems support this status — use + our absences API for detailed information) + + + Please note that in rare cases, where we can't find a clear + mapping, the original string is passed through. + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + employment_type: + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases where + can't find a clear mapping — the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + weekly_hours: + description: The employee's weekly working hours. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + avatar: + description: >- + URL to the employee’s avatar. This is either the raw URL from + the HR system (in cases where it can be requested without + short-lived authentication) _or_ a URL to a temporarily cached + version of the file hosted by Kombo. Kombo will delete the + cached file after its deletion in the source system. + nullable: true + type: string + required: [] + work_location_id: + description: >- + The ID of the employee’s work location. Can be used to retrieve + the work location from the `hris_locations` endpoint. + nullable: true + type: string + required: [] + legal_entity_id: + description: The ID of the employee’s legal entity. + nullable: true + type: string + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with the raw address + string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field contains the + first part of the street information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + description: The internationally unique IBAN identifying this account. + nullable: true + type: string + default: null + required: [] + bic: + description: >- + The internationally unique BIC/SWIFT code identifying the + bank behind this account. + nullable: true + type: string + default: null + required: [] + account_number: + description: >- + The bank-specific account number. Some companies use the + account number field to put the IBAN here. + nullable: true + type: string + default: null + required: [] + holder_name: + description: The name of the holder of this account. + nullable: true + type: string + default: null + required: [] + bank_name: + description: The name of the bank behind this account. + nullable: true + type: string + default: null + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + description: >- + Bank routing number (e.g. DE Bankleitzahl, GB Sort + Code, US ABA routing number, AU BSB code + type: string + required: [] + type: + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + description: The date the employee started working for the organization. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + description: The date when the employment ends. Can be in the past or future. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + description: The date and time the object was created in the remote system. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + required: + - status + - data + PostHrisEmployeesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesRequestBody: + allOf: + - type: object + properties: + first_name: + type: string + last_name: + type: string + work_email: + description: >- + The email address of the employee to be created. For tools where + the personal email address is required, we map this input to the + personal email. This is documented on a per-tool basis. + type: string + format: email + gender: + description: The gender of the employee. + type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + job_title: + description: Title of the position this person is working in. + type: string + home_address: + description: The employee's home address. + type: object + properties: + street_1: + type: string + street_2: + type: string + city: + type: string + state: + type: string + zip_code: + type: string + country: + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's home address. For systems that have other formats + than `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO + Codes to the appropriate value. + type: string + pattern: /^[A-Z]{2}$/ + date_of_birth: + description: >- + The employee's date of birth. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + mobile_phone_number: + type: string + nationality: + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + type: string + pattern: /^[A-Z]{2}$/ + start_date: + description: >- + Start date of the employee. Also considered to be the hire date. + This is a plain date (i.e., `yyyy-MM-dd`), all time information + is discarded. + 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 + remote_fields: + description: >- + Additional fields that we will pass through to specific HRIS + systems. + type: object + properties: + humaans: + description: Fields specific to Humaans. + type: object + properties: + employee: + description: >- + Fields that we will pass through to Humaans `Employee` + object. + type: object + additionalProperties: + format: any + silae: + description: Fields specific to Silae. + type: object + properties: + siret: + description: >- + The siret of the company. The siret can be found as the + remote ID of a Silae legal entity. + type: string + employee: + description: >- + Fields that we will passed through to Silae `Employee` + object. + type: object + additionalProperties: + format: any + employment: + description: >- + Fields that we will passed through to Silae `Employment` + object. + type: object + additionalProperties: + format: any + required: + - silae + required: + - first_name + - last_name + - work_email + example: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + PatchHrisEmployeesEmployeeIdParameterEmployeeId: + 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`) + type: string + required: [] + PatchHrisEmployeesEmployeeIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + type: string + required: [] + employee_number: + description: An optional, organization-internal employee number. + nullable: true + type: string + required: [] + first_name: + description: The employee’s first name. + nullable: true + type: string + required: [] + last_name: + description: The employee’s last name. + nullable: true + type: string + required: [] + nationality: + description: The employee’s nationality. + nullable: true + type: string + required: [] + display_full_name: + description: >- + The employee’s full name, including middle names. Not all HR + systems provide an explicit display name, so we recommend + falling back to `first_name` and `last_name`. + nullable: true + type: string + required: [] + job_title: + description: The employee’s job title. + nullable: true + type: string + required: [] + work_email: + description: >- + The employee’s work email address. If the email address is + invalid, we will set this to `null`. + nullable: true + type: string + format: email + required: [] + personal_email: + description: >- + The employee’s personal email address. If the email address is + invalid, we will set this to `null`. + nullable: true + type: string + format: email + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + description: Social security number + nullable: true + type: string + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, `NON_BINARY`, or + `NOT_SPECIFIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + ethnicity: + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where can't find a + clear mapping — the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + marital_status: + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, `SEPARATED`, or + `NOT_MARRIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + employment_status: + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed yet** (but + they signed their contract or are part of an onboarding process) + + - `INACTIVE`: the employee is **not actively employed** anymore + + - `LEAVE`: the employee is still employed but **currently on + leave** (note that not all HR systems support this status — use + our absences API for detailed information) + + + Please note that in rare cases, where we can't find a clear + mapping, the original string is passed through. + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + employment_type: + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases where + can't find a clear mapping — the original string passed through. + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + weekly_hours: + description: The employee's weekly working hours. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + avatar: + description: >- + URL to the employee’s avatar. This is either the raw URL from + the HR system (in cases where it can be requested without + short-lived authentication) _or_ a URL to a temporarily cached + version of the file hosted by Kombo. Kombo will delete the + cached file after its deletion in the source system. + nullable: true + type: string + required: [] + work_location_id: + description: >- + The ID of the employee’s work location. Can be used to retrieve + the work location from the `hris_locations` endpoint. + nullable: true + type: string + required: [] + legal_entity_id: + description: The ID of the employee’s legal entity. + nullable: true + type: string + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with the raw address + string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field contains the + first part of the street information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + description: The internationally unique IBAN identifying this account. + nullable: true + type: string + default: null + required: [] + bic: + description: >- + The internationally unique BIC/SWIFT code identifying the + bank behind this account. + nullable: true + type: string + default: null + required: [] + account_number: + description: >- + The bank-specific account number. Some companies use the + account number field to put the IBAN here. + nullable: true + type: string + default: null + required: [] + holder_name: + description: The name of the holder of this account. + nullable: true + type: string + default: null + required: [] + bank_name: + description: The name of the bank behind this account. + nullable: true + type: string + default: null + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + description: >- + Bank routing number (e.g. DE Bankleitzahl, GB Sort + Code, US ABA routing number, AU BSB code + type: string + required: [] + type: + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + description: The date the employee started working for the organization. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + description: The date when the employment ends. Can be in the past or future. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + description: The date and time the object was created in the remote system. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + required: + - status + - data + PatchHrisEmployeesEmployeeIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PatchHrisEmployeesEmployeeIdRequestBody: + allOf: + - type: object + properties: + first_name: + type: string + last_name: + type: string + work_email: + description: >- + The email address of the employee to be created. For tools where + the personal email address is required, we map this input to the + personal email. This is documented on a per-tool basis. + type: string + format: email + gender: + description: The gender of the employee. + type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + job_title: + description: Title of the position this person is working in. + type: string + home_address: + description: The employee's home address. + type: object + properties: + street_1: + type: string + street_2: + type: string + city: + type: string + state: + type: string + zip_code: + type: string + country: + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's home address. For systems that have other formats + than `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO + Codes to the appropriate value. + type: string + pattern: /^[A-Z]{2}$/ + date_of_birth: + description: >- + The employee's date of birth. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + mobile_phone_number: + type: string + nationality: + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + type: string + pattern: /^[A-Z]{2}$/ + start_date: + description: >- + Start date of the employee. Also considered to be the hire date. + This is a plain date (i.e., `yyyy-MM-dd`), all time information + is discarded. + 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 + remote_fields: + description: >- + Additional fields that we will pass through to specific HRIS + systems. + type: object + properties: + humaans: + description: Fields specific to Humaans. + type: object + properties: + employee: + description: >- + Fields that we will pass through to Humaans `Employee` + object. + type: object + additionalProperties: + format: any + silae: + description: Fields specific to Silae. + type: object + properties: + siret: + description: >- + The siret of the company. The siret can be found as the + remote ID of a Silae legal entity. + type: string + employee: + description: >- + Fields that we will passed through to Silae `Employee` + object. + type: object + additionalProperties: + format: any + employment: + description: >- + Fields that we will passed through to Silae `Employment` + object. + type: object + additionalProperties: + format: any + required: + - silae + required: + - first_name + - last_name + - work_email + example: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + - type: object + properties: + ssn: + description: Social security number of the employee. + type: string + marital_status: + description: Marital status of an employee. + type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + termination_date: + description: >- + Date on which the employment ends. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + tax_id: + description: >- + Tax ID of the employee. Most contries have different formats of + that. In Germany, this is the `Steuer ID` and in the US it's the + `TIN`. + type: string + nationality: + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + type: string + pattern: /^[A-Z]{2}$/ + required: [] + PostHrisEmployeesEmployeeIdAttachmentsParameterEmployeeId: + type: string + required: [] + PostHrisEmployeesEmployeeIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostHrisEmployeesEmployeeIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesEmployeeIdAttachmentsRequestBody: + type: object + GetHrisTeamsParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetHrisTeamsParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetHrisTeamsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisTeamsParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetHrisTeamsParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetHrisTeamsParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetHrisTeamsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + description: >- + Type of the group. Can be any of `DEPARTMENT`, `TEAM`, and + `COST_CENTER` + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + required: [] + parent_id: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - changed_at + - remote_deleted_at + - type + - parent_id + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: + - status + - data + GetHrisTeamsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisGroupsParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetHrisGroupsParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetHrisGroupsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisGroupsParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetHrisGroupsParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetHrisGroupsParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetHrisGroupsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + description: >- + Type of the group. Can be any of `DEPARTMENT`, `TEAM`, and + `COST_CENTER` + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + required: [] + parent_id: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - changed_at + - remote_deleted_at + - type + - parent_id + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: + - status + - data + GetHrisGroupsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisEmploymentsParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetHrisEmploymentsParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetHrisEmploymentsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisEmploymentsParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetHrisEmploymentsParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetHrisEmploymentsParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetHrisEmploymentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + job_title: + description: >- + **(⚠️ Deprecated)** We now provide the `job_title` + directly on the employee model. + nullable: true + type: string + required: [] + pay_rate: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + pay_period: + description: >- + One of 10 standardized values (`HOUR`, `DAY`, `WEEK`, + `TWO_WEEKS`, `HALF_MONTH`, `MONTH`, `TWO_MONTHS`, + `QUARTER`, `HALF_YEAR`, or `YEAR`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + nullable: true + oneOf: + - type: string + enum: + - HOUR + - DAY + - WEEK + - TWO_WEEKS + - HALF_MONTH + - MONTH + - TWO_MONTHS + - QUARTER + - HALF_YEAR + - YEAR + required: [] + - description: >- + If we can't find a clear mapping: The original string + passed through. + type: string + required: [] + required: [] + pay_frequency: + description: >- + One of 9 standardized values (`DAILY`, `WEEKLY`, + `BIWEEKLY`, `MONTHLY`, `SEMIMONTHLY`, `QUARTERLY`, + `SEMIANNUALLY`, `ANNUALLY`, or `PRO_RATA`) **or** — in + rare cases where can't find a clear mapping — the original + string passed through. + nullable: true + oneOf: + - type: string + enum: + - DAILY + - WEEKLY + - BIWEEKLY + - MONTHLY + - SEMIMONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - PRO_RATA + required: [] + - description: >- + If we can't find a clear mapping: The original string + passed through. + type: string + required: [] + required: [] + employment_type: + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - description: >- + If we can't find a clear mapping: The original string + passed through. + type: string + required: [] + required: [] + pay_currency: + description: >- + Pay currency usually returned in [ISO 4217 currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + nullable: true + type: string + required: [] + effective_date: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - job_title + - pay_rate + - pay_period + - pay_frequency + - employment_type + - pay_currency + - effective_date + - changed_at + - remote_deleted_at + - remote_data + - custom_fields + example: + id: 12vpXR7BeqYNWDShXRgsonnmX + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 12vpXR7BeqYNWDShXRgsonnmX + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: + - status + - data + GetHrisEmploymentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisLocationsParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetHrisLocationsParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetHrisLocationsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisLocationsParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetHrisLocationsParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetHrisLocationsParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetHrisLocationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with the raw + address string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field contains + the first part of the street information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + type: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - type + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + GetHrisLocationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisAbsenceTypesParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetHrisAbsenceTypesParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetHrisAbsenceTypesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisAbsenceTypesParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetHrisAbsenceTypesParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetHrisAbsenceTypesParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetHrisAbsenceTypesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and `end_half_day`) + for this absence type. + nullable: true + type: boolean + required: [] + exact_times_supported: + description: >- + `true` if the system supports exact times (absences with a + `start_time` and an `end_time`) for this absence, `false` + if not. + nullable: true + type: boolean + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvDX + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: xzZoKssDaMZAd62kxayzzQvDX + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisAbsenceTypesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisTimeOffBalancesParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetHrisTimeOffBalancesParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetHrisTimeOffBalancesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisTimeOffBalancesParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetHrisTimeOffBalancesParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetHrisTimeOffBalancesParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetHrisTimeOffBalancesParameterEmployeeId: + description: Filter by a specific employee using their ID. + type: string + required: [] + GetHrisTimeOffBalancesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + type_id: + type: string + required: [] + balance: + description: The amount time available to the employee. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + balance_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + used: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + used_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - type_id + - balance + - balance_unit + - changed_at + - remote_deleted_at + - used + - used_unit + - remote_data + example: + id: FuyRuk5NqP3qTcThED3ymTuEX + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + - type: object + properties: + type: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and + `end_half_day`) for this absence type. + nullable: true + type: boolean + required: [] + exact_times_supported: + description: >- + `true` if the system supports exact times + (absences with a `start_time` and an `end_time`) + for this absence, `false` if not. + nullable: true + type: boolean + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvDX + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - type + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: FuyRuk5NqP3qTcThED3ymTuEX + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvDX + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisTimeOffBalancesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisAbsencesParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetHrisAbsencesParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetHrisAbsencesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisAbsencesParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetHrisAbsencesParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetHrisAbsencesParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetHrisAbsencesParameterDateFrom: + description: >- + Filter for all the absences that either start _or_ haven't ended yet + on/after this day. If you imagine a calendar displaying absences, this + defines the left-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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: [] + GetHrisAbsencesParameterDateUntil: + description: >- + Filter for absences that start on or before this day (but might continue + after). If you imagine a calendar displaying absences, this defines the + right-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all + time information is discarded. + 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: [] + GetHrisAbsencesParameterTypeIds: + description: Filter by a comma-separated list of absence type IDs. + type: string + required: [] + GetHrisAbsencesParameterEmployeeId: + description: Filter by a specific employee using their ID. + type: string + required: [] + GetHrisAbsencesParameterTimeFrom: + description: >- + **(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for + absences that either start after or start before and end after a certain + time. + 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: [] + GetHrisAbsencesParameterTimeUntil: + description: >- + **(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter for + absences that start before a certain time. + 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: [] + GetHrisAbsencesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + approver_id: + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible + for approving this absence. + nullable: true + type: string + required: [] + start_date: + description: >- + The date this absence starts in the `yyyy-MM-dd` + format. + nullable: true + type: string + required: [] + end_date: + description: The date this absence ends in the `yyyy-MM-dd` format. + nullable: true + type: string + required: [] + start_half_day: + description: >- + `true` if the absence starts in the middle of the day, + `false` if not, and `null` if the absence type doesn't + support half-day absences. If an absence goes across + multiple days and `start_half_day` is set, it means + that on the last day the absence is only on the first + half of the day. + nullable: true + type: boolean + required: [] + end_half_day: + description: >- + `true` if the absence ends in the middle of the day, + `false` if not, and `null` if the absence type doesn't + support half-day absences. If an absence goes across + multiple days and `end_half_day` is set, it means that + on the first day the absence only starts in the second + half-day. + nullable: true + type: boolean + required: [] + start_time: + description: >- + The time at which this absence starts. Follows the + format `HH:mm:ss` (e.g., `14:45:15`). + nullable: true + type: string + required: [] + end_time: + description: >- + The time at which this absence ends. Follows the + format `HH:mm:ss` (e.g., `14:45:15`). + nullable: true + type: string + required: [] + amount: + description: The amount of time this absence takes. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + unit: + description: >- + The unit of time for this absence. Can be `HOURS` or + `DAYS`. + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + status: + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in + rare cases where can't find a clear mapping — the + original string passed through. + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + employee_note: + description: A note the employee has added to this absence. + nullable: true + type: string + required: [] + type_id: + description: The Kombo absence type ID of this absence. + nullable: true + type: string + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + type: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and + `end_half_day`) for this absence type. + nullable: true + type: boolean + required: [] + exact_times_supported: + description: >- + `true` if the system supports exact times + (absences with a `start_time` and an `end_time`) + for this absence, `false` if not. + nullable: true + type: boolean + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvDX + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - type + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvDX + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisAbsencesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisAbsencesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + approver_id: + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible for + approving this absence. + nullable: true + type: string + required: [] + start_date: + description: The date this absence starts in the `yyyy-MM-dd` format. + nullable: true + type: string + required: [] + end_date: + description: The date this absence ends in the `yyyy-MM-dd` format. + nullable: true + type: string + required: [] + start_half_day: + description: >- + `true` if the absence starts in the middle of the day, `false` + if not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `start_half_day` is set, it means that on the last day the + absence is only on the first half of the day. + nullable: true + type: boolean + required: [] + end_half_day: + description: >- + `true` if the absence ends in the middle of the day, `false` if + not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `end_half_day` is set, it means that on the first day the + absence only starts in the second half-day. + nullable: true + type: boolean + required: [] + start_time: + description: >- + The time at which this absence starts. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + nullable: true + type: string + required: [] + end_time: + description: >- + The time at which this absence ends. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + nullable: true + type: string + required: [] + amount: + description: The amount of time this absence takes. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + unit: + description: The unit of time for this absence. Can be `HOURS` or `DAYS`. + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + status: + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in rare cases + where can't find a clear mapping — the original string passed + through. + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + employee_note: + description: A note the employee has added to this absence. + nullable: true + type: string + required: [] + type_id: + description: The Kombo absence type ID of this absence. + nullable: true + type: string + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + PostHrisAbsencesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisAbsencesRequestBody: + allOf: + - type: object + properties: + employee_id: + description: >- + The ID of the employee in Kombo or their ID in the remote system + by prefixing it with `remote:` (e.g., `remote:12312`) + type: string + absence_type_id: + description: The ID of the absence type in Kombo (not its `remote_id`). + type: string + status: + description: >- + Specify if the absence should be created in the requested or + approved state. Please note that some tools might approve + absences automatically if they were created for an absence type + that does not require approval. There are more edge cases that + might cause an absence to be approved automatically. + type: string + enum: + - REQUESTED + - APPROVED + default: REQUESTED + start_date: + description: >- + When the absence starts. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + end_date: + description: >- + When the absence ends. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + start_half_day: + description: '`true` if the absence should start in the middle of the day.' + type: boolean + default: false + end_half_day: + description: '`true` if the absence should end in the middle of the day.' + type: boolean + default: false + amount: + description: >- + Specifying this also requires specifying `unit`. This is + supported by very few tools. + type: number + format: double + minimum: 0 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + unit: + description: Specifying this also requires specifying `amount`. + type: string + enum: + - HOURS + - DAYS + employee_note: + description: A note describing the reason for this absence. + nullable: true + type: string + start_time: + description: >- + When the absence begins. Follows the format `HH:mm` or + `HH:mm:ss` (e.g., `14:45:15`). If `start_time` is specified, + `end_time` has to be specified as well. + type: string + pattern: /^(?:2[0-3]|[01]?\d):[0-5]?\d(:[0-5]?\d)?$/ + end_time: + description: >- + When the absence ends. Follows the format `HH:mm` or `HH:mm:ss` + (e.g., `14:45:15`). If `end_time` is specified, `start_time` has + to be specified as well. + type: string + pattern: /^(?:2[0-3]|[01]?\d):[0-5]?\d(:[0-5]?\d)?$/ + required: + - employee_id + - absence_type_id + - employee_note + example: + employee_id: wXJMxwDvPAjrJ4CyqdV9 + absence_type_id: 3YKtQ7qedsrcCady1jSyAkY1 + start_date: '2019-09-17' + end_date: '2019-09-21' + start_time: '08:30:00' + end_time: '16:00:00' + start_half_day: false + end_half_day: false + employee_note: Visiting the aliens + DeleteHrisAbsencesAbsenceIdParameterAbsenceId: + description: The ID of the absence + type: string + required: [] + DeleteHrisAbsencesAbsenceIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + approver_id: + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible for + approving this absence. + nullable: true + type: string + required: [] + start_date: + description: The date this absence starts in the `yyyy-MM-dd` format. + nullable: true + type: string + required: [] + end_date: + description: The date this absence ends in the `yyyy-MM-dd` format. + nullable: true + type: string + required: [] + start_half_day: + description: >- + `true` if the absence starts in the middle of the day, `false` + if not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `start_half_day` is set, it means that on the last day the + absence is only on the first half of the day. + nullable: true + type: boolean + required: [] + end_half_day: + description: >- + `true` if the absence ends in the middle of the day, `false` if + not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `end_half_day` is set, it means that on the first day the + absence only starts in the second half-day. + nullable: true + type: boolean + required: [] + start_time: + description: >- + The time at which this absence starts. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + nullable: true + type: string + required: [] + end_time: + description: >- + The time at which this absence ends. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + nullable: true + type: string + required: [] + amount: + description: The amount of time this absence takes. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + unit: + description: The unit of time for this absence. Can be `HOURS` or `DAYS`. + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + status: + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in rare cases + where can't find a clear mapping — the original string passed + through. + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - description: >- + If we can't find a clear mapping: The original string passed + through. + type: string + required: [] + required: [] + employee_note: + description: A note the employee has added to this absence. + nullable: true + type: string + required: [] + type_id: + description: The Kombo absence type ID of this absence. + nullable: true + type: string + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQFX + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + DeleteHrisAbsencesAbsenceIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteHrisAbsencesAbsenceIdRequestBody: + type: object + properties: {} + example: *ref_0 + GetHrisLegalEntitiesParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetHrisLegalEntitiesParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetHrisLegalEntitiesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisLegalEntitiesParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetHrisLegalEntitiesParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetHrisLegalEntitiesParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetHrisLegalEntitiesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + description: >- + The globally unique ID of this object generated by Kombo. + We recommend using this as a stable primary key for + syncing. + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it + might sometimes be compromised of multiple identifiers if + a system doesn't provide a clear primary key. + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with the raw + address string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field contains + the first part of the street information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted when + Kombo can't retrieve them from the remote system anymore. + Kombo will also anonymize entries 14 days after they + disappear. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - changed_at + - remote_deleted_at + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ciX + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + required: + - status + - data + GetHrisLegalEntitiesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsApplicationsParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetAtsApplicationsParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetAtsApplicationsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsApplicationsParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetAtsApplicationsParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetAtsApplicationsParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetAtsApplicationsParameterOutcome: + description: >- + **(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter + applications by outcome. This allows you to get applications that are + for example `PENDING`, `HIRED`, or `DECLINED`. + type: string + enum: + - PENDING + - HIRED + - DECLINED + required: [] + GetAtsApplicationsParameterOutcomes: + description: |- + Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` + * `PENDING`: The application is still being processed. + * `HIRED`: The candidate was hired. + * `DECLINED`: The candidate was declined. + + + Leave this blank to get results matching all values. + type: string + required: [] + GetAtsApplicationsParameterRemoteCreatedAfter: + description: >- + Filter applications by the day they were created in the remote system. + This allows you to get applications that were created on or after a + certain day. + 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: [] + GetAtsApplicationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + description: >- + Parsed status of the application. If Kombo identifies + that the application was accepted and the candidate + hired, it will be `HIRED`. If the application was + rejected or the candidate declined, it will be + `DECLINED`. If the application is still in process, it + will be `PENDING`. + + Kombo will always try to deliver this information as + reliably as possible. + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + required: [] + rejection_reason_name: + description: Reason for the rejection of the candidate. + nullable: true + type: string + required: [] + current_stage_id: + description: ID of the current application stage + nullable: true + type: string + required: [] + job_id: + nullable: true + type: string + required: [] + candidate_id: + nullable: true + type: string + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + - current_stage_id + - job_id + - candidate_id + - custom_fields + - changed_at + - remote_deleted_at + - remote_created_at + - remote_updated_at + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + candidate: + nullable: true + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + description: First name of the candidate. + nullable: true + type: string + required: [] + last_name: + description: Last name of the candidate. + nullable: true + type: string + required: [] + email_addresses: + description: >- + A list of email addresses of the candidate + with an optional type. If an email address is + invalid, it will be filtered out. + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + description: >- + Kombo exposes type information through + this field. If we don't get any + information from the tool, we will set + this to `null`. + nullable: true + type: string + required: [] + required: + - type + default: [] + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email_addresses + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + - type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: High Potential + required: [] + required: + - tags + required: [] + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Initial Screening + job: + nullable: true + type: object + properties: + id: + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + type: string + required: [] + name: + description: Title of the job. + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Backend Engineer + interviews: + type: array + items: + type: object + properties: + title: + description: The title of the interview. + nullable: true + type: string + required: [] + id: + description: The globally unique Kombo ID of the interview. + type: string + required: [] + remote_id: + description: >- + The ID of the interview in the integrated + system. + nullable: true + type: string + required: [] + starting_at: + description: The start time of the interview. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + ending_at: + description: The end time of the interview. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + location: + description: Location of the interview. + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. + If not, it contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with + the raw address string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + required: + - id + - remote_id + - title + - starting_at + - ending_at + - location + example: + title: Interview with John Doe + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + required: [] + required: + - candidate + - current_stage + - job + - interviews + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + candidate: + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: High Potential + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Initial Screening + job: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Backend Engineer + interviews: + - title: Interview with John Doe + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + required: + - status + - data + GetAtsApplicationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAtsApplicationsApplicationIdStageParameterApplicationId: + type: string + required: [] + PutAtsApplicationsApplicationIdStageSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAtsApplicationsApplicationIdStageErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAtsApplicationsApplicationIdStageRequestBody: + allOf: + - type: object + properties: + stage_id: + description: >- + The ID of the stage to move the application to. This ID must be + the ID of a stage that is connected to the job that the + application is connected to. + type: string + remote_fields: + description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + post_headers: + description: Headers we will pass with `POST` requests to Greenhouse. + type: object + properties: + On-Behalf-Of: + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + nullable: true + type: string + default: null + required: + - stage_id + example: + stage_id: 3PJ8PZhZZa1eEdd2DtPNtVup + PostAtsApplicationsApplicationIdResultLinksParameterApplicationId: + description: Kombo ID of the application you want to create the link for. + type: string + required: [] + PostAtsApplicationsApplicationIdResultLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdResultLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdResultLinksRequestBody: + allOf: + - type: object + properties: + label: + description: >- + If we can display a display name for the link, we will use this + label. + type: string + url: + description: URL of the link. + type: string + format: url + details: + description: >- + Additional details with attributes that will be added to the + result. This can be percentages, scores, or any text. + + + We generally recommend using short attribute keys and a short + custom_field_name_prefix to avoid overflowing the ATS UI. + type: object + properties: + custom_field_name_prefix: + description: >- + That will be added to the attribute labels if they are used + for custom fields. If you specify `Acme:` as the prefix, the + custom field will be named `Acme: Score`. Putting in the + name of your company/product is a good idea. + type: string + attributes: + type: array + items: + type: object + properties: + key: + description: The name of the attribute + type: string + value: + description: The value of the attribute + type: string + required: + - key + - value + required: + - custom_field_name_prefix + - attributes + remote_fields: + description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + post_headers: + description: Headers we will pass with `POST` requests to Greenhouse. + type: object + properties: + On-Behalf-Of: + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + nullable: true + type: string + default: null + required: + - label + - url + example: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + PostAtsApplicationsApplicationIdNotesParameterApplicationId: + description: Kombo ID of the application you want to create the note for. + type: string + required: [] + PostAtsApplicationsApplicationIdNotesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdNotesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdNotesRequestBody: + allOf: + - type: object + properties: + content: + description: UTF-8 content of the note. + type: string + content_type: + description: >- + Content type of the note. Currently only `PLAIN_TEXT` is + supported. + type: string + enum: + - PLAIN_TEXT + remote_fields: + description: Tool specific remote fields for the note. + type: object + properties: + teamtailor: + description: Teamtailor specific remote fields for the note. + type: object + properties: + user_id: + description: >- + ID of the user that created the note. Defaults to the + first admin user found. + type: string + greenhouse: + description: Greenhouse specific remote fields for the note. + type: object + properties: + visibility: + description: Visibility of the created note. + type: string + enum: + - admin_only + - private + - public + recruitee: + description: Recruitee specific remote fields for the note. + type: object + properties: + visibility: + description: Visibility of the created note. + format: any + is_json: + description: >- + Whether the note is in a stringified JSON format. If + true, content should contain a valid JSON as per the + [Recruitee API + documentation](https://docs.recruitee.com/reference/candidatesidnotes) + (body_json field). If false we add the note as a plain + text. + type: boolean + required: + - content + - content_type + example: + content: A new message from the candidate is available in YourChat! + content_type: PLAIN_TEXT + PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId: + type: string + required: [] + PostAtsApplicationsApplicationIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdAttachmentsRequestBody: + allOf: + - type: object + properties: + attachment: + allOf: + - type: object + properties: + name: + description: Name of the file you want to upload. + type: string + content_type: + description: >- + Content/MIME type of the file (e.g., `application/pdf`). + This is required if you provide `data` and optional if + you provide `data_url`. + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + data: + description: >- + Base64-encoded contents of the file you want to upload. + You must provide either this or `data_url`. + type: string + data_url: + description: >- + Publicly accessible URL to the file you want to upload. + You must provide either this or `data`. + type: string + format: url + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + remote_fields: + description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + post_headers: + description: Headers we will pass with `POST` requests to Greenhouse. + type: object + properties: + On-Behalf-Of: + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + nullable: true + type: string + default: null + required: + - attachment + example: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + GetAtsCandidatesParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetAtsCandidatesParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetAtsCandidatesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsCandidatesParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetAtsCandidatesParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetAtsCandidatesParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetAtsCandidatesParameterEmail: + description: >- + Filter the candidates based on an email address. When set, returns only + the candidates where the given `email` is in `email_addresses`. + type: string + format: email + required: [] + GetAtsCandidatesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + title: + description: The current job title of the candidate. + nullable: true + type: string + required: [] + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + description: First name of the candidate. + nullable: true + type: string + required: [] + last_name: + description: Last name of the candidate. + nullable: true + type: string + required: [] + company: + description: The current company of the candidate. + nullable: true + type: string + required: [] + confidential: + description: >- + Whether the candidate's profile is confidential in the + ATS. + nullable: true + type: boolean + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + description: A list of phone numbers of the candidate. + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + description: >- + Kombo exposes type information through this + field. If we don't get any information from the + tool, we will set this to `null`. + nullable: true + type: string + default: null + required: [] + required: + - phone_number + default: [] + required: [] + email_addresses: + description: >- + A list of email addresses of the candidate with an + optional type. If an email address is invalid, it will + be filtered out. + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + description: >- + Kombo exposes type information through this + field. If we don't get any information from the + tool, we will set this to `null`. + nullable: true + type: string + required: [] + required: + - type + default: [] + required: [] + social_media: + description: List of social media accounts of the candidate. + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + required: [] + location: + description: Location of the candidate. + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with the + raw address string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field + contains the first part of the street information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + title: Head of Marketing + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: High Potential + remote_id: '32' + required: [] + applications: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + description: >- + Parsed status of the application. If Kombo + identifies that the application was accepted + and the candidate hired, it will be `HIRED`. + If the application was rejected or the + candidate declined, it will be `DECLINED`. + If the application is still in process, it + will be `PENDING`. + + Kombo will always try to deliver this + information as reliably as possible. + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + required: [] + rejection_reason_name: + description: Reason for the rejection of the candidate. + nullable: true + type: string + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + description: >- + The globally unique ID of this object + generated by Kombo. We recommend using + this as a stable primary key for + syncing. + type: string + required: [] + name: + description: Title of the job. + nullable: true + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote + system. We don't recommend using this as + a primary key on your side as it might + sometimes be compromised of multiple + identifiers if a system doesn't provide + a clear primary key. + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: Backend Engineer + remote_id: '32' + required: + - current_stage + - job + required: [] + required: [] + required: + - applications + - tags + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - tags: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + name: High Potential + remote_id: '32' + title: Head of Marketing + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + applications: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: Initial Screening + remote_id: '32' + job: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: Backend Engineer + remote_id: '32' + required: + - status + - data + GetAtsCandidatesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + allOf: + - type: object + properties: + title: + description: The current job title of the candidate. + nullable: true + type: string + required: [] + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + description: First name of the candidate. + nullable: true + type: string + required: [] + last_name: + description: Last name of the candidate. + nullable: true + type: string + required: [] + company: + description: The current company of the candidate. + nullable: true + type: string + required: [] + confidential: + description: Whether the candidate's profile is confidential in the ATS. + nullable: true + type: boolean + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + description: A list of phone numbers of the candidate. + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + description: >- + Kombo exposes type information through this field. If + we don't get any information from the tool, we will + set this to `null`. + nullable: true + type: string + default: null + required: [] + required: + - phone_number + default: [] + required: [] + email_addresses: + description: >- + A list of email addresses of the candidate with an optional + type. If an email address is invalid, it will be filtered + out. + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + description: >- + Kombo exposes type information through this field. If + we don't get any information from the tool, we will + set this to `null`. + nullable: true + type: string + required: [] + required: + - type + default: [] + required: [] + social_media: + description: List of social media accounts of the candidate. + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + required: [] + location: + description: Location of the candidate. + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with the raw + address string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field contains + the first part of the street information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + title: Head of Marketing + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: High Potential + remote_id: '32' + required: [] + applications: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + description: >- + Parsed status of the application. If Kombo + identifies that the application was accepted and + the candidate hired, it will be `HIRED`. If the + application was rejected or the candidate + declined, it will be `DECLINED`. If the + application is still in process, it will be + `PENDING`. + + Kombo will always try to deliver this information + as reliably as possible. + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + required: [] + rejection_reason_name: + description: Reason for the rejection of the candidate. + nullable: true + type: string + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + description: >- + The globally unique ID of this object + generated by Kombo. We recommend using this as + a stable primary key for syncing. + type: string + required: [] + name: + description: Title of the job. + nullable: true + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. + We don't recommend using this as a primary key + on your side as it might sometimes be + compromised of multiple identifiers if a + system doesn't provide a clear primary key. + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: Backend Engineer + remote_id: '32' + required: + - current_stage + - job + required: [] + required: [] + required: + - applications + - tags + required: [] + warnings: + type: array + items: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: [] + required: + - status + - data + - warnings + PostAtsCandidatesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesRequestBody: + allOf: + - type: object + properties: + candidate: + type: object + properties: + title: + description: The current job title of the applicant. + type: string + first_name: + type: string + last_name: + type: string + email_address: + description: >- + The primary email address this application will be created + with. + type: string + format: email + company: + description: The company where the applicant is currently working. + type: string + phone_number: + type: string + location: + type: object + properties: + city: + type: string + country: + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + applicant. + type: string + pattern: /^[A-Z]{2}$/ + required: + - country + gender: + description: >- + The gender of the applicant. Must be one of `MALE`, + `FEMALE`, or `OTHER`. + type: string + enum: + - MALE + - FEMALE + - OTHER + availability_date: + description: The date the applicant is available to start working. + 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 + salary_expectations: + description: >- + The salary expectations of the applicant. We will + automatically convert the amount to a format that is + suitable for the ATS you are using. For example, if you are + using monthly salary expectations, we will convert the + amount to a yearly salary if the ATS expects yearly salary + expectations. + type: object + properties: + period: + description: >- + The period of the salary expectations. Must be one of + `MONTH` or `YEAR`. + type: string + enum: + - MONTH + - YEAR + amount: + description: The amount of the salary expectations. + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: + - period + - amount + social_links: + description: >- + A list of social media links of the applicant. The links + must be valid URLs. + type: array + items: + type: object + properties: + url: + type: string + format: url + required: + - url + default: [] + required: + - first_name + - last_name + - email_address + application: + description: >- + Currently, every candidate has one application. If you are + interested in talent pools, please contact Kombo. + type: object + properties: + job_id: + description: >- + Kombo ID or Remote ID of the Job this candidate should apply + for. If you want to use the ID of the integrated system + (remote_id) you need to prefix the id with "remote:". You + can use the remote ID if you do not want to sync jobs. + type: string + stage_id: + description: >- + Stage this candidate should be in. If left out, the default + stage for this job will be used. + type: string + required: + - job_id + screening_question_answers: + description: >- + Array of answers to screening questions. Currently, not all + question types are supported and unsupported ones will not be + submitted. + + + The available questions a job can be retrieved from the get jobs + endpoint. The answers will be validated based on the format of + the the questions. Make sure to follow this schema to avoid + errors. + type: array + items: + type: object + properties: + question_id: + description: >- + ID of the question returned by the Kombo API. We'll report + a warning in the logs if the question can't be found on + the job. + type: string + answer: + description: >- + Answer to a question. This will be validated based on the + question format and throw an error if the answer is + invalid. Here is a description of each question type and + the required answer format: + + + `TEXT` - Simply provide a "string" answer. + + + `SINGLE_SELECT` - Provide the ID of the answer as a + string. + + + `MULTI_SELECT` - Provide a string array containing the + question IDs of the selected options. + + + `BOOLEAN` - Either `true` or `false`. + + + `NUMBER` - A number. + + + `DATE` - Provide the answer as an ISO 8601 date string. + + + `FILE` - Please select Option 6 in the dropdown above to + see the required format. + oneOf: + - description: >- + Answer to a `TEXT` question or the option ID of the + answer to a `SINGLE_SELECT` question. + type: string + - description: Answer to a `BOOLEAN` question. + type: boolean + - description: Answer to a `NUMBER` question. + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + - description: >- + Answer to a `MULTI_SELECT` question. The array + elements are the IDs of the selected options. + type: array + items: + type: string + - description: >- + Answer to a `DATE` question as an ISO 8601 date + string. + 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 + - description: Answer to a `FILE` question. + type: object + properties: + name: + description: Name of the file you want to upload. + type: string + content_type: + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + data: + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + type: string + data_url: + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + type: string + format: url + required: + - name + required: + - question_id + - answer + example: + - question_id: D8yPrjXXvA2XeBksTmrVvKSn + answer: 'Yes' + attachments: + description: Array of the attachments you would like upload. + type: array + items: + allOf: + - type: object + properties: + name: + description: Name of the file you want to upload. + type: string + content_type: + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you provide + `data` and optional if you provide `data_url`. + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + data: + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or `data_url`. + type: string + data_url: + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + type: string + format: url + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + default: [] + source: + description: >- + **(⚠️ Deprecated - Use [automatic source + writing](/ats/features/application-attribution#automatic-attribution) + instead)** Optional source information that will be attached to + the candidate. If + + you're a job board or recruiting service, you can use this to + make sure your + + customers can see which candidates came from you. + + + This is deprecated because writing sources requires users to do + some setup in most ATSs. + type: object + properties: + name: + description: >- + Name of the source (e.g., `"Example Job Board"`). + + + Note that this **only** works for ATS systems that support + creating a source through the API right now. This includes + Breezy HR, Fountain, Pinpoint, RECRU, Recruitee, Sage HR, + and Haufe Umantis. For all other ATSs, the source will be + ignored at the moment. + type: string + gdpr_consent: + description: >- + Optional GDPR consent information required in some jurisdictions + (like the Czech Republic or Slovakia). + type: object + properties: + expires_at: + description: >- + Until when the candidate has granted the company they're + applying to permission to process their personal data. + 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 + given: + description: Whether the candidate has given consent. + type: boolean + remote_fields: + description: >- + Additional fields that we will pass through to specific ATS + systems. + allOf: + - description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + successfactors: + description: Fields specific to SAP SuccessFactors. + type: object + properties: + Candidate: + description: >- + Fields that we will pass through to SuccessFactor's + `Candidate` object. + type: object + additionalProperties: + format: any + JobApplication: + description: >- + Fields that we will pass through to SuccessFactor's + `JobApplication` object. + type: object + additionalProperties: + format: any + copyJobApplicationAttachments: + description: >- + If set to true, we will copy custom attachments from + the JobApplication to the Candidate. + type: boolean + teamtailor: + type: object + properties: + candidate: + description: >- + Fields that we will pass through to Teamtailor's + `Candidate` object. + type: object + additionalProperties: + format: any + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + candidate: + description: >- + Fields that we will pass through to Greenhouse's + `Candidate` object. + type: object + additionalProperties: + format: any + application: + description: >- + Fields that we will pass through to Greenhouse's + `Application` object. + type: object + additionalProperties: + format: any + lever: + description: Fields specific to Lever. + type: object + properties: + candidate: + description: >- + Fields that we will pass through to Lever's + `Candidate` object. Note: make sure to submit the + keys and values in the correct form data format. + type: object + additionalProperties: + format: any + workable: + description: Fields specific to Workable. + type: object + properties: + candidate: + description: >- + Fields that we will pass through to Workable's + `Candidate` object. + type: object + additionalProperties: + format: any + bullhorn: + description: Fields specific to Bullhorn. + type: object + properties: + candidate: + description: >- + Fields that we will pass through to Bullhorn's + `Candidate` object. + type: object + additionalProperties: + format: any + - description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + post_headers: + description: >- + Headers we will pass with `POST` requests to + Greenhouse. + type: object + properties: + On-Behalf-Of: + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already + pass a value by default, but you can use this to + override it. + nullable: true + type: string + default: null + required: + - candidate + - application + example: + candidate: + title: Head of Integrations + first_name: Frank + last_name: Doe + company: Acme Inc. + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + social_links: + - url: https://www.linkedin.com/in/frank-doe-123456789/ + - url: https://twitter.com/frankdoe + application: + job_id: BDpgnpZ148nrGh4mYHNxJBgx + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + PatchAtsCandidatesCandidateIdParameterCandidateId: + type: string + required: [] + PatchAtsCandidatesCandidateIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PatchAtsCandidatesCandidateIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PatchAtsCandidatesCandidateIdRequestBody: + type: object + PostAtsCandidatesCandidateIdAttachmentsParameterCandidateId: + type: string + required: [] + PostAtsCandidatesCandidateIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdAttachmentsRequestBody: + allOf: + - type: object + properties: + attachment: + allOf: + - type: object + properties: + name: + description: Name of the file you want to upload. + type: string + content_type: + description: >- + Content/MIME type of the file (e.g., `application/pdf`). + This is required if you provide `data` and optional if + you provide `data_url`. + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + data: + description: >- + Base64-encoded contents of the file you want to upload. + You must provide either this or `data_url`. + type: string + data_url: + description: >- + Publicly accessible URL to the file you want to upload. + You must provide either this or `data`. + type: string + format: url + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + remote_fields: + description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + post_headers: + description: Headers we will pass with `POST` requests to Greenhouse. + type: object + properties: + On-Behalf-Of: + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + nullable: true + type: string + default: null + required: + - attachment + example: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + PostAtsCandidatesCandidateIdResultLinksParameterCandidateId: + description: Kombo ID of the candidate you want to create the link for. + type: string + required: [] + PostAtsCandidatesCandidateIdResultLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdResultLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdResultLinksRequestBody: + allOf: + - type: object + properties: + label: + description: >- + If we can display a display name for the link, we will use this + label. + type: string + url: + description: URL of the link. + type: string + format: url + details: + description: >- + Additional details with attributes that will be added to the + result. This can be percentages, scores, or any text. + + + We generally recommend using short attribute keys and a short + custom_field_name_prefix to avoid overflowing the ATS UI. + type: object + properties: + custom_field_name_prefix: + description: >- + That will be added to the attribute labels if they are used + for custom fields. If you specify `Acme:` as the prefix, the + custom field will be named `Acme: Score`. Putting in the + name of your company/product is a good idea. + type: string + attributes: + type: array + items: + type: object + properties: + key: + description: The name of the attribute + type: string + value: + description: The value of the attribute + type: string + required: + - key + - value + required: + - custom_field_name_prefix + - attributes + remote_fields: + description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + post_headers: + description: Headers we will pass with `POST` requests to Greenhouse. + type: object + properties: + On-Behalf-Of: + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + nullable: true + type: string + default: null + required: + - label + - url + example: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + PostAtsCandidatesCandidateIdTagsParameterCandidateId: + description: Kombo ID of the candidate you want to add the tag to. + type: string + required: [] + PostAtsCandidatesCandidateIdTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdTagsRequestBody: + allOf: + - type: object + properties: + tag: + type: object + properties: + name: + description: >- + The name of the tag you would like to add. Kombo will find + out the right ID of the tag so you don't have to. + type: string + minLength: 1 + required: + - name + remote_fields: + description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + post_headers: + description: Headers we will pass with `POST` requests to Greenhouse. + type: object + properties: + On-Behalf-Of: + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + nullable: true + type: string + default: null + required: + - tag + example: + tag: + name: Excellent Fit + DeleteAtsCandidatesCandidateIdTagsParameterCandidateId: + description: Kombo ID of the candidate you want to remove the tag from. + type: string + required: [] + DeleteAtsCandidatesCandidateIdTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + DeleteAtsCandidatesCandidateIdTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteAtsCandidatesCandidateIdTagsRequestBody: + allOf: + - type: object + properties: + tag: + type: object + properties: + name: + description: The name of the tag you would like to remove. + type: string + required: + - name + remote_fields: + description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + post_headers: + description: Headers we will pass with `POST` requests to Greenhouse. + type: object + properties: + On-Behalf-Of: + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + nullable: true + type: string + default: null + required: + - tag + example: + tag: + name: Excellent Fit + GetAtsTagsParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetAtsTagsParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetAtsTagsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsTagsParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetAtsTagsParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetAtsTagsParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetAtsTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsApplicationStagesParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetAtsApplicationStagesParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetAtsApplicationStagesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsApplicationStagesParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetAtsApplicationStagesParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetAtsApplicationStagesParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetAtsApplicationStagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsApplicationStagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsJobsParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetAtsJobsParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetAtsJobsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsJobsParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetAtsJobsParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetAtsJobsParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetAtsJobsParameterJobCodes: + description: Filter by a comma-separated list of job codes. + type: string + required: [] + GetAtsJobsParameterPostUrl: + description: >- + Filter by the `post_url` field. Can be used to find a job based on its + public posting URL. + type: string + required: [] + GetAtsJobsParameterStatus: + description: >- + **(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by the + `status` field. Can be used to find a job based on its status. + type: string + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + required: [] + GetAtsJobsParameterStatuses: + description: >- + Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, + `ARCHIVED` + + + Leave this blank to get results matching all values. + type: string + required: [] + GetAtsJobsParameterVisibilities: + description: >- + Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, `UNLISTED`, + `CONFIDENTIAL` + + + Leave this blank to get results matching all values. + type: string + required: [] + GetAtsJobsParameterNameContains: + description: >- + Filter by the `name` field. Can be used to find a job by keywords + present in the job name. + type: string + required: [] + GetAtsJobsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + description: + description: >- + Description of the job. This field is usually returned + as HTML. + nullable: true + type: string + required: [] + id: + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + type: string + required: [] + name: + description: Title of the job. + nullable: true + type: string + required: [] + job_code: + description: >- + The human readable job code. Some systems expose this + as the Requisition Code/ID. + nullable: true + type: string + required: [] + confidential: + description: >- + **(⚠️ Deprecated)** It makes more sense to store the + visibility of a job in an enum. Therefore, we + introduced the `visibility` enum on jobs. + nullable: true + type: boolean + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + employment_type: + description: >- + The type of employment contract. In rare cases where + can't find a clear mapping, the original string is + passed through. + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - SEASONAL + - INTERNSHIP + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + status: + description: >- + One of 4 standardized values (`OPEN`, `CLOSED`, + `DRAFT`, or `ARCHIVED`) **or** — in rare cases where + can't find a clear mapping — the original string + passed through. + nullable: true + oneOf: + - type: string + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + visibility: + description: >- + Describes the visibility of the job: + + + - `PUBLIC`: visible to everyone, published on a job + board + + - `INTERNAL`: only visible to employees of the company + itself + + - `UNLISTED`: anyone can apply but only if they have + the link to it + + - `CONFIDENTIAL`: nobody can apply and it's only + visible in the ATS to people who were invited to it + + + Useful if you are providing a job board and want to + post public open jobs of your customers/partners. + + In rare cases where can't find a clear mapping, the + original string is passed through. + nullable: true + oneOf: + - type: string + enum: + - PUBLIC + - INTERNAL + - UNLISTED + - CONFIDENTIAL + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + category: + description: The category of the job (often the job industry). + nullable: true + type: string + required: [] + department: + nullable: true + type: string + required: [] + post_url: + description: >- + The public job posting URL of the ATS itself. This can + be used by external job boards to redirect applicants. + nullable: true + type: string + required: [] + experience_level: + nullable: true + type: string + required: [] + remote_work_status: + description: >- + Defines if the job supports remote work and if so, to + what extent. + nullable: true + oneOf: + - type: string + enum: + - REMOTE + - HYBRID + - TEMPORARY + - ON_SITE + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + salary_amount: + description: The salary amount in the given currency. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + salary_amount_from: + description: The lower bound of the salary range. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + salary_amount_to: + description: The upper bound of the salary range. + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + salary_currency: + description: >- + Salary currency usually returned in [ISO 4217 currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + nullable: true + type: string + required: [] + salary_period: + description: >- + The period of the salary amount (not equal to the pay + frequency). + nullable: true + oneOf: + - type: string + enum: + - YEAR + - MONTH + - TWO_WEEKS + - WEEK + - DAY + - HOUR + required: [] + - description: >- + If we can't find a clear mapping: The original + string passed through. + type: string + required: [] + required: [] + location: + description: The location of the listed job. + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with the + raw address string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field + contains the first part of the street information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + opened_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + closed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + description: >- + The date and time the object was created in the remote + system. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + description: >- + A timestamp retrieved from the remote system, + describing when the resource was last updated. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + contact_id: + description: >- + **(⚠️ Deprecated)** The user ID of the contact person + for this job. We strongly recommend using the new + `hiring_team` property instead as it provides more + complete and accurate information about the ATS users + connected to a job. + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - job_code + - description + - confidential + - weekly_hours + - employment_type + - status + - visibility + - category + - department + - post_url + - experience_level + - remote_work_status + - salary_amount + - salary_amount_from + - salary_amount_to + - salary_currency + - salary_period + - location + - custom_fields + - opened_at + - closed_at + - remote_created_at + - remote_updated_at + - contact_id + - remote_data + - changed_at + - remote_deleted_at + example: + description: >- +

Kombo is hiring engineers! If you are reading this + and you are located in Berlin, Germany, feel free to + contact us about this position.

+ id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + - description: >- + The hiring team allows you to sync users into your system + who can access the job and its applications. + type: object + properties: + stages: + description: >- + Application stages a candidate can be in for this + particular job. + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Initial Screening + - type: object + properties: + index: + description: >- + Numeric index following the order of the + stages if they are ordered in the underlying + tool. + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + required: [] + example: + index: 0 + required: + - index + required: [] + required: [] + screening_questions: + type: array + items: + allOf: + - type: object + properties: + title: + nullable: true + type: string + required: [] + description: + nullable: true + type: string + required: [] + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + format: + nullable: true + oneOf: + - type: object + properties: + display_type: + description: >- + If unavailable, we recommend displaying + a single-line input. + nullable: true + type: string + enum: + - SINGLE_LINE + - MULTI_LINE + default: null + required: [] + max_length: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + required: [] + type: + type: string + enum: + - TEXT + required: [] + required: + - type + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - SLIDER + - FIELD + default: FIELD + required: [] + max: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + default: null + required: [] + min: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + default: null + required: [] + type: + type: string + enum: + - NUMBER + required: [] + required: + - type + - type: object + properties: + type: + type: string + enum: + - FILE + required: [] + required: + - type + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - DROPDOWN + - RADIO + default: null + required: [] + options: + type: array + items: + type: object + properties: + id: + description: >- + Kombo ID of this question option. Use + this ID to specify the answer to this + question. + type: string + required: [] + remote_id: + description: >- + ID in the connected ATS. This might be + null as some systems only use the name + to identify the option. + nullable: true + type: string + default: null + required: [] + name: + description: Content of the question option. + type: string + required: [] + required: + - id + - name + required: [] + type: + type: string + enum: + - SINGLE_SELECT + required: [] + required: + - options + - type + - type: object + properties: + type: + type: string + enum: + - BOOLEAN + required: [] + required: + - type + - type: object + properties: + type: + type: string + enum: + - DATE + required: [] + required: + - type + - type: object + properties: + options: + type: array + items: + type: object + properties: + id: + description: >- + Kombo ID of this question option. Use + this ID to specify the answer to this + question. + type: string + required: [] + remote_id: + description: >- + ID in the connected ATS. This might be + null as some systems only use the name + to identify the option. + nullable: true + type: string + default: null + required: [] + name: + description: Content of the question option. + type: string + required: [] + required: + - id + - name + required: [] + type: + type: string + enum: + - MULTI_SELECT + required: [] + required: + - options + - type + - type: object + properties: + type: + description: This is just a text block. + type: string + enum: + - INFORMATION + required: [] + required: + - type + - type: object + properties: + raw_question: + description: >- + We pass the original question data along + so you can handle it. + format: any + required: [] + type: + description: >- + When we're not able to map a specific + question type yet, we will return this + type. Every `UNKNOWN` question will also + be parsed and unified by us at some + point. This is just a temporary + workaround so you still get all + questions. + type: string + enum: + - UNKNOWN + required: [] + required: + - type + required: [] + required: + - id + - remote_id + - title + - description + - format + example: + title: Which is your primary programming language? + description: >- + Please enter the language you are most + comfortable with. + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + - type: object + properties: + index: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + required: [] + required: + nullable: true + type: boolean + required: [] + required: + - index + - required + example: + index: 0 + required: true + required: [] + required: [] + job_postings: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + description_html: + nullable: true + type: string + required: [] + status: + nullable: true + type: string + enum: + - ACTIVE + - INACTIVE + - DRAFT + required: [] + visibility: + nullable: true + type: string + enum: + - PUBLIC + - INTERNAL + - UNLISTED + required: [] + required: + - id + - remote_id + - description_html + - status + - visibility + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + required: [] + hiring_team: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + description: First name of the user. + nullable: true + type: string + required: [] + last_name: + description: Last name of the user. + nullable: true + type: string + required: [] + email: + description: >- + Email of the user. If the email address is + invalid, it will be set to null. + nullable: true + type: string + format: email + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + - type: object + properties: + hiring_team_roles: + description: >- + Array of the roles of the user for this + specific job. Currently only `RECRUITER` and + `HIRING_MANAGER` are mapped into our unified + schema. + type: array + items: + type: string + enum: + - RECRUITER + - HIRING_MANAGER + example: RECRUITER + required: [] + required: + - hiring_team_roles + required: [] + required: [] + required: + - stages + - screening_questions + - job_postings + - hiring_team + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - description: >- +

Kombo is hiring engineers! If you are reading this and you + are located in Berlin, Germany, feel free to contact us about + this position.

+ id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + stages: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + name: Initial Screening + index: 0 + screening_questions: + - title: Which is your primary programming language? + description: Please enter the language you are most comfortable with. + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + index: 0 + required: true + job_postings: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + hiring_team: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + hiring_team_roles: + - RECRUITER + required: + - status + - data + GetAtsJobsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsJobsJobIdApplicationsParameterJobId: + description: >- + Kombo ID or Remote ID of the Job this candidate should apply for. If you + want to use the ID of the integrated system (remote_id) you need to + prefix the id with "remote:". You can use the remote ID if you do not + want to sync jobs. + type: string + required: [] + PostAtsJobsJobIdApplicationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + description: >- + Parsed status of the application. If Kombo identifies that + the application was accepted and the candidate hired, it + will be `HIRED`. If the application was rejected or the + candidate declined, it will be `DECLINED`. If the + application is still in process, it will be `PENDING`. + + Kombo will always try to deliver this information as + reliably as possible. + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + required: [] + rejection_reason_name: + description: Reason for the rejection of the candidate. + nullable: true + type: string + required: [] + current_stage_id: + description: ID of the current application stage + nullable: true + type: string + required: [] + job_id: + nullable: true + type: string + required: [] + candidate_id: + nullable: true + type: string + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + - current_stage_id + - job_id + - candidate_id + - custom_fields + - changed_at + - remote_deleted_at + - remote_created_at + - remote_updated_at + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + type: string + required: [] + name: + description: Title of the job. + nullable: true + type: string + required: [] + remote_id: + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it + might sometimes be compromised of multiple identifiers + if a system doesn't provide a clear primary key. + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: Backend Engineer + remote_id: '32' + candidate: + nullable: true + allOf: + - type: object + properties: + title: + description: The current job title of the candidate. + nullable: true + type: string + required: [] + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + description: First name of the candidate. + nullable: true + type: string + required: [] + last_name: + description: Last name of the candidate. + nullable: true + type: string + required: [] + company: + description: The current company of the candidate. + nullable: true + type: string + required: [] + confidential: + description: >- + Whether the candidate's profile is confidential in + the ATS. + nullable: true + type: boolean + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + description: A list of phone numbers of the candidate. + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + description: >- + Kombo exposes type information through this + field. If we don't get any information from + the tool, we will set this to `null`. + nullable: true + type: string + default: null + required: [] + required: + - phone_number + default: [] + required: [] + email_addresses: + description: >- + A list of email addresses of the candidate with an + optional type. If an email address is invalid, it + will be filtered out. + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + description: >- + Kombo exposes type information through this + field. If we don't get any information from + the tool, we will set this to `null`. + nullable: true + type: string + required: [] + required: + - type + default: [] + required: [] + social_media: + description: List of social media accounts of the candidate. + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + required: [] + location: + description: Location of the candidate. + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + nullable: true + type: string + default: null + required: [] + raw: + description: >- + If we have address data, this is filled with the + raw address string. + nullable: true + type: string + default: null + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + nullable: true + type: string + default: null + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + title: Head of Marketing + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + name: High Potential + remote_id: '32' + required: [] + required: + - tags + required: [] + required: + - current_stage + - job + - candidate + required: [] + warnings: + type: array + items: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: [] + required: + - status + - data + - warnings + PostAtsJobsJobIdApplicationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsJobsJobIdApplicationsRequestBody: + allOf: + - type: object + properties: + stage_id: + description: >- + Stage this candidate should be in. If left out, the default + stage for this job will be used. You can obtain the possible + `stage_id`s from the `get-jobs` endpoint. + type: string + candidate: + type: object + properties: + title: + description: The current job title of the applicant. + type: string + first_name: + type: string + last_name: + type: string + email_address: + description: >- + The primary email address this application will be created + with. + type: string + format: email + company: + description: The company where the applicant is currently working. + type: string + phone_number: + type: string + location: + type: object + properties: + city: + type: string + country: + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + applicant. + type: string + pattern: /^[A-Z]{2}$/ + required: + - country + gender: + description: >- + The gender of the applicant. Must be one of `MALE`, + `FEMALE`, or `OTHER`. + type: string + enum: + - MALE + - FEMALE + - OTHER + availability_date: + description: The date the applicant is available to start working. + 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 + salary_expectations: + description: >- + The salary expectations of the applicant. We will + automatically convert the amount to a format that is + suitable for the ATS you are using. For example, if you are + using monthly salary expectations, we will convert the + amount to a yearly salary if the ATS expects yearly salary + expectations. + type: object + properties: + period: + description: >- + The period of the salary expectations. Must be one of + `MONTH` or `YEAR`. + type: string + enum: + - MONTH + - YEAR + amount: + description: The amount of the salary expectations. + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: + - period + - amount + social_links: + description: >- + A list of social media links of the applicant. The links + must be valid URLs. + type: array + items: + type: object + properties: + url: + type: string + format: url + required: + - url + default: [] + required: + - first_name + - last_name + - email_address + attachments: + description: >- + Array of the attachments you would like to upload. The first CV + in the attachments will be treated as the resume of the + candidate when the tool allows previewing a resume. + type: array + items: + allOf: + - type: object + properties: + name: + description: Name of the file you want to upload. + type: string + content_type: + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you provide + `data` and optional if you provide `data_url`. + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + data: + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or `data_url`. + type: string + data_url: + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + type: string + format: url + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + default: [] + source: + description: >- + **(⚠️ Deprecated - Use [automatic source + writing](/ats/features/application-attribution#automatic-attribution) + instead)** Optional source information that will be attached to + the candidate. If + + you're a job board or recruiting service, you can use this to + make sure your + + customers can see which candidates came from you. + + + This is deprecated because writing sources requires users to do + some setup in most ATSs. + type: object + properties: + name: + description: >- + Name of the source (e.g., `"Example Job Board"`). + + + Note that this **only** works for ATS systems that support + creating a source through the API right now. This includes + Breezy HR, Fountain, Pinpoint, RECRU, Recruitee, Sage HR, + and Haufe Umantis. For all other ATSs, the source will be + ignored at the moment. + type: string + gdpr_consent: + description: >- + Optional GDPR consent information required in some jurisdictions + (like the Czech Republic or Slovakia). + type: object + properties: + expires_at: + description: >- + Until when the candidate has granted the company they're + applying to permission to process their personal data. + 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 + given: + description: Whether the candidate has given consent. + type: boolean + remote_fields: + description: >- + Additional fields that we will pass through to specific ATS + systems. + allOf: + - description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + successfactors: + description: Fields specific to SAP SuccessFactors. + type: object + properties: + Candidate: + description: >- + Fields that we will pass through to SuccessFactor's + `Candidate` object. + type: object + additionalProperties: + format: any + JobApplication: + description: >- + Fields that we will pass through to SuccessFactor's + `JobApplication` object. + type: object + additionalProperties: + format: any + copyJobApplicationAttachments: + description: >- + If set to true, we will copy custom attachments from + the JobApplication to the Candidate. + type: boolean + teamtailor: + type: object + properties: + candidate: + description: >- + Fields that we will pass through to Teamtailor's + `Candidate` object. + type: object + additionalProperties: + format: any + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + candidate: + description: >- + Fields that we will pass through to Greenhouse's + `Candidate` object. + type: object + additionalProperties: + format: any + application: + description: >- + Fields that we will pass through to Greenhouse's + `Application` object. + type: object + additionalProperties: + format: any + lever: + description: Fields specific to Lever. + type: object + properties: + candidate: + description: >- + Fields that we will pass through to Lever's + `Candidate` object. Note: make sure to submit the + keys and values in the correct form data format. + type: object + additionalProperties: + format: any + workable: + description: Fields specific to Workable. + type: object + properties: + candidate: + description: >- + Fields that we will pass through to Workable's + `Candidate` object. + type: object + additionalProperties: + format: any + bullhorn: + description: Fields specific to Bullhorn. + type: object + properties: + candidate: + description: >- + Fields that we will pass through to Bullhorn's + `Candidate` object. + type: object + additionalProperties: + format: any + - description: >- + Additional fields that we will pass through to specific ATS + systems. + type: object + properties: + greenhouse: + description: Fields specific to Greenhouse. + type: object + properties: + post_headers: + description: >- + Headers we will pass with `POST` requests to + Greenhouse. + type: object + properties: + On-Behalf-Of: + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already + pass a value by default, but you can use this to + override it. + nullable: true + type: string + default: null + screening_question_answers: + description: >- + Array of answers to screening questions. Currently, not all + question types are supported and unsupported ones will not be + submitted. + + + The available questions a job can be retrieved from the get jobs + endpoint. The answers will be validated based on the format of + the the questions. Make sure to follow this schema to avoid + errors. + type: array + items: + type: object + properties: + question_id: + description: >- + ID of the question returned by the Kombo API. We'll report + a warning in the logs if the question can't be found on + the job. + type: string + answer: + description: >- + Answer to a question. This will be validated based on the + question format and throw an error if the answer is + invalid. Here is a description of each question type and + the required answer format: + + + `TEXT` - Simply provide a "string" answer. + + + `SINGLE_SELECT` - Provide the ID of the answer as a + string. + + + `MULTI_SELECT` - Provide a string array containing the + question IDs of the selected options. + + + `BOOLEAN` - Either `true` or `false`. + + + `NUMBER` - A number. + + + `DATE` - Provide the answer as an ISO 8601 date string. + + + `FILE` - Please select Option 6 in the dropdown above to + see the required format. + oneOf: + - description: >- + Answer to a `TEXT` question or the option ID of the + answer to a `SINGLE_SELECT` question. + type: string + - description: Answer to a `BOOLEAN` question. + type: boolean + - description: Answer to a `NUMBER` question. + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + - description: >- + Answer to a `MULTI_SELECT` question. The array + elements are the IDs of the selected options. + type: array + items: + type: string + - description: >- + Answer to a `DATE` question as an ISO 8601 date + string. + 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 + - description: Answer to a `FILE` question. + type: object + properties: + name: + description: Name of the file you want to upload. + type: string + content_type: + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + data: + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + type: string + data_url: + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + type: string + format: url + required: + - name + required: + - question_id + - answer + example: + - question_id: D8yPrjXXvA2XeBksTmrVvKSn + answer: 'Yes' + required: + - candidate + example: + candidate: + title: Head of Integrations + first_name: Frank + last_name: Doe + company: Acme Inc. + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + GetAtsUsersParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetAtsUsersParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetAtsUsersParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsUsersParameterIncludeDeleted: + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + type: string + enum: + - 'true' + - 'false' + default: 'false' + required: [] + GetAtsUsersParameterIds: + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + type: string + required: [] + GetAtsUsersParameterRemoteIds: + description: Filter by a comma-separated list of remote IDs. + type: string + required: [] + GetAtsUsersSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + description: First name of the user. + nullable: true + type: string + required: [] + last_name: + description: Last name of the user. + nullable: true + type: string + required: [] + email: + description: >- + Email of the user. If the email address is invalid, it + will be set to null. + nullable: true + type: string + format: email + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJgX + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsUsersErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAssessmentPackagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + packages: + type: array + items: + type: object + properties: + description: + type: string + required: [] + id: + type: string + required: [] + name: + type: string + required: [] + updated_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + nullable: true + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + nullable: true + type: string + enum: + - BEHAVIORAL + - VIDEO_INTERVIEW + - SKILLS_TEST + - BACKGROUND_CHECK + - REFERENCE_CHECK + required: [] + required: + - id + - name + - description + - updated_at + - type + required: [] + required: + - packages + example: + packages: + - description: TypeScript coding skills assessments + id: 1001X + name: TypeScript + updated_at: '2023-06-29T18:47:40.890Z' + type: SKILLS_TEST + required: + - status + - data + GetAssessmentPackagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentPackagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAssessmentPackagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentPackagesRequestBody: + allOf: + - type: object + properties: + packages: + type: array + items: + type: object + properties: + description: + description: >- + Description about the package. Some ATSs will display this + in their UI. + type: string + id: + description: A unique identifier for the assessment package. + type: string + type: + type: string + enum: + - BEHAVIORAL + - VIDEO_INTERVIEW + - SKILLS_TEST + - BACKGROUND_CHECK + - REFERENCE_CHECK + name: + description: The name of the assessment package. + type: string + required: + - id + - type + - name + - description + required: + - packages + example: + packages: + - description: TypeScript coding skills assessments + id: 1001X + type: SKILLS_TEST + name: TypeScript + - description: Video interview to assess communication skills + id: 1002X + type: VIDEO_INTERVIEW + name: Video Interview + GetAssessmentOrdersOpenParameterCursor: + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + type: string + required: [] + GetAssessmentOrdersOpenParameterPageSize: + description: The number of results to return per page. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + required: [] + GetAssessmentOrdersOpenSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + package_id: + type: string + required: [] + candidate: + type: object + properties: + email: + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + phone: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - email + required: + - id + - package_id + - candidate + required: [] + required: + - next + - results + required: + - status + - data + GetAssessmentOrdersOpenErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentOrdersAssessmentOrderIdResultParameterAssessmentOrderId: + type: string + required: [] + PutAssessmentOrdersAssessmentOrderIdResultSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAssessmentOrdersAssessmentOrderIdResultErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentOrdersAssessmentOrderIdResultRequestBody: + allOf: + - type: object + properties: + status: + description: >- + Status of the assessment. Must be one of `COMPLETE` or + `CANCELLED`. + type: string + enum: + - COMPLETED + - CANCELLED + - OPEN + result_url: + type: string + format: url + completed_at: + 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 + score: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + max_score: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + attributes: + type: array + items: + type: object + properties: + field: + type: string + value: + type: string + required: + - field + - value + default: [] + required: + - status + - result_url + - completed_at + example: + status: COMPLETED + score: 90 + max_score: 100 + result_url: https://example.com + completed_at: '2023-04-04T00:00:00.000Z' + attributes: + - field: remarks + value: Test completed with passing score + PostConnectCreateLinkSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + link: + type: string + format: url + required: [] + required: + - link + example: + link: >- + https://connect.kombo.dev/v1?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + required: + - status + - data + PostConnectCreateLinkErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectCreateLinkRequestBody: + allOf: + - type: object + properties: + end_user_email: + description: The email of the user this link is meant for. + type: string + format: email + end_user_organization_name: + description: The name of the user's organization. + type: string + minLength: 1 + end_user_origin_id: + description: The id the user/organization has in your own database. + nullable: true + type: string + minLength: 1 + default: null + remote_environment: + description: >- + If the tool you want to connect offers different environments, + you can specify which one you want to connect to here. If you + don't specify this, we'll assume you want to use the production + environment. Note that this can only be used if you've also + specified a tool through `integration_tool`. + nullable: true + type: string + default: null + integration_category: + description: Category of the integration you want your customer to create. + type: string + enum: + - HRIS + - ATS + - ASSESSMENT + default: HRIS + integration_tool: + description: Pre-define a tool this integration link can be used for. + nullable: true + type: string + enum: + - personio + - workday + - workdaycustomreport + - workdaycustomreportsftp + - successfactors + - smartrecruiters + - factorial + - oraclerecruiting + - lever + - icims + - recruitee + - greenhouse + - teamtailor + - ashby + - onlyfy + - rexx + - afas + - bamboohr + - bullhorn + - workable + - payfitcustomer + - payfitpartner + - payfit + - fountain + - kenjo + - heavenhr + - hibob + - softgarden + - cezannehr + - entraid + - azuread + - googleworkspace + - pinpoint + - welcometothejungle + - dvinci + - join + - deel + - remotecom + - jobvite + - okta + - sagehr + - humaans + - traffit + - erecruiter + - eurecia + - umantis + - jobylon + - oraclehcm + - taleez + - officient + - sesamehr + - charliehr + - hrworks + - abacus + - otys + - zohopeople + - gusto + - breathehr + - catalystone + - mirus + - alexishr + - eploy + - rippling + - sapling + - nmbrs + - heyrecruit + - peoplehr + - recruhr + - jazzhr + - lucca + - bite + - planday + - homerun + - haileyhr + - silae + - mysolution + - carerix + - datev + - datevlug + - sympa + - breezyhr + - flatchr + - applicantstack + - talentsoft + - talentsoftcustomer + - concludis + - iriscascade + - sandbox + - sftp + default: null + language: + description: Language of the connection flow UI. + type: string + enum: + - en + - de + - fr + default: en + scope_config_id: + description: >- + Specify a scope config that should be used for this integration. + This is an advanced feature, only use it if you know what you're + doing! + nullable: true + type: string + default: null + enable_filtering: + description: >- + Enable the (filtering + feature)[https://docs.kombo.dev/other/filtering] for the + integration. HRIS only. + type: boolean + default: false + required: + - end_user_email + - end_user_organization_name + example: + end_user_email: test@example.com + end_user_organization_name: Test Inc. + integration_category: HRIS + integration_tool: personio + end_user_origin_id: '123' + language: en + GetConnectIntegrationByTokenTokenParameterToken: + type: string + required: [] + GetConnectIntegrationByTokenTokenSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tool: + type: string + required: [] + id: + type: string + required: [] + end_user_origin_id: + nullable: true + type: string + required: [] + end_user_organization_name: + type: string + required: [] + end_user_email: + nullable: true + type: string + format: email + required: [] + required: + - tool + - id + - end_user_origin_id + - end_user_organization_name + - end_user_email + example: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4EX + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + required: + - status + - data + GetConnectIntegrationByTokenTokenErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectActivateIntegrationSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tool: + type: string + required: [] + id: + type: string + required: [] + end_user_origin_id: + nullable: true + type: string + required: [] + end_user_organization_name: + type: string + required: [] + end_user_email: + nullable: true + type: string + format: email + required: [] + required: + - tool + - id + - end_user_origin_id + - end_user_organization_name + - end_user_email + example: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4EX + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + required: + - status + - data + PostConnectActivateIntegrationErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectActivateIntegrationRequestBody: + allOf: + - type: object + properties: + token: + type: string + required: + - token + PostCustomDatevPassthroughSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostCustomDatevPassthroughErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPassthroughRequestBody: + allOf: + - 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 + file_type: + type: string + enum: + - STAMMDATEN + - BEWEGUNGSDATEN + file_name: + type: string + required: + - file_content + - accounting_month + - target_system + - file_type + - file_name + PutCustomDatevEmployeesEmployeeIdPreparePayrollParameterEmployeeId: + 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`) + type: string + required: [] + PutCustomDatevEmployeesEmployeeIdPreparePayrollSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutCustomDatevEmployeesEmployeeIdPreparePayrollErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutCustomDatevEmployeesEmployeeIdPreparePayrollRequestBody: + allOf: + - 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: + 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. + type: array + items: + type: object + properties: + hours: + description: Number of hours this employee has worked. + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + lohnart: + description: >- + The "Lohnart" (payment-type) in DATEV. Make sure a Lohnart + is selected that actually supports hours. + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: + - hours + - lohnart + fixed_payments: + 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. + type: array + items: + type: object + properties: + amount: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + lohnart: + description: >- + The "Lohnart" (payment-type) in DATEV. Make sure a Lohnart + is selected that actually supports fixed payments (no + hourly modifier). + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: + - amount + - lohnart + custom_lodas: + description: >- + Add custom entries to the DATEV Lodas Standard + Erfassungstabelle. + type: array + items: + type: object + properties: + amount: + description: This amount value will be mapped to Datev "Wert" field. + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + lohnart: + description: Choose a valid Lodas Lohnart. + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + bearbeitungsschluessel: + 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). + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: + - amount + - lohnart + - bearbeitungsschluessel + default: [] + required: + - payroll_run + - hourly_payments + - fixed_payments + example: + 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 + PutCustomDatevEmployeesEmployeeIdCompensationsParameterEmployeeId: + 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`) + type: string + required: [] + PutCustomDatevEmployeesEmployeeIdCompensationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutCustomDatevEmployeesEmployeeIdCompensationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutCustomDatevEmployeesEmployeeIdCompensationsRequestBody: + allOf: + - 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: + description: The amount that this employee will be paid. + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + currency: + description: >- + The currency in which the employee gets paid. Currently, + only euro is supported as integrated systems only work + with Euro. + type: string + enum: + - EUR + period: + description: >- + The period for which the specified amount is paid. + Currently, integrated systems only support "HOUR" and + "MONTH". + type: string + enum: + - HOUR + - MONTH + lohnart: + 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. + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 9999 + exclusiveMaximum: false + required: + - amount + - currency + - period + required: + - effective_date + - compensations + example: + effective_date: '2022-12-01' + compensations: + - amount: 4500 + currency: EUR + period: MONTH + lohnart: 200 + - amount: 30 + currency: EUR + period: HOUR + GetCustomDatevDataPushesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + data_pushes: + type: array + items: + type: object + properties: + id: + type: string + required: [] + type: + description: Type of the executed data push. + type: string + enum: + - GENERAL + - PAYROLL + required: [] + 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 + required: [] + upload_jobs: + description: >- + List of all the submitted files. This can include multiple + files if data was edited for multiple months. + type: array + items: + type: object + properties: + id: + type: string + required: [] + file_name: + type: string + required: [] + state: + 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. + type: string + enum: + - FAILED + - UPLOADED + - IMPORTED + - CORRUPTED + - DELETED + - AUTO_DELETED + required: [] + file: + description: Actual content of the file. + type: string + required: [] + required: + - id + - file_name + - state + - file + required: [] + required: + - id + - type + - created_at + - upload_jobs + required: [] + required: + - data_pushes + required: + - status + - data + GetCustomDatevDataPushesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataGeneralSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + files: + type: array + items: + type: object + properties: + name: + type: string + required: [] + content: + type: string + required: [] + required: + - name + - content + required: [] + required: + - files + required: + - status + - data + PostCustomDatevPushDataGeneralErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataGeneralRequestBody: + type: object + PostCustomDatevPushDataPayrollSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + files: + type: array + items: + type: object + properties: + name: + type: string + required: [] + content: + type: string + required: [] + required: + - name + - content + required: [] + required: + - files + required: + - status + - data + PostCustomDatevPushDataPayrollErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataPayrollRequestBody: + allOf: + - 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: + 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`) + type: string + required: [] + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsRequestBody: + allOf: + - type: object + properties: + supplement_code: + description: The ID code of the supplement that you want to add to Silae. + type: string + 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: + description: The amount of the supplement if it requires a number. + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + element_string: + description: The string of the supplement if it requires a string. + type: string + required: + - supplement_code + - effective_date + example: + supplement_code: '200' + effective_date: '2024-01-14' + element_amount: 6 + GeneralTriggerSyncSpecificIntegrationResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + GeneralForwardRequestToApiResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + GeneralForwardRequestToApi403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + GeneralForwardRequestToApi404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + GeneralForwardRequestToApi503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + GeneralDeleteIntegrationResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + GeneralGetIntegrationDetailsResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + GeneralCreateReconnectionLinkResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiCreateProvisioningSetupLinkResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListEmployeesResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListEmployees403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListEmployees404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListEmployees503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiCreateEmployeeResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiCreateEmployee403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiCreateEmployee404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiCreateEmployee503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiUpdateEmployeeResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiUpdateEmployee403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiUpdateEmployee404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiUpdateEmployee503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListTeamsResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListTeams403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListTeams404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListTeams503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllGroupsResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllGroups403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllGroups404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllGroups503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListEmploymentsResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListEmployments403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListEmployments404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListEmployments503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetWorkLocationsResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetWorkLocations403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetWorkLocations404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetWorkLocations503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListAbsenceTypesResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListAbsenceTypes403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListAbsenceTypes404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiListAbsenceTypes503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetTimeOffBalancesResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetTimeOffBalances403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetTimeOffBalances404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetTimeOffBalances503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllAbsencesResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllAbsences403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllAbsences404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllAbsences503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiCreateAbsenceResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiCreateAbsence403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiCreateAbsence404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiCreateAbsence503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiDeleteAbsenceByIdResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiDeleteAbsenceById403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiDeleteAbsenceById404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiDeleteAbsenceById503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllLegalEntitiesResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllLegalEntities403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllLegalEntities404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedHrisApiGetAllLegalEntities503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllApplicationsResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllApplications403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllApplications404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllApplications503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiMoveApplicationToStageResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiMoveApplicationToStage403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiMoveApplicationToStage404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiMoveApplicationToStage503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddResultLinkResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddResultLink403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddResultLink404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddResultLink503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddNoteToApplicationResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddNoteToApplication403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddNoteToApplication404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddNoteToApplication503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddAttachmentToApplicationResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddAttachmentToApplication403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddAttachmentToApplication404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddAttachmentToApplication503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllCandidatesResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllCandidates403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllCandidates404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllCandidates503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiCreateApplicationResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiCreateApplication403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiCreateApplication404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiCreateApplication503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddAttachmentToCandidateResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddAttachmentToCandidate403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddAttachmentToCandidate404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddAttachmentToCandidate503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddResultLinkToCandidateResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddResultLinkToCandidate403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddResultLinkToCandidate404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddResultLinkToCandidate503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiRemoveCandidateTagResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiRemoveCandidateTag403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiRemoveCandidateTag404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiRemoveCandidateTag503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddCandidateTagResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddCandidateTag403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddCandidateTag404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiAddCandidateTag503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiListTagsResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiListTags403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiListTags404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiListTags503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetApplicationStagesResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetApplicationStages403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetApplicationStages404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetApplicationStages503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetJobsResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetJobs403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetJobs404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetJobs503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiCreateApplicationCandidateResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiCreateApplicationCandidate403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiCreateApplicationCandidate404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiCreateApplicationCandidate503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllUsersResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllUsers403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllUsers404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsApiGetAllUsers503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsAssessmentApiUpdateOrderResultResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsAssessmentApiUpdateOrderResult403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsAssessmentApiUpdateOrderResult404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + UnifiedAtsAssessmentApiUpdateOrderResult503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsWriteDatevAsciiFileResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsWriteDatevAsciiFile403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsWriteDatevAsciiFile404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsWriteDatevAsciiFile503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPrepareDatevPayrollResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPrepareDatevPayroll403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPrepareDatevPayroll404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPrepareDatevPayroll503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsSetDatevCompensationsResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsSetDatevCompensations403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsSetDatevCompensations404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsSetDatevCompensations503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsGetDataPushesResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsGetDataPushes403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsGetDataPushes404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsGetDataPushes503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPushGeneralDataToDatevResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPushGeneralDataToDatev403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPushGeneralDataToDatev404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPushGeneralDataToDatev503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPushPayrollDataResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPushPayrollData403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPushPayrollData404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsPushPayrollData503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsWritePayrollSupplementResponse: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsWritePayrollSupplement403Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsWritePayrollSupplement404Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + CustomEndpointsWritePayrollSupplement503Response: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: {} + requestBodies: {} + headers: {} + securitySchemes: + ApiKey: + description: >- + Create an API key on the [Secrets](https://app.kombo.dev/secrets) page + in the Kombo dashboard. + type: http + scheme: bearer + links: {} + callbacks: {} +security: + - ApiKey: [] diff --git a/sdks/db/fixed-specs/localizely-fixed-spec.yaml b/sdks/db/fixed-specs/localizely-fixed-spec.yaml new file mode 100644 index 0000000000..d9767662f7 --- /dev/null +++ b/sdks/db/fixed-specs/localizely-fixed-spec.yaml @@ -0,0 +1,638 @@ +openapi: 3.0.1 +info: + title: Localizely API + description: >- +

Getting started

Localizely API is built on REST.
You can use this API for importing & exporting + your localization files in order to automate the process with `curl` scripts + or external CI tools.
Response is returned in JSON form even in + case of error.

If you Authenticate with your API token on this + page by clicking "Authorize" button, you can make API calls directly from + here with "Try it out", and generate such `curl` examples.

API + Authentication

Authenticate your account by sending your API token as + a request header `X-Api-Token`.
The token can be found under My Profile + page.
A user must have an Admin role in the project in order to access + the project with his token.
API requests without authentication will + fail.

Base url: `https://api.localizely.com`

+ version: 1.2.1 + termsOfService: https://localizely.com/terms-of-service/ +servers: + - description: Generated server url + url: https://api.localizely.com +tags: + - name: Upload API + - name: Branch API + - name: Translation Status API + - name: Download API +paths: + /v1/projects/{project_id}/files/upload: + post: + tags: + - Upload API + summary: Upload translations for a language + operationId: UploadApi_languageTranslationsUpload + security: + - API auth: [] + parameters: + - description: Project ID - Can be found on 'My projects' page + name: project_id + in: path + required: true + schema: + type: string + - description: >- + Name of the branch to upload file into. Only in case of activated + branching feature. + name: branch + in: query + required: false + schema: + type: string + - description: >- + Language to upload, specified as language code. e.g. `en`, `en_GB` + or `en-GB` + name: lang_code + in: query + required: true + schema: + type: string + - description: >- + If translation in given language should be overwritten with modified + translation from uploading file. + name: overwrite + in: query + required: false + schema: + type: boolean + default: false + - description: >- + If uploading translations, that are added, should be marked as + Reviewed. For uploading translations that are only modified it will + have effect only if `overwrite` is set to `true`. + name: reviewed + in: query + required: false + schema: + type: boolean + default: false + - description: >- + Optional list of tags to add to new translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_added_keys=NEW&tag_added_keys=NEW_SPRINT05` + name: tag_added + in: query + required: false + schema: + type: array + items: + type: string + - description: >- + Optional list of tags to add to updated translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_updated_keys=UPDATED&tag_updated_keys=UPDATED_SPRINT05` + name: tag_updated + in: query + required: false + schema: + type: array + items: + type: string + - description: >- + Optional list of tags to add to removed translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_removed_keys=REMOVED&tag_removed_keys=REMOVED_SPRINT05` + name: tag_removed + in: query + required: false + schema: + type: array + items: + type: string + requestBody: + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/UploadApiLanguageTranslationsUploadRequest' + responses: + '200': + description: OK, file uploaded + '400': + description: >- + Error codes:
 
- `invalid_import_file` when file + invalid. Returned with `errors` list
- + `max_upload_size_exceeded` when uploading file exceeds size limit
- `upgrade_required` when uploading more string keys than accepted + by owner's account plan limit
- `projects_limit_read_only` when + project is in read-only state due to exceeded projects limit + + `'bad_request'` when request generally is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/InvalidImportFileErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + /v1/projects/{project_id}/branches/{branch}: + post: + tags: + - Branch API + summary: Create a new branch + operationId: BranchApi_createNewBranch + security: + - API auth: [] + parameters: + - description: Project ID - Can be found on 'My projects' page + name: project_id + in: path + required: true + schema: + type: string + format: uuid + - description: Name of the branch to be created + name: branch + in: path + required: true + schema: + maxLength: 200 + minLength: 0 + type: string + - description: Name of the source branch from which new branch will be created + name: source_branch + in: query + required: true + schema: + type: string + responses: + '200': + description: OK, created + '400': + description: >- + Error codes:
 
- `bad_request` when request generally + is not well formed
- `limit_reached` when project already has + max allowed number of branches
- `projects_limit_read_only` + when project is in read-only state due to exceeded projects limit + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + /v1/projects/{project_id}/status: + get: + tags: + - Translation Status API + summary: Get Translation Status for the project + operationId: TranslationStatusApi_getProjectStatus + security: + - API auth: [] + parameters: + - description: Project ID - Can be found on 'My projects' page + name: project_id + in: path + required: true + schema: + type: string + - description: >- + Name of the branch to get translation status for. Only in case of + activated branching feature. + name: branch + in: query + required: false + schema: + type: string + responses: + '200': + description: OK, data returned + content: + '*/*': + schema: + $ref: '#/components/schemas/ProjectStatusDto' + '400': + description: >- + Error codes:
 
- `bad_request` when request generally + is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + /v1/projects/{project_id}/files/download: + get: + tags: + - Download API + summary: Download translations for a language in a specified file format + operationId: DownloadApi_translationsDownload + security: + - API auth: [] + description: >- + Note: This endpoint is intended for getting translation files to + your source-code. This endpoint should not be called directly from you + app in runtime, as it has rate-limiting.
For over-the-air + translation updates please consider using our SDK + for Flutter or integrate with AWS S3 bucket. + parameters: + - description: Project ID - Can be found on 'My projects' page + name: project_id + in: path + required: true + schema: + type: string + - description: >- + Name of the branch to download file from. Only in case of activated + branching feature. + name: branch + in: query + required: false + schema: + type: string + - description: >- + Language to download, specified as language code. e.g. `en`, `en_GB` + or `en-GB`. For multiple languages use comma separator. If omitted, + all languages are downloaded. + name: lang_codes + in: query + required: false + schema: + type: string + - description: File format + name: type + in: query + required: true + schema: + type: string + enum: + - android_xml + - ios_strings + - ios_stringsdict + - java_properties + - rails_yaml + - angular_xlf + - flutter_arb + - dotnet_resx + - po + - pot + - json + - csv + - xlsx + - description: >- + (Only for Java .properties files download) Character encoding. + Default is `latin_1`. + name: java_properties_encoding + in: query + required: false + schema: + type: string + enum: + - utf_8 + - latin_1 + - description: >- + Optional list of tags to be downloaded.
If not set, all string + keys will be considered for download.

Multiple tags can be + defined in a following way: + `&include_tags=ANDROID&include_tags=ANDROID_SPRINT05`. + name: include_tags + in: query + required: false + schema: + type: array + items: + type: string + - description: >- + Optional list of tags to be excluded from download.
If not set, + all string keys will be considered for download.

Multiple + tags can be defined in a following way: + `&exclude_tags=REMOVED&exclude_tags=REMOVED_SPRINT05`. + name: exclude_tags + in: query + required: false + schema: + type: array + items: + type: string + - description: >- + Optional. How you would like empty translations to be exported. + Allowed values are `empty` to keep empty, `main` to replace with the + main language value, or `skip` to omit. + name: export_empty_as + in: query + required: false + schema: + type: string + default: empty + enum: + - empty + - main + - skip + responses: + '200': + description: OK, file returned + '400': + description: >- + Error codes:
 
- `invalid_export_data_rails_yaml` + when data collision for yaml download
- `bad_request` when + request generally is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' +components: + schemas: + ErrorDto: + type: object + properties: + errorCode: + type: string + enum: + - already_exists + - too_long + - too_many_requests + - bad_request + - not_configured + - bad_captcha + - bad_turnstile + - bad_url + - confirmation_invalid + - forbidden_email + - main_locale_invalid + - branching_disabled + - not_activated + - invalid_password + - invalid_import_file + - invalid_export_data_rails_yaml + - forbidden + - internal_error + - not_found + - upgrade_required + - subscription_change_disabled_in_past_due + - subscription_creation_still_processing + - order_creation_still_processing + - branching_not_supported + - ota_not_supported + - string_keys_limit + - projects_limit + - projects_limit_read_only + - limit_reached + - import_keys_limit_exceeded + - max_upload_size_exceeded + - prevention_limit_reached + - tags_prevention_limit_reached + - string_key_not_found + - merge_outdated + - mt_locale_not_supported + - mt_main_translation_empty + - mt_main_translation_not_supported + - mt_source_translation_too_long + - mt_chars_missing + - mt_no_selected_strings + - tm_upload_file_invalid + - tm_upload_file_max_entries_exceeded + - tm_upload_file_version_not_supported + - tm_max_total_entries_exceeded + - tm_max_total_memories_exceeded + - glossary_locale_cant_remove + - glossary_upload_file_invalid + - glossary_upload_file_column_separator_invalid + - glossary_upload_file_headers_invalid + - glossary_upload_file_max_terms_exceeded + - glossary_max_total_terms_exceeded + - glossary_max_total_glossaries_exceeded + - order_oversize + - github_not_supported + - github_token_invalid + - github_token_scope_invalid + - github_url_invalid + - github_branch_invalid + - github_repo_invalid + - github_config_file_missing + - github_config_file_invalid + - github_push_no_changes + - gitlab_not_supported + - gitlab_token_invalid + - gitlab_token_scope_invalid + - gitlab_url_invalid + - gitlab_branch_invalid + - gitlab_repo_invalid + - gitlab_config_file_missing + - gitlab_config_file_invalid + - gitlab_push_no_changes + - bitbucket_not_supported + - bitbucket_token_invalid + - bitbucket_token_scope_invalid + - bitbucket_url_invalid + - bitbucket_branch_invalid + - bitbucket_repo_invalid + - bitbucket_config_file_missing + - bitbucket_config_file_invalid + - bitbucket_push_no_changes + - aws_s3_not_supported + - aws_s3_credentials_invalid + - aws_s3_permissions_invalid + - aws_s3_bucket_invalid + - aws_s3_region_invalid + - expired + - unauthorized + - unexpected_error + - service_unavailable + errorMessage: + type: string + errorData: + type: object + additionalProperties: + type: object + ImportFileError: + type: object + properties: + line: + type: integer + format: int32 + position: + type: integer + format: int32 + errorMessage: + type: string + InvalidImportFileErrorDto: + type: object + properties: + errorCode: + type: string + enum: + - already_exists + - too_long + - too_many_requests + - bad_request + - not_configured + - bad_captcha + - bad_turnstile + - bad_url + - confirmation_invalid + - forbidden_email + - main_locale_invalid + - branching_disabled + - not_activated + - invalid_password + - invalid_import_file + - invalid_export_data_rails_yaml + - forbidden + - internal_error + - not_found + - upgrade_required + - subscription_change_disabled_in_past_due + - subscription_creation_still_processing + - order_creation_still_processing + - branching_not_supported + - ota_not_supported + - string_keys_limit + - projects_limit + - projects_limit_read_only + - limit_reached + - import_keys_limit_exceeded + - max_upload_size_exceeded + - prevention_limit_reached + - tags_prevention_limit_reached + - string_key_not_found + - merge_outdated + - mt_locale_not_supported + - mt_main_translation_empty + - mt_main_translation_not_supported + - mt_source_translation_too_long + - mt_chars_missing + - mt_no_selected_strings + - tm_upload_file_invalid + - tm_upload_file_max_entries_exceeded + - tm_upload_file_version_not_supported + - tm_max_total_entries_exceeded + - tm_max_total_memories_exceeded + - glossary_locale_cant_remove + - glossary_upload_file_invalid + - glossary_upload_file_column_separator_invalid + - glossary_upload_file_headers_invalid + - glossary_upload_file_max_terms_exceeded + - glossary_max_total_terms_exceeded + - glossary_max_total_glossaries_exceeded + - order_oversize + - github_not_supported + - github_token_invalid + - github_token_scope_invalid + - github_url_invalid + - github_branch_invalid + - github_repo_invalid + - github_config_file_missing + - github_config_file_invalid + - github_push_no_changes + - gitlab_not_supported + - gitlab_token_invalid + - gitlab_token_scope_invalid + - gitlab_url_invalid + - gitlab_branch_invalid + - gitlab_repo_invalid + - gitlab_config_file_missing + - gitlab_config_file_invalid + - gitlab_push_no_changes + - bitbucket_not_supported + - bitbucket_token_invalid + - bitbucket_token_scope_invalid + - bitbucket_url_invalid + - bitbucket_branch_invalid + - bitbucket_repo_invalid + - bitbucket_config_file_missing + - bitbucket_config_file_invalid + - bitbucket_push_no_changes + - aws_s3_not_supported + - aws_s3_credentials_invalid + - aws_s3_permissions_invalid + - aws_s3_bucket_invalid + - aws_s3_region_invalid + - expired + - unauthorized + - unexpected_error + - service_unavailable + errorMessage: + type: string + errorData: + type: object + additionalProperties: + type: object + errors: + type: array + items: + $ref: '#/components/schemas/ImportFileError' + ProjectLocaleStatsDto: + description: Translation status per language + type: object + properties: + langCode: + description: Language code (ie `en` or `en-US`) + type: string + langName: + description: Language name (ie `English` or `English (US)`) + type: string + strings: + description: Total number of string keys in the project + type: integer + format: int32 + reviewed: + description: Number of reviewed string keys for a language + type: integer + format: int32 + reviewedProgress: + description: Reviewed progress for a language, in percentage + type: integer + format: int32 + ProjectStatusDto: + type: object + properties: + strings: + description: Total number of string keys in the project + type: integer + format: int32 + reviewedProgress: + description: Total reviewed progress across all languages, in percentage + type: integer + format: int32 + languages: + description: Translation status per language + type: array + items: + $ref: '#/components/schemas/ProjectLocaleStatsDto' + UploadApiLanguageTranslationsUploadRequest: + required: + - file + type: object + properties: + file: + description: >- + Uploading file. Supported following formats: `Flutter ARB, Android + XML, iOS strings, iOS stringsdict, Angular XLF, Gettext PO, Gettext + POT, Java properties, Ruby on Rails yaml, .NET resx, flat json, csv, + Excel .xlsx, Excel .xls` + type: string + format: binary + securitySchemes: + API auth: + type: apiKey + name: X-Api-Token + in: header diff --git a/sdks/db/fixed-specs/mambu-payments-fixed-spec.yaml b/sdks/db/fixed-specs/mambu-payments-fixed-spec.yaml new file mode 100644 index 0000000000..a37de19725 --- /dev/null +++ b/sdks/db/fixed-specs/mambu-payments-fixed-spec.yaml @@ -0,0 +1,6240 @@ +openapi: 3.0.1 +info: + title: Payment Order API + description: Initiates payment orders. + version: v1.44.15 + x-api-status-urls: false + x-konfig-ignore: + object-with-no-properties: true +servers: + - url: https://TENANT_NAME.mambu.com/api/v1 +tags: + - description: > + These endpoints are used for making and receiving SEPA credit transfers + through the Mambu Payment Gateway. + + + For more information on supported messages, flows and technical + information, including examples of generated XML messages and how the + fields map to these API requests, please refer to the [SEPA Credit + Transfer](https://support.mambu.com/docs/sepa-credit-transfers) section of + our User Guide. + name: SEPA Credit Transfers + - description: > + SEPA Direct Debit Payments are one time or recurring payments made using + the Single European Payment Area scheme for transactions made in Euros + between accounts at banks within the SEPA area, which includes all EU + countries as well as other territories such as Liechtenstein, Switzerland, + the United Kingdom, Andorra and Nordic countries. + + + Mambu supports both the Core SEPA rulebook for individuals and the B2B + scheme for companies. For more information on supported messages, flows + and technical information, please refer to the [SEPA Direct + Debit](https://support.mambu.com/docs/sepa-direct-debit) section of our + user guide. + name: SEPA Direct Debit + - description: > + These APIs allow you to submit inquiries for SEPA payments including for + cases where the customer claims to have not received the funds, the value + date was not correctly recorded or to request a status update for payments + which have been cancelled. + + + For more information on the types of inquiry supported and how to submit + and respond to inquiries via the Mambu Payment Gateway UI, please refer to + the relevant section of our User Guide, such as the [SEPA credit transfer + inquiries](https://support.mambu.com/docs/sct-inquiries) article for SEPA + credit transfers. + name: SEPA Credit Transfer Inquiries + - description: >- + The External Account Representation (EAR) endpoints are used to associate + IBANs with Mambu account IDs so that payments made using the Mambu Payment + Gateway are routed to the correct accounts. + + + An IBAN can be mapped to multiple accounts but can only be associated to + one account per currency, so, for example, the same IBAN can be mapped to + one underlying Mambu account using EUR, another using GBP and another + using CHF, but not to two accounts both in EUR denomination. + + + + name: External Account Representation + - name: Standing Order + - description: > + If you are using an external service to check payments as part of your + Anti Money Laundering obligations, these endpoints receive responses which + will lead to unblocking funds and transferring them to the recipient + account in the case of an all clear or returning funds to the payer in + cases where there a compliance issue has been identified. + + + For more general information on AML flows, including how the necessary + suspense accounting should be set up in Mambu, please refer to the [AML + and Suspense + Accounts](https://support.mambu.com/docs/aml-suspense-accounting) section + of our User Guide. + name: AML + - description: > + This endpoint is the main entry point to the Mambu Payment Gateway for + external systems. + + + For more information on the types of messages accepted by this endpoint, + please refer to the [supported + flows](https://support.mambu.com/docs/payment-gateway-introduction#supported-flows) + section of the introduction to the Mambu Payment Gateway article in our + User Guide. + + + + name: Incoming Messages + - description: > + Use this endpoint to search for SEPA Credit Transfer and Direct Debit + messages received by the Mambu Payment Gateway. + name: Search Messages + - name: CreditTransfer + - description: > + These endpoints allow you to configure settings for the Mambu Payment + Gateway such as setting callback URLs which will be notified on certain + actions. + name: Settings +paths: + /accounts/{accountId}/blocking-rules: + post: + tags: + - SEPA Direct Debit + operationId: SepaDirectDebit_addBlockingRule + description: >- + Request a blocking rule to be added to a specific Mambu account. When a + blocking rule has been added for a specific mandate ID, collection + requests for that mandate will be rejected and a pacs.002 message sent + as response with reason code MS02. If no specific mandate ID is + provided, all direct debit collection requests for the given account + will be rejected. For more information on blocking SEPA Direct Debits, + consult the [Blocking SEPA Direct + Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) + article in our user guide. + parameters: + - name: accountId + in: path + required: true + schema: + description: ID of the Mambu Deposit account. + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateBlockingRule' + examples: + createProductBlockingRule: + summary: >- + Request blocking all SEPA Direct Debits for the specified + account. + description: createProductBlockingRule + value: + product: SEPA_DIRECT_DEBIT + createCeditorMandateBlockingRule: + summary: >- + Request blocking SEPA Direct Debits for a specific mandate for + the specified account. + description: createCeditorMandateBlockingRule + value: + product: SEPA_DIRECT_DEBIT + creditorMandate: + mandateRelatedInformation: + mandateIdentification: '578798984' + creditorSchemeIdentification: + identification: + privateIdentification: ID777444887 + responses: + '202': + description: Accepted - The Blocking Rule has been prepared for processing. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + productCannotBeBlocked: + summary: Specified payment product cannot be blocked. + description: productCannotBeBlocked + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + path: product + text: SEPA_CREDIT_TRANSFER cannot be blocked + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + delete: + tags: + - SEPA Direct Debit + operationId: SepaDirectDebit_removeBlockingRules + description: >- + Request deletion of blocking rules for the specified Mambu account. If + no request body is provided, all rules for the account will be removed, + if you provide a JSON body with a specific mandate ID, only the rule for + that mandate will be removed. For more information on blocking SEPA + Direct Debits, consult the [Blocking SEPA Direct + Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) + article in our user guide. + parameters: + - name: accountId + in: path + required: true + schema: + description: ID of the Mambu Deposit account. + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteBlockingRule' + examples: + deleteAllBlockingRules: + summary: Delete all blocking rules for the specified account. + description: deleteAllBlockingRules + value: null + deleteProductBlockingRule: + summary: Delete product blocking rule for the specified account. + description: deleteProductBlockingRule + value: + product: SEPA_DIRECT_DEBIT + deleteCreditorMandateBlockingRule: + summary: >- + Delete creditor mandate blocking rule for the specified + account. + description: deleteCreditorMandateBlockingRule + value: + product: SEPA_DIRECT_DEBIT + creditorMandate: + mandateRelatedInformation: + mandateIdentification: '578798984' + creditorSchemeIdentification: + identification: + privateIdentification: ID777444887 + responses: + '202': + description: >- + Accepted - Blocking rules for the specified account have been + submitted for deletion. + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /accounts/{accountId}/identifications: + get: + tags: + - External Account Representation + operationId: ExternalAccountRepresentation_getIdentifications + description: >- + Gets associations of an external account identification (IBAN or + proprietary) to a Mambu Account. + parameters: + - name: accountId + in: path + required: true + schema: + type: string + - name: limit + in: query + schema: + description: >- + Limit the number of identifications retrieved. The default limit + is 50, can be specified up to 1000. + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 50 + - name: offset + in: query + schema: + description: >- + Offset determines how many records will be skipped before being + included in the returned results. The default offset value is 0. + minimum: 0 + type: integer + format: int64 + default: 0 + responses: + '200': + description: OK - List existing external identifications. + headers: + Items-Offset: + description: The index of the first returned item. + required: true + style: simple + schema: + type: integer + Items-Limit: + description: The requested page size. + required: true + style: simple + schema: + type: integer + Items-Total: + description: The total count of available items. + required: true + style: simple + schema: + type: integer + content: + application/json: + schema: + $ref: >- + #/components/schemas/ExternalAccountRepresentationGetIdentificationsResponse + examples: + Identification: + summary: List of identifications + description: Identification + value: + - iban: DE46606951125202071272 + - currency: USD + - other: + identification: ABCDE1234F + scheme: PAN + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + post: + tags: + - External Account Representation + operationId: ExternalAccountRepresentation_addIdentificationAssociation + description: >- + Adds association of an external account identification (IBAN or + proprietary) to a Mambu Account. The currency of the association will be + the one of the underlining Mambu account. If an IBAN is supposed to be a + multi-currency one, this API needs to be invoked multiple times with + different Mambu accounts (for the different currencies). + parameters: + - name: accountId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccountMapping' + examples: + createMambuAccountMapping: + summary: >- + Create mapping between a proprietary identification and a + Mambu Account + description: createMambuAccountMapping + value: + identification: + other: + identification: ABCDE1234F + scheme: PAN + iban: DE46606951125202071272 + currency: USD + responses: + '201': + description: Created - Association successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/AccountMappingResponse' + examples: + accountMappingResponse: + summary: Successful account identification request. + description: accountMappingResponse + value: {} + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidIdentification: + summary: IBAN is not valid. + description: invalidIdentification + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /accounts/identifications: + put: + tags: + - External Account Representation + operationId: ExternalAccountRepresentation_associateIban + description: >- + Create or replace associations of an external account identification + (IBAN or proprietary) to one of Mambu Accounts. The currency of the + association will be the one of the underlining Mambu account. + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccountMappings' + examples: + createMambuAccountMappings: + summary: >- + Create mapping between a proprietary identification and + multiple Mambu Accounts with different currencies + description: createMambuAccountMappings + value: |- + { + "identification": { + "iban": "DE46606951125202071272" + }, + "accountIds": [ + "123", + ] + } + responses: + '201': + description: Created - Association successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/AccountMappingResponse' + examples: + accountMappingResponse: + summary: Successful account identification request. + description: accountMappingResponse + value: {} + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidIdentification: + summary: IBAN is not valid. + description: invalidIdentification + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /accounts/identifications:search: + post: + tags: + - External Account Representation + operationId: ExternalAccountRepresentation_searchIdentifications + description: >- + Searches identifications (with MambuID included) based on provided + filter criteria + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccountIdentificationsSearchRequestDTO' + responses: + '200': + description: OK - List of found identifications with accountId + content: + application/json: + schema: + $ref: >- + #/components/schemas/ExternalAccountRepresentationSearchIdentificationsResponse + examples: + AccountIdentificationsSearchResponse: + summary: Successful account identification search response. + description: AccountIdentificationsSearchResponse + value: + - accountId: test123 + currency: EUR + type: DEPOSIT + identification: + iban: DE46606951125202071272 + identification: ABCDE1234F + scheme: PAN + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidSearchFilter: + summary: Search filter is not valid + description: invalidSearchFilter + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: >- + searchAccountIdentifications.arg0.filterCriteria[0].field + text: >- + filterCriteria[0].field Should be one of: schema, + iban, currency, identification + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections: + post: + tags: + - SEPA Direct Debit + operationId: SepaDirectDebit_createCollectionInitiationRequest + description: >- + Creates a collection initiation request. This covers the flows as + described in the [SEPA Direct + Debit](https://support.mambu.com/docs/sepa-direct-debit-creditor-flow) + section of our user guide. + parameters: + - name: X-Request-ID + in: header + required: true + schema: + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + type: string + - name: Idempotency-Key + in: header + schema: + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionDTO' + examples: + initiateCollectionRequest: + summary: >- + Initiate collection request for accounts identified by IBAN + and creditor agent identified by BIC. + description: initiateCollectionRequest + value: + debtorAccount: + identification: + iban: DE46606951125202071272 + currency: EUR + debtorName: John Doe + serviceLevel: SEPA + instructedAmount: + currency: EUR + amount: '500' + creditorAccount: + identification: + iban: DE16195554277485442959 + currency: EUR + creditorName: Merchant123 + paymentIdentification: + transactionIdentification: 113T9bs6ad48ga1216d772430401s01sd2 + requestedExecutionDate: '2020-09-01' + mandateRelatedInformation: + mandateIdentification: 16ead91c975c4881a60c + dateOfSignature: '2020-01-31' + paymentTypeInformation: + sequenceType: FRST + creditorSchemeIdentification: + identification: + privateIdentification: I48799148795 + responses: + '201': + description: >- + Created - Collection Initiation request was correctly performed (but + not yet accepted) nor executed. + headers: + Location: + description: >- + Location of the created collection order request resource, for + future reference or status polling. + required: true + style: simple + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + examples: + initiateCollectionResponse: + summary: Successful collection initiation response. + description: initiateCollectionResponse + value: + transactionStatus: RCVD + collectionId: e38458a4-d955-4a39-8e21-9608e9600b3d + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + missingMandatoryField: + summary: Identification for debtor account was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: debtorAccount.identification + text: debtorAccount.identification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /log: + post: + tags: + - External Account Representation + operationId: ExternalAccountRepresentation_createOrUpdateLog + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LogRequest' + required: true + responses: + default: + description: default response + content: + application/json: + schema: + $ref: >- + #/components/schemas/ExternalAccountRepresentationCreateOrUpdateLogResponse + /payments/financial-institution-credit-transfers: + post: + tags: + - CreditTransfer + operationId: CreditTransfer_submitPaymentRequest + parameters: + - name: X-Request-ID + in: header + required: true + schema: + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + type: string + - name: Idempotency-Key + in: header + schema: + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FinancialInstitutionPaymentDTO' + responses: + default: + description: default response + content: + application/json: + schema: + $ref: >- + #/components/schemas/CreditTransferSubmitPaymentRequestResponse + /payments/credit-transfers: + post: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_createRequest + parameters: + - name: X-Request-ID + in: header + required: true + schema: + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + type: string + - name: Idempotency-Key + in: header + schema: + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Iso20022PaymentDTO' + responses: + default: + description: default response + content: + application/json: + schema: + $ref: '#/components/schemas/SepaCreditTransfersCreateRequestResponse' + /payments: + post: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_createPaymentRequest + description: >- + Creates a payment initiation request. Payments using the SEPA Credit + Transfer scheme can only be created for the current date. A pacs.008 + message will be generated from the data provided in this request. For + more information on how these fields map to SEPA XML messages, refer to + the [SEPA Credit Transfer Techincal + Information](https://support.mambu.com/docs/sepa-credit-transfer-technical-information#pacs00800102) + article in our user guide. + parameters: + - name: X-Request-ID + in: header + required: true + schema: + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + type: string + - name: Idempotency-Key + in: header + schema: + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InitiationPaymentDTO' + examples: + initiatePaymentRequest: + summary: >- + Initiate same day payment request for accounts identified by + IBAN and creditor agent identified by BIC with creditor and + debtor address information. + description: initiatePaymentRequest + value: + debtorAccount: + identification: + iban: DE46606951125202071272 + currency: EUR + debtorName: John Doe + debtorAddress: + street: Karl-Liebknecht-Str. 5 + buildingNumber: '5234' + city: Berlin + postalCode: '10178' + countryCode: DE + serviceLevel: SEPA + instructedAmount: + currency: EUR + amount: '500' + creditorAccount: + identification: + iban: DE16195554277485442959 + currency: EUR + creditorAgent: + institutionIdentification: + bicfi: DEUTDEFF + creditorName: Merchant123 + creditorAddress: + street: Am Olympiapark 1 + buildingNumber: '1' + city: Munchen + postalCode: '80809' + countryCode: DE + responses: + '201': + description: >- + Created - Payment Initiation request was correctly performed (but + not yet accepted) nor executed. + headers: + Location: + description: >- + Location of the created payment order request resource, for + future reference or status polling. + required: true + style: simple + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse' + examples: + initiatePaymentResponse: + summary: Successful payment initiation request. + description: initiatePaymentResponse + value: + transactionStatus: RCVD + paymentId: e38458a4-d955-4a39-8e21-9608e9600b3d + transactionFeeIndicator: false + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + missingMandatoryField: + summary: Identification for debtor account was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: debtorAccount.identification + text: debtorAccount.identification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders/{id}/executions: + get: + tags: + - Standing Order + operationId: StandingOrder_listExecutions + description: Get executions of standing order + parameters: + - description: ApiKey header that is used for authentication + name: ApiKey + in: header + required: true + schema: + type: string + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - Standing orders executions retrieval was successful. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderExecutionResponse' + examples: + StandingOrderExecutionResponse: + description: StandingOrderExecutionResponse + value: + - standingOrderId: standing-order-id-qwerty + paymentOrderId: paymentorderid54 + requestedExecuteOn: '2023-01-26T15:51:27' + status: FAILED + creationDate: '2023-01-26T15:52:27.865848Z' + type: RETRY + failReason: INSUFFICIENT_FUNDS + /payments/standing-orders/{id}: + get: + tags: + - Standing Order + operationId: StandingOrder_getInformation + description: Gets Standing order information + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - Returns Standing order item. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderGetResponse' + examples: + standingOrderGetResponse: + summary: Standing order get response. + description: standingOrderGetResponse + value: + id: 9726992c-bda4-4867-9264-f9168337d0ec + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '500' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + lastExecution: '2022-11-17' + nextExecution: '2022-11-18' + paymentsCount: 2 + ownerId: some-owner-id + retryCount: 3 + suspendDateFrom: null + suspendDateTo: null + '404': + description: Not found - cannot find the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + standingOrderNotFound: + summary: Unable to get Standing order + description: standingOrderNotFound + value: + tppMessages: + - category: ERROR + code: RESOURCE_UNKNOWN + text: >- + Unable to find Standing order with id: + 9726992c-bda4-4867-9264-f9168337d0ec. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + delete: + tags: + - Standing Order + operationId: StandingOrder_cancel + description: Cancel Standing order + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '204': + description: Standing order canceled. + '404': + description: Not found - cannot find the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + standingOrderNotFound: + summary: Unable to find Standing order + description: standingOrderNotFound + value: + tppMessages: + - category: ERROR + code: RESOURCE_UNKNOWN + text: >- + Unable to find Standing order with id: + 9726992c-bda4-4867-9264-f9168337d0ec. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders: + post: + tags: + - Standing Order + operationId: StandingOrder_createStandingOrderRequest + description: >- + API creates standing orders. Standing order creation will trigger + periodic payments for provided frequency from start date until the end + date. + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderDTO' + examples: + createStandingOrder: + summary: Create standing orders + description: createStandingOrder + value: | + { + "payment": { + "scheme": "SEPA", + "instructedAmount": { + "currency": "EUR", + "amount": "500" + }, + "debtorAccount": { + "identification": { + "iban": "DE87200500001234567890" + }, + "currency": "EUR" + }, + "creditorAccount": { + "identification": { + "other": { + "identification": "1234", + "scheme": "PAN" + } + }, + "currency": "EUR" + }, + "creditorName": "CreditorName", + "debtorName": "DebtorName", + "remittanceInformationUnstructured": "Remittance Info" + }, + "startDate": [ + 2022, + 11, + 8 + ], + "frequency": "DAILY", + "endDate": [ + 2022, + 11, + 8 + ], + "ownerId": "some-owner-id", + "retryPolicy": { + “ + "retryCount": "3" + } + } + responses: + '201': + description: Created - Standing order successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderCreateResponse' + examples: + standingOrderCreateResponse: + summary: Successful standing order request. + description: standingOrderCreateResponse + value: + id: 9726992c-bda4-4867-9264-f9168337d0ecX + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidStandingOrderRequest: + summary: IBAN is not valid. + description: invalidStandingOrderRequest + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders:search: + post: + tags: + - Standing Order + operationId: StandingOrder_searchByFilters + description: Search for standing orders by search filters such as ownerId + parameters: + - description: ApiKey header that is used for authentication + name: ApiKey + in: header + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSearchRequest' + examples: + standingOrderSearchRequest: + summary: Search for standing orders by search filters + description: standingOrderSearchRequest + value: |- + { + "filterCriteria": [ + { + "field": "OWNER_ID", + "operator": "EQUALS", + "value": "string" + } + { + "field": "STATUS", + "operator": "EQUALS", + "value": "string" + } + ], + "limit": 500, + "offset": 0 + } + responses: + '200': + description: OK - Standing orders search was successful. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSearchResponse' + examples: + StandingOrderSearchResponse: + description: StandingOrderSearchResponse + value: + - ownerId: some_kind_of_id_from_client + id: 9726992c-bda4-4867-9264-f9168337d0ecX + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '500' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + - ownerId: some_kind_of_id_from_client + id: 9726992c-bda4-4867-9264-13245679fe + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '100' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + suspendDateFrom: null + suspendDateTo: null + /payments/standing-orders:suspend: + post: + tags: + - Standing Order + operationId: StandingOrder_suspendRequest + description: API suspends standing order for a particular period of time. + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSuspendDTO' + examples: + suspendStandingOrder: + summary: Suspend standing order + description: suspendStandingOrder + value: + id: 9726992c-bda4-4867-9264-f9168337d0ecX + startDate: + - 2022 + - 11 + - 8 + endDate: + - 2022 + - 11 + - 9 + responses: + '200': + description: OK - Standing order successfully suspended. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidStandingOrderSuspendRequest: + summary: request is invalid + description: invalidStandingOrderSuspendRequest + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: id + text: id must not be null + - category: ERROR + code: FORMAT_ERROR + path: endDate + text: endDate must not be null + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}: + get: + tags: + - SEPA Direct Debit + operationId: SepaDirectDebit_getCollectionDetails + parameters: + - name: collectionId + in: path + required: true + schema: + description: >- + ID of the collection order, as received in the response to a `POST + /collections` request or from the instruction ID field of a + collection. You can retrieve the instruction ID in the Payment + Gateway UI by opening up the detail view of a collection and + looking for the value of `InstId` in the Payment Identification + object. + type: string + - name: detailsLevel + in: query + schema: + description: >- + Details level of the response. `STATUS` and `FULL` detail levels + are supported. `STATUS` will return the current status and a + timestamp of when the collection order was last modified. The + default value of `FULL` will return a complete set of information + about the collection order. + type: string + default: FULL + responses: + default: + description: default response + content: + application/json: + schema: + $ref: >- + #/components/schemas/SepaDirectDebitGetCollectionDetailsResponse + /payments/credit-transfers/{paymentId}: + get: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_getPaymentDetails + parameters: + - name: paymentId + in: path + required: true + schema: + description: >- + ID of the payment order, as received in the response to a `POST + /payments` request + type: string + - name: detailsLevel + in: query + schema: + description: >- + Details level of the response. STATUS and FULL detail levels are + supported. `STATUS` will return the current status and a timestamp + of when the payment order was last modified. The default value of + `FULL` will return a complete set of information about the payment + order. + type: string + default: FULL + responses: + default: + description: default response + content: + application/json: + schema: + $ref: >- + #/components/schemas/SepaCreditTransfersGetPaymentDetailsResponse + /payments/{paymentId}: + get: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_getPaymentDetails + parameters: + - name: paymentId + in: path + required: true + schema: + description: >- + ID of the payment order, as received in the response to a `POST + /payments` request + type: string + - name: detailsLevel + in: query + schema: + description: >- + Details level of the response. STATUS and FULL detail levels are + supported. `STATUS` will return the current status and a timestamp + of when the payment order was last modified. The default value of + `FULL` will return a complete set of information about the payment + order. + type: string + default: FULL + responses: + default: + description: default response + content: + application/json: + schema: + $ref: >- + #/components/schemas/SepaCreditTransfersGetPaymentDetailsdefaultResponse + /payments:settleInstantPayment: + post: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_acceptInstantPaymentSettlement + description: Accepts requests for an instant payment settlement. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InstantPaymentSettlement' + examples: + instantPaymentSettlementRequest: + summary: Request settlement for an instant payment. + description: instantPaymentSettlementRequest + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transaction: + debtorAgent: + institutionIdentification: + bicfi: FUBKDE71 + paymentIdentification: + transactionIdentification: 00730100632BHGCRWC + acceptanceDateTime: '2023-04-05T09:07:37' + required: true + responses: + '202': + description: >- + Accepted - The instant payment settlement request has been accepted + for processing. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:reject: + post: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_manuallyRejectPayment + description: Manually Reject an Outgoing Payment. + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified payment order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expected status is: TO_BE_SENT. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:recall: + post: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_recallPaymentRequest + description: Recall an outgoing payment. + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Recall' + required: true + responses: + '200': + description: OK - Payment marked to be recalled successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badRecallReasonCode: + summary: A non SEPA compliant recall reason code was provided. + description: badRecallReasonCode + value: + tppMessages: + - category: ERROR + code: INVALID_REQUEST_BODY + text: '' + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: |- + { + "tppMessages": [ + { + "category": "ERROR", + "code": "SERVICE_INVALID", + "text": "There was an error processing your request. } + ] + } + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:denyOutgoingRecall: + post: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_denyOutgoingRecallAction + description: Deny an Outgoing Recall. + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified outgoing recall has been marked to be rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidPaymentOrderId: + summary: No payment order found for given id. + description: invalidPaymentOrderId + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Order + bac5161bd53348fa8dfc143cae49ba13 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:denyIncomingRecall: + post: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_denyIncomingRecallAction + description: Deny an Incoming Recall. + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CancellationDetails' + required: true + responses: + '200': + description: OK - The specified incoming recall has been marked to be rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequest: + summary: >- + The request is invalid for the current state of the + transaction. + description: invalidRequest + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Database update failed due to invalid request, + expected number of updated rows is 1, actual number + is: 0. The error message is: pending.authorized.failed + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:approveOutgoingRecall: + post: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_approveOutgoingRecallAction + description: Approve an Outgoing Recall. + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified outgoing recall has been authorized. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidPaymentOrderId: + summary: No payment order found for given id. + description: invalidPaymentOrderId + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Order + bac5161bd53348fa8dfc143cae49ba13 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:approveIncomingRecall: + post: + tags: + - SEPA Credit Transfers + operationId: SepaCreditTransfers_approveIncomingRecall + description: Approve an Incoming Recall. + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified incoming recall has been authorized. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequest: + summary: >- + The request is invalid for the current state of the + transaction. + description: invalidRequest + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Database update failed due to invalid request, + expected number of updated rows is 1, actual number + is: 0. The error message is: pending.authorized.failed + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}/aml:resendCallout: + post: + tags: + - AML + operationId: Aml_resendCallout + description: Resends the AML callout for an Outgoing payment. + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The AML callout was resent for the provided payment order. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/incoming: + post: + tags: + - Incoming Messages + operationId: IncomingMessages_createRequest + description: Creates an incoming message request. + parameters: + - description: >- + ID of the request, unique to the call, as determined by the + initiating party. + name: X-Request-ID + in: header + required: true + schema: + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + type: string + - description: Specifies payment scheme for processing. + name: X-Payment-Scheme + in: header + required: false + schema: + description: Specifies payment scheme for processing. + type: string + requestBody: + content: + application/xml: + schema: + $ref: '#/components/schemas/IncomingMessagesCreateRequestRequest' + examples: + incomingCreditTransferRequest: + summary: Request processing for the given incoming pacs.008 message. + description: incomingCreditTransferRequest + value: >- + + ... + text/plain: + schema: + $ref: '#/components/schemas/IncomingMessagesCreateRequestRequest1' + required: true + responses: + '202': + description: >- + Accepted - Incoming file accepted and is due for processing, when + incoming scheduler is configured to run. Outgoing (complete / + partial) pacs.002 will be published in case of complete / partial + processing of incoming pacs.008. If the incoming pacs.008 is + completely failed then a rejected pacs.002 will be published. + Outgoing pacs.004 will be published for failed transaction from + incoming pacs.008. + content: + application/json: + schema: + $ref: '#/components/schemas/IncomingMessageResponse' + examples: + incomingPacs008Response: + summary: Successful accept incoming payment message + description: incomingPacs008Response + value: + messageId: SCTORD200020190305ORD000011119 + messageType: urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02 + incomingCamt056Response: + summary: Successful accept incoming payment recall message + description: incomingCamt056Response + value: + messageId: 568R9154000000000000000000000000010 + messageType: urn:iso:std:iso:20022:tech:xsd:camt.056.001.01 + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body may not be empty + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/json" instead of "application/xml". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/aml: + post: + tags: + - AML + operationId: Aml_submitAmlCheckResult + description: >- + Accepts AML check results for Payment Orders, for example SEPA Credit + Transfers. + parameters: + - description: >- + ID of the request, unique to the call, as determined by the + initiating party. + name: X-Request-ID + in: header + required: true + schema: + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AmlResult' + examples: + amlInformation: + summary: AML check result. + description: amlInformation + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transactions: + - status: Accepted + paymentIdentification: + transactionIdentification: 00730100632BHGCRWC + debtorAgent: + institutionIdentification: + bicfi: BTRLRO22 + interbankSettlementDate: '2019-06-28' + required: true + responses: + '200': + description: OK - The AML check result has been prepared for processing. + content: + '*/*': + schema: + $ref: '#/components/schemas/AmlSubmitAmlCheckResultResponse' + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + content: + '*/*': + schema: + $ref: '#/components/schemas/AmlSubmitAmlCheckResult503Response' + /inquiries:skipStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + operationId: SepaCreditTransferInquiries_skipRecallStatusUpdate + description: >- + Skips response for Request for Status Update on Recall with given + details. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SkipStatusUpdateOnRecall' + examples: + skipStatusUpdateOnRecall: + summary: >- + Request for skipping Request for Status Update on Recall + response + description: skipStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + required: true + responses: + '200': + description: >- + OK - Request for skipping Status Update on Recall response was + received + '400': + description: Bad Request - Invalid Transaction Status. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: >- + Transaction status is invalid for skipping Status Update on + Recall response. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: 'Transaction has invalid status: REPLY_SKIPPED' + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:requestStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + operationId: SepaCreditTransferInquiries_requestStatusUpdate + description: Create inquiry to request status update for a payment cancellation. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalCamt056Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Payment Cancellation Request transaction + not found. Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: >- + The original Payment Cancellation Request transaction not + found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:requestStatusUpdateOnInquiry: + post: + tags: + - SEPA Credit Transfer Inquiries + operationId: SepaCreditTransferInquiries_createStatusUpdateRequest + description: Create status update request for existing camt.087 or camt.027 inquiry + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalInquiryData' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:rejectStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + operationId: SepaCreditTransferInquiries_handleNegativeStatusUpdateOnRecall + description: >- + Handles negative response for Request for Status Update on Recall with + given details. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RejectStatusUpdateOnRecall' + examples: + rejectStatusUpdateOnRecall: + summary: >- + Request for handling Request for Status Update on Recall + negative response + description: rejectStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + originalMessageIdentification: 22b8f938c6154877886a0c1fc9e74166 + originalInstructionIdentification: 562f8f9f8c6154844886a0c1fc9e7451 + cancellationDetails: + rejectionReason: ARDT + required: true + responses: + '200': + description: >- + OK - Request for Status Update on Recall negative response was + received + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body must not be empty + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:claimValueDateCorrection: + post: + tags: + - SEPA Credit Transfer Inquiries + operationId: SepaCreditTransferInquiries_requestValueDateChange + description: Create inquiry to request claim for value-date change. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalPacs008Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit Transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit Transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original Credit Transfer transaction for 123456 not + found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:claimNonReceipt: + post: + tags: + - SEPA Credit Transfer Inquiries + operationId: SepaCreditTransferInquiries_createNonReceiptInquiry + description: Create inquiry for claim of non-receipt + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalPacs008Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:acceptStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + operationId: SepaCreditTransferInquiries_acceptStatusUpdateOnRecall + description: >- + Handles positive response for Request for Status Update on Recall with + given details. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AcceptStatusUpdateOnRecall' + examples: + acceptStatusUpdateOnRecall: + summary: >- + Request for handling Request for Status Update on Recall + positive response + description: acceptStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + originalMessageIdentification: 22b8f938c6154877886a0c1fc9e74166 + originalInstructionIdentification: 562f8f9f8c6154844886a0c1fc9e7451 + required: true + responses: + '200': + description: >- + OK - Request for Status Update on Recall positive response was + received + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body must not be empty + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionOrderId}:reject: + post: + tags: + - SEPA Direct Debit + operationId: SepaDirectDebit_manuallyRejectCollection + description: Manually Reject an Outgoing Collection. + parameters: + - name: collectionOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified collection order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expected status is: TO_BE_SENT. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionOrderId}:rejectIncoming: + post: + tags: + - SEPA Direct Debit + operationId: SepaDirectDebit_manuallyRejectCollection + description: Manually Reject an Incoming Collection. + parameters: + - name: collectionOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified collection order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expecting one of the following statuses: + PENDING_SETTLEMENT, RECEIVED. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}:reverse: + post: + tags: + - SEPA Direct Debit + operationId: SepaDirectDebit_reverseCollectionInstruction + description: Reverse a Collection Instruction. + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Reverse' + required: true + responses: + '200': + description: OK - Collection Instruction marked to be reversed successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badReversalReasonCode: + summary: A non SEPA compliant refund reason code was provided. + description: badReversalReasonCode + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: value 'MS01' not supported + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}:refund: + post: + tags: + - SEPA Direct Debit + operationId: SepaDirectDebit_refundCollectionInstruction + description: Refund a Collection Instruction. + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Refund' + required: true + responses: + '200': + description: OK - Collection Instruction marked to be refunded successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badRefundReasonCode: + summary: A non SEPA compliant refund reason code was provided. + description: badRefundReasonCode + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: value 'MD02' not supported + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}/aml:resendCallout: + post: + tags: + - AML + operationId: Aml_resendCallout + description: Resends the AML callout for an Outgoing collection. + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The AML callout was resent for the provided collection order. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/aml: + post: + tags: + - AML + operationId: Aml_submitAmlCheckResults + description: >- + Accepts AML check results for collections, for example, SEPA Direct + Debits. + parameters: + - description: >- + ID of the request, unique to the call, as determined by the + initiating party. + name: X-Request-ID + in: header + required: true + schema: + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AmlResult' + examples: + amlInformation: + summary: AML check result. + description: amlInformation + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transactions: + - status: Accepted + collectionIdentification: + transactionIdentification: 00730100632BHGCRWC + creditorAgent: + institutionIdentification: + bicfi: BTRLRO22 + interbankSettlementDate: '2019-06-28' + required: true + responses: + '200': + description: OK - The AML check result has been prepared for processing. + content: + '*/*': + schema: + $ref: '#/components/schemas/AmlSubmitAmlCheckResultsResponse' + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + content: + '*/*': + schema: + $ref: '#/components/schemas/AmlSubmitAmlCheckResults503Response' + /aml:resendCallouts: + post: + tags: + - AML + operationId: Aml_resendCalloutsOperation + description: Resends the AML callouts. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ResendAmlFilter' + required: true + responses: + '200': + description: OK - The AML callouts were resent. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/json" instead of "application/xml". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /accounts/identifications:mask: + post: + tags: + - External Account Representation + operationId: ExternalAccountRepresentation_maskIdentifications + description: Mask identifications from Payments Gateway. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IdentificationsToMask' + required: true + responses: + '200': + description: OK - Identifications masked. This operation is irreversible. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + identificationAlreadyMasked: + summary: >- + At least one of the provided identifications was already + masked + description: identificationAlreadyMasked + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Following identifications are already masked: + DK0643182702662691 + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /instructions: + get: + tags: + - Search Messages + operationId: SearchMessages_details + description: Retrieve the SEPA messages details. + parameters: + - name: sepaMessageFilter + in: query + required: true + schema: + $ref: '#/components/schemas/SepaMessageFilter' + responses: + '200': + description: OK - SEPA Messages Details were correctly found. + content: + application/json: + schema: + $ref: '#/components/schemas/SepaMessages' + examples: + pacs.008 instruction information: + summary: Information retrieved for a pacs.008 message + description: pacs.008 instruction information + value: + instructions: + - FIToFICstmrCdtTrf: + grpHdr: + msgId: 22b8f938c6154877886a0c1fc9e74166 + creDtTm: '2019-04-11T09:08:45+03:00' + nbOfTxs: '2' + ttlIntrBkSttlmAmt: + value: 200 + ccy: EUR + intrBkSttlmDt: '2019-04-11T00:00:00+03:00' + sttlmInf: + clrSys: + prtry: ST2 + instgAgt: + finInstnId: + bic: ABVRATW1XXX + cdtTrfTxInf: + - pmtId: + instrId: 82d7125b36014c2e8cc442a3586badd0 + endToEndId: NOTPROVIDED + txId: 4112f6688c846a89bee2b2c476f1145 + pmtTpInf: + svcLvl: + cd: SEPA + intrBkSttlmAmt: + value: 100 + ccy: EUR + accptncDtTm: '2019-04-11T09:08:45+03:00' + chrgBr: SLEV + dbtr: + nm: John Doe + dbtrAcct: + id: + iban: RO59INGBW91QIQFZSG6IZBJT + dbtrAgt: + finInstnId: + bic: INGBROBU + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: BT + pstlAdr: + ctry: DE + cdtrAcct: + id: + iban: RO75BTRLBSIJS00RPQWYLYWL + _metadata: + transactionSn: 1 + transactionStatus: RECEIVED + paymentId: 67eacbf33f1b4eaea8d1055a2a01adea + - pmtId: + instrId: 108cf3f5fd833aa5bc5efb90c0dee19e + endToEndId: NOTPROVIDED + txId: 758e663666ae40be8e9278a9e4e899f9 + pmtTpInf: + svcLvl: + cd: SEPA + intrBkSttlmAmt: + value: 100 + ccy: EUR + accptncDtTm: '2019-04-11T09:08:45+03:00' + chrgBr: SLEV + dbtr: + nm: John Doe + dbtrAcct: + id: + iban: RO59INGBW91QIQFZSG6IZBJT + dbtrAgt: + finInstnId: + bic: INGBROBU + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: BT + pstlAdr: + ctry: DE + cdtrAcct: + id: + iban: RO94BTRLVU048EN2KBPTVT7U + _metadata: + transactionSn: 2 + transactionStatus: RECEIVED + paymentId: fcaae256fed94018958326c9cb752aeb + _metadata: + bulkSn: 1 + direction: I + messageId: pacs.008 + transactions: 2 + pacs.004 instruction information: + summary: Information retrieved for a pacs.004 message + description: pacs.004 instruction information + value: + instructions: + - PmtRtr: + grpHdr: + msgId: '1' + creDtTm: '2018-11-26T21:47:57+02:00' + nbOfTxs: '1' + ttlRtrdIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + intrBkSttlmDt: '2018-11-26T00:00:00+02:00' + sttlmInf: + sttlmMtd: CLRG + clrSys: + prtry: ST2 + txInf: + - rtrId: '2020181126130827322001' + orgnlGrpInf: + orgnlMsgId: '1231231312' + orgnlMsgNmId: pacs.008 + orgnlEndToEndId: 10864caa82034bc8a12e4bf3e117d10d + orgnlTxId: '8097758122275259' + rtrdIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + rtrRsnInf: + orgtr: + id: + orgId: + bicorBEI: DABADKKK + rsn: + cd: AC_01 + orgnlTxRef: + intrBkSttlmDt: '2018-11-26T00:00:00+02:00' + sttlmInf: + sttlmMtd: CLRG + pmtTpInf: + svcLvl: + cd: SEPA + dbtr: + nm: Hanne Doe + dbtrAcct: + id: + iban: DK0643182702662691 + dbtrAgt: + finInstnId: + bic: DABADKKK + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: John Doe + cdtrAcct: + id: + iban: RO69BTRL3333444433334444 + _metadata: + transactionSn: 14 + transactionStatus: RECEIVED + returnReason: AC01 + paymentId: 22886adc407e4280b7df22a966d08425 + _metadata: + bulkSn: 10 + direction: I + messageId: pacs.004.001.02 + procstatus: REPLIED + transactions: 1 + camt.056 instruction information: + summary: Information retrieved for a camt.056 message + description: camt.056 instruction information + value: + instructions: + - FIToFIPmtCxlReq: + assgnmt: + id: msg-id-camt.056.001.01 + assgnr: + agt: + finInstnId: + bic: TESTXXXXXXX + assgne: + agt: + finInstnId: + bic: TESTXXXXXXX + creDtTm: 2019-05-14T21:00:00.000+0000 + ctrlData: + nbOfTxs: 1 + undrlyg: + - txInf: + cxlId: 000R9087000000011 + orgnlGrpInf: + orgnlMsgId: SCTORD15682019 + orgnlMsgNmId: pacs.008.001.02 + orgnlInstrId: '6630844036108666' + orgnlEndToEndId: NOTPROVIDED + orgnlTxId: '8097758122275259' + orgnlIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + orgnlIntrBkSttlmDt: 2019-06-19T21:00:00.000+0000 + cxlRsnInf: + - orgtr: + nm: Beneficioso beneficiar io + rsn: + cd: DUPL + orgnlTxRef: + sttlmInf: + sttlmMtd: CLRG + clrSys: + cd: REP + pmtTpInf: + svcLvl: + cd: SEPA + rmtInf: + ustrd: + - Pruebas para CECA 1 + ultmtDbtr: + nm: EUR + dbtr: + nm: ENRIQUE ROMERA MARTINEZ DE MIGUEL + dbtrAcct: + id: + iban: ES1011110001087939390799 + dbtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtr: + nm: Beneficioso beneficiario + cdtrAcct: + id: + iban: ES6520950001153279157264 + _metadata: + transactionSn: 2 + transactionStatus: TO_BE_SENT + returnReason: DUPL + paymentId: poId + _metadata: + bulkSn: 2 + direction: I + messageId: camt.056.001.01 + procstatus: RETRIEVED + transactions: 1 + camt.029 instruction information: + summary: Information retrieved for a camt.029 message + description: camt.029 instruction information + value: + instructions: + - RsltnOfInvstgtn: + assgnmt: + id: msg-id-camt.029.001.03 + assgnr: + agt: + finInstnId: + bic: TESTXXXXXXX + assgne: + agt: + finInstnId: + bic: TESTXXXXXXX + creDtTm: 2019-05-14T21:00:00.000+0000 + sts: + conf: RJCT + cxlDtls: + - txInfAndSts: + cxlStsId: 568R9 + orgnlGrpInf: + orgnlMsgId: SCTORD156820190620000000000001 + orgnlMsgNmId: pacs.008.001.02 + orgnlInstrId: a5fbae19e3d24522963ad60d018f2e49 + orgnlEndToEndId: 7456b0bb2c1a4209b87b4636995c5d08 + orgnlTxId: '1002' + txCxlSts: RJCR + cxlStsRsnInf: + - orgtr: + id: + orgId: + bicorBEI: TESTXXXXXXX + rsn: + cd: AGNT + orgnlTxRef: + intrBkSttlmAmt: + value: 4000.5 + ccy: EUR + intrBkSttlmDt: 2019-06-19T21:00:00.000+0000 + sttlmInf: + sttlmMtd: CLRG + clrSys: + prtry: ACHT1234567890123456789012345678905 + pmtTpInf: + svcLvl: + cd: SEPA + rmtInf: + ustrd: + - Pruebas para CECA 1 + dbtr: + nm: ENRIQUE ROMERA MARTINEZ DE MIGUEL + dbtrAcct: + id: + iban: ES1011110001087939390799 + dbtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtr: + nm: Beneficioso beneficiario + cdtrAcct: + id: + iban: ES6520950001153279157264 + _metadata: + transactionSn: 3 + transactionStatus: TO_BE_SENT + returnReason: RJCT + paymentId: poId + _metadata: + bulkSn: 3 + direction: O + messageId: camt.029.001.03 + procstatus: RETRIEVED + transactions: 1 + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidDirection: + summary: The provided direction value is not valid + description: invalidDirection + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: 'direction invalid value: example_invalid_direction' + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. +components: + schemas: + AcceptStatusUpdateOnRecall: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/TransactionInformation' + required: + - groupHeader + - transactionInformation + type: object + AccountDTO: + description: Settlement account used when settlement method is INDA/INGA. + properties: + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + identification: + $ref: '#/components/schemas/IdentificationDTO' + required: + - identification + type: object + AccountIdentificationsFilterCriteriaDTO: + description: Account identification search criteria + properties: + field: + description: >- + Contains the actual searching fields that can be native (one from + the provided list) + enum: + - SCHEME + - IBAN + - IDENTIFICATION + type: string + operator: + description: >- + EQUALS - checks that 'field' equals to 'value' (strict equals, does + not support parts or masks) + enum: + - EQUALS + - IN + - BETWEEN + - GREATER_THAN + - LESS_THAN + type: string + value: + description: The value to match the searching criteria + type: string + required: + - field + - operator + type: object + AccountIdentificationsSearchRequestDTO: + properties: + filterCriteria: + description: Account identification search criteria + items: + $ref: '#/components/schemas/AccountIdentificationsFilterCriteriaDTO' + type: array + required: + - filterCriteria + type: object + AccountIdentificationsSearchResponseDTO: + properties: + accountId: + description: AccountID (Unique and unambiguous identification for the account.) + type: string + currency: + description: Account currency + type: string + identification: + $ref: '#/components/schemas/Identification' + type: + description: Account type + type: string + required: + - accountId + - identification + type: object + AccountInternalIdentification: + description: >- + Mambu Accounts corresponding to the current IBAN / proprietary + identification + properties: + currency: + type: string + id: + type: string + type: + enum: + - DEPOSIT + - LOAN + type: string + type: object + AccountMappingResponse: + properties: + internalAccounts: + description: >- + Mambu Accounts corresponding to the current IBAN / proprietary + identification + items: + $ref: '#/components/schemas/AccountInternalIdentification' + type: array + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + AddressDTO: + properties: + buildingNumber: + description: ' The building or street number of the address. Must not exceed 16 characters.' + maxLength: 16 + minLength: 1 + type: string + city: + description: The city of the address. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + countryCode: + description: >- + Two characters as defined by ISO 3166. For example `DE` for Germany, + `TZ` for Tanzania. + maxLength: 2 + minLength: 2 + type: string + postalCode: + description: The postal code of the address. Must not exceed 16 characters. + maxLength: 16 + minLength: 1 + type: string + street: + description: The street name of the adress. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - countryCode + type: object + Agent: + description: Financial institution servicing an account for the debtor. + properties: + institutionIdentification: + $ref: '#/components/schemas/InstitutionIdentification' + required: + - institutionIdentification + type: object + AgentDTO: + description: >- + Financial institution servicing an account for the creditor. This field + is mandatory when proprietary ('other') creditor account identification + is used. + properties: + account: + $ref: '#/components/schemas/AccountDTO' + institutionIdentification: + $ref: '#/components/schemas/InstitutionIdentificationDTO' + required: + - institutionIdentification + type: object + AmendmentInformationDetailsDTO: + description: List of mandate elements that have been modified. + properties: + originalCreditorSchemeIdentification: + $ref: '#/components/schemas/OriginalCreditorSchemeIdentificationDTO' + originalDebtorAccount: + $ref: '#/components/schemas/AccountDTO' + originalDebtorAgent: + $ref: '#/components/schemas/AgentDTO' + originalMandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the original mandate. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + type: object + AmlPaymentIdentification: + description: Payment instruction reference. + properties: + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. + type: string + required: + - transactionIdentification + type: object + AmlResult: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeader' + transactions: + description: List of AML result checks, one per Payment Order. + items: + $ref: '#/components/schemas/AmlTransactionResult' + type: array + required: + - groupHeader + - transactions + type: object + AmlTransactionResult: + description: List of AML result checks, one per Payment Order. + properties: + debtorAgent: + $ref: '#/components/schemas/Agent' + interbankSettlementDate: + description: >- + InterbankSettlementDate from the original instruction in the format + `YYYY-MM-DD`. + maxLength: 10 + minLength: 10 + type: string + paymentIdentification: + $ref: '#/components/schemas/AmlPaymentIdentification' + status: + description: >- + Actual status of the AML investigation. Must be one of `ACCEPTED`, + `SUSPENDED`, `REJECTED`, `MANUAL_REDIRECT_EXTERNAL` or + `MANUAL_REDIRECT_INTERNAL`. + enum: + - ACCEPTED + - SUSPENDED + - REJECTED + - MANUAL_REDIRECT_EXTERNAL + - MANUAL_REDIRECT_INTERNAL + type: string + required: + - debtorAgent + - interbankSettlementDate + - paymentIdentification + - status + type: object + AmountDTO: + properties: + amount: + description: >- + The amount given with fractional digits, where fractions must be + compliant to the currency definition. Negative amounts are signed by + minus. The decimal separator is a dot. + maxLength: 12 + minLength: 1 + type: string + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + required: + - amount + - currency + type: object + Assignment: + description: Assignment + properties: + creationDateTime: + description: creation date time + format: date-time + type: string + identification: + description: camt.027/camt.087 assignment id + type: string + type: object + CancellationDetails: + properties: + additionalInformation: + description: >- + Further details on the cancellation request reason. The order must + be as defined in the SEPA guideline. The prefixes will be added + automatically. First occurrence will be added to the first + (mandatory) entry of additional information. When denying a recall, + if you do not want to add extra information to the mandatory + occurrence, please provide an empty string. For Legal additional + information, second and third occurrence will be added on the second + and third additional information. + items: + description: >- + Further details on the cancellation request reason. The order must + be as defined in the SEPA guideline. The prefixes will be added + automatically. First occurrence will be added to the first + (mandatory) entry of additional information. When denying a + recall, if you do not want to add extra information to the + mandatory occurrence, please provide an empty string. For Legal + additional information, second and third occurrence will be added + on the second and third additional information. + type: string + type: array + originalRecallReasonAdditionalInformation: + description: >- + Further details on the cancellation reason which can be used when + the recall rejection reason was AC03 for a recall made by the + originator or FRAD for a recall made by the financial institution. + The prefixes will be added automatically. Up to 10 occurrences are + allowed. + items: + description: >- + Further details on the cancellation reason which can be used when + the recall rejection reason was AC03 for a recall made by the + originator or FRAD for a recall made by the financial institution. + The prefixes will be added automatically. Up to 10 occurrences are + allowed. + type: string + type: array + rejectionReason: + description: >- + Reason for the cancellation status. Only ARDT, AC04, AM04, NOAS, + NOOR, CUST, LEGL, AGNT are allowed. + enum: + - ARDT + - AC04 + - AM04 + - NOAS + - NOOR + - CUST + - LEGL + - AGNT + type: string + required: + - rejectionReason + type: object + CollectionDTO: + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + creditorSchemeIdentification: + $ref: '#/components/schemas/CreditorSchemeIdentificationDTO' + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + mandateRelatedInformation: + $ref: '#/components/schemas/MandateDTO' + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentificationDTO' + paymentTypeInformation: + $ref: '#/components/schemas/PaymentTypeInformationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - creditorSchemeIdentification + - debtorAccount + - debtorName + - instructedAmount + - mandateRelatedInformation + - paymentTypeInformation + type: object + CollectionResponse: + properties: + collectionId: + description: >- + Resource identification of the generated payment initiation + resource. + type: string + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + transactionFeeIndicator: + description: >- + If set to `true`, the transaction will involve additional costs or + fees. + type: boolean + transactionStatus: + description: >- + PSD2 transaction status codes: + enum: + - ACSC + - ACSP + - ACTC + - CPVP + - RCVD + - PDNG + - RJCT + type: string + required: + - collectionId + - transactionStatus + type: object + CreateAccountMapping: + properties: + identification: + $ref: '#/components/schemas/Identification' + required: + - identification + type: object + CreateAccountMappings: + properties: + accountIds: + description: >- + IDs of the Mambu Accounts which will be correlated to the IBAN or + proprietary identification. The association will be made on account + currency. + items: + description: >- + IDs of the Mambu Accounts which will be correlated to the IBAN or + proprietary identification. The association will be made on + account currency. + type: string + type: array + identification: + $ref: '#/components/schemas/Identification' + required: + - accountIds + - identification + type: object + CreateBlockingRule: + properties: + creditorMandate: + $ref: '#/components/schemas/CreditorMandateDTO' + product: + description: >- + Payment Product to which this rule applies. For now, blocking rules + can be applied to `SEPA_DIRECT_DEBIT` only + type: string + required: + - product + type: object + CreditorMandateDTO: + description: >- + Collection mandate identification for deleting a rule applying to a + specific mandate. + properties: + creditorSchemeIdentification: + $ref: '#/components/schemas/CreditorSchemeIdentificationDTO' + mandateRelatedInformation: + $ref: '#/components/schemas/MandateRelatedInformationDTO' + required: + - creditorSchemeIdentification + - mandateRelatedInformation + type: object + CreditorSchemeIdentification: + properties: + identification: + description: Object containing the identifier. + properties: + privateIdentification: + description: Unique and unambiguous identification of a person, eg, passport. + example: ABC123 + type: string + required: + - privateIdentification + type: object + CreditorSchemeIdentificationDTO: + description: Credit party that signs the mandate. + properties: + identification: + $ref: '#/components/schemas/IdentificationDTO' + required: + - identification + type: object + DeleteBlockingRule: + properties: + creditorMandate: + $ref: '#/components/schemas/CreditorMandateDTO' + product: + description: >- + Payment product to remove blocking rules from. Must be + `SEPA_DIRECT_DEBIT`. + type: string + required: + - product + type: object + FailedPaymentResponse: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + required: + - tppMessages + type: object + FilterCriteria: + properties: + field: + type: string + operator: + type: string + value: + type: string + required: + - field + - operator + - value + type: object + FinancialInstitutionPaymentDTO: + properties: + categoryPurposeCode: + description: >- + Specifies the high level purpose of the payment based on a set of + pre-defined categories. + maxLength: 4 + minLength: 1 + type: string + creditor: + $ref: '#/components/schemas/AgentDTO' + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + debtor: + $ref: '#/components/schemas/AgentDTO' + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + intermediaryAgent1: + $ref: '#/components/schemas/AgentDTO' + intermediaryAgent2: + $ref: '#/components/schemas/AgentDTO' + intermediaryAgent3: + $ref: '#/components/schemas/AgentDTO' + paymentIdentification: + $ref: '#/components/schemas/Iso20022PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditor + - debtor + - instructedAmount + - scheme + - settlementInformation + type: object + GroupHeader: + description: GroupHeader information from the original instruction. + properties: + messageIdentification: + description: Message Identification from the original instruction. + type: string + required: + - messageIdentification + type: object + GroupHeaderIncoming: + description: >- + Set of characteristics shared by all individual transactions included in + the Request for Status Update on Recall message + properties: + creationDateTime: + description: >- + Date and time at which the inquiry message was created. Accepted + format: yyyy-MM-ddTHH:mm:ss + type: string + instructingAgent: + description: >- + Agent that is instructed by the previous party in the chain to carry + out the (set of) instruction(s). + type: string + messageIdentification: + description: Message identification to identify the inquiry message + type: string + required: + - creationDateTime + - instructingAgent + - messageIdentification + type: object + Identification: + description: Identification + properties: + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + iban: + description: >- + ISO 13616 International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. + maxLength: 34 + minLength: 15 + type: string + other: + $ref: '#/components/schemas/Other' + type: object + Identification-IBAN: + properties: + iban: + description: >- + ISO 13616 International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. + maxLength: 34 + minLength: 15 + type: string + type: object + IdentificationDTO: + description: Unique and unambiguous identification for the account. + properties: + iban: + description: >- + International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. Must be between 15 and 34 characters. + maxLength: 34 + minLength: 15 + type: string + other: + $ref: '#/components/schemas/OtherDTO' + type: object + IdentificationsToMask: + properties: + identifications: + items: + $ref: '#/components/schemas/Identification-IBAN' + type: array + required: + - identifications + type: object + IncomingMessageResponse: + properties: + messageId: + description: Resource identification of the incoming message + type: string + messageType: + description: URN namespace of the incoming message + type: string + required: + - messageId + - messageType + type: object + InitiationPaymentDTO: + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + type: object + InstantPaymentIdentification: + description: Payment instruction reference. + properties: + acceptanceDateTime: + description: >- + AcceptanceDateTime from the original instruction; must be in the + same format as it was sent in the original instruction. + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. + type: string + required: + - acceptanceDateTime + - transactionIdentification + type: object + InstantPaymentSettlement: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeader' + transaction: + $ref: '#/components/schemas/InstantTransaction' + required: + - groupHeader + - transaction + type: object + InstantTransaction: + description: Original transaction information. + properties: + debtorAgent: + $ref: '#/components/schemas/Agent' + paymentIdentification: + $ref: '#/components/schemas/InstantPaymentIdentification' + required: + - debtorAgent + - paymentIdentification + type: object + InstitutionIdentification: + description: >- + Unique and unambiguous identification of a financial institution, as + assigned under an internationally recognised identification scheme. + properties: + bicfi: + description: >- + ISO 9362 Business identifier code (BIC) - code allocated to a + financial institution. Must be between 8 and 11 characters. + maxLength: 11 + minLength: 8 + type: string + required: + - bicfi + type: object + InstitutionIdentificationDTO: + description: >- + Unique and unambiguous identification of a financial institution, as + assigned under an internationally recognised identification scheme. + properties: + bicfi: + description: >- + ISO 9362 Business identifier code (BIC) - code allocated to a + financial institution. Must be between 8 and 11 characters. + maxLength: 11 + minLength: 8 + type: string + required: + - bicfi + type: object + Iso20022PaymentDTO: + properties: + categoryPurposeCode: + description: >- + Specifies the high level purpose of the payment based on a set of + pre-defined categories. + maxLength: 4 + minLength: 1 + type: string + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + paymentIdentification: + $ref: '#/components/schemas/Iso20022PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + - scheme + - settlementInformation + type: object + Iso20022PaymentIdentificationDTO: + properties: + endToEndIdentification: + description: >- + Unique identification assigned by the payer to identify the + transaction. This identification will be returned to the payer and + passed on to the beneficiary. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. If left empty, Mambu transaction id will + be used. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + uetr: + description: >- + Universally unique identifier to provide an end-to-end reference of + a payment transaction. + maxLength: 36 + minLength: 36 + type: string + type: object + LogRequest: + properties: + log: + maxLength: 300 + minLength: 1 + type: string + required: + - log + type: object + MandateDTO: + description: >- + Set of elements used to provide further details of the direct debit + mandate signed between the creditor and the debtor. + properties: + amendmentInformationDetails: + $ref: '#/components/schemas/AmendmentInformationDetailsDTO' + dateOfSignature: + description: >- + Date on which the direct debit mandate has been signed by the debtor + in the format `YYYY-MM-DD`. + type: string + mandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the mandate. + type: string + required: + - dateOfSignature + - mandateIdentification + type: object + MandateRelatedInformationDTO: + properties: + mandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the collection mandate. + type: string + required: + - mandateIdentification + type: object + Message: + description: List of SEPA instructions. + type: object + OriginalCamt056Data: + properties: + cancellationIdentification: + description: Cancellation identification. + type: string + groupHeader: + $ref: '#/components/schemas/GroupHeader' + historicCancellationRequest: + description: Original camt.056.001.01 message body XML for historical requests. + type: string + required: + - cancellationIdentification + type: object + OriginalCreditorSchemeIdentificationDTO: + description: Original creditor scheme identification that has been modified. + properties: + identification: + $ref: '#/components/schemas/IdentificationDTO' + name: + description: Name of the creditor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + type: object + OriginalInquiryData: + properties: + assignment: + $ref: '#/components/schemas/Assignment' + caseIdentification: + description: camt.027/camt.087 case id + type: string + historicClaimRequest: + description: Optional historic camt.087 or camt.027 xml + type: string + messageTypeName: + description: messageTypeName + enum: + - PACS_002_001_03 + - PACS_002_001_10 + - PACS_002_001_12 + - PACS_003_001_02 + - PACS_003_001_08 + - PACS_004_001_02 + - PACS_004_001_09 + - PACS_004_001_11 + - PACS_007_001_02 + - PACS_007_001_09 + - PACS_008_001_02 + - PACS_008_001_08 + - PACS_008_001_10 + - PACS_028_001_01 + - PACS_028_001_03 + - CAMT_027_001_06 + - CAMT_027_001_07 + - CAMT_029_001_03 + - CAMT_029_001_08 + - CAMT_029_001_09 + - CAMT_029_001_11 + - CAMT_056_001_01 + - CAMT_056_001_08 + - CAMT_056_001_10 + - CAMT_087_001_05 + - CAMT_087_001_06 + - SIC_PACS_008_001_08 + - SIC_PACS_004_001_09 + - SIC_PACS_002_001_10 + - MT_103 + - MT_103_RETURN + - UNKNOWN + type: string + required: + - caseIdentification + - messageTypeName + type: object + OriginalPacs008Data: + properties: + claimedValueDate: + description: Claimed value-date for change. + format: date + type: string + groupHeader: + $ref: '#/components/schemas/Pacs008GroupHeader' + historicCreditTransferRequest: + description: Original pacs.008 message body XML for historical requests. + type: string + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentification' + required: + - paymentIdentification + type: object + Other: + description: >- + Unique identification of an account, as assigned by the account + servicer, using other identification scheme. + properties: + identification: + description: Identification assigned by an institution. + maxLength: 34 + minLength: 1 + type: string + scheme: + description: Name of the identification scheme. + maxLength: 35 + minLength: 1 + type: string + required: + - identification + - scheme + type: object + OtherDTO: + description: >- + Unique identification of an account, as assigned by the account + servicer, using any other identification scheme. + properties: + identification: + description: >- + Identification assigned by an institution. Must not exceed 34 + characters. + maxLength: 34 + minLength: 1 + type: string + scheme: + description: >- + Name or code of the identification scheme. Must not exceed 35 + characters. + maxLength: 35 + minLength: 1 + type: string + required: + - identification + - scheme + type: object + Pacs008GroupHeader: + description: Original pacs.008 group header information. + properties: + messageIdentification: + description: Original message identification. + type: string + settlementDate: + description: Original settlement date. + format: date + type: string + required: + - messageIdentification + type: object + PartyIdentificationDTO: + description: Beneficiary’s identification. + properties: + code: + description: >- + A four-letter code specifying the type of identification being used. + For valid codes an external catalogue should be consulted such as + the one provided in the [ISO 20022 External Code + Sets](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 1 + type: string + issuer: + description: >- + The official body who provided the identification. Must not exceed + 35 characters. + maxLength: 35 + minLength: 1 + type: string + privateIdentification: + description: >- + Unique and unambiguous identification of a person, eg, passport. + Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + proprietary: + description: >- + A proprietary type of identification for the party to the + transaction. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - privateIdentification + type: object + PaymentDTO: + description: Payment details for standing order + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + type: object + PaymentDetails: + properties: + transactionStatus: + description: >- + PSD2 transaction status codes: + enum: + - ACSC + - ACSP + - ACTC + - RCVD + - PDNG + - RJCT + type: string + PaymentIdentification: + description: Payment identification. + properties: + transactionIdentification: + description: Original transaction identification. + type: string + type: object + PaymentIdentificationDTO: + description: Payment instruction reference. + properties: + endToEndIdentification: + description: >- + Unique identification assigned by the payer to identify the + transaction. This identification will be returned to the payer and + passed on to the beneficiary. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. If left empty, Mambu transaction id will + be used. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + type: object + PaymentResponse: + properties: + paymentId: + description: >- + Resource identification of the generated payment initiation + resource. + type: string + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + transactionFeeIndicator: + description: >- + If value is `true`, the transaction will involve additional + transaction costs or fees. + type: boolean + transactionStatus: + description: 'RCVD: Payment initiation has been received by the receiving agent.' + enum: + - RCVD + type: string + required: + - paymentId + - transactionStatus + type: object + PaymentResponse-TPP: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + PaymentTypeInformationDTO: + description: Set of elements used to further specify the type of transaction. + properties: + sequenceType: + description: >- + Identifies the direct debit sequence, such as first, recurrent, + final or one-off (`FRST`, `RCUR`, `FNAL`, `OOFF`). + type: string + required: + - sequenceType + type: object + PrivateIdentificationDTO: + description: Unique and unambiguous identification of a party. + properties: + privateIdentification: + description: >- + Unique and unambiguous identification of a person, eg, passport. + Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - privateIdentification + type: object + Recall: + properties: + customerRecallReasonCode: + description: >- + Customer reason for outgoing payment recall, as defined in the SEPA + guideline + enum: + - AM09 + - AC03 + type: string + recallReasonCode: + description: Reason for outgoing payment recall, as defined in the SEPA guideline + enum: + - FRAD + - TECH + - CUST + - DUPL + type: string + required: + - recallReasonCode + type: object + Refund: + properties: + reasonCode: + description: Reason for an interbank Refund, as defined in the SEPA guideline + enum: + - MD01 + - MD06 + type: string + required: + - reasonCode + type: object + RejectStatusUpdateOnRecall: + properties: + cancellationDetails: + $ref: '#/components/schemas/CancellationDetails' + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/TransactionInformation' + required: + - cancellationDetails + - groupHeader + - transactionInformation + type: object + RemittanceDTO: + description: >- + Payment details. Structured message. Generally, these fields are used to + provide invoice or creditor reference information. References should + conform to ISO 11649, international standard of reference information. + properties: + reference: + description: >- + The actual reference. Must not exceed 35 characters. If providing a + reference number, the `referenceType` should also be provided. + maxLength: 35 + minLength: 1 + type: string + referenceIssuer: + description: >- + The entity which created or generated the reference. Must not exceed + 35 characters. + maxLength: 35 + minLength: 1 + type: string + referenceType: + description: The type of reference provided. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - reference + type: object + ResendAmlFilter: + properties: + category: + description: Message Category. Supported values are SEPA_CT, SEPA_DD or TGT. + enum: + - SEPA_CT + - SEPA_DD + - TGT + type: string + direction: + description: >- + Message Direction. Supported values are I (incoming) or O + (outgoing). + enum: + - I + - O + type: string + instructingAgent: + description: >- + Agent that instructs the next party in the chain to carry out the + (set of) instruction(s). + type: string + interbankSettlementDate: + description: >- + Date on which the amount of money ceases to be available to the + agent that owes it and when the amount of money becomes available to + the agent to which it is due. Accepted format: yyyy-MM-dd + type: string + messageId: + description: Incoming message identification. + type: string + required: + - direction + type: object + RetryPolicyDTO: + description: Failing standing orders retry policy + properties: + retryCount: + description: Specifies how many times the failing standing order will be retried + format: int32 + type: integer + type: object + Reverse: + properties: + reasonCode: + description: Reason for an interbank Reversal, as defined in the SEPA guideline + enum: + - AM05 + - MS02 + - MS03 + type: string + required: + - reasonCode + type: object + SepaMessageFilter: + properties: + dateFrom: + description: >- + Start date from which the messages should be filtered. Accepted + format: yyyy-MM-dd + type: string + dateTo: + description: >- + End date up until which the messages should be filtered. Accepted + format: yyyy-MM-dd + type: string + direction: + description: Message Direction. Supported values are I (incoming) or O (outgoing) + type: string + limit: + description: >- + Limit of the number of objects returned by the server. Defaults to + 20. + format: int32 + maximum: 100 + minimum: 1 + type: integer + messageId: + description: Message ID, representing the GrpHdr>>MsgId field of the message + type: string + messageType: + description: >- + Message type. Accepted values are pacs.008.001.02, pacs.004.001.02, + pacs.003.001.02, camt.056.001.01, camt.029.001.03 + type: string + network: + description: >- + Network for which the instructions should be received. SEPA is the + only value allowed + type: string + offset: + description: Offset from which the results should be provided. Defaults to 0. + format: int32 + minimum: 0 + type: integer + paymentId: + description: Payment ID, id provided when creating a new payment + type: string + transactionsLimit: + description: >- + Limit of the number of transactions returned by the server. Defaults + to 10. If the transactionsLimit is 0 only message headers will be + returned. If the transactionsLimit or transactionsOffset is bigger + than 0 then the messageId parameter has to be used as transactions + pagination in only available for one message. + format: int32 + minimum: 0 + type: integer + transactionsOffset: + description: >- + Offset from which the transactions should be provided. Defaults to + 0. If the transactionsLimit or transactionsOffset is bigger than 0 + then the messageId parameter has to be used as transactions + pagination in only available for one message. + format: int32 + minimum: 0 + type: integer + required: + - direction + type: object + SepaMessages: + properties: + instructions: + description: List of SEPA instructions. + items: + $ref: '#/components/schemas/Message' + type: array + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + SettlementInformationDTO: + description: >- + Specifies the details on how the settlement of the transaction(s) + between the instructing agent and the instructed agent is completed. + properties: + clearingSystem: + description: Clearing system when settlement method is CLRG. + type: string + settlementAccount: + $ref: '#/components/schemas/AccountDTO' + settlementMethod: + description: >- + Method used to settle the payment: INDA (instructed agent), INGA + (instructing agent), CLRG (clearing system) + type: string + required: + - settlementMethod + type: object + SkipStatusUpdateOnRecall: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/StatusRequestIdentification' + required: + - groupHeader + - transactionInformation + type: object + StandingOrderCreateResponse: + properties: + id: + description: Standing order id + type: string + type: object + StandingOrderDTO: + properties: + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + ownerId: + description: Standing order owner id + maxLength: 36 + minLength: 1 + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + retryPolicy: + $ref: '#/components/schemas/RetryPolicyDTO' + startDate: + description: Standing order start date + format: date + type: string + required: + - frequency + - ownerId + - payment + - retryPolicy + - startDate + type: object + StandingOrderExecutionResponse: + properties: + creationDate: + description: Entry creation date and time + format: date-time + type: string + failReason: + description: Holds short failure description + enum: + - INSUFFICIENT_FUNDS(401) + - ACCOUNT_INACTIVE(407) + - OTHER(-1) + type: string + paymentOrderId: + description: Payment order id + type: string + requestedExecuteOn: + description: Date and time at which payment is initiated + format: date-time + type: string + standingOrderId: + description: Standing order id + type: string + status: + description: Status of payment execution + enum: + - RUNNING + - COMPLETED + - FAILED + type: string + type: + description: Execution type + enum: + - REGULAR + - RETRY + type: string + type: object + StandingOrderGetResponse: + properties: + creationDateTime: + description: Standing order creation date and time + format: date-time + type: string + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + id: + description: Standing order id + type: string + lastExecution: + description: Standing order's last payment execution date + format: date + type: string + nextExecution: + description: Standing order's next payment execution date + format: date + type: string + ownerId: + description: Standing order owner id + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + paymentsCount: + description: Standing order's count of payments executed so far + format: int32 + type: integer + retryCount: + description: Standing order's retry count setting + format: int32 + type: integer + startDate: + description: Standing order start date + format: date + type: string + status: + description: Standing order status + enum: + - ACTIVE + - SUSPENDED + - CANCELED + - WITHDRAWN + type: string + suspendDateFrom: + description: Standing order suspend start date + format: date + type: string + suspendDateTo: + description: Standing order suspend end date (inclusive) + format: date + type: string + type: object + StandingOrderSearchRequest: + properties: + filterCriteria: + items: + $ref: '#/components/schemas/FilterCriteria' + maxItems: 2 + minItems: 1 + type: array + limit: + format: int32 + maximum: 500 + minimum: 1 + type: integer + offset: + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + required: + - filterCriteria + type: object + StandingOrderSearchResponse: + properties: + creationDateTime: + description: Standing order creation date and time + format: date-time + type: string + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + id: + description: Standing order id + type: string + ownerId: + description: Standing order owner id + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + retryCount: + description: Standing order's retry count setting + format: int32 + type: integer + startDate: + description: Standing order start date + format: date + type: string + status: + description: Standing order status + enum: + - ACTIVE + - SUSPENDED + - CANCELED + - WITHDRAWN + type: string + suspendDateFrom: + description: Standing order suspend start date + format: date + type: string + suspendDateTo: + description: Standing order suspend end date (inclusive) + format: date + type: string + type: object + StandingOrderSuspendDTO: + properties: + endDate: + description: Suspend standing order till date (inclusive) + format: date + type: string + id: + description: Standing order id + maxLength: 36 + minLength: 1 + type: string + startDate: + description: Suspend standing order from date + format: date + type: string + required: + - endDate + - id + type: object + StatusRequestIdentification: + description: Information concerning the Request for Status Update on Recall message + properties: + statusRequestIdentification: + description: >- + Unique identification, as assigned by an instructing party for an + instructed party, to identify the status request + type: string + required: + - statusRequestIdentification + type: object + TPPMessage: + description: Messages to the TPP on operational issues. + properties: + category: + description: Category designates the message severity. + enum: + - ERROR + - WARN + type: string + code: + description: >- + Message error + codes: + enum: + - ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION + - FEATURE_NOT_ENABLED + - FORMAT_ERROR + - INVALID_MESSAGE_TYPE + - INVALID_REQUEST_BODY + - INVALID_TRANSACTION_STATE + - INVALID_TRANSACTION_STATUS + - ORIGINAL_MESSAGE_ALREADY_REPLIED + - ORIGINAL_MESSAGE_PENDING_REPLY + - PARAMETER_NOT_SUPPORTED + - PAYMENT_FAILED + - SERVICE_INVALID + - NOT_FOUND + - RESOURCE_UNKNOWN + type: string + path: + type: string + text: + description: Additional explaining text. + maxLength: 512 + minLength: 1 + type: string + required: + - category + - code + type: object + TppMessagesResponse: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + required: + - tppMessages + type: object + TransactionInformation: + description: >- + Information concerning the original transaction, to which the Request + for Status Update on Recall message refers + properties: + originalInstructionIdentification: + description: >- + Unique identification, as assigned by the original instructing party + for the original instructed party, to unambiguously identify the + original instruction. + type: string + originalMessageIdentification: + description: >- + Point to point reference assigned by the original instructing party + to identify the original group of individual transactions + type: string + statusRequestIdentification: + description: >- + Unique identification, as assigned by an instructing party for an + instructed party, to identify the status request + type: string + required: + - originalInstructionIdentification + - originalMessageIdentification + - statusRequestIdentification + type: object + IncomingMessagesCreateRequestRequest: + type: string + IncomingMessagesCreateRequestRequest1: + type: string + ExternalAccountRepresentationGetIdentificationsResponse: + type: array + items: + $ref: '#/components/schemas/Identification' + ExternalAccountRepresentationSearchIdentificationsResponse: + type: array + items: + $ref: '#/components/schemas/AccountIdentificationsSearchResponseDTO' + ExternalAccountRepresentationCreateOrUpdateLogResponse: + type: object + properties: {} + example: {} + CreditTransferSubmitPaymentRequestResponse: + type: object + properties: {} + example: {} + SepaCreditTransfersCreateRequestResponse: + type: object + properties: {} + example: {} + SepaDirectDebitGetCollectionDetailsResponse: + type: object + properties: {} + example: {} + SepaCreditTransfersGetPaymentDetailsResponse: + type: object + properties: {} + example: {} + SepaCreditTransfersGetPaymentDetailsdefaultResponse: + type: object + properties: {} + example: {} + AmlSubmitAmlCheckResultResponse: + type: string + AmlSubmitAmlCheckResult503Response: + type: string + AmlSubmitAmlCheckResultsResponse: + type: string + AmlSubmitAmlCheckResults503Response: + type: string diff --git a/sdks/db/generate-repository-description-cache/in-mobile.json b/sdks/db/generate-repository-description-cache/in-mobile.json index d2c60da77b..b12a14a8a8 100644 --- a/sdks/db/generate-repository-description-cache/in-mobile.json +++ b/sdks/db/generate-repository-description-cache/in-mobile.json @@ -1,3 +1,4 @@ { - "inMobile er en SMS-Gateway testet af over 8.000 brugere. Vi håndterer over 150 mio. SMS-beskeder årligt og tilstræber en oppetid på 100%, men sandheden er 99,99%. \n\nUanset, om det drejer sig om at informere dine kunder, medarbejdere eller andre personer, som er vigtige for din virksomhed, gør inMobile det nemt for de rette personer at få besked på det rette tidspunkt. \n\nDu får adgang til en brugervenlig SMS-Gateway og et gennemtestet API, som du nemt kan integrere med dit eget system eller hjemmeside.\n\nØnsker du at høre mere om vores løsning, er du velkommen til at kontakte os på +45 88 33 66 99 eller på mail salg@inmobile.dk\nVi har åbent alle hverdage mellem kl. 8-17": "SMS-Gateway that handles 150M+ messages annually with 99.99% uptime. Easy communication for customers and employees. User-friendly gateway and API for seamless integration. inMobile's {language} SDK generated by Konfig (https://konfigthis.com/)." + "inMobile er en SMS-Gateway testet af over 8.000 brugere. Vi håndterer over 150 mio. SMS-beskeder årligt og tilstræber en oppetid på 100%, men sandheden er 99,99%. \n\nUanset, om det drejer sig om at informere dine kunder, medarbejdere eller andre personer, som er vigtige for din virksomhed, gør inMobile det nemt for de rette personer at få besked på det rette tidspunkt. \n\nDu får adgang til en brugervenlig SMS-Gateway og et gennemtestet API, som du nemt kan integrere med dit eget system eller hjemmeside.\n\nØnsker du at høre mere om vores løsning, er du velkommen til at kontakte os på +45 88 33 66 99 eller på mail salg@inmobile.dk\nVi har åbent alle hverdage mellem kl. 8-17": "SMS-Gateway that handles 150M+ messages annually with 99.99% uptime. Easy communication for customers and employees. User-friendly gateway and API for seamless integration. inMobile's {language} SDK generated by Konfig (https://konfigthis.com/).", + "inMobile er en SMS-Gateway testet af over 8.000 brugere. Vi håndterer over 150 mio. SMS-beskeder årligt og tilstræber en oppetid på 100%, men sandheden er 99,99%.\n\nUanset, om det drejer sig om at informere dine kunder, medarbejdere eller andre personer, som er vigtige for din virksomhed, gør inMobile det nemt for de rette personer at få besked på det rette tidspunkt.\n\nDu får adgang til en brugervenlig SMS-Gateway og et gennemtestet API, som du nemt kan integrere med dit eget system eller hjemmeside.\n\nØnsker du at høre mere om vores løsning, er du velkommen til at kontakte os på +45 88 33 66 99 eller på mail salg@inmobile.dk\nVi har åbent alle hverdage mellem kl. 8-17": "inMobile is an SMS-Gateway handling over 150 million SMS messages annually with a 99.99% uptime guarantee. Easily inform customers, employees, and important contacts. Access user-friendly gateway and API for seamless integration. Contact us for more information. inMobile's {language} SDK generated by Konfig (https://konfigthis.com/)." } \ No newline at end of file diff --git a/sdks/db/generate-repository-description-cache/kombo.json b/sdks/db/generate-repository-description-cache/kombo.json new file mode 100644 index 0000000000..d642b50d7f --- /dev/null +++ b/sdks/db/generate-repository-description-cache/kombo.json @@ -0,0 +1,3 @@ +{ + "Kombo is changing how B2B SaaS companies provide HR integrations to their customers. Instead of having to build and maintain many APIs themselves, Kombos customers can integrate with Kombo's API once and offer dozens of APIs to their customers instantly.": "Kombo is changing how B2B SaaS companies provide HR integrations to their customers. Instead of having to build and maintain many APIs themselves, Kombos customers can integrate with Kombo's API once and offer dozens of APIs to their customers instantly. Kombo's {language} SDK generated by Konfig (https://konfigthis.com/)." +} \ No newline at end of file diff --git a/sdks/db/generate-repository-description-cache/localizely.json b/sdks/db/generate-repository-description-cache/localizely.json new file mode 100644 index 0000000000..b9fd7c545e --- /dev/null +++ b/sdks/db/generate-repository-description-cache/localizely.json @@ -0,0 +1,3 @@ +{ + "Localizely is a translation management system for agile teams that streamlines software localization. \n\nWe believe translation management for apps should be easy, so the team can focus on things that bring business value.\n\nDevelopers can easily integrate translations into the apps build process, and managers can easily collaborate with translators.\n\nWe built Localizely from our experience by working on software projects with 2 to 100 languages.": "Localizely is a translation management system that streamlines software localization for agile teams, making app translation easy and efficient. Localizely's {language} SDK generated by Konfig (https://konfigthis.com/)." +} \ No newline at end of file diff --git a/sdks/db/generate-repository-description-cache/mambu-payments.json b/sdks/db/generate-repository-description-cache/mambu-payments.json new file mode 100644 index 0000000000..3afacfebc1 --- /dev/null +++ b/sdks/db/generate-repository-description-cache/mambu-payments.json @@ -0,0 +1,3 @@ +{ + "Heard of composable banking? The concept originated here at Mambu. We've been champions of composable for over a decade.\n\nMambu is the only true SaaS cloud core banking platform. Our unique and sustainable composable approach means that independent engines, systems and connectors can be assembled in any configuration to meet business requirements and the ever-changing demands of your customers. 260+ banks, lenders, fintechs, and even retailers in 65 countries turn to us to help them build modern digital financial products faster, securely and cost-effectively.\n\nReady to become a Mambuvian? Check our Jobs tab.": "Mambu is a pioneer in composable banking, offering the only true SaaS cloud core banking platform. Our sustainable approach allows for flexible assembly of engines, systems, and connectors to meet diverse business needs. Trusted by 260+ institutions in 65 countries for rapid, secure, and cost-effective digital financial product development." +} \ No newline at end of file diff --git a/sdks/db/intermediate-fixed-specs/kombo/openapi.yaml b/sdks/db/intermediate-fixed-specs/kombo/openapi.yaml new file mode 100644 index 0000000000..e92a030478 --- /dev/null +++ b/sdks/db/intermediate-fixed-specs/kombo/openapi.yaml @@ -0,0 +1,29586 @@ +openapi: 3.0.0 +info: + title: Kombo API + version: 1.0.0 + description: >- + Kombo is changing how B2B SaaS companies provide HR integrations to their + customers. Instead of having to build and maintain many APIs themselves, + Kombos customers can integrate with Kombo's API once and offer dozens of + APIs to their customers instantly. +paths: + /check-api-key: + get: + operationId: GetCheckApiKey + responses: + '200': + description: GET /check-api-key Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCheckApiKeySuccessfulResponse' + examples: + example1: + value: + status: success + data: + environment_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + customer_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + '400': + description: GET /check-api-key Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCheckApiKeyErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: Check whether your API key is working properly. + summary: Check API key + tags: + - General + /force-sync: + post: + operationId: PostForceSync + responses: + '200': + description: POST /force-sync Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncSuccessfulResponse' + examples: + example1: + value: + status: success + data: + already_queued: false + sync_id: 119ihtp91nA3dqRFiV67nXS6 + '400': + description: POST /force-sync Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Trigger a sync for a specific integration. + + + Please note that it is **not** necessary nor recommended to + call this endpoint periodically on your side. Kombo already performs + period syncs for you and you should only trigger syncs yourself in + special cases (like when a user clicks on a "Sync" button in your + app). + summary: Trigger sync + tags: + - General + requestBody: + description: POST /force-sync request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostForceSyncRequestBody' + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: workday:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /passthrough/{tool}/{api}: + post: + operationId: PostPassthroughToolApi + responses: + '200': + description: POST /passthrough/:tool/:api Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiSuccessfulResponse' + '400': + description: POST /passthrough/:tool/:api Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Send a request to the specified integration's native API. + + + At Kombo we put a lot of work into making sure that our unified API + covers all our customers' use cases and that they never have to think + about integration-specific logic again. There are cases, however, where + our customers want to build features that are very integration-specific. + That's where this endpoint comes in. + + + Pass in details about the request you want to make to the integration's + API and we'll forward it for you. We'll also take care of setting the + right base URL and authenticating your requests. + + + To get started, please pick the relevant API (some tools provide + multiple to due different base URLs or authentication schemes) from the + table below and pass in the `{tool}/{api}` identifier as part of the + path. + + + |Integration|`{tool}/{api}`|Description| + + |---|---|---| + + |Personio|`personio/personnel`|Personio's [Personnel Data + API](https://developer.personio.de/reference/get_company-employees). We + automatically authenticate all requests using the client ID and secret + and use `https://api.personio.de/v1` as the base URL.| + + |Workday|`workday/soap`|[Workday's SOAP + API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). + We automatically authenticate all requests. Set `data` to your raw xml + string. Use `/` as your `path`, as we will always send requests to + `https://{domain}/ccx/service/{tenant}/{service_name}/38.2`. Set your + `method` to `POST`. You need to specify the `api_options` object and set + `service_name` to the name of the service you want to call. Find all + available services + [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). + The string that you submit as `data` will be the content of the + `soapenv:Body` tag in the request.| + + |SAP SuccessFactors|`successfactors/odata-v2`|[SuccessFactors' OData V2 + API](https://help.sap.com/doc/74597e67f54d4f448252bad4c2b601c9/2211/en-US/SF_HCM_OData_API_REF_en.pdf). + We automatically authenticate all requests and use + `https://{api_domain}/odata/v2` as the base URL.| + + |Lever|`lever/v1`|[Lever's v1 + API](https://hire.lever.co/developer/documentation). We automatically + authenticate all requests using the partner credentials which have been + configured in the Lever tool settings (this uses Kombo's partner + credentials by default).| + + |Recruitee|`recruitee/default`|The [Recruitee + API](https://api.recruitee.com/docs/index.html). We automatically + authenticate all requests and use + `https://api.recruitee.com/c/{company_id}` as the base URL.| + + |Greenhouse|`greenhouse/harvest`|Greenhouse [Harvest + API](https://developers.greenhouse.io/harvest.html). We automatically + authenticate all requests using the API key and use + `https://harvest.greenhouse.io/v1` as the base URL.| + + |Teamtailor|`teamtailor/v1`|Teamtailor's + [JSON-API](https://docs.teamtailor.com/). We authenticate all request + with the Teamtailor API key and use the base URL + `https://api.teamtailor.com/v1`.| + + |Personio|`personio/recruiting`|Personio's [Recruiting + API](https://developer.personio.de/reference/get_company-employees). We + automatically authenticate all requests using the Recruiting access + token and use `https://api.personio.de/v1/recruiting` as the base URL.| + + |Personio|`personio/jobboard`|API endpoints exposed on Personio's public + job board pages ([currently just the XML + feed](https://developer.personio.de/reference/get_xml)). We + automatically use the right `https://{company}.jobs.personio.de` base + URL.| + + |BambooHR|`bamboohr/v1`|BambooHR's + [API](https://documentation.bamboohr.com/reference/get-employee). We + automatically authenticate all requests using the customer credentials + `https://api.bamboohr.com/api/gateway.php/{subdomain}/v1` as the base + URL.| + + |Workable|`workable/v1`|Workable's + [API](https://workable.readme.io/reference/generate-an-access-token). We + automatically authenticate all requests using the client ID and secret + and use `https://subdomain.workable.com/spi/v3` as the base URL.| + + |HiBob|`hibob/v1`|[HibBob's v1 + API](https://apidocs.hibob.com/reference/get_people). We automatically + authenticate all requests using the service user credentials (or, for + old integrations, the API key) and use `https://api.hibob.com/v1` as the + base URL.| + + |Pinpoint|`pinpoint/v1`|Pinpoint's + [JSON:API](https://developers.pinpointhq.com/docs). We automatically + authenticate all requests using the `X-API-KEY` header and use + `https://{subdomain}.pinpointhq.com/api/v1` as the base URL.| + + |Haufe Umantis|`umantis/v1`|[Umantis API + v1](https://recruitingapp-91005709.umantis.com/api/v1/swagger-ui). We + automatically authenticate all requests and use + `https://{subdomain}.umantis.com/api/v1` as the base URL.| + + |HRworks|`hrworks/v2`|HRWorks's v2 + [API](https://developers.hrworks.de/2.0/endpoints). We automatically + authenticate all requests using the customer credentials.| + + |JazzHR|`jazzhr/v1`|[JazzHR's v1 + API](https://www.resumatorapi.com/v1/#!`). We automatically authenticate + all requests.| + + + Please note that the passthrough API endpoints are only meant for + edge cases. That's why we only expose them for new integrations after + understanding a concrete customer use case. If you have such a use case + in mind, please reach out to Kombo. + summary: Send passthrough request + tags: + - General + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: greenhouse:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: tool + in: path + required: true + description: >- + The ID of the tool whose passthrough API you want to call (e.g., + `personio`). + schema: + $ref: '#/components/schemas/PostPassthroughToolApiParameterTool' + - name: api + in: path + required: true + description: >- + The ID of the passthrough API you want to call (some tools provide + multiple). Check the endpoint description for a list of all + available APIs. + schema: + $ref: '#/components/schemas/PostPassthroughToolApiParameterApi' + requestBody: + description: POST /passthrough/:tool/:api request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostPassthroughToolApiRequestBody' + /integrations/{integration_id}: + delete: + operationId: DeleteIntegrationsIntegrationId + responses: + '200': + description: DELETE /integrations/:integration_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdSuccessfulResponse + '400': + description: DELETE /integrations/:integration_id Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: |- + Delete the specified integration. + **⚠️ This can not be undone!** + summary: Delete integration + tags: + - General + parameters: + - name: integration_id + in: path + required: true + description: DELETE /integrations/:integration_id parameter + schema: + $ref: >- + #/components/schemas/DeleteIntegrationsIntegrationIdParameterIntegrationId + requestBody: + description: DELETE /integrations/:integration_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteIntegrationsIntegrationIdRequestBody' + get: + operationId: GetIntegrationsIntegrationId + responses: + '200': + description: GET /integrations/:integration_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetIntegrationsIntegrationIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: factorial:8d1hpPsbjxUkoCoa1veLZGe5 + tool: + id: factorial + label: Factorial + internal_label: null + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + category: HRIS + status: ACTIVE + end_user: + organization_name: Acme + creator_email: example-integration-creator@acme.com + origin_id: 2DQJAUtSzzzKP9buDTvUvPk3 + scope_config: + id: B1hu5NGyhdjSq5X3hxEz4bAN + name: Anonymous Scopes + created_at: '2022-08-07T14:01:29.196Z' + beta: false + '400': + description: GET /integrations/:integration_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetIntegrationsIntegrationIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Get the specified integration with everything you need to display it to + your customer. + summary: Get integration details + tags: + - General + parameters: + - name: integration_id + in: path + required: true + description: GET /integrations/:integration_id parameter + schema: + $ref: >- + #/components/schemas/GetIntegrationsIntegrationIdParameterIntegrationId + /integrations/{integration_id}/relink: + post: + operationId: PostIntegrationsIntegrationIdRelink + responses: + '200': + description: POST /integrations/:integration_id/relink Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkSuccessfulResponse + '400': + description: POST /integrations/:integration_id/relink Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Create a link that will allow the user to reconnect an integration. This + is useful if you want to allow your users to update the credentials if + the old ones for example expired. + + + Embed this the same way you would [embed the connect + link](https://api.kombo.dev). By default, the link will be valid for 1 + hour. + + + ### Example Request Body + + + ```json + + { + "language": "en" + } + + ``` + summary: Create reconnection link + tags: + - General + parameters: + - name: integration_id + in: path + required: true + description: POST /integrations/:integration_id/relink parameter + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkParameterIntegrationId + examples: + example1: + value: personio:93fCvorjZ2jas7ZekX1V1n5d + requestBody: + description: POST /integrations/:integration_id/relink request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostIntegrationsIntegrationIdRelinkRequestBody + examples: + example1: + value: + language: en + /tools/{category}: + get: + operationId: GetToolsCategory + responses: + '200': + description: GET /tools/:category Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetToolsCategorySuccessfulResponse' + examples: + example1: + value: + status: success + data: + tools: + - id: factorial + label: Factorial + internal_label: null + assets: + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + icon_black_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon-black.svg + coverage: + read_models: + - id: hris_employees + label: Employees + - id: hris_teams + label: Groups + write_actions: + - id: hris_create_employee + label: Create employee + features: + - id: automatic_source_writing + label: Automatic Source Writing + '400': + description: GET /tools/:category Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetToolsCategoryErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Get a list of the tools (i.e., integrations) enabled in your + environment. + This can (in combination with the `integration_tool` parameter of [the "Create Link" endpoint](https://api.kombo.dev)) be used to, for example, display a custom list or grid of available integrations to your end users instead of exposing Kombo Connect's standard tool selector. + summary: Get tools + parameters: + - name: category + in: path + required: true + description: GET /tools/:category parameter + schema: + $ref: '#/components/schemas/GetToolsCategoryParameterCategory' + tags: + - General + /hris/provisioning-groups/{group_id}/diff: + post: + operationId: PostHrisProvisioningGroupsGroupIdDiff + responses: + '200': + description: POST /hris/provisioning-groups/:group_id/diff Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffSuccessfulResponse + '400': + description: POST /hris/provisioning-groups/:group_id/diff Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Get the list of users to provision, deprovision, and optionally update + based on the users you've already provisioned in your system. + summary: Get provisioning diff + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: group_id + in: path + required: true + description: ID of the provisioning group (currently only `default` is allowed). + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffParameterGroupId + examples: + example1: + value: n39n320clr8c5amf8v83nbch + requestBody: + description: POST /hris/provisioning-groups/:group_id/diff request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdDiffRequestBody + examples: + example1: + value: + provisioned_users: + - origin_id: your_id_123 + email: johndoe@example.com + options: + employee_fields: + - id + - first_name + - last_name + tags: + - Unified HRIS API + /hris/provisioning-groups/{group_id}/setup-links: + post: + operationId: PostHrisProvisioningGroupsGroupIdSetupLinks + responses: + '200': + description: >- + POST /hris/provisioning-groups/:group_id/setup-links Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksSuccessfulResponse + examples: + example1: + value: + status: success + data: + url: >- + https://connect.kombo.dev/v1/provisioning?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + expires_at: '2023-10-11T12:00:00.000Z' + '400': + description: POST /hris/provisioning-groups/:group_id/setup-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + description: >- + Create a new link that can be passed to the Kombo Connect SDK to open + the provisioning setup UI. + summary: Create provisioning setup link + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: group_id + in: path + required: true + description: ID of the provisioning group (currently only `default` is allowed). + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId + examples: + example1: + value: n39n320clr8c5amf8v83nbch + requestBody: + description: POST /hris/provisioning-groups/:group_id/setup-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody + examples: + example1: + value: + language: en + /hris/employees: + get: + operationId: GetHrisEmployees + responses: + '200': + description: GET /hris/employees Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmployeesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + employments: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + time_off_balances: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + manager: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJg + work_email: john.doe@acme.com + remote_id: '32' + groups: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + legal_entity: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + work_location: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: GET /hris/employees Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmployeesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all employees. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Not interested in most fields? You can use our [our Scopes + feature](https://api.kombo.dev) to customize what data points are + synced. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get employees + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterRemoteIds' + - name: employment_status + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** + Filter by the `employment_status` field. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatus' + - name: employment_statuses + in: query + required: false + description: >- + Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, + `LEAVE` + + * `ACTIVE`: the employee is **actively employed** + + * `PENDING`: the employee is **not actively employed yet** (but they + signed their contract or are part of an onboarding process) + + * `INACTIVE`: a full-time employee is no longer employed, or, for a + contract worker when their contract runs out + + * `LEAVE`: the employee is still employed but **currently on leave** + (note that not all HR systems support this status — use our absences + API for detailed information) + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterEmploymentStatuses' + - name: group_ids + in: query + required: false + description: >- + Filter by a comma-separated list of group IDs. We will only return + employees that are members of _any_ of the groups. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterGroupIds' + - name: legal_entity_ids + in: query + required: false + description: >- + Filter by a comma-separated list of legal entity IDs. We will only + return employees that are members of _any_ of the legal entities. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterLegalEntityIds' + - name: work_location_ids + in: query + required: false + description: >- + Filter by a comma-separated list of work location IDs. We will only + return employees who are at _any_ of the work locations. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterWorkLocationIds' + - name: work_emails + in: query + required: false + description: >- + Filter by a comma-separated list of work emails. We will only return + employees who have _any_ of the work emails. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterWorkEmails' + - name: personal_emails + in: query + required: false + description: >- + Filter by a comma-separated list of personal emails. We will only + return employees who have _any_ of the personal emails. + schema: + $ref: '#/components/schemas/GetHrisEmployeesParameterPersonalEmails' + post: + operationId: PostHrisEmployees + responses: + '200': + description: POST /hris/employees Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + '400': + description: POST /hris/employees Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new employee. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "first_name": "John", + "last_name": "Doe", + "work_email": "john.doe@acme.com", + "gender": "MALE", + "job_title": "Integrations Team Lead", + "home_address": { + "city": "Berlin", + "country": "DE", + "state": "Berlin", + "street_1": "Sonnenallee 63", + "zip_code": "12045" + }, + "date_of_birth": "1986-01-01", + "start_date": "2020-04-07" + } + + ``` + summary: Create employee + tags: + - Unified HRIS API + requestBody: + description: POST /hris/employees request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisEmployeesRequestBody' + examples: + example1: + value: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /hris/employees/{employee_id}: + patch: + operationId: PatchHrisEmployeesEmployeeId + responses: + '200': + description: PATCH /hris/employees/:employee_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchHrisEmployeesEmployeeIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + '400': + description: PATCH /hris/employees/:employee_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Update an employee. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage employees** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "BkgfzSr5muN9cUTMD4wDQFn4", + "first_name": "John", + "last_name": "Doe", + "work_email": "john.doe@acme.com", + "ssn": "555-32-6395", + "tax_id": "12 345 678 901", + "gender": "MALE", + "marital_status": "MARRIED", + "date_of_birth": "1986-01-01", + "start_date": "2020-04-07", + "termination_date": "2022-05-20", + "job_title": "Integrations Team Lead", + "nationality": "DE", + "home_address": { + "city": "Berlin", + "country": "DE", + "state": "Berlin", + "street_1": "Sonnenallee 63", + "zip_code": "12045" + } + } + + ``` + summary: Update employee + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr: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/PatchHrisEmployeesEmployeeIdParameterEmployeeId + examples: + example1: + value: BkgfzSr5muN9cUTMD4wDQFn4 + requestBody: + description: PATCH /hris/employees/:employee_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/PatchHrisEmployeesEmployeeIdRequestBody' + examples: + example1: + value: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + marital_status: MARRIED + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + termination_date: '2022-05-20' + job_title: Integrations Team Lead + nationality: DE + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + /hris/employees/{employee_id}/attachments: + post: + operationId: PostHrisEmployeesEmployeeIdAttachments + responses: + '200': + description: POST /hris/employees/:employee_id/attachments Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsSuccessfulResponse + '400': + description: POST /hris/employees/:employee_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Currently in closed beta. + + **This endpoint is currently in closed beta!** We're testing it + with selected customers before its public release. If you're interested + in learning more or getting early access, please reach out. + summary: Add attachment to employees 🦄 + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: employee_id + in: path + required: true + description: POST /hris/employees/:employee_id/attachments parameter + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsParameterEmployeeId + requestBody: + description: POST /hris/employees/:employee_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostHrisEmployeesEmployeeIdAttachmentsRequestBody + tags: + - Unified HRIS API + /hris/teams: + get: + operationId: GetHrisTeams + responses: + '200': + description: GET /hris/teams Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTeamsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + '400': + description: GET /hris/teams Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTeamsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Get the teams. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Please use [the `/groups` endpoint](https://api.kombo.dev) instead. It returns the same data but the naming makes more sense as the model not only includes teams but also departments and cost centers.. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get teams (deprecated) + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisTeamsParameterRemoteIds' + /hris/groups: + get: + operationId: GetHrisGroups + responses: + '200': + description: GET /hris/groups Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisGroupsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + '400': + description: GET /hris/groups Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisGroupsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all "groups" (teams, departments, and cost centers). + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get groups + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisGroupsParameterRemoteIds' + /hris/employments: + get: + operationId: GetHrisEmployments + responses: + '200': + description: GET /hris/employments Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmploymentsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + '400': + description: GET /hris/employments Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisEmploymentsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all employments. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get employments + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisEmploymentsParameterRemoteIds' + /hris/locations: + get: + operationId: GetHrisLocations + responses: + '200': + description: GET /hris/locations Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLocationsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: GET /hris/locations Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLocationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all work locations. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get work locations + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisLocationsParameterRemoteIds' + /hris/absence-types: + get: + operationId: GetHrisAbsenceTypes + responses: + '200': + description: GET /hris/absence-types Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/absence-types Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all absence types. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get absence types + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisAbsenceTypesParameterRemoteIds' + /hris/time-off-balances: + get: + operationId: GetHrisTimeOffBalances + responses: + '200': + description: GET /hris/time-off-balances Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/time-off-balances Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all time off balances. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get time off balances + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterRemoteIds' + - name: employee_id + in: query + required: false + description: Filter by a specific employee using their ID. + schema: + $ref: '#/components/schemas/GetHrisTimeOffBalancesParameterEmployeeId' + /hris/absences: + get: + operationId: GetHrisAbsences + responses: + '200': + description: GET /hris/absences Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsencesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /hris/absences Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisAbsencesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all absences. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get absences + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterRemoteIds' + - name: date_from + in: query + required: false + description: >- + Filter for all the absences that either start _or_ haven't ended yet + on/after this day. If you imagine a calendar displaying absences, + this defines the left-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterDateFrom' + - name: date_until + in: query + required: false + description: >- + Filter for absences that start on or before this day (but might + continue after). If you imagine a calendar displaying absences, this + defines the right-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterDateUntil' + - name: type_ids + in: query + required: false + description: Filter by a comma-separated list of absence type IDs. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTypeIds' + - name: employee_id + in: query + required: false + description: Filter by a specific employee using their ID. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterEmployeeId' + - name: time_from + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for + absences that either start after or start before and end after a + certain time. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTimeFrom' + - name: time_until + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter + for absences that start before a certain time. + schema: + $ref: '#/components/schemas/GetHrisAbsencesParameterTimeUntil' + post: + operationId: PostHrisAbsences + responses: + '200': + description: POST /hris/absences Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: POST /hris/absences Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new absence. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Check [this page](https://api.kombo.dev) for a detailed guide. + + + + This endpoint requires the permission **Manage absences** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "wXJMxwDvPAjrJ4CyqdV9", + "absence_type_id": "3YKtQ7qedsrcCady1jSyAkY1", + "start_date": "2019-09-17", + "end_date": "2019-09-21", + "start_half_day": false, + "end_half_day": false, + "employee_note": "Visiting the aliens", + "start_time": "08:30:00", + "end_time": "16:00:00" + } + + ``` + summary: Create absence + tags: + - Unified HRIS API + requestBody: + description: POST /hris/absences request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostHrisAbsencesRequestBody' + examples: + example1: + value: + employee_id: wXJMxwDvPAjrJ4CyqdV9 + absence_type_id: 3YKtQ7qedsrcCady1jSyAkY1 + start_date: '2019-09-17' + end_date: '2019-09-21' + start_time: '08:30:00' + end_time: '16:00:00' + start_half_day: false + end_half_day: false + employee_note: Visiting the aliens + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /hris/absences/{absence_id}: + delete: + operationId: DeleteHrisAbsencesAbsenceId + responses: + '200': + description: DELETE /hris/absences/:absence_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteHrisAbsencesAbsenceIdSuccessfulResponse + examples: + example1: + value: + status: success + data: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + '400': + description: DELETE /hris/absences/:absence_id Error response + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Delete this absence. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage absences** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "absence_id": "wXJMxwDvPAjrJ4CyqdV9" + } + + ``` + summary: Delete absence + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: absence_id + in: path + required: true + description: The ID of the absence + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdParameterAbsenceId' + examples: + example1: + value: wXJMxwDvPAjrJ4CyqdV9 + requestBody: + description: DELETE /hris/absences/:absence_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteHrisAbsencesAbsenceIdRequestBody' + examples: + example1: + value: {} + /hris/legal-entities: + get: + operationId: GetHrisLegalEntities + responses: + '200': + description: GET /hris/legal-entities Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + '400': + description: GET /hris/legal-entities Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all legal entites. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get legal entities + tags: + - Unified HRIS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: bamboohr:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetHrisLegalEntitiesParameterRemoteIds' + /ats/applications: + get: + operationId: GetAtsApplications + responses: + '200': + description: GET /ats/applications Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + candidate: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + interviews: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + title: Interview with John Doe + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + '400': + description: GET /ats/applications Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all applications. + + + Visit our in depth guide to learn more about: + + - 💡 [Being aware of which applications are + tracked](/ats/features/implementation-guide/tracking-created-applications#be-aware-of-which-applications-are-tracked) + + - 🚦 [Hiring + signals](/ats/features/implementation-guide/tracking-created-applications#hiring-signals) + + - 📈 [Application stage + changes](/ats/features/implementation-guide/tracking-created-applications#application-stage-changes) + + - ❓ [ATS-specific + limitations](/ats/features/implementation-guide/tracking-created-applications#ats-specific-limitations) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get applications + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterRemoteIds' + - name: outcome + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter + applications by outcome. This allows you to get applications that + are for example `PENDING`, `HIRED`, or `DECLINED`. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterOutcome' + - name: outcomes + in: query + required: false + description: |- + Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` + * `PENDING`: The application is still being processed. + * `HIRED`: The candidate was hired. + * `DECLINED`: The candidate was declined. + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterOutcomes' + - name: remote_created_after + in: query + required: false + description: >- + Filter applications by the day they were created in the remote + system. This allows you to get applications that were created on or + after a certain day. + schema: + $ref: '#/components/schemas/GetAtsApplicationsParameterRemoteCreatedAfter' + /ats/applications/{application_id}/stage: + put: + operationId: PutAtsApplicationsApplicationIdStage + responses: + '200': + description: PUT /ats/applications/:application_id/stage Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageSuccessfulResponse + '400': + description: PUT /ats/applications/:application_id/stage Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Moves an application to a specified stage. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "stage_id": "3PJ8PZhZZa1eEdd2DtPNtVup" + } + + ``` + summary: Move application to stage + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: PUT /ats/applications/:application_id/stage parameter + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageParameterApplicationId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: PUT /ats/applications/:application_id/stage request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAtsApplicationsApplicationIdStageRequestBody + examples: + example1: + value: + stage_id: 3PJ8PZhZZa1eEdd2DtPNtVup + /ats/applications/{application_id}/result-links: + post: + operationId: PostAtsApplicationsApplicationIdResultLinks + responses: + '200': + description: >- + POST /ats/applications/:application_id/result-links Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/result-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a result link to an application. + + This can, for example, be used to link a candidate back to a test + result/assessment in your application. As not all ATS tools have a + "result link" feature, we sometimes repurpose other fields to expose it. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "application_id": "8Xi6iZrwusZqJmDGXs49GBmJ", + "label": "Assessment Result", + "url": "https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG", + "details": { + "custom_field_name_prefix": "Acme:", + "attributes": [ + { + "key": "Score", + "value": "100%" + }, + { + "key": "Time", + "value": "2:30h" + } + ] + } + } + + ``` + summary: Add result link to application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: Kombo ID of the application you want to create the link for. + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksParameterApplicationId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/applications/:application_id/result-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdResultLinksRequestBody + examples: + example1: + value: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + /ats/applications/{application_id}/notes: + post: + operationId: PostAtsApplicationsApplicationIdNotes + responses: + '200': + description: POST /ats/applications/:application_id/notes Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/notes Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a note to an application. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Add extra information to an application. This can be any extra text + information you want to add to an application. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "content": "A new message from the candidate is available in YourChat!", + "content_type": "PLAIN_TEXT" + } + + ``` + summary: Add note to application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: Kombo ID of the application you want to create the note for. + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesParameterApplicationId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/applications/:application_id/notes request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdNotesRequestBody + examples: + example1: + value: + content: A new message from the candidate is available in YourChat! + content_type: PLAIN_TEXT + /ats/applications/{application_id}/attachments: + post: + operationId: PostAtsApplicationsApplicationIdAttachments + responses: + '200': + description: >- + POST /ats/applications/:application_id/attachments Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsSuccessfulResponse + '400': + description: POST /ats/applications/:application_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: |- + Uploads an attachment file for the specified applicant. + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + ### Example Request Body + + ```json + { + "application_id": "GRKdd9dibYKKCrmGRSMJf3wu", + "attachment": { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + } + ``` + summary: Add attachment to application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: application_id + in: path + required: true + description: POST /ats/applications/:application_id/attachments parameter + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: POST /ats/applications/:application_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsApplicationsApplicationIdAttachmentsRequestBody + examples: + example1: + value: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + /ats/candidates: + get: + operationId: GetAtsCandidates + responses: + '200': + description: GET /ats/candidates Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsCandidatesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + applications: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + '400': + description: GET /ats/candidates Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsCandidatesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all candidates. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get candidates + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterRemoteIds' + - name: email + in: query + required: false + description: >- + Filter the candidates based on an email address. When set, returns + only the candidates where the given `email` is in + `email_addresses`. + schema: + $ref: '#/components/schemas/GetAtsCandidatesParameterEmail' + post: + operationId: PostAtsCandidates + responses: + '200': + description: POST /ats/candidates Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesSuccessfulResponse' + '400': + description: POST /ats/candidates Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new candidate and application for the specified job. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + We realized that in practice it was always more about creating _applications_ instead of _candidates_, so we created a new, more aptly named one that you should use instead: [Create application](https://api.kombo.dev) + + Using it also has the benefit that we return the newly created applicant at the root level, so you can easily store its ID. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "candidate": { + "first_name": "Frank", + "last_name": "Doe", + "company": "Acme Inc.", + "title": "Head of Integrations", + "email_address": "frank.doe@example.com", + "phone_number": "+1-541-754-3010", + "gender": "MALE", + "salary_expectations": { + "amount": 100000, + "period": "YEAR" + }, + "availability_date": "2021-01-01", + "location": { + "city": "New York", + "country": "US" + }, + "social_links": [ + { + "url": "https://www.linkedin.com/in/frank-doe-123456789/" + }, + { + "url": "https://twitter.com/frankdoe" + } + ] + }, + "application": { + "job_id": "BDpgnpZ148nrGh4mYHNxJBgx", + "stage_id": "8x3YKRDcuRnwShdh96ShBNn1" + }, + "screening_question_answers": [ + { + "question_id": "3phFBNXRweGnDmsU9o2vdPuQ", + "answer": "Yes" + }, + { + "question_id": "EYJjhMQT3LtVKXnTbnRT8s6U", + "answer": [ + "GUzE666zfyjeoCJX6A8n7wh6", + "5WPHzzKAv8cx97KtHRUV96U8", + "7yZfKGzWigXxxRTygqAfHvyE" + ] + } + ], + "attachments": [ + { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + ] + } + + ``` + summary: Create candidate + tags: + - Unified ATS API + requestBody: + description: POST /ats/candidates request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesRequestBody' + examples: + example1: + value: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + social_links: + - url: https://www.linkedin.com/in/frank-doe-123456789/ + - url: https://twitter.com/frankdoe + application: + job_id: BDpgnpZ148nrGh4mYHNxJBgx + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /ats/candidates/{candidate_id}: + patch: + operationId: PatchAtsCandidatesCandidateId + responses: + '200': + description: PATCH /ats/candidates/:candidate_id Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdSuccessfulResponse + '400': + description: PATCH /ats/candidates/:candidate_id Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Currently in closed beta. + + **This endpoint is currently in closed beta!** We're testing it + with selected customers before its public release. If you're interested + in learning more or getting early access, please reach out. + summary: Update candidate 🦄 + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: PATCH /ats/candidates/:candidate_id parameter + schema: + $ref: >- + #/components/schemas/PatchAtsCandidatesCandidateIdParameterCandidateId + requestBody: + description: PATCH /ats/candidates/:candidate_id request body + content: + application/json: + schema: + $ref: '#/components/schemas/PatchAtsCandidatesCandidateIdRequestBody' + tags: + - Unified ATS API + /ats/candidates/{candidate_id}/attachments: + post: + operationId: PostAtsCandidatesCandidateIdAttachments + responses: + '200': + description: POST /ats/candidates/:candidate_id/attachments Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/attachments Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Uploads an attachment file for the specified candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "candidate_id": "GRKdd9dibYKKCrmGRSMJf3wu", + "attachment": { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + } + + ``` + summary: Add attachment to candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: POST /ats/candidates/:candidate_id/attachments parameter + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsParameterCandidateId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: POST /ats/candidates/:candidate_id/attachments request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdAttachmentsRequestBody + examples: + example1: + value: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + /ats/candidates/{candidate_id}/result-links: + post: + operationId: PostAtsCandidatesCandidateIdResultLinks + responses: + '200': + description: POST /ats/candidates/:candidate_id/result-links Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/result-links Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a result link to a candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Please use [add result link to application](https://api.kombo.dev) instead. + This can, for example, be used to link a candidate back to a test + result/assessment in your application. As not all ATS tools have a + "result link" feature, we sometimes repurpose other fields to expose it. + + + This action is deprecated because result links usually concern + applications and not candidates. Use endpoint nested under + `/applications` instead.. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "label": "Assessment Result", + "url": "https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG", + "details": { + "custom_field_name_prefix": "Acme:", + "attributes": [ + { + "key": "Score", + "value": "100%" + }, + { + "key": "Time", + "value": "2:30h" + } + ] + } + } + + ``` + summary: Add result link to candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: Kombo ID of the candidate you want to create the link for. + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/candidates/:candidate_id/result-links request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdResultLinksRequestBody + examples: + example1: + value: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + /ats/candidates/{candidate_id}/tags: + post: + operationId: PostAtsCandidatesCandidateIdTags + responses: + '200': + description: POST /ats/candidates/:candidate_id/tags Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsSuccessfulResponse + '400': + description: POST /ats/candidates/:candidate_id/tags Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Add a tag to a candidate. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Kombo takes care of creating the tag if required, finding out the right + ID, and appending it to the list of tags. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "tag": { + "name": "Excellent Fit" + } + } + + ``` + summary: Add tag to candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: Kombo ID of the candidate you want to add the tag to. + schema: + $ref: >- + #/components/schemas/PostAtsCandidatesCandidateIdTagsParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: POST /ats/candidates/:candidate_id/tags request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsCandidatesCandidateIdTagsRequestBody' + examples: + example1: + value: + tag: + name: Excellent Fit + delete: + operationId: DeleteAtsCandidatesCandidateIdTags + responses: + '200': + description: DELETE /ats/candidates/:candidate_id/tags Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsSuccessfulResponse + '400': + description: DELETE /ats/candidates/:candidate_id/tags Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Remove a tag from a candidate based on its name. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + This will also succeed if the tag does not exist on the candidate. + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "tag": { + "name": "Excellent Fit" + } + } + + ``` + summary: Remove tag from candidate + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: candidate_id + in: path + required: true + description: Kombo ID of the candidate you want to remove the tag from. + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsParameterCandidateId + examples: + example1: + value: 8Xi6iZrwusZqJmDGXs49GBmJ + requestBody: + description: DELETE /ats/candidates/:candidate_id/tags request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/DeleteAtsCandidatesCandidateIdTagsRequestBody + examples: + example1: + value: + tag: + name: Excellent Fit + /ats/tags: + get: + operationId: GetAtsTags + responses: + '200': + description: GET /ats/tags Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsTagsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/tags Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsTagsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all tags. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get tags + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsTagsParameterRemoteIds' + /ats/application-stages: + get: + operationId: GetAtsApplicationStages + responses: + '200': + description: GET /ats/application-stages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/application-stages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Get all application stages available in the ATS. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + **This endpoint is deprecated!** + + Get all application stages available in the ATS. This is deprecated because most ATS systems have separate sets of stages for each job. We'd recommend using the `stages` property on jobs instead.. + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get application stages + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: >- + #/components/schemas/GetAtsApplicationStagesParameterIncludeDeleted + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsApplicationStagesParameterRemoteIds' + /ats/jobs: + get: + operationId: GetAtsJobs + responses: + '200': + description: GET /ats/jobs Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsJobsSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + description: >- +

Kombo is hiring engineers! If you are reading + this and you are located in Berlin, Germany, feel + free to contact us about this position.

+ confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + stages: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + index: 0 + screening_questions: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + title: Which is your primary programming language? + description: >- + Please enter the language you are most + comfortable with. + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + index: 0 + required: true + job_postings: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + hiring_team: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + hiring_team_roles: + - RECRUITER + '400': + description: GET /ats/jobs Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsJobsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all jobs. + + + Visit our in depth guide to learn more about: + + - 🔄 [Getting updates of the + data](/ats/features/implementation-guide/reading-jobs#getting-updates-of-the-data) + + - ❗ [Handling failing + syncs](/ats/features/implementation-guide/reading-jobs#handling-failing-syncs) + + - 🔍 [Letting your customer choose which jobs to + expose](/ats/features/implementation-guide/reading-jobs#let-your-customer-choose-which-jobs-to-expose-to-you) + + - 🔗 [Matching jobs in your database to ATS + jobs](/ats/features/implementation-guide/reading-jobs#match-jobs-in-your-database-to-ats-jobs) + + - 🗑️ [Reacting to deleted/closed + jobs](/ats/features/implementation-guide/reading-jobs#reacting-to-deleted-closed-jobs) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get jobs + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterRemoteIds' + - name: job_codes + in: query + required: false + description: Filter by a comma-separated list of job codes. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterJobCodes' + - name: post_url + in: query + required: false + description: >- + Filter by the `post_url` field. Can be used to find a job based on + its public posting URL. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterPostUrl' + - name: status + in: query + required: false + description: >- + **(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by + the `status` field. Can be used to find a job based on its status. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterStatus' + - name: statuses + in: query + required: false + description: >- + Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, + `ARCHIVED` + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterStatuses' + - name: visibilities + in: query + required: false + description: >- + Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, + `UNLISTED`, `CONFIDENTIAL` + + + Leave this blank to get results matching all values. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterVisibilities' + - name: name_contains + in: query + required: false + description: >- + Filter by the `name` field. Can be used to find a job by keywords + present in the job name. + schema: + $ref: '#/components/schemas/GetAtsJobsParameterNameContains' + /ats/jobs/{job_id}/applications: + post: + operationId: PostAtsJobsJobIdApplications + responses: + '200': + description: POST /ats/jobs/:job_id/applications Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostAtsJobsJobIdApplicationsSuccessfulResponse + '400': + description: POST /ats/jobs/:job_id/applications Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Create a new application and candidate for the specified job. + + + Visit our in depth guide to learn more about: + + - 🌐 [Setting the source of the + application](/ats/features/implementation-guide/creating-applications#set-the-source-of-the-application) + + - 📎 [Uploading attachments with the + application](/ats/features/implementation-guide/creating-applications#upload-attachments-with-the-application) + + - ♻️ [Retry + behaviour](/ats/features/implementation-guide/creating-applications#retry-behaviour) + + - ✏️ [Writing answers to screening + questions](/ats/features/implementation-guide/creating-applications#write-answers-to-screening-questions) + + - ⚠️ [Handling ATS-specific + limitations](/ats/features/implementation-guide/creating-applications#handle-ats-specific-limitations) + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Create and manage candidates and applications** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "stage_id": "8x3YKRDcuRnwShdh96ShBNn1", + "candidate": { + "first_name": "Frank", + "last_name": "Doe", + "company": "Acme Inc.", + "title": "Head of Integrations", + "email_address": "frank.doe@example.com", + "phone_number": "+1-541-754-3010", + "gender": "MALE", + "salary_expectations": { + "amount": 100000, + "period": "YEAR" + }, + "availability_date": "2021-01-01", + "location": { + "city": "New York", + "country": "US" + } + }, + "attachments": [ + { + "name": "Frank Doe CV.txt", + "data": "SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4=", + "type": "CV", + "content_type": "text/plain" + } + ], + "screening_question_answers": [ + { + "question_id": "3phFBNXRweGnDmsU9o2vdPuQ", + "answer": "Yes" + }, + { + "question_id": "EYJjhMQT3LtVKXnTbnRT8s6U", + "answer": [ + "GUzE666zfyjeoCJX6A8n7wh6", + "5WPHzzKAv8cx97KtHRUV96U8", + "7yZfKGzWigXxxRTygqAfHvyE" + ] + } + ] + } + + ``` + summary: Create application + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: job_id + in: path + required: true + description: >- + Kombo ID or Remote ID of the Job this candidate should apply for. If + you want to use the ID of the integrated system (remote_id) you need + to prefix the id with "remote:". You can use the remote ID if you do + not want to sync jobs. + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsParameterJobId' + examples: + example1: + value: BDpgnpZ148nrGh4mYHNxJBgx + requestBody: + description: POST /ats/jobs/:job_id/applications request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostAtsJobsJobIdApplicationsRequestBody' + examples: + example1: + value: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + /ats/users: + get: + operationId: GetAtsUsers + responses: + '200': + description: GET /ats/users Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsUsersSuccessfulResponse' + examples: + example1: + value: + status: success + data: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + '400': + description: GET /ats/users Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAtsUsersErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Retrieve all users. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + Top level filters use AND, while individual filters use OR if they + accept multiple arguments. That means filters will be resolved like + this: `(id IN ids) AND (remote_id IN remote_ids)` + summary: Get users + tags: + - Unified ATS API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: join:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterPageSize' + - name: updated_after + in: query + required: false + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also + set the `include_deleted=true` query parameter, because otherwise, + deleted entries will be hidden. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterUpdatedAfter' + - name: include_deleted + in: query + required: false + description: >- + By default, deleted entries are not returned. Use the + `include_deleted` query param to include deleted entries too. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterIncludeDeleted' + - name: ids + in: query + required: false + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration + in the database. If any of the IDs are don't exist, the endpoint + will return a 404 error. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterIds' + - name: remote_ids + in: query + required: false + description: Filter by a comma-separated list of remote IDs. + schema: + $ref: '#/components/schemas/GetAtsUsersParameterRemoteIds' + /assessment/packages: + get: + operationId: GetAssessmentPackages + responses: + '200': + description: GET /assessment/packages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentPackagesSuccessfulResponse' + examples: + example1: + value: + status: success + data: + packages: + - id: '1001' + name: TypeScript + description: TypeScript coding skills assessments + updated_at: '2023-06-29T18:47:40.890Z' + type: SKILLS_TEST + '400': + description: GET /assessment/packages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentPackagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Get all available assessment packages for an integration. + + + This is mainly intended for debugging. As you always need to submit the + full list of available packages when using ["set + packages"](https://api.kombo.dev), there shouldn't ever be a need to + call this endpoint in production. + summary: Get packages + tags: + - Unified ATS (Assessment) API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + put: + operationId: PutAssessmentPackages + responses: + '200': + description: PUT /assessment/packages Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesSuccessfulResponse' + '400': + description: PUT /assessment/packages Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Replaces the list of available assessment packages. + + + Packages that have been previously submitted through this endpoint but + aren't included again will be marked as deleted. + summary: Set packages + requestBody: + description: PUT /assessment/packages request body + content: + application/json: + schema: + $ref: '#/components/schemas/PutAssessmentPackagesRequestBody' + examples: + example1: + value: + packages: + - id: '1001' + type: SKILLS_TEST + name: TypeScript + description: TypeScript coding skills assessments + - id: '1002' + type: VIDEO_INTERVIEW + name: Video Interview + description: Video interview to assess communication skills + tags: + - Unified ATS (Assessment) API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + /assessment/orders/open: + get: + operationId: GetAssessmentOrdersOpen + responses: + '200': + description: GET /assessment/orders/open Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenSuccessfulResponse' + '400': + description: GET /assessment/orders/open Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: Get all open assessment orders of an integration. + summary: Get open orders + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: cursor + in: query + required: false + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenParameterCursor' + - name: page_size + in: query + required: false + description: The number of results to return per page. + schema: + $ref: '#/components/schemas/GetAssessmentOrdersOpenParameterPageSize' + tags: + - Unified ATS (Assessment) API + /assessment/orders/{assessment_order_id}/result: + put: + operationId: PutAssessmentOrdersAssessmentOrderIdResult + responses: + '200': + description: >- + PUT /assessment/orders/:assessment_order_id/result Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultSuccessfulResponse + '400': + description: PUT /assessment/orders/:assessment_order_id/result Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Updates an assessment order result. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + ### Example Request Body + + + ```json + + { + "status": "COMPLETED", + "result_url": "https://example.com", + "completed_at": "2023-04-04T00:00:00.000Z", + "score": 90, + "max_score": 100, + "attributes": [ + { + "field": "remarks", + "value": "Test completed with passing score" + } + ] + } + + ``` + summary: Update order result + tags: + - Unified ATS (Assessment) API + parameters: + - in: header + name: X-Integration-Id + schema: + type: string + description: ID of the integration you want to interact with. + example: recruitee:HWUTwvyx2wLoSUHphiWVrp28 + required: true + - name: assessment_order_id + in: path + required: true + description: PUT /assessment/orders/:assessment_order_id/result parameter + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultParameterAssessmentOrderId + examples: + example1: + value: GRKdd9dibYKKCrmGRSMJf3wu + requestBody: + description: PUT /assessment/orders/:assessment_order_id/result request body + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutAssessmentOrdersAssessmentOrderIdResultRequestBody + examples: + example1: + value: + status: COMPLETED + score: 90 + max_score: 100 + result_url: https://example.com + completed_at: '2023-04-04T00:00:00.000Z' + attributes: + - field: remarks + value: Test completed with passing score + /connect/create-link: + post: + operationId: PostConnectCreateLink + responses: + '200': + description: POST /connect/create-link Successful response + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkSuccessfulResponse' + examples: + example1: + value: + status: success + data: + link: >- + https://connect.kombo.dev/v1?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + '400': + description: POST /connect/create-link Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Generate a unique link that allows your user to enter the embedded Kombo + Connect flow. + + + > Check out [our full guide](https://api.kombo.dev) for more details + about implementing the connection flow into your app. + + + > Kombo will not deduplicate integrations for you that are created with + this endpoint. You are responsible for keeping track of integrations in + your system and prevent customers from connecting the same tool again. + Use the [reconnection link](https://api.kombo.dev) endpoint if you want + a customer to update their credentials. + + + ### Example Request Body + + + ```json + + { + "end_user_email": "test@example.com", + "end_user_organization_name": "Test Inc.", + "end_user_origin_id": "123", + "integration_category": "HRIS", + "integration_tool": "personio", + "language": "en" + } + + ``` + summary: Create connection link + tags: + - Kombo Connect + requestBody: + description: POST /connect/create-link request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectCreateLinkRequestBody' + examples: + example1: + value: + end_user_email: test@example.com + end_user_organization_name: Test Inc. + integration_category: HRIS + integration_tool: personio + end_user_origin_id: '123' + language: en + /connect/integration-by-token/{token}: + get: + operationId: GetConnectIntegrationByTokenToken + responses: + '200': + description: GET /connect/integration-by-token/:token Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenSuccessfulResponse + examples: + example1: + value: + status: success + data: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + '400': + description: GET /connect/integration-by-token/:token Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Use this endpoint with the token you get from the connection flow to + retrieve information about the created integration. + + It works in a similar way as the OAuth2 code flow to securely retrieve information and connect the integration to your user. + + > Check out [our full guide](https://api.kombo.dev) for more details + about implementing the connection flow into your app. + + + This endpoint is used to ensure users can't trick your system connecting + their + + account in your system to another customers integration. You don't get + the integration ID + + from the `showKomboConnect(link)` function but only the short lived + token used + + for this endpoint so that users can't send you arbitrary data that you + would put + + into your system. + summary: Get integration by token + tags: + - Kombo Connect + parameters: + - name: token + in: path + required: true + description: GET /connect/integration-by-token/:token parameter + schema: + $ref: >- + #/components/schemas/GetConnectIntegrationByTokenTokenParameterToken + /connect/activate-integration: + post: + operationId: PostConnectActivateIntegration + responses: + '200': + description: POST /connect/activate-integration Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostConnectActivateIntegrationSuccessfulResponse + examples: + example1: + value: + status: success + data: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + '400': + description: POST /connect/activate-integration Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostConnectActivateIntegrationErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + description: >- + Use this endpoint with the token you get from the connection flow to + retrieve information about the created integration. It works in a + similar way as the OAuth2 code flow to securely retrieve information and + connect the integration to your user. You do not need to call this + endpoint for an integration to become active. + + + We are deprecating this endpoint in favour of the [get + integration by code endpoint](https://api.kombo.dev). To migrate you + only have to change to the new API endpoint. + + + ### Example Request Body + + + ```json + + { + "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXNzYWdlIjoiVGhpcyBpcyBub3QgYW4gYWN0dWFsIHRva2VuLiJ9.JulqgOZBMKceI8vh9YLpVX51efND0ZyfUNHDXLrPz_4" + } + + ``` + summary: Activate integration (optional) + tags: + - Kombo Connect + requestBody: + description: POST /connect/activate-integration request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostConnectActivateIntegrationRequestBody' + /custom/datev/passthrough: + post: + operationId: PostCustomDatevPassthrough + responses: + '200': + description: POST /custom/datev/passthrough Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPassthroughSuccessfulResponse + '400': + description: POST /custom/datev/passthrough Error response + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPassthroughErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Write raw DATEV ASCII file + tags: + - Custom Endpoints + requestBody: + description: POST /custom/datev/passthrough request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPassthroughRequestBody' + 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 + /custom/datev/employees/{employee_id}/prepare-payroll: + put: + operationId: PutCustomDatevEmployeesEmployeeIdPreparePayroll + responses: + '200': + description: >- + PUT /custom/datev/employees/:employee_id/prepare-payroll Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollSuccessfulResponse + '400': + description: >- + PUT /custom/datev/employees/:employee_id/prepare-payroll Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdPreparePayrollErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "EvLV61zdahkN4ftPJbmPCkdv", + "payroll_run": { + "date": "2022-05-01" + }, + "hourly_payments": [ + { + "hours": 14, + "lohnart": 200 + }, + { + "hours": 16, + "lohnart": 232 + } + ], + "fixed_payments": [ + { + "amount": 560, + "lohnart": 100 + } + ], + "custom_lodas": [ + { + "amount": 8, + "lohnart": 300, + "bearbeitungsschluessel": 4 + } + ] + } + + ``` + summary: Prepare DATEV Payroll + 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 + /custom/datev/employees/{employee_id}/compensations: + put: + operationId: PutCustomDatevEmployeesEmployeeIdCompensations + responses: + '200': + description: >- + PUT /custom/datev/employees/:employee_id/compensations Successful + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsSuccessfulResponse + '400': + description: >- + PUT /custom/datev/employees/:employee_id/compensations Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PutCustomDatevEmployeesEmployeeIdCompensationsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Sets the compensations for an employee on the specified effective date. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + 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. + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "3bdhemmSP1TPQDGWtRveRot9", + "effective_date": "2022-12-01", + "compensations": [ + { + "amount": 4500, + "currency": "EUR", + "period": "MONTH", + "lohnart": 200 + }, + { + "amount": 30, + "currency": "EUR", + "period": "HOUR" + } + ] + } + + ``` + summary: Set DATEV compensations + 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 + /custom/datev/data-pushes: + get: + operationId: GetCustomDatevDataPushes + responses: + '200': + description: GET /custom/datev/data-pushes Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/GetCustomDatevDataPushesSuccessfulResponse + '400': + description: GET /custom/datev/data-pushes Error response + content: + application/json: + schema: + $ref: '#/components/schemas/GetCustomDatevDataPushesErrorResponse' + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Get DATEV data pushes + 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 + /custom/datev/push-data/general: + post: + operationId: PostCustomDatevPushDataGeneral + responses: + '200': + description: POST /custom/datev/push-data/general Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataGeneralSuccessfulResponse + '400': + description: POST /custom/datev/push-data/general Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataGeneralErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Push general data to DATEV + tags: + - Custom Endpoints + requestBody: + description: POST /custom/datev/push-data/general request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPushDataGeneralRequestBody' + 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 + /custom/datev/push-data/payroll: + post: + operationId: PostCustomDatevPushDataPayroll + responses: + '200': + description: POST /custom/datev/push-data/payroll Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataPayrollSuccessfulResponse + '400': + description: POST /custom/datev/push-data/payroll Error response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomDatevPushDataPayrollErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + 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. + summary: Push payroll data to DATEV + tags: + - Custom Endpoints + requestBody: + description: POST /custom/datev/push-data/payroll request body + content: + application/json: + schema: + $ref: '#/components/schemas/PostCustomDatevPushDataPayrollRequestBody' + 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 + /custom/silae/employees/{employee_id}/payroll-supplements: + post: + operationId: PostCustomSilaeEmployeesEmployeeIdPayrollSupplements + responses: + '200': + description: >- + POST /custom/silae/employees/:employee_id/payroll-supplements + Successful response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsSuccessfulResponse + '400': + description: >- + POST /custom/silae/employees/:employee_id/payroll-supplements Error + response + content: + application/json: + schema: + $ref: >- + #/components/schemas/PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsErrorResponse + examples: + example1: + value: + status: error + error: + message: Sample error message + '401': + description: Returned when the authentication header was invalid or missing. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Invalid authorization header! + example2: + value: + status: error + error: + message: Missing authorization header! + '403': + description: Returned when the passed integration is inactive. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + This integration is inactive. You can only request data + from active integrations. + '404': + description: Returned when a requested resource is not found. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: Integration not found in this environment! + example2: + value: + status: error + error: + message: Property not found! + '503': + description: Returned when no sync has finished successfully yet + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - error + error: + type: object + properties: + message: + type: string + required: + - message + required: + - status + - error + examples: + example1: + value: + status: error + error: + message: >- + The first sync of this integration didn't finish yet! + You can keep polling this until you get a successful + response or react to our webhooks. + description: >- + Write a payroll supplement to Silae using the supplement code. + + + + + This feature is currently available for the following integrations: + + + + + + You'd like to see this feature for another integration? Please reach + out! + + We're always happy to discuss extending our coverage. + + + + + + This endpoint requires the permission **Manage payroll** to be enabled in [your scope config](https://api.kombo.dev). + + + + ### Example Request Body + + + ```json + + { + "employee_id": "EvLV61zdahkN4ftPJbmPCkdv", + "supplement_code": "200", + "effective_date": "2024-01-14", + "element_amount": 6 + } + + ``` + summary: Write Payroll Supplement + 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 +components: + schemas: + GetCheckApiKeySuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + environment_id: + type: string + required: [] + customer_id: + type: string + description: '**(⚠️ Deprecated)** Renamed to `environment_id`.' + required: [] + required: + - environment_id + - customer_id + example: + environment_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + customer_id: 2Uev1YUTqLFdvMPD3Jtrg2FX + required: + - status + - data + GetCheckApiKeyErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostForceSyncSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + already_queued: + type: boolean + description: 'We only allow 1 concurrent sync to be running or queued. ' + required: [] + sync_id: + type: string + description: 'ID of the newly-created or already-queued-or-running sync. ' + required: [] + required: + - already_queued + - sync_id + example: + already_queued: false + sync_id: 119ihtp91nA3dqRFiV67nXS6 + required: + - status + - data + PostForceSyncErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostForceSyncRequestBody: + type: object + PostPassthroughToolApiParameterTool: + type: string + description: >- + The ID of the tool whose passthrough API you want to call (e.g., + `personio`). + required: [] + PostPassthroughToolApiParameterApi: + type: string + description: >- + The ID of the passthrough API you want to call (some tools provide + multiple). Check the endpoint description for a list of all available + APIs. + required: [] + PostPassthroughToolApiSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + url: + type: string + format: url + description: >- + The full URL of the request that we automatically assemble for + you based on the specified `api`, the specified `path`, and the + integration's auth credentials. You can use this to debug + path-related issues (e.g., the API returning 404 errors). + required: [] + status: + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + description: The HTTP status code returned from the remote system. + required: [] + headers: + type: object + additionalProperties: + oneOf: + - type: string + - type: array + items: + type: string + description: The HTTP headers returned from the remote system. + required: [] + data: + format: any + description: >- + The HTTP body returned from the remote system. This will either + be an array or object (in the case that JSON was returned) or a + string (in any other case). + required: [] + required: + - url + - status + - headers + required: + - status + - data + PostPassthroughToolApiErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostPassthroughToolApiRequestBody: + allOf: + - type: object + properties: + method: + type: string + enum: + - GET + - POST + - DELETE + - PUT + - PATCH + description: The HTTP method (e.g., `GET`) of the request. + path: + type: string + pattern: /^\// + description: >- + The path of the endpoint you want to call. We automatically + prepend the base URL of the API (all base URLs are documented in + the endpoint description). + headers: + type: object + additionalProperties: + type: string + description: >- + The headers to send with the request. Note that we automatically + supply any authentication-related headers. + params: + type: object + additionalProperties: + type: string + description: >- + The query parameters to send in addition to the ones in the + `path`. + data: + format: any + description: >- + The data to submit as part of the request body. This can either + be an array or object (in which case we will forward it as JSON) + or a string (in which case we will forward it raw). + response_as_base64: + type: boolean + description: >- + If set to `true`, the response will be returned as a + base64-encoded string. This is useful for binary data (e.g., + PDFs). + multipart_form_data: + type: array + items: + type: object + properties: + name: + type: string + description: The key of the form data + value: + oneOf: + - type: string + description: >- + The value of the form data (Can be an object if the + field is of the type file) + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + required: + - name + - value + description: >- + The data to submit as part of the request body if the + request's `Content-Type` is `multipart/form-data`. + description: >- + The data to submit as part of the request body if the request's + `Content-Type` is `multipart/form-data`. + api_options: + type: object + additionalProperties: + type: string + description: >- + Custom options interpreted by the passthrough API adapter you've + selected. These options are not documented right now as they're + only for very advanced use cases. + required: + - method + - path + example: + method: GET + path: /company/employees + DeleteIntegrationsIntegrationIdParameterIntegrationId: + type: string + required: [] + DeleteIntegrationsIntegrationIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + DeleteIntegrationsIntegrationIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteIntegrationsIntegrationIdRequestBody: + type: object + GetIntegrationsIntegrationIdParameterIntegrationId: + type: string + required: [] + GetIntegrationsIntegrationIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + required: [] + tool: + type: object + properties: + id: + type: string + description: The ID of the connected tool in Kombo (e.g. `factorial`). + required: [] + label: + type: string + required: [] + internal_label: + nullable: true + type: string + description: >- + Internal label that can help you debug specific variants of + the integration. Only show the `label` to your users. + required: [] + logo_url: + type: string + format: url + description: >- + URL to an SVG logo of the connected tool. The logo usually + contains the tool name. + required: [] + icon_url: + type: string + format: url + description: URL to a square SVG icon of the connected tool. + required: [] + required: + - id + - label + - internal_label + - logo_url + - icon_url + category: + type: string + enum: + - HRIS + - ATS + - ASSESSMENT + required: [] + status: + type: string + enum: + - ACTIVE + - INVALID + - INACTIVE + required: [] + end_user: + type: object + properties: + organization_name: + type: string + required: [] + creator_email: + nullable: true + type: string + format: email + required: [] + origin_id: + nullable: true + type: string + description: >- + The ID you have passed initially to the connection flow to + create this integration. + required: [] + required: + - organization_name + - creator_email + - origin_id + scope_config: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - name + created_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + beta: + type: boolean + required: [] + required: + - id + - tool + - category + - status + - end_user + - scope_config + - created_at + - beta + example: + id: factorial:8d1hpPsbjxUkoCoa1veLZGe5 + tool: + id: factorial + label: Factorial + internal_label: null + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + category: HRIS + status: ACTIVE + end_user: + organization_name: Acme + creator_email: example-integration-creator@acme.com + origin_id: 2DQJAUtSzzzKP9buDTvUvPk3 + scope_config: + id: B1hu5NGyhdjSq5X3hxEz4bAN + name: Anonymous Scopes + created_at: '2022-08-07T14:01:29.196Z' + beta: false + required: + - status + - data + GetIntegrationsIntegrationIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostIntegrationsIntegrationIdRelinkParameterIntegrationId: + type: string + required: [] + PostIntegrationsIntegrationIdRelinkSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + link: + type: string + format: url + required: [] + required: + - link + required: + - status + - data + PostIntegrationsIntegrationIdRelinkErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostIntegrationsIntegrationIdRelinkRequestBody: + allOf: + - type: object + properties: + language: + type: string + enum: + - en + - de + - fr + default: en + description: Language of the connection flow UI. + required: [] + example: + language: en + GetToolsCategoryParameterCategory: + type: string + enum: + - hris + - ats + - assessment + required: [] + GetToolsCategorySuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tools: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + internal_label: + nullable: true + type: string + description: >- + Internal label that can help you debug specific variants + of the integration. Only show the `label` to your users. + required: [] + assets: + type: object + properties: + logo_url: + type: string + required: [] + icon_url: + type: string + required: [] + icon_black_url: + type: string + required: [] + required: + - logo_url + - icon_url + - icon_black_url + coverage: + type: object + properties: + read_models: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + description: List of models we can read for this tool. + required: [] + write_actions: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + description: List of supported write actions for this tool. + required: [] + features: + type: array + items: + type: object + properties: + id: + type: string + required: [] + label: + type: string + required: [] + required: + - id + - label + required: [] + required: + - read_models + - write_actions + - features + description: >- + This describes the supported models and actions of this + tool. + required: + - id + - label + - internal_label + - assets + - coverage + required: [] + required: + - tools + example: + tools: + - id: factorial + label: Factorial + internal_label: null + assets: + logo_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/logo.svg + icon_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon.svg + icon_black_url: >- + https://storage.googleapis.com/kombo-assets/integrations/factorial/icon-black.svg + coverage: + read_models: + - id: hris_employees + label: Employees + - id: hris_teams + label: Groups + write_actions: + - id: hris_create_employee + label: Create employee + features: + - id: automatic_source_writing + label: Automatic Source Writing + required: + - status + - data + GetToolsCategoryErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdDiffParameterGroupId: + type: string + description: ID of the provisioning group (currently only `default` is allowed). + required: [] + PostHrisProvisioningGroupsGroupIdDiffSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + users: + type: object + properties: + to_provision: + type: array + items: + type: object + properties: + email: + nullable: true + type: string + format: email + description: The email address of the user. + required: [] + employee: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + required: [] + avatar: + nullable: true + type: string + required: [] + work_location_id: + nullable: true + type: string + required: [] + legal_entity_id: + nullable: true + type: string + required: [] + description: >- + The field of the underlying employee (which ones are + included depends on the `employee_fields` array you + supplied). + required: [] + required: + - email + - employee + description: >- + The users we've found in the HR systems who match the + provisioning filters but haven't been provisioned in your + system yet. + required: [] + to_deprovision: + type: array + items: + type: object + properties: + origin_id: + type: string + description: >- + _Your_ ID for this user (that you submitted through + `origin_id`). + required: [] + email: + type: string + format: email + description: The email address of the user. + required: [] + required: + - origin_id + - email + description: >- + The users who've been provisioned in your system but + couldn't be found in the HR system or don't match the + provisioning filters. + required: [] + already_provisioned: + type: array + items: + type: object + properties: + origin_id: + type: string + description: >- + _Your_ ID for this user (that you submitted through + `origin_id`). + required: [] + email: + type: string + format: email + description: The email address of the user. + required: [] + employee: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + required: [] + avatar: + nullable: true + type: string + required: [] + work_location_id: + nullable: true + type: string + required: [] + legal_entity_id: + nullable: true + type: string + required: [] + description: >- + The field of the underlying employee (which ones are + included depends on the `employee_fields` array you + supplied). + required: [] + required: + - origin_id + - email + - employee + description: >- + The users who are in the HR system and match the + provisioning filters but have already been provisioned in + your system. + required: [] + required: + - to_provision + - to_deprovision + - already_provisioned + required: + - users + description: The users to provision, deprovision, and optionally update. + required: + - status + - data + PostHrisProvisioningGroupsGroupIdDiffErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdDiffRequestBody: + allOf: + - type: object + properties: + provisioned_users: + type: array + items: + type: object + properties: + origin_id: + type: string + description: >- + _Your_ ID for this user (_not_ an ID retrieved from + Kombo). + email: + type: string + format: email + description: This user's email address. + required: + - origin_id + - email + description: Array of the already provisioned users in your system. + options: + type: object + properties: + employee_fields: + type: array + items: + type: string + enum: + - id + - remote_id + - first_name + - last_name + - groups + - avatar + - work_location_id + - legal_entity_id + description: The employee fields relevant for your use case. + required: + - employee_fields + description: Options to customize what we return. + required: + - provisioned_users + - options + example: + provisioned_users: + - origin_id: your_id_123 + email: johndoe@example.com + options: + employee_fields: + - id + - first_name + - last_name + PostHrisProvisioningGroupsGroupIdSetupLinksParameterGroupId: + type: string + description: ID of the provisioning group (currently only `default` is allowed). + required: [] + PostHrisProvisioningGroupsGroupIdSetupLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + url: + type: string + format: url + description: The setup link URL to pass to the Kombo Connect SDK. + required: [] + expires_at: + description: When this link expires. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - url + - expires_at + example: + url: >- + https://connect.kombo.dev/v1/provisioning?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + expires_at: '2023-10-11T12:00:00.000Z' + required: + - status + - data + PostHrisProvisioningGroupsGroupIdSetupLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisProvisioningGroupsGroupIdSetupLinksRequestBody: + allOf: + - type: object + properties: + language: + type: string + enum: + - en + - de + - fr + default: en + description: >- + Language of the UI. Please note that the provisioning setup UI + is _not_ translated yet but we're working on it and setting this + already will make sure the translations appear once released. + required: [] + example: + language: en + GetHrisEmployeesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisEmployeesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisEmployeesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisEmployeesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisEmployeesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisEmployeesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisEmployeesParameterEmploymentStatus: + type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + description: >- + **(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** + Filter by the `employment_status` field. + required: [] + GetHrisEmployeesParameterEmploymentStatuses: + type: string + description: >- + Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, + `LEAVE` + + * `ACTIVE`: the employee is **actively employed** + + * `PENDING`: the employee is **not actively employed yet** (but they + signed their contract or are part of an onboarding process) + + * `INACTIVE`: a full-time employee is no longer employed, or, for a + contract worker when their contract runs out + + * `LEAVE`: the employee is still employed but **currently on leave** + (note that not all HR systems support this status — use our absences API + for detailed information) + + + Leave this blank to get results matching all values. + required: [] + GetHrisEmployeesParameterGroupIds: + type: string + description: >- + Filter by a comma-separated list of group IDs. We will only return + employees that are members of _any_ of the groups. + required: [] + GetHrisEmployeesParameterLegalEntityIds: + type: string + description: >- + Filter by a comma-separated list of legal entity IDs. We will only + return employees that are members of _any_ of the legal entities. + required: [] + GetHrisEmployeesParameterWorkLocationIds: + type: string + description: >- + Filter by a comma-separated list of work location IDs. We will only + return employees who are at _any_ of the work locations. + required: [] + GetHrisEmployeesParameterWorkEmails: + type: string + description: >- + Filter by a comma-separated list of work emails. We will only return + employees who have _any_ of the work emails. + required: [] + GetHrisEmployeesParameterPersonalEmails: + type: string + description: >- + Filter by a comma-separated list of personal emails. We will only return + employees who have _any_ of the personal emails. + required: [] + GetHrisEmployeesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + required: [] + employee_number: + nullable: true + type: string + description: An optional, organization-internal employee number. + required: [] + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + nationality: + nullable: true + type: string + description: The employee’s nationality. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. Not + all HR systems provide an explicit display name, so we + recommend falling back to `first_name` and + `last_name`. + required: [] + job_title: + nullable: true + type: string + description: The employee’s job title. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email + address is invalid, we will set this to `null`. + required: [] + personal_email: + nullable: true + type: string + format: email + description: >- + The employee’s personal email address. If the email + address is invalid, we will set this to `null`. + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + nullable: true + type: string + description: Social security number + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, + `NON_BINARY`, or `NOT_SPECIFIED`) **or** — in rare + cases where can't find a clear mapping — the original + string passed through. + required: [] + ethnicity: + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where + can't find a clear mapping — the original string + passed through. + required: [] + marital_status: + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, + `SEPARATED`, or `NOT_MARRIED`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + required: [] + employment_status: + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed + yet** (but they signed their contract or are part of + an onboarding process) + + - `INACTIVE`: the employee is **not actively + employed** anymore + + - `LEAVE`: the employee is still employed but + **currently on leave** (note that not all HR systems + support this status — use our absences API for + detailed information) + + + Please note that in rare cases, where we can't find a + clear mapping, the original string is passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, + `PART_TIME`, `CONTRACT`, `INTERNSHIP`, `FREELANCE`, + `WORKING_STUDENT`, `APPRENTICESHIP`, or `TRAINING`) + **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The employee's weekly working hours. + required: [] + avatar: + nullable: true + type: string + description: >- + URL to the employee’s avatar. This is either the raw + URL from the HR system (in cases where it can be + requested without short-lived authentication) _or_ a + URL to a temporarily cached version of the file hosted + by Kombo. Kombo will delete the cached file after its + deletion in the source system. + required: [] + work_location_id: + nullable: true + type: string + description: >- + The ID of the employee’s work location. Can be used to + retrieve the work location from the `hris_locations` + endpoint. + required: [] + legal_entity_id: + nullable: true + type: string + description: The ID of the employee’s legal entity. + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + nullable: true + type: string + default: null + description: >- + The internationally unique IBAN identifying this + account. + required: [] + bic: + nullable: true + type: string + default: null + description: >- + The internationally unique BIC/SWIFT code + identifying the bank behind this account. + required: [] + account_number: + nullable: true + type: string + default: null + description: >- + The bank-specific account number. Some companies + use the account number field to put the IBAN + here. + required: [] + holder_name: + nullable: true + type: string + default: null + description: The name of the holder of this account. + required: [] + bank_name: + nullable: true + type: string + default: null + description: The name of the bank behind this account. + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + type: string + description: >- + Bank routing number (e.g. DE Bankleitzahl, + GB Sort Code, US ABA routing number, AU BSB + code + required: [] + type: + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + nullable: true + description: >- + The date the employee started working for the + organization. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + nullable: true + description: >- + The date when the employment ends. Can be in the past + or future. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: >- + The date and time the object was created in the remote + system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: >- + https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + - type: object + properties: + employments: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + job_title: + nullable: true + type: string + description: >- + **(⚠️ Deprecated)** We now provide the + `job_title` directly on the employee model. + required: [] + pay_rate: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + pay_period: + nullable: true + oneOf: + - type: string + enum: + - HOUR + - DAY + - WEEK + - TWO_WEEKS + - HALF_MONTH + - MONTH + - TWO_MONTHS + - QUARTER + - HALF_YEAR + - YEAR + required: [] + - type: string + description: >- + If we can't find a clear mapping: The + original string passed through. + required: [] + description: >- + One of 10 standardized values (`HOUR`, `DAY`, + `WEEK`, `TWO_WEEKS`, `HALF_MONTH`, `MONTH`, + `TWO_MONTHS`, `QUARTER`, `HALF_YEAR`, or `YEAR`) + **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + pay_frequency: + nullable: true + oneOf: + - type: string + enum: + - DAILY + - WEEKLY + - BIWEEKLY + - MONTHLY + - SEMIMONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - PRO_RATA + required: [] + - type: string + description: >- + If we can't find a clear mapping: The + original string passed through. + required: [] + description: >- + One of 9 standardized values (`DAILY`, `WEEKLY`, + `BIWEEKLY`, `MONTHLY`, `SEMIMONTHLY`, + `QUARTERLY`, `SEMIANNUALLY`, `ANNUALLY`, or + `PRO_RATA`) **or** — in rare cases where can't + find a clear mapping — the original string + passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The + original string passed through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, + `PART_TIME`, `CONTRACT`, `INTERNSHIP`, + `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in + rare cases where can't find a clear mapping — + the original string passed through. + required: [] + pay_currency: + nullable: true + type: string + description: >- + Pay currency usually returned in [ISO 4217 + currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + required: [] + effective_date: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - job_title + - pay_rate + - pay_period + - pay_frequency + - employment_type + - pay_currency + - effective_date + - changed_at + - remote_deleted_at + - remote_data + - custom_fields + example: + id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: [] + time_off_balances: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + type_id: + type: string + required: [] + balance: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount time available to the employee. + required: [] + balance_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + used: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + used_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - type_id + - balance + - balance_unit + - changed_at + - remote_deleted_at + - used + - used_unit + - remote_data + example: + id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + required: [] + manager: + nullable: true + type: object + properties: + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. + Not all HR systems provide an explicit display + name, so we recommend falling back to `first_name` + and `last_name`. + required: [] + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email + address is invalid, we will set this to `null`. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + required: [] + required: + - first_name + - last_name + - display_full_name + - id + - work_email + - remote_id + example: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJg + work_email: john.doe@acme.com + remote_id: '32' + groups: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, + `TEAM`, and `COST_CENTER` + required: [] + required: + - id + - remote_id + - name + - type + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + required: [] + legal_entity: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with + the raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + required: + - id + - remote_id + - name + - address + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, + `TEAM`, and `COST_CENTER` + required: [] + required: + - id + - remote_id + - name + - type + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + description: >- + **(⚠️ Deprecated - Please use `groups` instead. It + includes the same data and the naming is less + confusing.)** Maintained field for backwards + compatibility. + required: [] + work_location: + nullable: true + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with + the raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + type: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - type + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - employments + - time_off_balances + - manager + - groups + - legal_entity + - teams + - work_location + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + employments: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + time_off_balances: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + manager: + first_name: John + last_name: Doe + display_full_name: John Doe + id: 26vafvWSRmbhNcxJYqjCzuJg + work_email: john.doe@acme.com + remote_id: '32' + groups: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + legal_entity: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + teams: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + type: TEAM + work_location: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + GetHrisEmployeesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_number: + nullable: true + type: string + description: An optional, organization-internal employee number. + required: [] + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + nationality: + nullable: true + type: string + description: The employee’s nationality. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. Not all HR + systems provide an explicit display name, so we recommend + falling back to `first_name` and `last_name`. + required: [] + job_title: + nullable: true + type: string + description: The employee’s job title. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email address is + invalid, we will set this to `null`. + required: [] + personal_email: + nullable: true + type: string + format: email + description: >- + The employee’s personal email address. If the email address is + invalid, we will set this to `null`. + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + nullable: true + type: string + description: Social security number + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, `NON_BINARY`, or + `NOT_SPECIFIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + ethnicity: + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where can't find a + clear mapping — the original string passed through. + required: [] + marital_status: + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, `SEPARATED`, or + `NOT_MARRIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + employment_status: + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed yet** (but + they signed their contract or are part of an onboarding process) + + - `INACTIVE`: the employee is **not actively employed** anymore + + - `LEAVE`: the employee is still employed but **currently on + leave** (note that not all HR systems support this status — use + our absences API for detailed information) + + + Please note that in rare cases, where we can't find a clear + mapping, the original string is passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases where + can't find a clear mapping — the original string passed through. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The employee's weekly working hours. + required: [] + avatar: + nullable: true + type: string + description: >- + URL to the employee’s avatar. This is either the raw URL from + the HR system (in cases where it can be requested without + short-lived authentication) _or_ a URL to a temporarily cached + version of the file hosted by Kombo. Kombo will delete the + cached file after its deletion in the source system. + required: [] + work_location_id: + nullable: true + type: string + description: >- + The ID of the employee’s work location. Can be used to retrieve + the work location from the `hris_locations` endpoint. + required: [] + legal_entity_id: + nullable: true + type: string + description: The ID of the employee’s legal entity. + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw address + string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains the + first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + nullable: true + type: string + default: null + description: The internationally unique IBAN identifying this account. + required: [] + bic: + nullable: true + type: string + default: null + description: >- + The internationally unique BIC/SWIFT code identifying the + bank behind this account. + required: [] + account_number: + nullable: true + type: string + default: null + description: >- + The bank-specific account number. Some companies use the + account number field to put the IBAN here. + required: [] + holder_name: + nullable: true + type: string + default: null + description: The name of the holder of this account. + required: [] + bank_name: + nullable: true + type: string + default: null + description: The name of the bank behind this account. + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + type: string + description: >- + Bank routing number (e.g. DE Bankleitzahl, GB Sort + Code, US ABA routing number, AU BSB code + required: [] + type: + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + nullable: true + description: The date the employee started working for the organization. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + nullable: true + description: The date when the employment ends. Can be in the past or future. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: The date and time the object was created in the remote system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + required: + - status + - data + PostHrisEmployeesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesRequestBody: + allOf: + - type: object + properties: + first_name: + type: string + last_name: + type: string + work_email: + type: string + format: email + description: >- + The email address of the employee to be created. For tools where + the personal email address is required, we map this input to the + personal email. This is documented on a per-tool basis. + gender: + type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + description: The gender of the employee. + job_title: + type: string + description: Title of the position this person is working in. + home_address: + type: object + properties: + street_1: + type: string + street_2: + type: string + city: + type: string + state: + type: string + zip_code: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's home address. For systems that have other formats + than `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO + Codes to the appropriate value. + description: The employee's home address. + date_of_birth: + description: >- + The employee's date of birth. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + mobile_phone_number: + type: string + nationality: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + start_date: + description: >- + Start date of the employee. Also considered to be the hire date. + This is a plain date (i.e., `yyyy-MM-dd`), all time information + is discarded. + 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 + remote_fields: + type: object + properties: + humaans: + type: object + properties: + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Humaans `Employee` + object. + description: Fields specific to Humaans. + silae: + type: object + properties: + siret: + type: string + description: >- + The siret of the company. The siret can be found as the + remote ID of a Silae legal entity. + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employee` + object. + employment: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employment` + object. + description: Fields specific to Silae. + required: + - silae + description: >- + Additional fields that we will pass through to specific HRIS + systems. + required: + - first_name + - last_name + - work_email + example: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + PatchHrisEmployeesEmployeeIdParameterEmployeeId: + 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`) + required: [] + PatchHrisEmployeesEmployeeIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_number: + nullable: true + type: string + description: An optional, organization-internal employee number. + required: [] + first_name: + nullable: true + type: string + description: The employee’s first name. + required: [] + last_name: + nullable: true + type: string + description: The employee’s last name. + required: [] + nationality: + nullable: true + type: string + description: The employee’s nationality. + required: [] + display_full_name: + nullable: true + type: string + description: >- + The employee’s full name, including middle names. Not all HR + systems provide an explicit display name, so we recommend + falling back to `first_name` and `last_name`. + required: [] + job_title: + nullable: true + type: string + description: The employee’s job title. + required: [] + work_email: + nullable: true + type: string + format: email + description: >- + The employee’s work email address. If the email address is + invalid, we will set this to `null`. + required: [] + personal_email: + nullable: true + type: string + format: email + description: >- + The employee’s personal email address. If the email address is + invalid, we will set this to `null`. + required: [] + mobile_phone_number: + nullable: true + type: string + required: [] + ssn: + nullable: true + type: string + description: Social security number + required: [] + tax_id: + nullable: true + type: string + required: [] + gender: + nullable: true + oneOf: + - type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 4 standardized values (`MALE`, `FEMALE`, `NON_BINARY`, or + `NOT_SPECIFIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + ethnicity: + nullable: true + oneOf: + - type: string + enum: + - WHITE + - ASIAN + - HISPANIC_LATINO + - HAWAIIAN + - NATIVE_AMERICAN + - BLACK_AFRICAN_AMERICAN + - MULTIPLE_ETHNICITIES + - DECLINE_TO_SPECIFY + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`WHITE`, `ASIAN`, + `HISPANIC_LATINO`, `HAWAIIAN`, `NATIVE_AMERICAN`, + `BLACK_AFRICAN_AMERICAN`, `MULTIPLE_ETHNICITIES`, or + `DECLINE_TO_SPECIFY`) **or** — in rare cases where can't find a + clear mapping — the original string passed through. + required: [] + marital_status: + nullable: true + oneOf: + - type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 7 standardized values (`SINGLE`, `MARRIED`, + `DOMESTIC_PARTNERSHIP`, `WIDOWED`, `DIVORCED`, `SEPARATED`, or + `NOT_MARRIED`) **or** — in rare cases where can't find a clear + mapping — the original string passed through. + required: [] + employment_status: + nullable: true + oneOf: + - type: string + enum: + - ACTIVE + - PENDING + - INACTIVE + - LEAVE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + The current employment status of the employee: + + + - `ACTIVE`: the employee is **actively employed** + + - `PENDING`: the employee is **not actively employed yet** (but + they signed their contract or are part of an onboarding process) + + - `INACTIVE`: the employee is **not actively employed** anymore + + - `LEAVE`: the employee is still employed but **currently on + leave** (note that not all HR systems support this status — use + our absences API for detailed information) + + + Please note that in rare cases, where we can't find a clear + mapping, the original string is passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases where + can't find a clear mapping — the original string passed through. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The employee's weekly working hours. + required: [] + avatar: + nullable: true + type: string + description: >- + URL to the employee’s avatar. This is either the raw URL from + the HR system (in cases where it can be requested without + short-lived authentication) _or_ a URL to a temporarily cached + version of the file hosted by Kombo. Kombo will delete the + cached file after its deletion in the source system. + required: [] + work_location_id: + nullable: true + type: string + description: >- + The ID of the employee’s work location. Can be used to retrieve + the work location from the `hris_locations` endpoint. + required: [] + legal_entity_id: + nullable: true + type: string + description: The ID of the employee’s legal entity. + required: [] + manager_id: + nullable: true + type: string + required: [] + home_address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw address + string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains the + first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + bank_accounts: + nullable: true + type: array + items: + type: object + properties: + iban: + nullable: true + type: string + default: null + description: The internationally unique IBAN identifying this account. + required: [] + bic: + nullable: true + type: string + default: null + description: >- + The internationally unique BIC/SWIFT code identifying the + bank behind this account. + required: [] + account_number: + nullable: true + type: string + default: null + description: >- + The bank-specific account number. Some companies use the + account number field to put the IBAN here. + required: [] + holder_name: + nullable: true + type: string + default: null + description: The name of the holder of this account. + required: [] + bank_name: + nullable: true + type: string + default: null + description: The name of the bank behind this account. + required: [] + domestic_bank_routing: + nullable: true + type: object + properties: + number: + type: string + description: >- + Bank routing number (e.g. DE Bankleitzahl, GB Sort + Code, US ABA routing number, AU BSB code + required: [] + type: + nullable: true + type: string + enum: + - GB_SORT_CODE + - DE_BANKLEITZAHL + - US_ABA_ROUTING_TRANSIT_NUMBER + - CA_ROUTING_NUMBER + - AU_BSB_CODE + description: >- + Enum of the routing type, prefixed with the + iso-3166-1-alpha-2 banks origin country + required: [] + required: + - number + - type + default: null + required: [] + required: [] + date_of_birth: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + start_date: + nullable: true + description: The date the employee started working for the organization. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + termination_date: + nullable: true + description: The date when the employment ends. Can be in the past or future. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: The date and time the object was created in the remote system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_number + - first_name + - last_name + - nationality + - display_full_name + - job_title + - work_email + - personal_email + - mobile_phone_number + - ssn + - tax_id + - gender + - ethnicity + - marital_status + - employment_status + - employment_type + - weekly_hours + - avatar + - work_location_id + - legal_entity_id + - manager_id + - home_address + - bank_accounts + - date_of_birth + - start_date + - termination_date + - remote_created_at + - changed_at + - remote_deleted_at + - custom_fields + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + employee_number: '3243422' + first_name: John + last_name: Doe + nationality: French + display_full_name: John Doe + job_title: Integrations Team Lead + work_email: john.doe@acme.com + personal_email: john@doe.me + mobile_phone_number: 801-555-4687 + ssn: 555-32-6395 + tax_id: 12 345 678 901 + gender: MALE + ethnicity: BLACK_AFRICAN_AMERICAN + marital_status: MARRIED + employment_status: INACTIVE + employment_type: FULL_TIME + weekly_hours: 40 + avatar: https://resources.bamboohr.com/images/photo_person_150x150.png + work_location_id: 7E2gyuv6TmvtByzBxW9Sxt53 + legal_entity_id: xB32bied320csBSsl3XWdlw33 + manager_id: 9pf2pxBB8VX8EQMC9aipW2Bo + home_address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + bank_accounts: + - account_number: '1234567890' + bank_name: Commerzbank + bic: COBADEFFXXX + domestic_bank_routing: + number: '34567890' + type: DE_BANKLEITZAHL + holder_name: John Doe + iban: DE12345678901234567890 + date_of_birth: '1986-01-01T00:00:00.000Z' + start_date: '2020-04-07T00:00:00.000Z' + termination_date: '2022-05-20T00:00:00.000Z' + remote_created_at: '2020-04-07T12:32:01.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + custom_fields: {} + remote_data: null + required: + - status + - data + PatchHrisEmployeesEmployeeIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PatchHrisEmployeesEmployeeIdRequestBody: + allOf: + - type: object + properties: + first_name: + type: string + last_name: + type: string + work_email: + type: string + format: email + description: >- + The email address of the employee to be created. For tools where + the personal email address is required, we map this input to the + personal email. This is documented on a per-tool basis. + gender: + type: string + enum: + - MALE + - FEMALE + - NON_BINARY + - NOT_SPECIFIED + description: The gender of the employee. + job_title: + type: string + description: Title of the position this person is working in. + home_address: + type: object + properties: + street_1: + type: string + street_2: + type: string + city: + type: string + state: + type: string + zip_code: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's home address. For systems that have other formats + than `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO + Codes to the appropriate value. + description: The employee's home address. + date_of_birth: + description: >- + The employee's date of birth. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + mobile_phone_number: + type: string + nationality: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + start_date: + description: >- + Start date of the employee. Also considered to be the hire date. + This is a plain date (i.e., `yyyy-MM-dd`), all time information + is discarded. + 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 + remote_fields: + type: object + properties: + humaans: + type: object + properties: + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Humaans `Employee` + object. + description: Fields specific to Humaans. + silae: + type: object + properties: + siret: + type: string + description: >- + The siret of the company. The siret can be found as the + remote ID of a Silae legal entity. + employee: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employee` + object. + employment: + type: object + additionalProperties: + format: any + description: >- + Fields that we will passed through to Silae `Employment` + object. + description: Fields specific to Silae. + required: + - silae + description: >- + Additional fields that we will pass through to specific HRIS + systems. + required: + - first_name + - last_name + - work_email + example: + first_name: John + last_name: Doe + work_email: john.doe@acme.com + gender: MALE + date_of_birth: '1986-01-01' + start_date: '2020-04-07' + job_title: Integrations Team Lead + home_address: + city: Berlin + country: DE + state: Berlin + street_1: Sonnenallee 63 + zip_code: '12045' + - type: object + properties: + ssn: + type: string + description: Social security number of the employee. + marital_status: + type: string + enum: + - SINGLE + - MARRIED + - DOMESTIC_PARTNERSHIP + - WIDOWED + - DIVORCED + - SEPARATED + - NOT_MARRIED + description: Marital status of an employee. + termination_date: + description: >- + Date on which the employment ends. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + tax_id: + type: string + description: >- + Tax ID of the employee. Most contries have different formats of + that. In Germany, this is the `Steuer ID` and in the US it's the + `TIN`. + nationality: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + employee's nationality. For systems that have other formats than + `ISO 3166-1 alpha-2` codes, Kombo transforms the ISO Codes to + the appropriate value. + required: [] + PostHrisEmployeesEmployeeIdAttachmentsParameterEmployeeId: + type: string + required: [] + PostHrisEmployeesEmployeeIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostHrisEmployeesEmployeeIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisEmployeesEmployeeIdAttachmentsRequestBody: + type: object + GetHrisTeamsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisTeamsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisTeamsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisTeamsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisTeamsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisTeamsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisTeamsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, `TEAM`, and + `COST_CENTER` + required: [] + parent_id: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - changed_at + - remote_deleted_at + - type + - parent_id + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: + - status + - data + GetHrisTeamsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisGroupsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisGroupsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisGroupsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisGroupsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisGroupsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisGroupsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisGroupsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + nullable: true + type: string + enum: + - DEPARTMENT + - TEAM + - COST_CENTER + description: >- + Type of the group. Can be any of `DEPARTMENT`, `TEAM`, and + `COST_CENTER` + required: [] + parent_id: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - changed_at + - remote_deleted_at + - type + - parent_id + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: Customer Success + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + type: TEAM + parent_id: KGaJ5XaVPob8mYVfD49W4DGB + remote_data: null + required: + - status + - data + GetHrisGroupsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisEmploymentsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisEmploymentsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisEmploymentsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisEmploymentsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisEmploymentsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisEmploymentsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisEmploymentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + job_title: + nullable: true + type: string + description: >- + **(⚠️ Deprecated)** We now provide the `job_title` + directly on the employee model. + required: [] + pay_rate: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + pay_period: + nullable: true + oneOf: + - type: string + enum: + - HOUR + - DAY + - WEEK + - TWO_WEEKS + - HALF_MONTH + - MONTH + - TWO_MONTHS + - QUARTER + - HALF_YEAR + - YEAR + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string + passed through. + required: [] + description: >- + One of 10 standardized values (`HOUR`, `DAY`, `WEEK`, + `TWO_WEEKS`, `HALF_MONTH`, `MONTH`, `TWO_MONTHS`, + `QUARTER`, `HALF_YEAR`, or `YEAR`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + required: [] + pay_frequency: + nullable: true + oneOf: + - type: string + enum: + - DAILY + - WEEKLY + - BIWEEKLY + - MONTHLY + - SEMIMONTHLY + - QUARTERLY + - SEMIANNUALLY + - ANNUALLY + - PRO_RATA + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string + passed through. + required: [] + description: >- + One of 9 standardized values (`DAILY`, `WEEKLY`, + `BIWEEKLY`, `MONTHLY`, `SEMIMONTHLY`, `QUARTERLY`, + `SEMIANNUALLY`, `ANNUALLY`, or `PRO_RATA`) **or** — in + rare cases where can't find a clear mapping — the original + string passed through. + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - INTERNSHIP + - FREELANCE + - WORKING_STUDENT + - APPRENTICESHIP + - TRAINING + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string + passed through. + required: [] + description: >- + One of 8 standardized values (`FULL_TIME`, `PART_TIME`, + `CONTRACT`, `INTERNSHIP`, `FREELANCE`, `WORKING_STUDENT`, + `APPRENTICESHIP`, or `TRAINING`) **or** — in rare cases + where can't find a clear mapping — the original string + passed through. + required: [] + pay_currency: + nullable: true + type: string + description: >- + Pay currency usually returned in [ISO 4217 currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + required: [] + effective_date: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - job_title + - pay_rate + - pay_period + - pay_frequency + - employment_type + - pay_currency + - effective_date + - changed_at + - remote_deleted_at + - remote_data + - custom_fields + example: + id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 12vpXR7BeqYNWDShXRgsonnm + remote_id: '859' + employee_id: 8Xk99QfVKYA6vfEafEUBdEPJ + job_title: Social Media Marketer + pay_rate: 85000 + pay_period: YEAR + pay_frequency: SEMIMONTHLY + employment_type: FULL_TIME + pay_currency: EUR + effective_date: '2021-01-30T00:00:00.000Z' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + custom_fields: {} + required: + - status + - data + GetHrisEmploymentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisLocationsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisLocationsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisLocationsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisLocationsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisLocationsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisLocationsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisLocationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw + address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains + the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + type: + nullable: true + type: string + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - type + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + name: Kombo HQ + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + type: OFFICE + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + GetHrisLocationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisAbsenceTypesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisAbsenceTypesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisAbsenceTypesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisAbsenceTypesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisAbsenceTypesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisAbsenceTypesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisAbsenceTypesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + nullable: true + type: boolean + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and `end_half_day`) + for this absence type. + required: [] + exact_times_supported: + nullable: true + type: boolean + description: >- + `true` if the system supports exact times (absences with a + `start_time` and an `end_time`) for this absence, `false` + if not. + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisAbsenceTypesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisTimeOffBalancesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisTimeOffBalancesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisTimeOffBalancesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisTimeOffBalancesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisTimeOffBalancesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisTimeOffBalancesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisTimeOffBalancesParameterEmployeeId: + type: string + description: Filter by a specific employee using their ID. + required: [] + GetHrisTimeOffBalancesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + employee_id: + type: string + required: [] + type_id: + type: string + required: [] + balance: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount time available to the employee. + required: [] + balance_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + used: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + used_unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - type_id + - balance + - balance_unit + - changed_at + - remote_deleted_at + - used + - used_unit + - remote_data + example: + id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + - type: object + properties: + type: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + nullable: true + type: boolean + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and + `end_half_day`) for this absence type. + required: [] + exact_times_supported: + nullable: true + type: boolean + description: >- + `true` if the system supports exact times + (absences with a `start_time` and an `end_time`) + for this absence, `false` if not. + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - type + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: FuyRuk5NqP3qTcThED3ymTuE + remote_id: '124123' + employee_id: 2Up4ZCvq1bFVzmzXG6EWzV3j + type_id: BQJaBxRCiqN46G27VTegvkEr + balance: 14 + balance_unit: DAYS + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + used: 3 + used_unit: DAYS + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisTimeOffBalancesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetHrisAbsencesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisAbsencesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisAbsencesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisAbsencesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisAbsencesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisAbsencesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisAbsencesParameterDateFrom: + description: >- + Filter for all the absences that either start _or_ haven't ended yet + on/after this day. If you imagine a calendar displaying absences, this + defines the left-most visible day. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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: [] + GetHrisAbsencesParameterDateUntil: + description: >- + Filter for absences that start on or before this day (but might continue + after). If you imagine a calendar displaying absences, this defines the + right-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all + time information is discarded. + 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: [] + GetHrisAbsencesParameterTypeIds: + type: string + description: Filter by a comma-separated list of absence type IDs. + required: [] + GetHrisAbsencesParameterEmployeeId: + type: string + description: Filter by a specific employee using their ID. + required: [] + GetHrisAbsencesParameterTimeFrom: + description: >- + **(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for + absences that either start after or start before and end after a certain + time. + 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: [] + GetHrisAbsencesParameterTimeUntil: + description: >- + **(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter for + absences that start before a certain time. + 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: [] + GetHrisAbsencesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + required: [] + employee_id: + type: string + required: [] + approver_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible + for approving this absence. + required: [] + start_date: + nullable: true + type: string + description: >- + The date this absence starts in the `yyyy-MM-dd` + format. + required: [] + end_date: + nullable: true + type: string + description: The date this absence ends in the `yyyy-MM-dd` format. + required: [] + start_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence starts in the middle of the day, + `false` if not, and `null` if the absence type doesn't + support half-day absences. If an absence goes across + multiple days and `start_half_day` is set, it means + that on the last day the absence is only on the first + half of the day. + required: [] + end_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence ends in the middle of the day, + `false` if not, and `null` if the absence type doesn't + support half-day absences. If an absence goes across + multiple days and `end_half_day` is set, it means that + on the first day the absence only starts in the second + half-day. + required: [] + start_time: + nullable: true + type: string + description: >- + The time at which this absence starts. Follows the + format `HH:mm:ss` (e.g., `14:45:15`). + required: [] + end_time: + nullable: true + type: string + description: >- + The time at which this absence ends. Follows the + format `HH:mm:ss` (e.g., `14:45:15`). + required: [] + amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of time this absence takes. + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + description: >- + The unit of time for this absence. Can be `HOURS` or + `DAYS`. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in + rare cases where can't find a clear mapping — the + original string passed through. + required: [] + employee_note: + nullable: true + type: string + description: A note the employee has added to this absence. + required: [] + type_id: + nullable: true + type: string + description: The Kombo absence type ID of this absence. + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + type: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + required: [] + half_days_supported: + nullable: true + type: boolean + description: >- + Whether the integration supports half-day absences + (represented through `start_half_day` and + `end_half_day`) for this absence type. + required: [] + exact_times_supported: + nullable: true + type: boolean + description: >- + `true` if the system supports exact times + (absences with a `start_time` and an `end_time`) + for this absence, `false` if not. + required: [] + remote_id: + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - name + - unit + - half_days_supported + - exact_times_supported + - remote_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - type + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + type: + id: xzZoKssDaMZAd62kxayzzQvD + name: Vacation + unit: DAYS + half_days_supported: true + exact_times_supported: false + remote_id: '91' + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetHrisAbsencesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisAbsencesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_id: + type: string + required: [] + approver_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible for + approving this absence. + required: [] + start_date: + nullable: true + type: string + description: The date this absence starts in the `yyyy-MM-dd` format. + required: [] + end_date: + nullable: true + type: string + description: The date this absence ends in the `yyyy-MM-dd` format. + required: [] + start_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence starts in the middle of the day, `false` + if not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `start_half_day` is set, it means that on the last day the + absence is only on the first half of the day. + required: [] + end_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence ends in the middle of the day, `false` if + not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `end_half_day` is set, it means that on the first day the + absence only starts in the second half-day. + required: [] + start_time: + nullable: true + type: string + description: >- + The time at which this absence starts. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + end_time: + nullable: true + type: string + description: >- + The time at which this absence ends. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of time this absence takes. + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + description: The unit of time for this absence. Can be `HOURS` or `DAYS`. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in rare cases + where can't find a clear mapping — the original string passed + through. + required: [] + employee_note: + nullable: true + type: string + description: A note the employee has added to this absence. + required: [] + type_id: + nullable: true + type: string + description: The Kombo absence type ID of this absence. + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + PostHrisAbsencesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostHrisAbsencesRequestBody: + allOf: + - type: object + properties: + employee_id: + type: string + description: >- + The ID of the employee in Kombo or their ID in the remote system + by prefixing it with `remote:` (e.g., `remote:12312`) + absence_type_id: + type: string + description: The ID of the absence type in Kombo (not its `remote_id`). + status: + type: string + enum: + - REQUESTED + - APPROVED + description: >- + Specify if the absence should be created in the requested or + approved state. Please note that some tools might approve + absences automatically if they were created for an absence type + that does not require approval. There are more edge cases that + might cause an absence to be approved automatically. + default: REQUESTED + start_date: + description: >- + When the absence starts. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + end_date: + description: >- + When the absence ends. This is a plain date (i.e., + `yyyy-MM-dd`), all time information is discarded. + 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 + start_half_day: + type: boolean + description: '`true` if the absence should start in the middle of the day.' + default: false + end_half_day: + type: boolean + description: '`true` if the absence should end in the middle of the day.' + default: false + amount: + type: number + format: double + minimum: 0 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: >- + Specifying this also requires specifying `unit`. This is + supported by very few tools. + unit: + type: string + enum: + - HOURS + - DAYS + description: Specifying this also requires specifying `amount`. + employee_note: + nullable: true + type: string + description: A note describing the reason for this absence. + start_time: + type: string + pattern: /^(?:2[0-3]|[01]?\d):[0-5]?\d(:[0-5]?\d)?$/ + description: >- + When the absence begins. Follows the format `HH:mm` or + `HH:mm:ss` (e.g., `14:45:15`). If `start_time` is specified, + `end_time` has to be specified as well. + end_time: + type: string + pattern: /^(?:2[0-3]|[01]?\d):[0-5]?\d(:[0-5]?\d)?$/ + description: >- + When the absence ends. Follows the format `HH:mm` or `HH:mm:ss` + (e.g., `14:45:15`). If `end_time` is specified, `start_time` has + to be specified as well. + required: + - employee_id + - absence_type_id + - employee_note + example: + employee_id: wXJMxwDvPAjrJ4CyqdV9 + absence_type_id: 3YKtQ7qedsrcCady1jSyAkY1 + start_date: '2019-09-17' + end_date: '2019-09-21' + start_time: '08:30:00' + end_time: '16:00:00' + start_half_day: false + end_half_day: false + employee_note: Visiting the aliens + DeleteHrisAbsencesAbsenceIdParameterAbsenceId: + type: string + description: The ID of the absence + required: [] + DeleteHrisAbsencesAbsenceIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. We + recommend using this as a stable primary key for syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it might + sometimes be compromised of multiple identifiers if a system + doesn't provide a clear primary key. + required: [] + employee_id: + type: string + required: [] + approver_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated - We won't increase coverage for this + feature)** The ID of the employee who is responsible for + approving this absence. + required: [] + start_date: + nullable: true + type: string + description: The date this absence starts in the `yyyy-MM-dd` format. + required: [] + end_date: + nullable: true + type: string + description: The date this absence ends in the `yyyy-MM-dd` format. + required: [] + start_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence starts in the middle of the day, `false` + if not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `start_half_day` is set, it means that on the last day the + absence is only on the first half of the day. + required: [] + end_half_day: + nullable: true + type: boolean + description: >- + `true` if the absence ends in the middle of the day, `false` if + not, and `null` if the absence type doesn't support half-day + absences. If an absence goes across multiple days and + `end_half_day` is set, it means that on the first day the + absence only starts in the second half-day. + required: [] + start_time: + nullable: true + type: string + description: >- + The time at which this absence starts. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + end_time: + nullable: true + type: string + description: >- + The time at which this absence ends. Follows the format + `HH:mm:ss` (e.g., `14:45:15`). + required: [] + amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of time this absence takes. + required: [] + unit: + nullable: true + type: string + enum: + - HOURS + - DAYS + description: The unit of time for this absence. Can be `HOURS` or `DAYS`. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - REQUESTED + - APPROVED + - DECLINED + - CANCELLED + - DELETED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original string passed + through. + required: [] + description: >- + One of 5 standardized values (`REQUESTED`, `APPROVED`, + `DECLINED`, `CANCELLED`, or `DELETED`) **or** — in rare cases + where can't find a clear mapping — the original string passed + through. + required: [] + employee_note: + nullable: true + type: string + description: A note the employee has added to this absence. + required: [] + type_id: + nullable: true + type: string + description: The Kombo absence type ID of this absence. + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This value is + tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote system. + Objects are automatically marked as deleted when Kombo can't + retrieve them from the remote system anymore. Kombo will also + anonymize entries 14 days after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - employee_id + - approver_id + - start_date + - end_date + - start_half_day + - end_half_day + - start_time + - end_time + - amount + - unit + - status + - employee_note + - type_id + - changed_at + - remote_deleted_at + - remote_data + example: + id: 22st2Ji8XpncEYEak8mvQgQF + remote_id: '1348' + employee_id: JDdUy9kiH5APaGizFrgNmQjM + approver_id: AgXEispYPP1BbToHpqnqcpxy + start_date: '2022-08-04' + end_date: '2022-08-05' + start_half_day: true + end_half_day: false + start_time: '13:15:00' + end_time: '17:00:00' + amount: 2 + unit: DAYS + status: APPROVED + employee_note: Visiting my family. + type_id: xzZoKssDaMZAd62kxayzzQvD + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: '2022-08-07T14:01:29.196Z' + remote_data: null + required: + - status + - data + DeleteHrisAbsencesAbsenceIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteHrisAbsencesAbsenceIdRequestBody: + type: object + GetHrisLegalEntitiesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetHrisLegalEntitiesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetHrisLegalEntitiesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetHrisLegalEntitiesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetHrisLegalEntitiesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetHrisLegalEntitiesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetHrisLegalEntitiesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by Kombo. + We recommend using this as a stable primary key for + syncing. + required: [] + remote_id: + nullable: true + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it + might sometimes be compromised of multiple identifiers if + a system doesn't provide a clear primary key. + required: [] + name: + nullable: true + type: string + required: [] + address: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw + address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains + the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted when + Kombo can't retrieve them from the remote system anymore. + Kombo will also anonymize entries 14 days after they + disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - name + - address + - changed_at + - remote_deleted_at + - remote_data + example: + id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 4B9bKBpX5tnwjiG93TAqF7ci + remote_id: '49' + name: ACME Inc. + address: + city: Berlin + country: DE + raw: |- + Sonnenallee 63 + 12045 Berlin, Berlin + Germany + state: Berlin + street_1: Sonnenallee 63 + street_2: null + zip_code: '12045' + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_data: null + required: + - status + - data + GetHrisLegalEntitiesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsApplicationsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsApplicationsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsApplicationsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsApplicationsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsApplicationsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsApplicationsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsApplicationsParameterOutcome: + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + **(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter + applications by outcome. This allows you to get applications that are + for example `PENDING`, `HIRED`, or `DECLINED`. + required: [] + GetAtsApplicationsParameterOutcomes: + type: string + description: |- + Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` + * `PENDING`: The application is still being processed. + * `HIRED`: The candidate was hired. + * `DECLINED`: The candidate was declined. + + + Leave this blank to get results matching all values. + required: [] + GetAtsApplicationsParameterRemoteCreatedAfter: + description: >- + Filter applications by the day they were created in the remote system. + This allows you to get applications that were created on or after a + certain day. + 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: [] + GetAtsApplicationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo identifies + that the application was accepted and the candidate + hired, it will be `HIRED`. If the application was + rejected or the candidate declined, it will be + `DECLINED`. If the application is still in process, it + will be `PENDING`. + + Kombo will always try to deliver this information as + reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + current_stage_id: + nullable: true + type: string + description: ID of the current application stage + required: [] + job_id: + nullable: true + type: string + required: [] + candidate_id: + nullable: true + type: string + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + - current_stage_id + - job_id + - candidate_id + - custom_fields + - changed_at + - remote_deleted_at + - remote_created_at + - remote_updated_at + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + candidate: + nullable: true + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through + this field. If we don't get any + information from the tool, we will set + this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate + with an optional type. If an email address is + invalid, it will be filtered out. + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email_addresses + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + - type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + required: [] + required: + - tags + required: [] + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary + key for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on + your side as it might sometimes be compromised of + multiple identifiers if a system doesn't provide a + clear primary key. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + interviews: + type: array + items: + type: object + properties: + id: + type: string + description: The globally unique Kombo ID of the interview. + required: [] + remote_id: + nullable: true + type: string + description: >- + The ID of the interview in the integrated + system. + required: [] + title: + nullable: true + type: string + description: The title of the interview. + required: [] + starting_at: + nullable: true + description: The start time of the interview. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + ending_at: + nullable: true + description: The end time of the interview. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. + If not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with + the raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the interview. + required: [] + required: + - id + - remote_id + - title + - starting_at + - ending_at + - location + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + title: Interview with John Doe + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + required: [] + required: + - candidate + - current_stage + - job + - interviews + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + candidate: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + interviews: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + title: Interview with John Doe + starting_at: '2023-06-26T14:30:00.000Z' + ending_at: '2023-06-26T15:30:00.000Z' + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + required: + - status + - data + GetAtsApplicationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAtsApplicationsApplicationIdStageParameterApplicationId: + type: string + required: [] + PutAtsApplicationsApplicationIdStageSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAtsApplicationsApplicationIdStageErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAtsApplicationsApplicationIdStageRequestBody: + allOf: + - type: object + properties: + stage_id: + type: string + description: >- + The ID of the stage to move the application to. This ID must be + the ID of a stage that is connected to the job that the + application is connected to. + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - stage_id + example: + stage_id: 3PJ8PZhZZa1eEdd2DtPNtVup + PostAtsApplicationsApplicationIdResultLinksParameterApplicationId: + type: string + description: Kombo ID of the application you want to create the link for. + required: [] + PostAtsApplicationsApplicationIdResultLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdResultLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdResultLinksRequestBody: + allOf: + - type: object + properties: + label: + type: string + description: >- + If we can display a display name for the link, we will use this + label. + url: + type: string + format: url + description: URL of the link. + details: + type: object + properties: + custom_field_name_prefix: + type: string + description: >- + That will be added to the attribute labels if they are used + for custom fields. If you specify `Acme:` as the prefix, the + custom field will be named `Acme: Score`. Putting in the + name of your company/product is a good idea. + attributes: + type: array + items: + type: object + properties: + key: + type: string + description: The name of the attribute + value: + type: string + description: The value of the attribute + required: + - key + - value + required: + - custom_field_name_prefix + - attributes + description: >- + Additional details with attributes that will be added to the + result. This can be percentages, scores, or any text. + + + We generally recommend using short attribute keys and a short + custom_field_name_prefix to avoid overflowing the ATS UI. + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - label + - url + example: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + PostAtsApplicationsApplicationIdNotesParameterApplicationId: + type: string + description: Kombo ID of the application you want to create the note for. + required: [] + PostAtsApplicationsApplicationIdNotesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdNotesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdNotesRequestBody: + allOf: + - type: object + properties: + content: + type: string + description: UTF-8 content of the note. + content_type: + type: string + enum: + - PLAIN_TEXT + description: >- + Content type of the note. Currently only `PLAIN_TEXT` is + supported. + remote_fields: + type: object + properties: + teamtailor: + type: object + properties: + user_id: + type: string + description: >- + ID of the user that created the note. Defaults to the + first admin user found. + description: Teamtailor specific remote fields for the note. + greenhouse: + type: object + properties: + visibility: + type: string + enum: + - admin_only + - private + - public + description: Visibility of the created note. + description: Greenhouse specific remote fields for the note. + recruitee: + type: object + properties: + visibility: + format: any + description: Visibility of the created note. + is_json: + type: boolean + description: >- + Whether the note is in a stringified JSON format. If + true, content should contain a valid JSON as per the + [Recruitee API + documentation](https://docs.recruitee.com/reference/candidatesidnotes) + (body_json field). If false we add the note as a plain + text. + description: Recruitee specific remote fields for the note. + description: Tool specific remote fields for the note. + required: + - content + - content_type + example: + content: A new message from the candidate is available in YourChat! + content_type: PLAIN_TEXT + PostAtsApplicationsApplicationIdAttachmentsParameterApplicationId: + type: string + required: [] + PostAtsApplicationsApplicationIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsApplicationsApplicationIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsApplicationsApplicationIdAttachmentsRequestBody: + allOf: + - type: object + properties: + attachment: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., `application/pdf`). + This is required if you provide `data` and optional if + you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to upload. + You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to upload. + You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - attachment + example: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + GetAtsCandidatesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsCandidatesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsCandidatesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsCandidatesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsCandidatesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsCandidatesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsCandidatesParameterEmail: + type: string + format: email + description: >- + Filter the candidates based on an email address. When set, returns only + the candidates where the given `email` is in `email_addresses`. + required: [] + GetAtsCandidatesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + company: + nullable: true + type: string + description: The current company of the candidate. + required: [] + title: + nullable: true + type: string + description: The current job title of the candidate. + required: [] + confidential: + nullable: true + type: boolean + description: >- + Whether the candidate's profile is confidential in the + ATS. + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + nullable: true + type: string + default: null + description: >- + Kombo exposes type information through this + field. If we don't get any information from the + tool, we will set this to `null`. + required: [] + required: + - phone_number + default: [] + description: A list of phone numbers of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through this + field. If we don't get any information from the + tool, we will set this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate with an + optional type. If an email address is invalid, it will + be filtered out. + required: [] + social_media: + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + description: List of social media accounts of the candidate. + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the candidate. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + applications: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo + identifies that the application was accepted + and the candidate hired, it will be `HIRED`. + If the application was rejected or the + candidate declined, it will be `DECLINED`. + If the application is still in process, it + will be `PENDING`. + + Kombo will always try to deliver this + information as reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object + generated by Kombo. We recommend using + this as a stable primary key for + syncing. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote + system. We don't recommend using this as + a primary key on your side as it might + sometimes be compromised of multiple + identifiers if a system doesn't provide + a clear primary key. + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + required: + - current_stage + - job + required: [] + required: [] + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: [] + required: + - applications + - tags + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + applications: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + tags: + - id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: + - status + - data + GetAtsCandidatesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + company: + nullable: true + type: string + description: The current company of the candidate. + required: [] + title: + nullable: true + type: string + description: The current job title of the candidate. + required: [] + confidential: + nullable: true + type: boolean + description: Whether the candidate's profile is confidential in the ATS. + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + nullable: true + type: string + default: null + description: >- + Kombo exposes type information through this field. If + we don't get any information from the tool, we will + set this to `null`. + required: [] + required: + - phone_number + default: [] + description: A list of phone numbers of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through this field. If + we don't get any information from the tool, we will + set this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate with an optional + type. If an email address is invalid, it will be filtered + out. + required: [] + social_media: + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + description: List of social media accounts of the candidate. + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If not, it + contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the raw + address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field contains + the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the candidate. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + applications: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo + identifies that the application was accepted and + the candidate hired, it will be `HIRED`. If the + application was rejected or the candidate + declined, it will be `DECLINED`. If the + application is still in process, it will be + `PENDING`. + + Kombo will always try to deliver this information + as reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object + generated by Kombo. We recommend using this as + a stable primary key for syncing. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. + We don't recommend using this as a primary key + on your side as it might sometimes be + compromised of multiple identifiers if a + system doesn't provide a clear primary key. + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + required: + - current_stage + - job + required: [] + required: [] + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: [] + required: + - applications + - tags + required: [] + warnings: + type: array + items: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: [] + required: + - status + - data + - warnings + PostAtsCandidatesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesRequestBody: + allOf: + - type: object + properties: + candidate: + type: object + properties: + first_name: + type: string + last_name: + type: string + email_address: + type: string + format: email + description: >- + The primary email address this application will be created + with. + company: + type: string + description: The company where the applicant is currently working. + title: + type: string + description: The current job title of the applicant. + phone_number: + type: string + location: + type: object + properties: + city: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + applicant. + required: + - country + gender: + type: string + enum: + - MALE + - FEMALE + - OTHER + description: >- + The gender of the applicant. Must be one of `MALE`, + `FEMALE`, or `OTHER`. + availability_date: + description: The date the applicant is available to start working. + 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 + salary_expectations: + type: object + properties: + period: + type: string + enum: + - MONTH + - YEAR + description: >- + The period of the salary expectations. Must be one of + `MONTH` or `YEAR`. + amount: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of the salary expectations. + required: + - period + - amount + description: >- + The salary expectations of the applicant. We will + automatically convert the amount to a format that is + suitable for the ATS you are using. For example, if you are + using monthly salary expectations, we will convert the + amount to a yearly salary if the ATS expects yearly salary + expectations. + social_links: + type: array + items: + type: object + properties: + url: + type: string + format: url + required: + - url + default: [] + description: >- + A list of social media links of the applicant. The links + must be valid URLs. + required: + - first_name + - last_name + - email_address + application: + type: object + properties: + job_id: + type: string + description: >- + Kombo ID or Remote ID of the Job this candidate should apply + for. If you want to use the ID of the integrated system + (remote_id) you need to prefix the id with "remote:". You + can use the remote ID if you do not want to sync jobs. + stage_id: + type: string + description: >- + Stage this candidate should be in. If left out, the default + stage for this job will be used. + required: + - job_id + description: >- + Currently, every candidate has one application. If you are + interested in talent pools, please contact Kombo. + screening_question_answers: + type: array + items: + type: object + properties: + question_id: + type: string + description: >- + ID of the question returned by the Kombo API. We'll report + a warning in the logs if the question can't be found on + the job. + answer: + oneOf: + - type: string + description: >- + Answer to a `TEXT` question or the option ID of the + answer to a `SINGLE_SELECT` question. + - type: boolean + description: Answer to a `BOOLEAN` question. + - type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Answer to a `NUMBER` question. + - type: array + items: + type: string + description: >- + Answer to a `MULTI_SELECT` question. The array + elements are the IDs of the selected options. + - description: >- + Answer to a `DATE` question as an ISO 8601 date + string. + 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 + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + description: Answer to a `FILE` question. + description: >- + Answer to a question. This will be validated based on the + question format and throw an error if the answer is + invalid. Here is a description of each question type and + the required answer format: + + + `TEXT` - Simply provide a "string" answer. + + + `SINGLE_SELECT` - Provide the ID of the answer as a + string. + + + `MULTI_SELECT` - Provide a string array containing the + question IDs of the selected options. + + + `BOOLEAN` - Either `true` or `false`. + + + `NUMBER` - A number. + + + `DATE` - Provide the answer as an ISO 8601 date string. + + + `FILE` - Please select Option 6 in the dropdown above to + see the required format. + required: + - question_id + - answer + description: >- + Array of answers to screening questions. Currently, not all + question types are supported and unsupported ones will not be + submitted. + + + The available questions a job can be retrieved from the get jobs + endpoint. The answers will be validated based on the format of + the the questions. Make sure to follow this schema to avoid + errors. + example: + - question_id: D8yPrjXXvA2XeBksTmrVvKSn + answer: 'Yes' + attachments: + type: array + items: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you provide + `data` and optional if you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + default: [] + description: Array of the attachments you would like upload. + source: + type: object + properties: + name: + type: string + description: >- + Name of the source (e.g., `"Example Job Board"`). + + + Note that this **only** works for ATS systems that support + creating a source through the API right now. This includes + Breezy HR, Fountain, Pinpoint, RECRU, Recruitee, Sage HR, + and Haufe Umantis. For all other ATSs, the source will be + ignored at the moment. + description: >- + **(⚠️ Deprecated - Use [automatic source + writing](/ats/features/application-attribution#automatic-attribution) + instead)** Optional source information that will be attached to + the candidate. If + + you're a job board or recruiting service, you can use this to + make sure your + + customers can see which candidates came from you. + + + This is deprecated because writing sources requires users to do + some setup in most ATSs. + gdpr_consent: + type: object + properties: + expires_at: + description: >- + Until when the candidate has granted the company they're + applying to permission to process their personal data. + 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 + given: + type: boolean + description: Whether the candidate has given consent. + description: >- + Optional GDPR consent information required in some jurisdictions + (like the Czech Republic or Slovakia). + remote_fields: + allOf: + - type: object + properties: + successfactors: + type: object + properties: + Candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `Candidate` object. + JobApplication: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `JobApplication` object. + copyJobApplicationAttachments: + type: boolean + description: >- + If set to true, we will copy custom attachments from + the JobApplication to the Candidate. + description: Fields specific to SAP SuccessFactors. + teamtailor: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Teamtailor's + `Candidate` object. + greenhouse: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Candidate` object. + application: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Application` object. + description: Fields specific to Greenhouse. + lever: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Lever's + `Candidate` object. Note: make sure to submit the + keys and values in the correct form data format. + description: Fields specific to Lever. + workable: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Workable's + `Candidate` object. + description: Fields specific to Workable. + bullhorn: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Bullhorn's + `Candidate` object. + description: Fields specific to Bullhorn. + description: >- + Additional fields that we will pass through to specific ATS + systems. + - type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already + pass a value by default, but you can use this to + override it. + description: >- + Headers we will pass with `POST` requests to + Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - candidate + - application + example: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + social_links: + - url: https://www.linkedin.com/in/frank-doe-123456789/ + - url: https://twitter.com/frankdoe + application: + job_id: BDpgnpZ148nrGh4mYHNxJBgx + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + PatchAtsCandidatesCandidateIdParameterCandidateId: + type: string + required: [] + PatchAtsCandidatesCandidateIdSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PatchAtsCandidatesCandidateIdErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PatchAtsCandidatesCandidateIdRequestBody: + type: object + PostAtsCandidatesCandidateIdAttachmentsParameterCandidateId: + type: string + required: [] + PostAtsCandidatesCandidateIdAttachmentsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdAttachmentsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdAttachmentsRequestBody: + allOf: + - type: object + properties: + attachment: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., `application/pdf`). + This is required if you provide `data` and optional if + you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to upload. + You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to upload. + You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - attachment + example: + attachment: + name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + PostAtsCandidatesCandidateIdResultLinksParameterCandidateId: + type: string + description: Kombo ID of the candidate you want to create the link for. + required: [] + PostAtsCandidatesCandidateIdResultLinksSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdResultLinksErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdResultLinksRequestBody: + allOf: + - type: object + properties: + label: + type: string + description: >- + If we can display a display name for the link, we will use this + label. + url: + type: string + format: url + description: URL of the link. + details: + type: object + properties: + custom_field_name_prefix: + type: string + description: >- + That will be added to the attribute labels if they are used + for custom fields. If you specify `Acme:` as the prefix, the + custom field will be named `Acme: Score`. Putting in the + name of your company/product is a good idea. + attributes: + type: array + items: + type: object + properties: + key: + type: string + description: The name of the attribute + value: + type: string + description: The value of the attribute + required: + - key + - value + required: + - custom_field_name_prefix + - attributes + description: >- + Additional details with attributes that will be added to the + result. This can be percentages, scores, or any text. + + + We generally recommend using short attribute keys and a short + custom_field_name_prefix to avoid overflowing the ATS UI. + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - label + - url + example: + label: Assessment Result + url: https://example.com/test-results/5BtP1WC1UboS7CF3yxjKcvjG + details: + custom_field_name_prefix: 'Acme:' + attributes: + - key: Score + value: 100% + - key: Time + value: 2:30h + PostAtsCandidatesCandidateIdTagsParameterCandidateId: + type: string + description: Kombo ID of the candidate you want to add the tag to. + required: [] + PostAtsCandidatesCandidateIdTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostAtsCandidatesCandidateIdTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsCandidatesCandidateIdTagsRequestBody: + allOf: + - type: object + properties: + tag: + type: object + properties: + name: + type: string + minLength: 1 + description: >- + The name of the tag you would like to add. Kombo will find + out the right ID of the tag so you don't have to. + required: + - name + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - tag + example: + tag: + name: Excellent Fit + DeleteAtsCandidatesCandidateIdTagsParameterCandidateId: + type: string + description: Kombo ID of the candidate you want to remove the tag from. + required: [] + DeleteAtsCandidatesCandidateIdTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + DeleteAtsCandidatesCandidateIdTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + DeleteAtsCandidatesCandidateIdTagsRequestBody: + allOf: + - type: object + properties: + tag: + type: object + properties: + name: + type: string + description: The name of the tag you would like to remove. + required: + - name + remote_fields: + type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already pass + a value by default, but you can use this to override + it. + description: Headers we will pass with `POST` requests to Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + required: + - tag + example: + tag: + name: Excellent Fit + GetAtsTagsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsTagsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsTagsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsTagsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsTagsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsTagsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsTagsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: High Potential + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsTagsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsApplicationStagesParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsApplicationStagesParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsApplicationStagesParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsApplicationStagesParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsApplicationStagesParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsApplicationStagesParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsApplicationStagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsApplicationStagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAtsJobsParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsJobsParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsJobsParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsJobsParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsJobsParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsJobsParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsJobsParameterJobCodes: + type: string + description: Filter by a comma-separated list of job codes. + required: [] + GetAtsJobsParameterPostUrl: + type: string + description: >- + Filter by the `post_url` field. Can be used to find a job based on its + public posting URL. + required: [] + GetAtsJobsParameterStatus: + type: string + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + description: >- + **(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by the + `status` field. Can be used to find a job based on its status. + required: [] + GetAtsJobsParameterStatuses: + type: string + description: >- + Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, + `ARCHIVED` + + + Leave this blank to get results matching all values. + required: [] + GetAtsJobsParameterVisibilities: + type: string + description: >- + Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, `UNLISTED`, + `CONFIDENTIAL` + + + Leave this blank to get results matching all values. + required: [] + GetAtsJobsParameterNameContains: + type: string + description: >- + Filter by the `name` field. Can be used to find a job by keywords + present in the job name. + required: [] + GetAtsJobsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We + don't recommend using this as a primary key on your + side as it might sometimes be compromised of multiple + identifiers if a system doesn't provide a clear + primary key. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + job_code: + nullable: true + type: string + description: >- + The human readable job code. Some systems expose this + as the Requisition Code/ID. + required: [] + description: + nullable: true + type: string + description: >- + Description of the job. This field is usually returned + as HTML. + required: [] + confidential: + nullable: true + type: boolean + description: >- + **(⚠️ Deprecated)** It makes more sense to store the + visibility of a job in an enum. Therefore, we + introduced the `visibility` enum on jobs. + required: [] + weekly_hours: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + required: [] + employment_type: + nullable: true + oneOf: + - type: string + enum: + - FULL_TIME + - PART_TIME + - CONTRACT + - SEASONAL + - INTERNSHIP + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + The type of employment contract. In rare cases where + can't find a clear mapping, the original string is + passed through. + required: [] + status: + nullable: true + oneOf: + - type: string + enum: + - OPEN + - CLOSED + - DRAFT + - ARCHIVED + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + One of 4 standardized values (`OPEN`, `CLOSED`, + `DRAFT`, or `ARCHIVED`) **or** — in rare cases where + can't find a clear mapping — the original string + passed through. + required: [] + visibility: + nullable: true + oneOf: + - type: string + enum: + - PUBLIC + - INTERNAL + - UNLISTED + - CONFIDENTIAL + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + Describes the visibility of the job: + + + - `PUBLIC`: visible to everyone, published on a job + board + + - `INTERNAL`: only visible to employees of the company + itself + + - `UNLISTED`: anyone can apply but only if they have + the link to it + + - `CONFIDENTIAL`: nobody can apply and it's only + visible in the ATS to people who were invited to it + + + Useful if you are providing a job board and want to + post public open jobs of your customers/partners. + + In rare cases where can't find a clear mapping, the + original string is passed through. + required: [] + category: + nullable: true + type: string + description: The category of the job (often the job industry). + required: [] + department: + nullable: true + type: string + required: [] + post_url: + nullable: true + type: string + description: >- + The public job posting URL of the ATS itself. This can + be used by external job boards to redirect applicants. + required: [] + experience_level: + nullable: true + type: string + required: [] + remote_work_status: + nullable: true + oneOf: + - type: string + enum: + - REMOTE + - HYBRID + - TEMPORARY + - ON_SITE + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + Defines if the job supports remote work and if so, to + what extent. + required: [] + salary_amount: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The salary amount in the given currency. + required: [] + salary_amount_from: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The lower bound of the salary range. + required: [] + salary_amount_to: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The upper bound of the salary range. + required: [] + salary_currency: + nullable: true + type: string + description: >- + Salary currency usually returned in [ISO 4217 currency + codes](https://www.iso.org/iso-4217-currency-codes.html). + required: [] + salary_period: + nullable: true + oneOf: + - type: string + enum: + - YEAR + - MONTH + - TWO_WEEKS + - WEEK + - DAY + - HOUR + required: [] + - type: string + description: >- + If we can't find a clear mapping: The original + string passed through. + required: [] + description: >- + The period of the salary amount (not equal to the pay + frequency). + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: The location of the listed job. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + opened_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + closed_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: >- + The date and time the object was created in the remote + system. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: >- + A timestamp retrieved from the remote system, + describing when the resource was last updated. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + contact_id: + nullable: true + type: string + description: >- + **(⚠️ Deprecated)** The user ID of the contact person + for this job. We strongly recommend using the new + `hiring_team` property instead as it provides more + complete and accurate information about the ATS users + connected to a job. + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: >- + The timestamp when this object was last changed. This + value is tracked by Kombo based on changes in the + data. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: >- + The date and time the object was deleted in the remote + system. Objects are automatically marked as deleted + when Kombo can't retrieve them from the remote system + anymore. Kombo will also anonymize entries 14 days + after they disappear. + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - name + - job_code + - description + - confidential + - weekly_hours + - employment_type + - status + - visibility + - category + - department + - post_url + - experience_level + - remote_work_status + - salary_amount + - salary_amount_from + - salary_amount_to + - salary_currency + - salary_period + - location + - custom_fields + - opened_at + - closed_at + - remote_created_at + - remote_updated_at + - contact_id + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + description: >- +

Kombo is hiring engineers! If you are reading this + and you are located in Berlin, Germany, feel free to + contact us about this position.

+ confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + - type: object + properties: + stages: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + name: + nullable: true + type: string + required: [] + required: + - id + - remote_id + - name + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + - type: object + properties: + index: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + description: >- + Numeric index following the order of the + stages if they are ordered in the underlying + tool. + required: [] + example: + index: 0 + required: + - index + required: [] + description: >- + Application stages a candidate can be in for this + particular job. + required: [] + screening_questions: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + title: + nullable: true + type: string + required: [] + description: + nullable: true + type: string + required: [] + format: + nullable: true + oneOf: + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - SINGLE_LINE + - MULTI_LINE + default: null + description: >- + If unavailable, we recommend displaying + a single-line input. + required: [] + max_length: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + required: [] + type: + type: string + enum: + - TEXT + required: [] + required: + - type + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - SLIDER + - FIELD + default: FIELD + required: [] + max: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + default: null + required: [] + min: + nullable: true + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + default: null + required: [] + type: + type: string + enum: + - NUMBER + required: [] + required: + - type + - type: object + properties: + type: + type: string + enum: + - FILE + required: [] + required: + - type + - type: object + properties: + display_type: + nullable: true + type: string + enum: + - DROPDOWN + - RADIO + default: null + required: [] + options: + type: array + items: + type: object + properties: + id: + type: string + description: >- + Kombo ID of this question option. Use + this ID to specify the answer to this + question. + required: [] + remote_id: + nullable: true + type: string + default: null + description: >- + ID in the connected ATS. This might be + null as some systems only use the name + to identify the option. + required: [] + name: + type: string + description: Content of the question option. + required: [] + required: + - id + - name + required: [] + type: + type: string + enum: + - SINGLE_SELECT + required: [] + required: + - options + - type + - type: object + properties: + type: + type: string + enum: + - BOOLEAN + required: [] + required: + - type + - type: object + properties: + type: + type: string + enum: + - DATE + required: [] + required: + - type + - type: object + properties: + options: + type: array + items: + type: object + properties: + id: + type: string + description: >- + Kombo ID of this question option. Use + this ID to specify the answer to this + question. + required: [] + remote_id: + nullable: true + type: string + default: null + description: >- + ID in the connected ATS. This might be + null as some systems only use the name + to identify the option. + required: [] + name: + type: string + description: Content of the question option. + required: [] + required: + - id + - name + required: [] + type: + type: string + enum: + - MULTI_SELECT + required: [] + required: + - options + - type + - type: object + properties: + type: + type: string + enum: + - INFORMATION + description: This is just a text block. + required: [] + required: + - type + - type: object + properties: + raw_question: + format: any + description: >- + We pass the original question data along + so you can handle it. + required: [] + type: + type: string + enum: + - UNKNOWN + description: >- + When we're not able to map a specific + question type yet, we will return this + type. Every `UNKNOWN` question will also + be parsed and unified by us at some + point. This is just a temporary + workaround so you still get all + questions. + required: [] + required: + - type + required: [] + required: + - id + - remote_id + - title + - description + - format + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + title: Which is your primary programming language? + description: >- + Please enter the language you are most + comfortable with. + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + - type: object + properties: + index: + nullable: true + type: integer + format: int64 + minimum: -9007199254740991 + exclusiveMinimum: false + maximum: 9007199254740991 + exclusiveMaximum: false + default: null + required: [] + required: + nullable: true + type: boolean + required: [] + required: + - index + - required + example: + index: 0 + required: true + required: [] + required: [] + job_postings: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + description_html: + nullable: true + type: string + required: [] + status: + nullable: true + type: string + enum: + - ACTIVE + - INACTIVE + - DRAFT + required: [] + visibility: + nullable: true + type: string + enum: + - PUBLIC + - INTERNAL + - UNLISTED + required: [] + required: + - id + - remote_id + - description_html + - status + - visibility + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + required: [] + hiring_team: + type: array + items: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the user. + required: [] + last_name: + nullable: true + type: string + description: Last name of the user. + required: [] + email: + nullable: true + type: string + format: email + description: >- + Email of the user. If the email address is + invalid, it will be set to null. + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + - type: object + properties: + hiring_team_roles: + type: array + items: + type: string + enum: + - RECRUITER + - HIRING_MANAGER + example: RECRUITER + description: >- + Array of the roles of the user for this + specific job. Currently only `RECRUITER` and + `HIRING_MANAGER` are mapped into our unified + schema. + required: [] + required: + - hiring_team_roles + required: [] + required: [] + required: + - stages + - screening_questions + - job_postings + - hiring_team + description: >- + The hiring team allows you to sync users into your system + who can access the job and its applications. + required: [] + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Backend Engineer + job_code: BE-2021-01 + description: >- +

Kombo is hiring engineers! If you are reading this and you + are located in Berlin, Germany, feel free to contact us about + this position.

+ confidential: false + weekly_hours: 37 + employment_type: FULL_TIME + status: OPEN + visibility: PUBLIC + category: Technical Job + department: Engineering + post_url: https://jobs.example.com/post/159829112 + experience_level: Mid-Senior + remote_work_status: HYBRID + salary_amount: 4200 + salary_amount_from: null + salary_amount_to: null + salary_currency: EUR + salary_period: MONTH + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + opened_at: '2022-08-07T14:01:29.196Z' + closed_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + contact_id: 6gT2yLMBEipd3zpezATv3Rhu + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + stages: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + name: Initial Screening + index: 0 + screening_questions: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + title: Which is your primary programming language? + description: Please enter the language you are most comfortable with. + format: + display_type: SINGLE_LINE + max_length: null + type: TEXT + index: 0 + required: true + job_postings: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: 48b4d36a-1d4b-4c50-ada7-9519078e65b4 + description_html:

We are looking for a Frontend Engineer.

+ status: ACTIVE + visibility: PUBLIC + hiring_team: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + hiring_team_roles: + - RECRUITER + required: + - status + - data + GetAtsJobsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsJobsJobIdApplicationsParameterJobId: + type: string + description: >- + Kombo ID or Remote ID of the Job this candidate should apply for. If you + want to use the ID of the integrated system (remote_id) you need to + prefix the id with "remote:". You can use the remote ID if you do not + want to sync jobs. + required: [] + PostAtsJobsJobIdApplicationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + outcome: + nullable: true + type: string + enum: + - PENDING + - HIRED + - DECLINED + description: >- + Parsed status of the application. If Kombo identifies that + the application was accepted and the candidate hired, it + will be `HIRED`. If the application was rejected or the + candidate declined, it will be `DECLINED`. If the + application is still in process, it will be `PENDING`. + + Kombo will always try to deliver this information as + reliably as possible. + required: [] + rejection_reason_name: + nullable: true + type: string + description: Reason for the rejection of the candidate. + required: [] + current_stage_id: + nullable: true + type: string + description: ID of the current application stage + required: [] + job_id: + nullable: true + type: string + required: [] + candidate_id: + nullable: true + type: string + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + required: + - id + - remote_id + - outcome + - rejection_reason_name + - current_stage_id + - job_id + - candidate_id + - custom_fields + - changed_at + - remote_deleted_at + - remote_created_at + - remote_updated_at + - remote_data + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + outcome: HIRED + rejection_reason_name: Any text string + current_stage_id: 5J7L4b48wBfffYwek9Az9pkM + job_id: H5daSm8e85Dmvmne3wLeCPhX + candidate_id: H77fDF8uvEzGNPRubiz5DvQ7 + custom_fields: {} + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + remote_created_at: '2022-08-07T14:01:29.196Z' + remote_updated_at: '2022-08-07T14:01:29.196Z' + remote_data: null + - type: object + properties: + current_stage: + nullable: true + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Initial Screening + remote_id: '32' + job: + nullable: true + type: object + properties: + id: + type: string + description: >- + The globally unique ID of this object generated by + Kombo. We recommend using this as a stable primary key + for syncing. + required: [] + name: + nullable: true + type: string + description: Title of the job. + required: [] + remote_id: + type: string + description: >- + The raw ID of the object in the remote system. We don't + recommend using this as a primary key on your side as it + might sometimes be compromised of multiple identifiers + if a system doesn't provide a clear primary key. + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: Backend Engineer + remote_id: '32' + candidate: + nullable: true + allOf: + - type: object + properties: + id: + type: string + required: [] + remote_id: + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the candidate. + required: [] + last_name: + nullable: true + type: string + description: Last name of the candidate. + required: [] + company: + nullable: true + type: string + description: The current company of the candidate. + required: [] + title: + nullable: true + type: string + description: The current job title of the candidate. + required: [] + confidential: + nullable: true + type: boolean + description: >- + Whether the candidate's profile is confidential in + the ATS. + required: [] + source: + nullable: true + type: string + required: [] + phone_numbers: + nullable: true + type: array + items: + type: object + properties: + phone_number: + type: string + required: [] + type: + nullable: true + type: string + default: null + description: >- + Kombo exposes type information through this + field. If we don't get any information from + the tool, we will set this to `null`. + required: [] + required: + - phone_number + default: [] + description: A list of phone numbers of the candidate. + required: [] + email_addresses: + nullable: true + type: array + items: + type: object + properties: + email_address: + nullable: true + type: string + format: email + required: [] + type: + nullable: true + type: string + description: >- + Kombo exposes type information through this + field. If we don't get any information from + the tool, we will set this to `null`. + required: [] + required: + - type + default: [] + description: >- + A list of email addresses of the candidate with an + optional type. If an email address is invalid, it + will be filtered out. + required: [] + social_media: + nullable: true + type: array + items: + type: object + properties: + link: + nullable: true + type: string + default: null + required: [] + type: + nullable: true + type: string + default: null + required: [] + username: + nullable: true + type: string + default: null + required: [] + required: [] + default: [] + description: List of social media accounts of the candidate. + required: [] + location: + nullable: true + type: object + properties: + city: + nullable: true + type: string + default: null + required: [] + country: + nullable: true + type: string + default: null + description: >- + Contains the ISO2 country code if possible. If + not, it contains the original value. + required: [] + raw: + nullable: true + type: string + default: null + description: >- + If we have address data, this is filled with the + raw address string. + required: [] + state: + nullable: true + type: string + default: null + required: [] + street_1: + nullable: true + type: string + default: null + description: >- + If we can parse the address data, this field + contains the first part of the street + information. + required: [] + street_2: + nullable: true + type: string + default: null + required: [] + zip_code: + nullable: true + type: string + default: null + required: [] + description: Location of the candidate. + required: [] + custom_fields: + nullable: true + type: object + additionalProperties: + format: any + required: [] + remote_created_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - company + - title + - confidential + - source + - phone_numbers + - email_addresses + - social_media + - location + - custom_fields + - remote_created_at + - remote_updated_at + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + company: Acme, Inc. + title: Head of Marketing + confidential: false + source: Employee Referral + phone_numbers: + - phone_number: +1-541-754-3010 + type: HOME + email_addresses: + - email_address: john.doe@example.com + type: PRIVATE + social_media: + - link: https://www.youtube.com/watch?v=dQw4w9WgXcQ + type: YOUTUBE + username: null + location: + city: Berlin + country: DE + raw: Berlin, Germany + state: Berlin + street_1: Lohmühlenstraße 65 + street_2: null + zip_code: '12435' + custom_fields: {} + remote_created_at: '2022-04-02T00:00:00.000Z' + remote_updated_at: '2022-04-04T00:00:00.000Z' + remote_data: null + changed_at: '2022-04-04T00:00:00.000Z' + remote_deleted_at: null + - type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - id + - name + - remote_id + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + name: High Potential + remote_id: '32' + required: [] + required: + - tags + required: [] + required: + - current_stage + - job + - candidate + required: [] + warnings: + type: array + items: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: [] + required: + - status + - data + - warnings + PostAtsJobsJobIdApplicationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostAtsJobsJobIdApplicationsRequestBody: + allOf: + - type: object + properties: + stage_id: + type: string + description: >- + Stage this candidate should be in. If left out, the default + stage for this job will be used. You can obtain the possible + `stage_id`s from the `get-jobs` endpoint. + candidate: + type: object + properties: + first_name: + type: string + last_name: + type: string + email_address: + type: string + format: email + description: >- + The primary email address this application will be created + with. + company: + type: string + description: The company where the applicant is currently working. + title: + type: string + description: The current job title of the applicant. + phone_number: + type: string + location: + type: object + properties: + city: + type: string + country: + type: string + pattern: /^[A-Z]{2}$/ + description: >- + The uppercase two-letter ISO country (e.g., `DE`) of the + applicant. + required: + - country + gender: + type: string + enum: + - MALE + - FEMALE + - OTHER + description: >- + The gender of the applicant. Must be one of `MALE`, + `FEMALE`, or `OTHER`. + availability_date: + description: The date the applicant is available to start working. + 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 + salary_expectations: + type: object + properties: + period: + type: string + enum: + - MONTH + - YEAR + description: >- + The period of the salary expectations. Must be one of + `MONTH` or `YEAR`. + amount: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount of the salary expectations. + required: + - period + - amount + description: >- + The salary expectations of the applicant. We will + automatically convert the amount to a format that is + suitable for the ATS you are using. For example, if you are + using monthly salary expectations, we will convert the + amount to a yearly salary if the ATS expects yearly salary + expectations. + social_links: + type: array + items: + type: object + properties: + url: + type: string + format: url + required: + - url + default: [] + description: >- + A list of social media links of the applicant. The links + must be valid URLs. + required: + - first_name + - last_name + - email_address + attachments: + type: array + items: + allOf: + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you provide + `data` and optional if you provide `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + - type: object + properties: + type: + type: string + enum: + - CV + - COVER_LETTER + - OTHER + required: + - type + default: [] + description: >- + Array of the attachments you would like to upload. The first CV + in the attachments will be treated as the resume of the + candidate when the tool allows previewing a resume. + source: + type: object + properties: + name: + type: string + description: >- + Name of the source (e.g., `"Example Job Board"`). + + + Note that this **only** works for ATS systems that support + creating a source through the API right now. This includes + Breezy HR, Fountain, Pinpoint, RECRU, Recruitee, Sage HR, + and Haufe Umantis. For all other ATSs, the source will be + ignored at the moment. + description: >- + **(⚠️ Deprecated - Use [automatic source + writing](/ats/features/application-attribution#automatic-attribution) + instead)** Optional source information that will be attached to + the candidate. If + + you're a job board or recruiting service, you can use this to + make sure your + + customers can see which candidates came from you. + + + This is deprecated because writing sources requires users to do + some setup in most ATSs. + gdpr_consent: + type: object + properties: + expires_at: + description: >- + Until when the candidate has granted the company they're + applying to permission to process their personal data. + 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 + given: + type: boolean + description: Whether the candidate has given consent. + description: >- + Optional GDPR consent information required in some jurisdictions + (like the Czech Republic or Slovakia). + remote_fields: + allOf: + - type: object + properties: + successfactors: + type: object + properties: + Candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `Candidate` object. + JobApplication: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to SuccessFactor's + `JobApplication` object. + copyJobApplicationAttachments: + type: boolean + description: >- + If set to true, we will copy custom attachments from + the JobApplication to the Candidate. + description: Fields specific to SAP SuccessFactors. + teamtailor: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Teamtailor's + `Candidate` object. + greenhouse: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Candidate` object. + application: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Greenhouse's + `Application` object. + description: Fields specific to Greenhouse. + lever: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Lever's + `Candidate` object. Note: make sure to submit the + keys and values in the correct form data format. + description: Fields specific to Lever. + workable: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Workable's + `Candidate` object. + description: Fields specific to Workable. + bullhorn: + type: object + properties: + candidate: + type: object + additionalProperties: + format: any + description: >- + Fields that we will pass through to Bullhorn's + `Candidate` object. + description: Fields specific to Bullhorn. + description: >- + Additional fields that we will pass through to specific ATS + systems. + - type: object + properties: + greenhouse: + type: object + properties: + post_headers: + type: object + properties: + On-Behalf-Of: + nullable: true + type: string + default: null + description: >- + ID of the the user that will show up as having + performed the action in Greenhouse. We already + pass a value by default, but you can use this to + override it. + description: >- + Headers we will pass with `POST` requests to + Greenhouse. + description: Fields specific to Greenhouse. + description: >- + Additional fields that we will pass through to specific ATS + systems. + description: >- + Additional fields that we will pass through to specific ATS + systems. + screening_question_answers: + type: array + items: + type: object + properties: + question_id: + type: string + description: >- + ID of the question returned by the Kombo API. We'll report + a warning in the logs if the question can't be found on + the job. + answer: + oneOf: + - type: string + description: >- + Answer to a `TEXT` question or the option ID of the + answer to a `SINGLE_SELECT` question. + - type: boolean + description: Answer to a `BOOLEAN` question. + - type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Answer to a `NUMBER` question. + - type: array + items: + type: string + description: >- + Answer to a `MULTI_SELECT` question. The array + elements are the IDs of the selected options. + - description: >- + Answer to a `DATE` question as an ISO 8601 date + string. + 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 + - type: object + properties: + name: + type: string + description: Name of the file you want to upload. + content_type: + type: string + pattern: /^[\w.-]+\/[\w.-]+$/ + description: >- + Content/MIME type of the file (e.g., + `application/pdf`). This is required if you + provide `data` and optional if you provide + `data_url`. + data: + type: string + description: >- + Base64-encoded contents of the file you want to + upload. You must provide either this or + `data_url`. + data_url: + type: string + format: url + description: >- + Publicly accessible URL to the file you want to + upload. You must provide either this or `data`. + required: + - name + description: Answer to a `FILE` question. + description: >- + Answer to a question. This will be validated based on the + question format and throw an error if the answer is + invalid. Here is a description of each question type and + the required answer format: + + + `TEXT` - Simply provide a "string" answer. + + + `SINGLE_SELECT` - Provide the ID of the answer as a + string. + + + `MULTI_SELECT` - Provide a string array containing the + question IDs of the selected options. + + + `BOOLEAN` - Either `true` or `false`. + + + `NUMBER` - A number. + + + `DATE` - Provide the answer as an ISO 8601 date string. + + + `FILE` - Please select Option 6 in the dropdown above to + see the required format. + required: + - question_id + - answer + description: >- + Array of answers to screening questions. Currently, not all + question types are supported and unsupported ones will not be + submitted. + + + The available questions a job can be retrieved from the get jobs + endpoint. The answers will be validated based on the format of + the the questions. Make sure to follow this schema to avoid + errors. + example: + - question_id: D8yPrjXXvA2XeBksTmrVvKSn + answer: 'Yes' + required: + - candidate + example: + candidate: + first_name: Frank + last_name: Doe + company: Acme Inc. + title: Head of Integrations + email_address: frank.doe@example.com + phone_number: +1-541-754-3010 + gender: MALE + salary_expectations: + amount: 100000 + period: YEAR + availability_date: '2021-01-01' + location: + city: New York + country: US + stage_id: 8x3YKRDcuRnwShdh96ShBNn1 + attachments: + - name: Frank Doe CV.txt + data: >- + SGkgdGhlcmUsIEtvbWJvIGlzIGN1cnJlbnRseSBoaXJpbmcgZW5naW5lZXJzIHRoYXQgbG92ZSB0byB3b3JrIG9uIGRldmVsb3BlciBwcm9kdWN0cy4= + type: CV + content_type: text/plain + screening_question_answers: + - question_id: 3phFBNXRweGnDmsU9o2vdPuQ + answer: 'Yes' + - question_id: EYJjhMQT3LtVKXnTbnRT8s6U + answer: + - GUzE666zfyjeoCJX6A8n7wh6 + - 5WPHzzKAv8cx97KtHRUV96U8 + - 7yZfKGzWigXxxRTygqAfHvyE + GetAtsUsersParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAtsUsersParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAtsUsersParameterUpdatedAfter: + description: >- + Filter the entries based on the modification date in format + YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set + the `include_deleted=true` query parameter, because otherwise, deleted + entries will be hidden. + 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: [] + GetAtsUsersParameterIncludeDeleted: + type: string + enum: + - 'true' + - 'false' + default: 'false' + description: >- + By default, deleted entries are not returned. Use the `include_deleted` + query param to include deleted entries too. + required: [] + GetAtsUsersParameterIds: + type: string + description: >- + Filter by a comma-separated list of IDs such as + `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are + validated to be 24 characters long and to exist for this integration in + the database. If any of the IDs are don't exist, the endpoint will + return a 404 error. + required: [] + GetAtsUsersParameterRemoteIds: + type: string + description: Filter by a comma-separated list of remote IDs. + required: [] + GetAtsUsersSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + description: >- + Cursor string that can be passed to the `cursor` query parameter + to get the next page. If this is `null`, then there are no more + pages. + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + first_name: + nullable: true + type: string + description: First name of the user. + required: [] + last_name: + nullable: true + type: string + description: Last name of the user. + required: [] + email: + nullable: true + type: string + format: email + description: >- + Email of the user. If the email address is invalid, it + will be set to null. + required: [] + remote_data: + nullable: true + type: object + additionalProperties: + format: any + required: [] + changed_at: + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + remote_deleted_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + required: + - id + - remote_id + - first_name + - last_name + - email + - remote_data + - changed_at + - remote_deleted_at + example: + id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: [] + required: + - next + - results + example: + next: >- + eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0= + results: + - id: 26vafvWSRmbhNcxJYqjCzuJg + remote_id: '32' + first_name: John + last_name: Doe + email: john.doe@kombo.dev + remote_data: null + changed_at: '2022-08-07T14:01:29.196Z' + remote_deleted_at: null + required: + - status + - data + GetAtsUsersErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + GetAssessmentPackagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + packages: + type: array + items: + type: object + properties: + id: + type: string + required: [] + name: + type: string + required: [] + description: + type: string + required: [] + updated_at: + nullable: true + description: YYYY-MM-DDTHH:mm:ss.sssZ + type: string + format: date-time + externalDocs: + url: >- + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + required: [] + type: + nullable: true + type: string + enum: + - BEHAVIORAL + - VIDEO_INTERVIEW + - SKILLS_TEST + - BACKGROUND_CHECK + - REFERENCE_CHECK + required: [] + required: + - id + - name + - description + - updated_at + - type + required: [] + required: + - packages + example: + packages: + - id: '1001' + name: TypeScript + description: TypeScript coding skills assessments + updated_at: '2023-06-29T18:47:40.890Z' + type: SKILLS_TEST + required: + - status + - data + GetAssessmentPackagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentPackagesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAssessmentPackagesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentPackagesRequestBody: + allOf: + - type: object + properties: + packages: + type: array + items: + type: object + properties: + id: + type: string + description: A unique identifier for the assessment package. + type: + type: string + enum: + - BEHAVIORAL + - VIDEO_INTERVIEW + - SKILLS_TEST + - BACKGROUND_CHECK + - REFERENCE_CHECK + name: + type: string + description: The name of the assessment package. + description: + type: string + description: >- + Description about the package. Some ATSs will display this + in their UI. + required: + - id + - type + - name + - description + required: + - packages + example: + packages: + - id: '1001' + type: SKILLS_TEST + name: TypeScript + description: TypeScript coding skills assessments + - id: '1002' + type: VIDEO_INTERVIEW + name: Video Interview + description: Video interview to assess communication skills + GetAssessmentOrdersOpenParameterCursor: + type: string + description: >- + An optional cursor string used for pagination. This can be retrieved + from the `next` property of the previous page response. + required: [] + GetAssessmentOrdersOpenParameterPageSize: + type: integer + format: int64 + minimum: 1 + exclusiveMinimum: false + maximum: 250 + exclusiveMaximum: false + default: 100 + description: The number of results to return per page. + required: [] + GetAssessmentOrdersOpenSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + next: + nullable: true + type: string + required: [] + results: + type: array + items: + type: object + properties: + id: + type: string + required: [] + package_id: + type: string + required: [] + candidate: + type: object + properties: + email: + type: string + required: [] + first_name: + nullable: true + type: string + required: [] + last_name: + nullable: true + type: string + required: [] + phone: + nullable: true + type: string + required: [] + remote_id: + nullable: true + type: string + required: [] + required: + - email + required: + - id + - package_id + - candidate + required: [] + required: + - next + - results + required: + - status + - data + GetAssessmentOrdersOpenErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentOrdersAssessmentOrderIdResultParameterAssessmentOrderId: + type: string + required: [] + PutAssessmentOrdersAssessmentOrderIdResultSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutAssessmentOrdersAssessmentOrderIdResultErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutAssessmentOrdersAssessmentOrderIdResultRequestBody: + allOf: + - type: object + properties: + status: + type: string + enum: + - COMPLETED + - CANCELLED + - OPEN + description: >- + Status of the assessment. Must be one of `COMPLETE` or + `CANCELLED`. + result_url: + type: string + format: url + completed_at: + 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 + score: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + max_score: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + attributes: + type: array + items: + type: object + properties: + field: + type: string + value: + type: string + required: + - field + - value + default: [] + required: + - status + - result_url + - completed_at + example: + status: COMPLETED + score: 90 + max_score: 100 + result_url: https://example.com + completed_at: '2023-04-04T00:00:00.000Z' + attributes: + - field: remarks + value: Test completed with passing score + PostConnectCreateLinkSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + link: + type: string + format: url + required: [] + required: + - link + example: + link: >- + https://connect.kombo.dev/v1?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.SWYgeW91IGFyZSByZWFkaW5nIHRoaXMsIHdlIHdvdWxkIGxpa2UgdG8gbGV0IHlvdSBrbm93IHRoYXQgd2UgYXJlIGhpcmluZyBwZW9wbGUgbGlrZSB5b3UgOikuIFJlYWNoIG91dCB0byBhbGV4QGtvbWJvLmRldiB0byBnZXQgaW4gY29udGFjdCBhbmQgdGVsbCBoaW0geW91IGNvbWUgZnJvbSB0aGUgSldUIDsp._hhX5YTtHfLn9ZC806dZceRn2whzxHyrhft1ONzNgOE + required: + - status + - data + PostConnectCreateLinkErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectCreateLinkRequestBody: + allOf: + - type: object + properties: + end_user_email: + type: string + format: email + description: The email of the user this link is meant for. + end_user_organization_name: + type: string + minLength: 1 + description: The name of the user's organization. + end_user_origin_id: + nullable: true + type: string + minLength: 1 + description: The id the user/organization has in your own database. + default: null + remote_environment: + nullable: true + type: string + default: null + description: >- + If the tool you want to connect offers different environments, + you can specify which one you want to connect to here. If you + don't specify this, we'll assume you want to use the production + environment. Note that this can only be used if you've also + specified a tool through `integration_tool`. + integration_category: + type: string + enum: + - HRIS + - ATS + - ASSESSMENT + default: HRIS + description: Category of the integration you want your customer to create. + integration_tool: + nullable: true + type: string + enum: + - personio + - workday + - workdaycustomreport + - workdaycustomreportsftp + - successfactors + - smartrecruiters + - factorial + - oraclerecruiting + - lever + - icims + - recruitee + - greenhouse + - teamtailor + - ashby + - onlyfy + - rexx + - afas + - bamboohr + - bullhorn + - workable + - payfitcustomer + - payfitpartner + - payfit + - fountain + - kenjo + - heavenhr + - hibob + - softgarden + - cezannehr + - entraid + - azuread + - googleworkspace + - pinpoint + - welcometothejungle + - dvinci + - join + - deel + - remotecom + - jobvite + - okta + - sagehr + - humaans + - traffit + - erecruiter + - eurecia + - umantis + - jobylon + - oraclehcm + - taleez + - officient + - sesamehr + - charliehr + - hrworks + - abacus + - otys + - zohopeople + - gusto + - breathehr + - catalystone + - mirus + - alexishr + - eploy + - rippling + - sapling + - nmbrs + - heyrecruit + - peoplehr + - recruhr + - jazzhr + - lucca + - bite + - planday + - homerun + - haileyhr + - silae + - mysolution + - carerix + - datev + - datevlug + - sympa + - breezyhr + - flatchr + - applicantstack + - talentsoft + - talentsoftcustomer + - concludis + - iriscascade + - sandbox + - sftp + default: null + description: Pre-define a tool this integration link can be used for. + language: + type: string + enum: + - en + - de + - fr + default: en + description: Language of the connection flow UI. + scope_config_id: + nullable: true + type: string + default: null + description: >- + Specify a scope config that should be used for this integration. + This is an advanced feature, only use it if you know what you're + doing! + enable_filtering: + type: boolean + default: false + description: >- + Enable the (filtering + feature)[https://docs.kombo.dev/other/filtering] for the + integration. HRIS only. + required: + - end_user_email + - end_user_organization_name + example: + end_user_email: test@example.com + end_user_organization_name: Test Inc. + integration_category: HRIS + integration_tool: personio + end_user_origin_id: '123' + language: en + GetConnectIntegrationByTokenTokenParameterToken: + type: string + required: [] + GetConnectIntegrationByTokenTokenSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tool: + type: string + required: [] + id: + type: string + required: [] + end_user_origin_id: + nullable: true + type: string + required: [] + end_user_organization_name: + type: string + required: [] + end_user_email: + nullable: true + type: string + format: email + required: [] + required: + - tool + - id + - end_user_origin_id + - end_user_organization_name + - end_user_email + example: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + required: + - status + - data + GetConnectIntegrationByTokenTokenErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectActivateIntegrationSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + tool: + type: string + required: [] + id: + type: string + required: [] + end_user_origin_id: + nullable: true + type: string + required: [] + end_user_organization_name: + type: string + required: [] + end_user_email: + nullable: true + type: string + format: email + required: [] + required: + - tool + - id + - end_user_origin_id + - end_user_organization_name + - end_user_email + example: + tool: personio + id: personio:CBNMt7dSNCzBdnRTx87dev4E + end_user_origin_id: '36123' + end_user_organization_name: Acme, Inc. + end_user_email: user@example.com + required: + - status + - data + PostConnectActivateIntegrationErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostConnectActivateIntegrationRequestBody: + allOf: + - type: object + properties: + token: + type: string + required: + - token + PostCustomDatevPassthroughSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostCustomDatevPassthroughErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPassthroughRequestBody: + allOf: + - 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 + file_type: + type: string + enum: + - STAMMDATEN + - BEWEGUNGSDATEN + file_name: + type: string + required: + - file_content + - accounting_month + - target_system + - file_type + - file_name + 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`) + required: [] + PutCustomDatevEmployeesEmployeeIdPreparePayrollSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutCustomDatevEmployeesEmployeeIdPreparePayrollErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutCustomDatevEmployeesEmployeeIdPreparePayrollRequestBody: + allOf: + - 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Number of hours this employee has worked. + lohnart: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + lohnart: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: This amount value will be mapped to Datev "Wert" field. + lohnart: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: Choose a valid Lodas Lohnart. + bearbeitungsschluessel: + type: number + format: double + minimum: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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 + example: + 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 + 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`) + required: [] + PutCustomDatevEmployeesEmployeeIdCompensationsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PutCustomDatevEmployeesEmployeeIdCompensationsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PutCustomDatevEmployeesEmployeeIdCompensationsRequestBody: + allOf: + - 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + description: The amount that this employee will be paid. + currency: + type: string + enum: + - 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 + exclusiveMinimum: false + maximum: 9999 + exclusiveMaximum: false + 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 + example: + effective_date: '2022-12-01' + compensations: + - amount: 4500 + currency: EUR + period: MONTH + lohnart: 200 + - amount: 30 + currency: EUR + period: HOUR + GetCustomDatevDataPushesSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + data_pushes: + type: array + items: + type: object + properties: + id: + type: string + required: [] + type: + type: string + enum: + - GENERAL + - PAYROLL + description: Type of the executed data push. + required: [] + 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 + required: [] + upload_jobs: + type: array + items: + type: object + properties: + id: + type: string + required: [] + file_name: + type: string + required: [] + 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. + required: [] + file: + type: string + description: Actual content of the file. + required: [] + 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: [] + required: + - id + - type + - created_at + - upload_jobs + required: [] + required: + - data_pushes + required: + - status + - data + GetCustomDatevDataPushesErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataGeneralSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + files: + type: array + items: + type: object + properties: + name: + type: string + required: [] + content: + type: string + required: [] + required: + - name + - content + required: [] + required: + - files + required: + - status + - data + PostCustomDatevPushDataGeneralErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataGeneralRequestBody: + type: object + PostCustomDatevPushDataPayrollSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: + files: + type: array + items: + type: object + properties: + name: + type: string + required: [] + content: + type: string + required: [] + required: + - name + - content + required: [] + required: + - files + required: + - status + - data + PostCustomDatevPushDataPayrollErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomDatevPushDataPayrollRequestBody: + allOf: + - 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`) + required: [] + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsSuccessfulResponse: + type: object + properties: + status: + type: string + enum: + - success + required: [] + data: + type: object + properties: {} + required: [] + required: + - status + - data + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsErrorResponse: + type: object + properties: + status: + type: string + enum: + - error + required: [] + error: + type: object + properties: + message: + type: string + required: [] + required: + - message + required: + - status + - error + PostCustomSilaeEmployeesEmployeeIdPayrollSupplementsRequestBody: + allOf: + - 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: 5.e-324 + exclusiveMinimum: false + maximum: 1.7976931348623157e+308 + exclusiveMaximum: false + 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 + example: + supplement_code: '200' + effective_date: '2024-01-14' + element_amount: 6 + responses: {} + parameters: {} + examples: {} + requestBodies: {} + headers: {} + securitySchemes: + ApiKey: + type: http + scheme: bearer + description: >- + Create an API key on the [Secrets](https://app.kombo.dev/secrets) page + in the Kombo dashboard. + links: {} + callbacks: {} +tags: + - name: General + - name: Kombo Connect + description: >- + Endpoints for Kombo Connect, our end-user-facing flow for setting up new + integrations. + - name: Unified HRIS API + description: Unified endpoints to access all the HR concepts you might need. + - name: Unified ATS API + description: Unified endpoints to access all the ATS concepts you might need. + - name: Unified ATS-Assessment API + description: >- + Unified endpoints to operate Assessments for many applicant tracking + systems. +servers: + - url: https://api.kombo.dev/v1 +security: + - ApiKey: [] diff --git a/sdks/db/intermediate-fixed-specs/localizely/openapi.yaml b/sdks/db/intermediate-fixed-specs/localizely/openapi.yaml new file mode 100644 index 0000000000..e7812e5b41 --- /dev/null +++ b/sdks/db/intermediate-fixed-specs/localizely/openapi.yaml @@ -0,0 +1,631 @@ +openapi: 3.0.1 +info: + title: Localizely API + description: >- +

Getting started

Localizely API is built on REST.
You can use this API for importing & exporting + your localization files in order to automate the process with `curl` scripts + or external CI tools.
Response is returned in JSON form even in + case of error.

If you Authenticate with your API token on this + page by clicking "Authorize" button, you can make API calls directly from + here with "Try it out", and generate such `curl` examples.

API + Authentication

Authenticate your account by sending your API token as + a request header `X-Api-Token`.
The token can be found under My Profile + page.
A user must have an Admin role in the project in order to access + the project with his token.
API requests without authentication will + fail.

Base url: `https://api.localizely.com`

+ termsOfService: https://localizely.com/terms-of-service/ + version: 1.2.1 +servers: + - url: https://api.localizely.com + description: Generated server url +paths: + /v1/projects/{project_id}/files/upload: + post: + tags: + - Upload API + summary: Upload translations for a language + operationId: importLocalizationFile + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + - name: branch + in: query + description: >- + Name of the branch to upload file into. Only in case of activated + branching feature. + required: false + schema: + type: string + - name: lang_code + in: query + description: >- + Language to upload, specified as language code. e.g. `en`, `en_GB` + or `en-GB` + required: true + schema: + type: string + - name: overwrite + in: query + description: >- + If translation in given language should be overwritten with modified + translation from uploading file. + required: false + schema: + type: boolean + default: false + - name: reviewed + in: query + description: >- + If uploading translations, that are added, should be marked as + Reviewed. For uploading translations that are only modified it will + have effect only if `overwrite` is set to `true`. + required: false + schema: + type: boolean + default: false + - name: tag_added + in: query + description: >- + Optional list of tags to add to new translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_added_keys=NEW&tag_added_keys=NEW_SPRINT05` + required: false + schema: + type: array + items: + type: string + - name: tag_updated + in: query + description: >- + Optional list of tags to add to updated translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_updated_keys=UPDATED&tag_updated_keys=UPDATED_SPRINT05` + required: false + schema: + type: array + items: + type: string + - name: tag_removed + in: query + description: >- + Optional list of tags to add to removed translations from uploading + file.

Multiple tags can be defined in a following way: + `&tag_removed_keys=REMOVED&tag_removed_keys=REMOVED_SPRINT05` + required: false + schema: + type: array + items: + type: string + requestBody: + content: + multipart/form-data: + schema: + required: + - file + type: object + properties: + file: + type: string + description: >- + Uploading file. Supported following formats: `Flutter ARB, + Android XML, iOS strings, iOS stringsdict, Angular XLF, + Gettext PO, Gettext POT, Java properties, Ruby on Rails + yaml, .NET resx, flat json, csv, Excel .xlsx, Excel .xls` + format: binary + responses: + '200': + description: OK, file uploaded + '400': + description: >- + Error codes:
 
- `invalid_import_file` when file + invalid. Returned with `errors` list
- + `max_upload_size_exceeded` when uploading file exceeds size limit
- `upgrade_required` when uploading more string keys than accepted + by owner's account plan limit
- `projects_limit_read_only` when + project is in read-only state due to exceeded projects limit + + `'bad_request'` when request generally is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/InvalidImportFileErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] + /v1/projects/{project_id}/branches/{branch}: + post: + tags: + - Branch API + summary: Create a new branch + operationId: createBranch + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + format: uuid + - name: branch + in: path + description: Name of the branch to be created + required: true + schema: + maxLength: 200 + minLength: 0 + type: string + - name: source_branch + in: query + description: Name of the source branch from which new branch will be created + required: true + schema: + type: string + responses: + '200': + description: OK, created + '400': + description: >- + Error codes:
 
- `bad_request` when request generally + is not well formed
- `limit_reached` when project already has + max allowed number of branches
- `projects_limit_read_only` + when project is in read-only state due to exceeded projects limit + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] + /v1/projects/{project_id}/status: + get: + tags: + - Translation Status API + summary: Get Translation Status for the project + operationId: getTranslationStatus + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + - name: branch + in: query + description: >- + Name of the branch to get translation status for. Only in case of + activated branching feature. + required: false + schema: + type: string + responses: + '200': + description: OK, data returned + content: + '*/*': + schema: + $ref: '#/components/schemas/ProjectStatusDto' + '400': + description: >- + Error codes:
 
- `bad_request` when request generally + is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] + /v1/projects/{project_id}/files/download: + get: + tags: + - Download API + summary: Download translations for a language in a specified file format + description: >- + Note: This endpoint is intended for getting translation files to + your source-code. This endpoint should not be called directly from you + app in runtime, as it has rate-limiting.
For over-the-air + translation updates please consider using our SDK + for Flutter or integrate with AWS S3 bucket. + operationId: getLocalizationFile + parameters: + - name: project_id + in: path + description: Project ID - Can be found on 'My projects' page + required: true + schema: + type: string + - name: branch + in: query + description: >- + Name of the branch to download file from. Only in case of activated + branching feature. + required: false + schema: + type: string + - name: lang_codes + in: query + description: >- + Language to download, specified as language code. e.g. `en`, `en_GB` + or `en-GB`. For multiple languages use comma separator. If omitted, + all languages are downloaded. + required: false + schema: + type: string + - name: type + in: query + description: File format + required: true + schema: + type: string + enum: + - android_xml + - ios_strings + - ios_stringsdict + - java_properties + - rails_yaml + - angular_xlf + - flutter_arb + - dotnet_resx + - po + - pot + - json + - csv + - xlsx + - name: java_properties_encoding + in: query + description: >- + (Only for Java .properties files download) Character encoding. + Default is `latin_1`. + required: false + schema: + type: string + enum: + - utf_8 + - latin_1 + - name: include_tags + in: query + description: >- + Optional list of tags to be downloaded.
If not set, all string + keys will be considered for download.

Multiple tags can be + defined in a following way: + `&include_tags=ANDROID&include_tags=ANDROID_SPRINT05`. + required: false + schema: + type: array + items: + type: string + - name: exclude_tags + in: query + description: >- + Optional list of tags to be excluded from download.
If not set, + all string keys will be considered for download.

Multiple + tags can be defined in a following way: + `&exclude_tags=REMOVED&exclude_tags=REMOVED_SPRINT05`. + required: false + schema: + type: array + items: + type: string + - name: export_empty_as + in: query + description: >- + Optional. How you would like empty translations to be exported. + Allowed values are `empty` to keep empty, `main` to replace with the + main language value, or `skip` to omit. + required: false + schema: + type: string + default: empty + enum: + - empty + - main + - skip + responses: + '200': + description: OK, file returned + '400': + description: >- + Error codes:
 
- `invalid_export_data_rails_yaml` + when data collision for yaml download
- `bad_request` when + request generally is not well formed + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + '404': + description: Not Found + content: + '*/*': + schema: + $ref: '#/components/schemas/ErrorDto' + security: + - API auth: [] +components: + schemas: + ErrorDto: + type: object + properties: + errorCode: + type: string + enum: + - already_exists + - too_long + - too_many_requests + - bad_request + - not_configured + - bad_captcha + - bad_turnstile + - bad_url + - confirmation_invalid + - forbidden_email + - main_locale_invalid + - branching_disabled + - not_activated + - invalid_password + - invalid_import_file + - invalid_export_data_rails_yaml + - forbidden + - internal_error + - not_found + - upgrade_required + - subscription_change_disabled_in_past_due + - subscription_creation_still_processing + - order_creation_still_processing + - branching_not_supported + - ota_not_supported + - string_keys_limit + - projects_limit + - projects_limit_read_only + - limit_reached + - import_keys_limit_exceeded + - max_upload_size_exceeded + - prevention_limit_reached + - tags_prevention_limit_reached + - string_key_not_found + - merge_outdated + - mt_locale_not_supported + - mt_main_translation_empty + - mt_main_translation_not_supported + - mt_source_translation_too_long + - mt_chars_missing + - mt_no_selected_strings + - tm_upload_file_invalid + - tm_upload_file_max_entries_exceeded + - tm_upload_file_version_not_supported + - tm_max_total_entries_exceeded + - tm_max_total_memories_exceeded + - glossary_locale_cant_remove + - glossary_upload_file_invalid + - glossary_upload_file_column_separator_invalid + - glossary_upload_file_headers_invalid + - glossary_upload_file_max_terms_exceeded + - glossary_max_total_terms_exceeded + - glossary_max_total_glossaries_exceeded + - order_oversize + - github_not_supported + - github_token_invalid + - github_token_scope_invalid + - github_url_invalid + - github_branch_invalid + - github_repo_invalid + - github_config_file_missing + - github_config_file_invalid + - github_push_no_changes + - gitlab_not_supported + - gitlab_token_invalid + - gitlab_token_scope_invalid + - gitlab_url_invalid + - gitlab_branch_invalid + - gitlab_repo_invalid + - gitlab_config_file_missing + - gitlab_config_file_invalid + - gitlab_push_no_changes + - bitbucket_not_supported + - bitbucket_token_invalid + - bitbucket_token_scope_invalid + - bitbucket_url_invalid + - bitbucket_branch_invalid + - bitbucket_repo_invalid + - bitbucket_config_file_missing + - bitbucket_config_file_invalid + - bitbucket_push_no_changes + - aws_s3_not_supported + - aws_s3_credentials_invalid + - aws_s3_permissions_invalid + - aws_s3_bucket_invalid + - aws_s3_region_invalid + - expired + - unauthorized + - unexpected_error + - service_unavailable + errorMessage: + type: string + errorData: + type: object + additionalProperties: + type: object + ImportFileError: + type: object + properties: + line: + type: integer + format: int32 + position: + type: integer + format: int32 + errorMessage: + type: string + InvalidImportFileErrorDto: + type: object + properties: + errorCode: + type: string + enum: + - already_exists + - too_long + - too_many_requests + - bad_request + - not_configured + - bad_captcha + - bad_turnstile + - bad_url + - confirmation_invalid + - forbidden_email + - main_locale_invalid + - branching_disabled + - not_activated + - invalid_password + - invalid_import_file + - invalid_export_data_rails_yaml + - forbidden + - internal_error + - not_found + - upgrade_required + - subscription_change_disabled_in_past_due + - subscription_creation_still_processing + - order_creation_still_processing + - branching_not_supported + - ota_not_supported + - string_keys_limit + - projects_limit + - projects_limit_read_only + - limit_reached + - import_keys_limit_exceeded + - max_upload_size_exceeded + - prevention_limit_reached + - tags_prevention_limit_reached + - string_key_not_found + - merge_outdated + - mt_locale_not_supported + - mt_main_translation_empty + - mt_main_translation_not_supported + - mt_source_translation_too_long + - mt_chars_missing + - mt_no_selected_strings + - tm_upload_file_invalid + - tm_upload_file_max_entries_exceeded + - tm_upload_file_version_not_supported + - tm_max_total_entries_exceeded + - tm_max_total_memories_exceeded + - glossary_locale_cant_remove + - glossary_upload_file_invalid + - glossary_upload_file_column_separator_invalid + - glossary_upload_file_headers_invalid + - glossary_upload_file_max_terms_exceeded + - glossary_max_total_terms_exceeded + - glossary_max_total_glossaries_exceeded + - order_oversize + - github_not_supported + - github_token_invalid + - github_token_scope_invalid + - github_url_invalid + - github_branch_invalid + - github_repo_invalid + - github_config_file_missing + - github_config_file_invalid + - github_push_no_changes + - gitlab_not_supported + - gitlab_token_invalid + - gitlab_token_scope_invalid + - gitlab_url_invalid + - gitlab_branch_invalid + - gitlab_repo_invalid + - gitlab_config_file_missing + - gitlab_config_file_invalid + - gitlab_push_no_changes + - bitbucket_not_supported + - bitbucket_token_invalid + - bitbucket_token_scope_invalid + - bitbucket_url_invalid + - bitbucket_branch_invalid + - bitbucket_repo_invalid + - bitbucket_config_file_missing + - bitbucket_config_file_invalid + - bitbucket_push_no_changes + - aws_s3_not_supported + - aws_s3_credentials_invalid + - aws_s3_permissions_invalid + - aws_s3_bucket_invalid + - aws_s3_region_invalid + - expired + - unauthorized + - unexpected_error + - service_unavailable + errorMessage: + type: string + errorData: + type: object + additionalProperties: + type: object + errors: + type: array + items: + $ref: '#/components/schemas/ImportFileError' + ProjectLocaleStatsDto: + type: object + properties: + langCode: + type: string + description: Language code (ie `en` or `en-US`) + langName: + type: string + description: Language name (ie `English` or `English (US)`) + strings: + type: integer + description: Total number of string keys in the project + format: int32 + reviewed: + type: integer + description: Number of reviewed string keys for a language + format: int32 + reviewedProgress: + type: integer + description: Reviewed progress for a language, in percentage + format: int32 + description: Translation status per language + ProjectStatusDto: + type: object + properties: + strings: + type: integer + description: Total number of string keys in the project + format: int32 + reviewedProgress: + type: integer + description: Total reviewed progress across all languages, in percentage + format: int32 + languages: + type: array + description: Translation status per language + items: + $ref: '#/components/schemas/ProjectLocaleStatsDto' + securitySchemes: + API auth: + type: apiKey + name: X-Api-Token + in: header diff --git a/sdks/db/intermediate-fixed-specs/mambu/payments/openapi.yaml b/sdks/db/intermediate-fixed-specs/mambu/payments/openapi.yaml new file mode 100644 index 0000000000..1c3465e387 --- /dev/null +++ b/sdks/db/intermediate-fixed-specs/mambu/payments/openapi.yaml @@ -0,0 +1,6260 @@ +openapi: 3.0.1 +info: + title: Payment Order API + description: Initiates payment orders. + version: v1.44.15 + x-api-status-urls: false +paths: + /accounts/{accountId}/blocking-rules: + post: + tags: + - SEPA Direct Debit + description: >- + Request a blocking rule to be added to a specific Mambu account. When a + blocking rule has been added for a specific mandate ID, collection + requests for that mandate will be rejected and a pacs.002 message sent + as response with reason code MS02. If no specific mandate ID is + provided, all direct debit collection requests for the given account + will be rejected. For more information on blocking SEPA Direct Debits, + consult the [Blocking SEPA Direct + Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) + article in our user guide. + operationId: createBlockingRule + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + description: ID of the Mambu Deposit account. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateBlockingRule' + examples: + createProductBlockingRule: + summary: >- + Request blocking all SEPA Direct Debits for the specified + account. + description: createProductBlockingRule + value: + product: SEPA_DIRECT_DEBIT + createCeditorMandateBlockingRule: + summary: >- + Request blocking SEPA Direct Debits for a specific mandate for + the specified account. + description: createCeditorMandateBlockingRule + value: + product: SEPA_DIRECT_DEBIT + creditorMandate: + mandateRelatedInformation: + mandateIdentification: '578798984' + creditorSchemeIdentification: + identification: + privateIdentification: ID777444887 + responses: + '202': + description: Accepted - The Blocking Rule has been prepared for processing. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + productCannotBeBlocked: + summary: Specified payment product cannot be blocked. + description: productCannotBeBlocked + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + path: product + text: SEPA_CREDIT_TRANSFER cannot be blocked + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + delete: + tags: + - SEPA Direct Debit + description: >- + Request deletion of blocking rules for the specified Mambu account. If + no request body is provided, all rules for the account will be removed, + if you provide a JSON body with a specific mandate ID, only the rule for + that mandate will be removed. For more information on blocking SEPA + Direct Debits, consult the [Blocking SEPA Direct + Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) + article in our user guide. + operationId: deleteBlockingRules + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + description: ID of the Mambu Deposit account. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteBlockingRule' + examples: + deleteAllBlockingRules: + summary: Delete all blocking rules for the specified account. + description: deleteAllBlockingRules + value: null + deleteProductBlockingRule: + summary: Delete product blocking rule for the specified account. + description: deleteProductBlockingRule + value: + product: SEPA_DIRECT_DEBIT + deleteCreditorMandateBlockingRule: + summary: >- + Delete creditor mandate blocking rule for the specified + account. + description: deleteCreditorMandateBlockingRule + value: + product: SEPA_DIRECT_DEBIT + creditorMandate: + mandateRelatedInformation: + mandateIdentification: '578798984' + creditorSchemeIdentification: + identification: + privateIdentification: ID777444887 + responses: + '202': + description: >- + Accepted - Blocking rules for the specified account have been + submitted for deletion. + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /accounts/{accountId}/identifications: + get: + description: >- + Gets associations of an external account identification (IBAN or + proprietary) to a Mambu Account. + operationId: getMapping + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + - name: limit + in: query + schema: + maximum: 1000 + minimum: 1 + type: integer + description: >- + Limit the number of identifications retrieved. The default limit + is 50, can be specified up to 1000. + format: int32 + default: 50 + - name: offset + in: query + schema: + minimum: 0 + type: integer + description: >- + Offset determines how many records will be skipped before being + included in the returned results. The default offset value is 0. + format: int64 + default: 0 + responses: + '200': + description: OK - List existing external identifications. + headers: + Items-Offset: + description: The index of the first returned item. + required: true + style: simple + schema: + type: integer + Items-Limit: + description: The requested page size. + required: true + style: simple + schema: + type: integer + Items-Total: + description: The total count of available items. + required: true + style: simple + schema: + type: integer + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Identification' + examples: + Identification: + summary: List of identifications + description: Identification + value: + - iban: DE46606951125202071272 + - currency: USD + - other: + identification: ABCDE1234F + scheme: PAN + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + post: + description: >- + Adds association of an external account identification (IBAN or + proprietary) to a Mambu Account. The currency of the association will be + the one of the underlining Mambu account. If an IBAN is supposed to be a + multi-currency one, this API needs to be invoked multiple times with + different Mambu accounts (for the different currencies). + operationId: createMapping + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: accountId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccountMapping' + examples: + createMambuAccountMapping: + summary: >- + Create mapping between a proprietary identification and a + Mambu Account + description: createMambuAccountMapping + value: + identification: + other: + identification: ABCDE1234F + scheme: PAN + iban: DE46606951125202071272 + currency: USD + responses: + '201': + description: Created - Association successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/AccountMappingResponse' + examples: + accountMappingResponse: + summary: Successful account identification request. + description: accountMappingResponse + value: {} + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidIdentification: + summary: IBAN is not valid. + description: invalidIdentification + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + /accounts/identifications: + put: + description: >- + Create or replace associations of an external account identification + (IBAN or proprietary) to one of Mambu Accounts. The currency of the + association will be the one of the underlining Mambu account. + operationId: createMappings + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAccountMappings' + examples: + createMambuAccountMappings: + summary: >- + Create mapping between a proprietary identification and + multiple Mambu Accounts with different currencies + description: createMambuAccountMappings + value: |- + { + "identification": { + "iban": "DE46606951125202071272" + }, + "accountIds": [ + "123", + ] + } + responses: + '201': + description: Created - Association successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/AccountMappingResponse' + examples: + accountMappingResponse: + summary: Successful account identification request. + description: accountMappingResponse + value: {} + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidIdentification: + summary: IBAN is not valid. + description: invalidIdentification + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + /accounts/identifications:search: + post: + description: >- + Searches identifications (with MambuID included) based on provided + filter criteria + operationId: searchAccountIdentifications + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccountIdentificationsSearchRequestDTO' + responses: + '200': + description: OK - List of found identifications with accountId + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AccountIdentificationsSearchResponseDTO' + examples: + AccountIdentificationsSearchResponse: + summary: Successful account identification search response. + description: AccountIdentificationsSearchResponse + value: + - accountId: test123 + currency: EUR + type: DEPOSIT + identification: + iban: DE46606951125202071272 + identification: ABCDE1234F + scheme: PAN + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidSearchFilter: + summary: Search filter is not valid + description: invalidSearchFilter + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: >- + searchAccountIdentifications.arg0.filterCriteria[0].field + text: >- + filterCriteria[0].field Should be one of: schema, + iban, currency, identification + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + tags: + - External Account Representation + /collections: + post: + tags: + - SEPA Direct Debit + description: >- + Creates a collection initiation request. This covers the flows as + described in the [SEPA Direct + Debit](https://support.mambu.com/docs/sepa-direct-debit-creditor-flow) + section of our user guide. + operationId: initiateCollection + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionDTO' + examples: + initiateCollectionRequest: + summary: >- + Initiate collection request for accounts identified by IBAN + and creditor agent identified by BIC. + description: initiateCollectionRequest + value: + debtorAccount: + identification: + iban: DE46606951125202071272 + currency: EUR + debtorName: John Doe + serviceLevel: SEPA + instructedAmount: + currency: EUR + amount: '500' + creditorAccount: + identification: + iban: DE16195554277485442959 + currency: EUR + creditorName: Merchant123 + paymentIdentification: + transactionIdentification: 113T9bs6ad48ga1216d772430401s01sd2 + requestedExecutionDate: '2020-09-01' + mandateRelatedInformation: + mandateIdentification: 16ead91c975c4881a60c + dateOfSignature: '2020-01-31' + paymentTypeInformation: + sequenceType: FRST + creditorSchemeIdentification: + identification: + privateIdentification: I48799148795 + responses: + '201': + description: >- + Created - Collection Initiation request was correctly performed (but + not yet accepted) nor executed. + headers: + Location: + description: >- + Location of the created collection order request resource, for + future reference or status polling. + required: true + style: simple + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/CollectionResponse' + examples: + initiateCollectionResponse: + summary: Successful collection initiation response. + description: initiateCollectionResponse + value: + transactionStatus: RCVD + collectionId: e38458a4-d955-4a39-8e21-9608e9600b3d + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + missingMandatoryField: + summary: Identification for debtor account was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: debtorAccount.identification + text: debtorAccount.identification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /log: + post: + operationId: logArgument + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LogRequest' + required: true + responses: + default: + description: default response + content: + application/json: {} + tags: + - External Account Representation + /payments/financial-institution-credit-transfers: + post: + operationId: initiateCreditTransfer + parameters: + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FinancialInstitutionPaymentDTO' + responses: + default: + description: default response + content: + application/json: {} + /payments/credit-transfers: + post: + operationId: initiateCreditTransfer_1 + parameters: + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Iso20022PaymentDTO' + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Credit Transfers + /payments: + post: + tags: + - SEPA Credit Transfers + description: >- + Creates a payment initiation request. Payments using the SEPA Credit + Transfer scheme can only be created for the current date. A pacs.008 + message will be generated from the data provided in this request. For + more information on how these fields map to SEPA XML messages, refer to + the [SEPA Credit Transfer Techincal + Information](https://support.mambu.com/docs/sepa-credit-transfer-technical-information#pacs00800102) + article in our user guide. + operationId: initiatePayment + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: X-Request-ID + in: header + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: Idempotency-Key + in: header + schema: + type: string + description: >- + Prevents retried requests to be executed multiple times. + Subsequent requests with the same Idempotency Key will not be + processed and will return a cached result. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InitiationPaymentDTO' + examples: + initiatePaymentRequest: + summary: >- + Initiate same day payment request for accounts identified by + IBAN and creditor agent identified by BIC with creditor and + debtor address information. + description: initiatePaymentRequest + value: + debtorAccount: + identification: + iban: DE46606951125202071272 + currency: EUR + debtorName: John Doe + debtorAddress: + street: Karl-Liebknecht-Str. 5 + buildingNumber: '5234' + city: Berlin + postalCode: '10178' + countryCode: DE + serviceLevel: SEPA + instructedAmount: + currency: EUR + amount: '500' + creditorAccount: + identification: + iban: DE16195554277485442959 + currency: EUR + creditorAgent: + institutionIdentification: + bicfi: DEUTDEFF + creditorName: Merchant123 + creditorAddress: + street: Am Olympiapark 1 + buildingNumber: '1' + city: Munchen + postalCode: '80809' + countryCode: DE + responses: + '201': + description: >- + Created - Payment Initiation request was correctly performed (but + not yet accepted) nor executed. + headers: + Location: + description: >- + Location of the created payment order request resource, for + future reference or status polling. + required: true + style: simple + schema: + type: string + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse' + examples: + initiatePaymentResponse: + summary: Successful payment initiation request. + description: initiatePaymentResponse + value: + transactionStatus: RCVD + paymentId: e38458a4-d955-4a39-8e21-9608e9600b3d + transactionFeeIndicator: false + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + missingMandatoryField: + summary: Identification for debtor account was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: debtorAccount.identification + text: debtorAccount.identification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/FailedPaymentResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders/{id}/executions: + get: + tags: + - Standing Order + description: Get executions of standing order + operationId: getExecutionsByStandingOrderId + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: ApiKey + in: header + description: ApiKey header that is used for authentication + required: true + schema: + type: string + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - Standing orders executions retrieval was successful. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderExecutionResponse' + examples: + StandingOrderExecutionResponse: + description: StandingOrderExecutionResponse + value: + - standingOrderId: standing-order-id-qwerty + paymentOrderId: paymentorderid54 + requestedExecuteOn: '2023-01-26T15:51:27' + status: FAILED + creationDate: '2023-01-26T15:52:27.865848Z' + type: RETRY + failReason: INSUFFICIENT_FUNDS + /payments/standing-orders/{id}: + get: + tags: + - Standing Order + description: Gets Standing order information + operationId: getStandingOrderDetails + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - Returns Standing order item. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderGetResponse' + examples: + standingOrderGetResponse: + summary: Standing order get response. + description: standingOrderGetResponse + value: + id: 9726992c-bda4-4867-9264-f9168337d0ec + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '500' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + lastExecution: '2022-11-17' + nextExecution: '2022-11-18' + paymentsCount: 2 + ownerId: some-owner-id + retryCount: 3 + suspendDateFrom: null + suspendDateTo: null + '404': + description: Not found - cannot find the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + standingOrderNotFound: + summary: Unable to get Standing order + description: standingOrderNotFound + value: + tppMessages: + - category: ERROR + code: RESOURCE_UNKNOWN + text: >- + Unable to find Standing order with id: + 9726992c-bda4-4867-9264-f9168337d0ec. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + delete: + tags: + - Standing Order + description: Cancel Standing order + operationId: cancelStandingOrder + parameters: + - name: id + in: path + required: true + schema: + type: string + responses: + '204': + description: Standing order canceled. + '404': + description: Not found - cannot find the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + standingOrderNotFound: + summary: Unable to find Standing order + description: standingOrderNotFound + value: + tppMessages: + - category: ERROR + code: RESOURCE_UNKNOWN + text: >- + Unable to find Standing order with id: + 9726992c-bda4-4867-9264-f9168337d0ec. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders: + post: + tags: + - Standing Order + description: >- + API creates standing orders. Standing order creation will trigger + periodic payments for provided frequency from start date until the end + date. + operationId: createStandingOrder + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderDTO' + examples: + createStandingOrder: + summary: Create standing orders + description: createStandingOrder + value: | + { + "payment": { + "scheme": "SEPA", + "instructedAmount": { + "currency": "EUR", + "amount": "500" + }, + "debtorAccount": { + "identification": { + "iban": "DE87200500001234567890" + }, + "currency": "EUR" + }, + "creditorAccount": { + "identification": { + "other": { + "identification": "1234", + "scheme": "PAN" + } + }, + "currency": "EUR" + }, + "creditorName": "CreditorName", + "debtorName": "DebtorName", + "remittanceInformationUnstructured": "Remittance Info" + }, + "startDate": [ + 2022, + 11, + 8 + ], + "frequency": "DAILY", + "endDate": [ + 2022, + 11, + 8 + ], + "ownerId": "some-owner-id", + "retryPolicy": { + “ + "retryCount": "3" + } + } + responses: + '201': + description: Created - Standing order successfully created. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderCreateResponse' + examples: + standingOrderCreateResponse: + summary: Successful standing order request. + description: standingOrderCreateResponse + value: + id: 9726992c-bda4-4867-9264-f9168337d0ec + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidStandingOrderRequest: + summary: IBAN is not valid. + description: invalidStandingOrderRequest + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban size must be between 15 and 34 + - category: ERROR + code: FORMAT_ERROR + path: iban + text: iban invalid IBAN value + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/standing-orders:search: + post: + tags: + - Standing Order + description: Search for standing orders by search filters such as ownerId + operationId: searchStandingOrders + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + - name: ApiKey + in: header + description: ApiKey header that is used for authentication + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSearchRequest' + examples: + standingOrderSearchRequest: + summary: Search for standing orders by search filters + description: standingOrderSearchRequest + value: |- + { + "filterCriteria": [ + { + "field": "OWNER_ID", + "operator": "EQUALS", + "value": "string" + } + { + "field": "STATUS", + "operator": "EQUALS", + "value": "string" + } + ], + "limit": 500, + "offset": 0 + } + responses: + '200': + description: OK - Standing orders search was successful. + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSearchResponse' + examples: + StandingOrderSearchResponse: + description: StandingOrderSearchResponse + value: + - ownerId: some_kind_of_id_from_client + id: 9726992c-bda4-4867-9264-f9168337d0ec + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '500' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + - ownerId: some_kind_of_id_from_client + id: 9726992c-bda4-4867-9264-13245679fe + payment: + scheme: SEPA + instructedAmount: + currency: EUR + amount: '100' + debtorAccount: + identification: + iban: DE87200500001234567890 + currency: EUR + creditorAccount: + identification: + other: + identification: '1234' + scheme: PAN + currency: EUR + creditorName: CreditorName + debtorName: DebtorName + remittanceInformationUnstructured: Remittance Info + startDate: '2022-11-10' + frequency: DAILY + endDate: '2023-11-10' + creationDateTime: '2022-11-09T21:41:29+02:00' + status: ACTIVE + suspendDateFrom: null + suspendDateTo: null + /payments/standing-orders:suspend: + post: + tags: + - Standing Order + description: API suspends standing order for a particular period of time. + operationId: suspendStandingOrder + parameters: + - name: Content-Type + in: header + description: application/json + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StandingOrderSuspendDTO' + examples: + suspendStandingOrder: + summary: Suspend standing order + description: suspendStandingOrder + value: + id: 9726992c-bda4-4867-9264-f9168337d0ec + startDate: + - 2022 + - 11 + - 8 + endDate: + - 2022 + - 11 + - 9 + responses: + '200': + description: OK - Standing order successfully suspended. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + invalidStandingOrderSuspendRequest: + summary: request is invalid + description: invalidStandingOrderSuspendRequest + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: id + text: id must not be null + - category: ERROR + code: FORMAT_ERROR + path: endDate + text: endDate must not be null + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/TppMessagesResponse' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}: + get: + operationId: getCollectionDetails + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + description: >- + ID of the collection order, as received in the response to a `POST + /collections` request or from the instruction ID field of a + collection. You can retrieve the instruction ID in the Payment + Gateway UI by opening up the detail view of a collection and + looking for the value of `InstId` in the Payment Identification + object. + - name: detailsLevel + in: query + schema: + type: string + description: >- + Details level of the response. `STATUS` and `FULL` detail levels + are supported. `STATUS` will return the current status and a + timestamp of when the collection order was last modified. The + default value of `FULL` will return a complete set of information + about the collection order. + default: FULL + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Direct Debit + /payments/credit-transfers/{paymentId}: + get: + operationId: creditTransferDetails + parameters: + - name: paymentId + in: path + required: true + schema: + type: string + description: >- + ID of the payment order, as received in the response to a `POST + /payments` request + - name: detailsLevel + in: query + schema: + type: string + description: >- + Details level of the response. STATUS and FULL detail levels are + supported. `STATUS` will return the current status and a timestamp + of when the payment order was last modified. The default value of + `FULL` will return a complete set of information about the payment + order. + default: FULL + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Credit Transfers + /payments/{paymentId}: + get: + operationId: getPaymentDetails + parameters: + - name: paymentId + in: path + required: true + schema: + type: string + description: >- + ID of the payment order, as received in the response to a `POST + /payments` request + - name: detailsLevel + in: query + schema: + type: string + description: >- + Details level of the response. STATUS and FULL detail levels are + supported. `STATUS` will return the current status and a timestamp + of when the payment order was last modified. The default value of + `FULL` will return a complete set of information about the payment + order. + default: FULL + responses: + default: + description: default response + content: + application/json: {} + tags: + - SEPA Credit Transfers + /payments:settleInstantPayment: + post: + tags: + - SEPA Credit Transfers + description: Accepts requests for an instant payment settlement. + operationId: settleInstantPayment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InstantPaymentSettlement' + examples: + instantPaymentSettlementRequest: + summary: Request settlement for an instant payment. + description: instantPaymentSettlementRequest + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transaction: + debtorAgent: + institutionIdentification: + bicfi: FUBKDE71 + paymentIdentification: + transactionIdentification: 00730100632BHGCRWC + acceptanceDateTime: '2023-04-05T09:07:37' + required: true + responses: + '202': + description: >- + Accepted - The instant payment settlement request has been accepted + for processing. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:reject: + post: + tags: + - SEPA Credit Transfers + description: Manually Reject an Outgoing Payment. + operationId: manuallyRejectOutgoingPayment + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified payment order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expected status is: TO_BE_SENT. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:recall: + post: + tags: + - SEPA Credit Transfers + description: Recall an outgoing payment. + operationId: recallOutgoingPayment + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Recall' + required: true + responses: + '200': + description: OK - Payment marked to be recalled successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badRecallReasonCode: + summary: A non SEPA compliant recall reason code was provided. + description: badRecallReasonCode + value: + tppMessages: + - category: ERROR + code: INVALID_REQUEST_BODY + text: '' + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: |- + { + "tppMessages": [ + { + "category": "ERROR", + "code": "SERVICE_INVALID", + "text": "There was an error processing your request. } + ] + } + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:denyOutgoingRecall: + post: + tags: + - SEPA Credit Transfers + description: Deny an Outgoing Recall. + operationId: denyOutgoingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified outgoing recall has been marked to be rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidPaymentOrderId: + summary: No payment order found for given id. + description: invalidPaymentOrderId + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Order + bac5161bd53348fa8dfc143cae49ba13 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:denyIncomingRecall: + post: + tags: + - SEPA Credit Transfers + description: Deny an Incoming Recall. + operationId: denyIncomingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CancellationDetails' + required: true + responses: + '200': + description: OK - The specified incoming recall has been marked to be rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequest: + summary: >- + The request is invalid for the current state of the + transaction. + description: invalidRequest + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Database update failed due to invalid request, + expected number of updated rows is 1, actual number + is: 0. The error message is: pending.authorized.failed + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:approveOutgoingRecall: + post: + tags: + - SEPA Credit Transfers + description: Approve an Outgoing Recall. + operationId: approveOutgoingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified outgoing recall has been authorized. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidPaymentOrderId: + summary: No payment order found for given id. + description: invalidPaymentOrderId + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Order + bac5161bd53348fa8dfc143cae49ba13 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}:approveIncomingRecall: + post: + tags: + - SEPA Credit Transfers + description: Approve an Incoming Recall. + operationId: approveIncomingRecall + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The specified incoming recall has been authorized. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequest: + summary: >- + The request is invalid for the current state of the + transaction. + description: invalidRequest + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Database update failed due to invalid request, + expected number of updated rows is 1, actual number + is: 0. The error message is: pending.authorized.failed + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/{paymentOrderId}/aml:resendCallout: + post: + tags: + - AML + description: Resends the AML callout for an Outgoing payment. + operationId: resendCTAmlCallout + parameters: + - name: paymentOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The AML callout was resent for the provided payment order. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/incoming: + post: + tags: + - Incoming Messages + description: Creates an incoming message request. + operationId: submitIncomingMessage + parameters: + - name: X-Request-ID + in: header + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + - name: X-Payment-Scheme + in: header + description: Specifies payment scheme for processing. + required: false + schema: + type: string + description: Specifies payment scheme for processing. + - name: Content-Type + in: header + required: true + schema: + type: string + requestBody: + content: + application/xml: + schema: + type: string + examples: + incomingCreditTransferRequest: + summary: Request processing for the given incoming pacs.008 message. + description: incomingCreditTransferRequest + value: >- + + ... + text/plain: + schema: + type: string + required: true + responses: + '202': + description: >- + Accepted - Incoming file accepted and is due for processing, when + incoming scheduler is configured to run. Outgoing (complete / + partial) pacs.002 will be published in case of complete / partial + processing of incoming pacs.008. If the incoming pacs.008 is + completely failed then a rejected pacs.002 will be published. + Outgoing pacs.004 will be published for failed transaction from + incoming pacs.008. + content: + application/json: + schema: + $ref: '#/components/schemas/IncomingMessageResponse' + examples: + incomingPacs008Response: + summary: Successful accept incoming payment message + description: incomingPacs008Response + value: + messageId: SCTORD200020190305ORD000011119 + messageType: urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02 + incomingCamt056Response: + summary: Successful accept incoming payment recall message + description: incomingCamt056Response + value: + messageId: 568R9154000000000000000000000000010 + messageType: urn:iso:std:iso:20022:tech:xsd:camt.056.001.01 + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body may not be empty + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/json" instead of "application/xml". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /payments/aml: + post: + tags: + - AML + description: >- + Accepts AML check results for Payment Orders, for example SEPA Credit + Transfers. + operationId: processPaymentAmlResponse + parameters: + - name: Content-Type + in: header + description: application/json + required: true + - name: X-Request-ID + in: header + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AmlResult' + examples: + amlInformation: + summary: AML check result. + description: amlInformation + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transactions: + - status: Accepted + paymentIdentification: + transactionIdentification: 00730100632BHGCRWC + debtorAgent: + institutionIdentification: + bicfi: BTRLRO22 + interbankSettlementDate: '2019-06-28' + required: true + responses: + '200': + description: OK - The AML check result has been prepared for processing. + content: + '*/*': + schema: + type: string + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the content, payment or account + information data model. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + content: + '*/*': + schema: + type: string + /inquiries:skipStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: >- + Skips response for Request for Status Update on Recall with given + details. + operationId: skipStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SkipStatusUpdateOnRecall' + examples: + skipStatusUpdateOnRecall: + summary: >- + Request for skipping Request for Status Update on Recall + response + description: skipStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + required: true + responses: + '200': + description: >- + OK - Request for skipping Status Update on Recall response was + received + '400': + description: Bad Request - Invalid Transaction Status. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: >- + Transaction status is invalid for skipping Status Update on + Recall response. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: 'Transaction has invalid status: REPLY_SKIPPED' + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:requestStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create inquiry to request status update for a payment cancellation. + operationId: requestStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalCamt056Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Payment Cancellation Request transaction + not found. Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: >- + The original Payment Cancellation Request transaction not + found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:requestStatusUpdateOnInquiry: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create status update request for existing camt.087 or camt.027 inquiry + operationId: requestStatusUpdateOnInquiry + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalInquiryData' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:rejectStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: >- + Handles negative response for Request for Status Update on Recall with + given details. + operationId: rejectStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RejectStatusUpdateOnRecall' + examples: + rejectStatusUpdateOnRecall: + summary: >- + Request for handling Request for Status Update on Recall + negative response + description: rejectStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + originalMessageIdentification: 22b8f938c6154877886a0c1fc9e74166 + originalInstructionIdentification: 562f8f9f8c6154844886a0c1fc9e7451 + cancellationDetails: + rejectionReason: ARDT + required: true + responses: + '200': + description: >- + OK - Request for Status Update on Recall negative response was + received + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body must not be empty + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:claimValueDateCorrection: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create inquiry to request claim for value-date change. + operationId: claimValueDateCorrection + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalPacs008Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit Transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit Transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original Credit Transfer transaction for 123456 not + found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:claimNonReceipt: + post: + tags: + - SEPA Credit Transfer Inquiries + description: Create inquiry for claim of non-receipt + operationId: claimNonReceipt + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OriginalPacs008Data' + required: true + responses: + '200': + description: OK - Inquiry created successfully. + '400': + description: >- + Bad Request - The original Credit transfer transaction not found. + Please check the input parameters. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + originalTransactionNotFound: + summary: The original Credit transfer transaction not found. + description: originalTransactionNotFound + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + original transaction for Payment Cancellation Request + 123456 not found + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /inquiries:acceptStatusUpdateOnRecall: + post: + tags: + - SEPA Credit Transfer Inquiries + description: >- + Handles positive response for Request for Status Update on Recall with + given details. + operationId: acceptStatusUpdateOnRecall + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AcceptStatusUpdateOnRecall' + examples: + acceptStatusUpdateOnRecall: + summary: >- + Request for handling Request for Status Update on Recall + positive response + description: acceptStatusUpdateOnRecall + value: + groupHeader: + messageIdentification: 82d7125b36014c2e8cc442a3586badd0 + creationDateTime: '2021-02-10T10:03:25' + instructingAgent: ABCDE123 + transactionInformation: + statusRequestIdentification: 4112f6688c846a89bee2b2c476f1145 + originalMessageIdentification: 22b8f938c6154877886a0c1fc9e74166 + originalInstructionIdentification: 562f8f9f8c6154844886a0c1fc9e7451 + required: true + responses: + '200': + description: >- + OK - Request for Status Update on Recall positive response was + received + '400': + description: Bad Request - Validation error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidValueForField: + summary: Field contains an invalid value. + description: invalidValueForField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + text: The request body must not be empty + '404': + description: Not Found - No message found for the given identification. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + messageNotFound: + summary: No message found for the given identification. + description: messageNotFound + value: + tppMessages: + - category: ERROR + code: NOT_FOUND + text: No pacs.028.001.01 was found for the supplied details + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionOrderId}:reject: + post: + tags: + - SEPA Direct Debit + description: Manually Reject an Outgoing Collection. + operationId: manuallyRejectOutgoingCollection + parameters: + - name: collectionOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified collection order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expected status is: TO_BE_SENT. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionOrderId}:rejectIncoming: + post: + tags: + - SEPA Direct Debit + description: Manually Reject an Incoming Collection. + operationId: manuallyRejectIncomingCollection + parameters: + - name: collectionOrderId + in: path + required: true + schema: + type: string + responses: + '200': + description: >- + OK - The specified collection order has been marked to be manually + rejected. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidTransactionStatus: + summary: Transaction status is invalid for manual rejection. + description: invalidTransactionStatus + value: + tppMessages: + - category: ERROR + code: INVALID_TRANSACTION_STATUS + text: >- + Transaction has invalid status: TO_BE_REJECTED. + Expecting one of the following statuses: + PENDING_SETTLEMENT, RECEIVED. + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}:reverse: + post: + tags: + - SEPA Direct Debit + description: Reverse a Collection Instruction. + operationId: reverse + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Reverse' + required: true + responses: + '200': + description: OK - Collection Instruction marked to be reversed successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badReversalReasonCode: + summary: A non SEPA compliant refund reason code was provided. + description: badReversalReasonCode + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: value 'MS01' not supported + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}:refund: + post: + tags: + - SEPA Direct Debit + description: Refund a Collection Instruction. + operationId: refund + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Refund' + required: true + responses: + '200': + description: OK - Collection Instruction marked to be refunded successfully. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + badRefundReasonCode: + summary: A non SEPA compliant refund reason code was provided. + description: badRefundReasonCode + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: value 'MD02' not supported + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/{collectionId}/aml:resendCallout: + post: + tags: + - AML + description: Resends the AML callout for an Outgoing collection. + operationId: resendDDAmlCallout + parameters: + - name: collectionId + in: path + required: true + schema: + type: string + responses: + '200': + description: OK - The AML callout was resent for the provided collection order. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /collections/aml: + post: + tags: + - AML + description: >- + Accepts AML check results for collections, for example, SEPA Direct + Debits. + operationId: processCollectionAmlResponse + parameters: + - name: Content-Type + in: header + description: application/json + required: true + - name: X-Request-ID + in: header + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + required: true + schema: + type: string + description: >- + ID of the request, unique to the call, as determined by the + initiating party. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AmlResult' + examples: + amlInformation: + summary: AML check result. + description: amlInformation + value: + groupHeader: + messageIdentification: SCTORD200020190305ORD000011119 + transactions: + - status: Accepted + collectionIdentification: + transactionIdentification: 00730100632BHGCRWC + creditorAgent: + institutionIdentification: + bicfi: BTRLRO22 + interbankSettlementDate: '2019-06-28' + required: true + responses: + '200': + description: OK - The AML check result has been prepared for processing. + content: + '*/*': + schema: + type: string + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + missingMandatoryField: + summary: Message identification for group header was not provided. + description: missingMandatoryField + value: + tppMessages: + - category: ERROR + code: FORMAT_ERROR + path: groupHeader.messageIdentification + text: groupHeader.messageIdentification may not be null + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported by a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the serves does not + support has been supplied. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/xml" instead of "application/json". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + '*/*': + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + content: + '*/*': + schema: + type: string + /aml:resendCallouts: + post: + tags: + - AML + description: Resends the AML callouts. + operationId: resendAmlCallouts + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ResendAmlFilter' + required: true + responses: + '200': + description: OK - The AML callouts were resent. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidRequestBody: + summary: >- + No transactions that allow resending the AML callout were + found. + description: invalidRequestBody + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Failed to find any valid Sepa Transaction for the + given request. The error message is: + resend.aml.callout.failed + '405': + description: >- + Method Not Allowed - This code is only sent when the HTTP method + (PUT, POST, DELETE, GET etc.) is not supported on a specific + endpoint. It has nothing to do with the consent, payment or account + information data model. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedHttpMethod: + summary: The request was submitted with an unsupported HTTP method. + description: unsupportedHttpMethod + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '415': + description: >- + Unsupported Media Type - A media type which the server does not + support has been supplied. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + unsupportedContentType: + summary: >- + The request was submitted with an unsupported content type. + For example "application/json" instead of "application/xml". + description: unsupportedContentType + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /accounts/identifications:mask: + post: + tags: + - External Account Representation + description: Mask identifications from Payments Gateway. + operationId: mask + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IdentificationsToMask' + required: true + responses: + '200': + description: OK - Identifications masked. This operation is irreversible. + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + identificationAlreadyMasked: + summary: >- + At least one of the provided identifications was already + masked + description: identificationAlreadyMasked + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + Following identifications are already masked: + DK0643182702662691 + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. + /instructions: + get: + tags: + - Search Messages + description: Retrieve the SEPA messages details. + operationId: findSepaMessages + parameters: + - name: sepaMessageFilter + in: query + required: true + schema: + $ref: '#/components/schemas/SepaMessageFilter' + responses: + '200': + description: OK - SEPA Messages Details were correctly found. + content: + application/json: + schema: + $ref: '#/components/schemas/SepaMessages' + examples: + pacs.008 instruction information: + summary: Information retrieved for a pacs.008 message + description: pacs.008 instruction information + value: + instructions: + - FIToFICstmrCdtTrf: + grpHdr: + msgId: 22b8f938c6154877886a0c1fc9e74166 + creDtTm: '2019-04-11T09:08:45+03:00' + nbOfTxs: '2' + ttlIntrBkSttlmAmt: + value: 200 + ccy: EUR + intrBkSttlmDt: '2019-04-11T00:00:00+03:00' + sttlmInf: + clrSys: + prtry: ST2 + instgAgt: + finInstnId: + bic: ABVRATW1XXX + cdtTrfTxInf: + - pmtId: + instrId: 82d7125b36014c2e8cc442a3586badd0 + endToEndId: NOTPROVIDED + txId: 4112f6688c846a89bee2b2c476f1145 + pmtTpInf: + svcLvl: + cd: SEPA + intrBkSttlmAmt: + value: 100 + ccy: EUR + accptncDtTm: '2019-04-11T09:08:45+03:00' + chrgBr: SLEV + dbtr: + nm: John Doe + dbtrAcct: + id: + iban: RO59INGBW91QIQFZSG6IZBJT + dbtrAgt: + finInstnId: + bic: INGBROBU + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: BT + pstlAdr: + ctry: DE + cdtrAcct: + id: + iban: RO75BTRLBSIJS00RPQWYLYWL + _metadata: + transactionSn: 1 + transactionStatus: RECEIVED + paymentId: 67eacbf33f1b4eaea8d1055a2a01adea + - pmtId: + instrId: 108cf3f5fd833aa5bc5efb90c0dee19e + endToEndId: NOTPROVIDED + txId: 758e663666ae40be8e9278a9e4e899f9 + pmtTpInf: + svcLvl: + cd: SEPA + intrBkSttlmAmt: + value: 100 + ccy: EUR + accptncDtTm: '2019-04-11T09:08:45+03:00' + chrgBr: SLEV + dbtr: + nm: John Doe + dbtrAcct: + id: + iban: RO59INGBW91QIQFZSG6IZBJT + dbtrAgt: + finInstnId: + bic: INGBROBU + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: BT + pstlAdr: + ctry: DE + cdtrAcct: + id: + iban: RO94BTRLVU048EN2KBPTVT7U + _metadata: + transactionSn: 2 + transactionStatus: RECEIVED + paymentId: fcaae256fed94018958326c9cb752aeb + _metadata: + bulkSn: 1 + direction: I + messageId: pacs.008 + transactions: 2 + pacs.004 instruction information: + summary: Information retrieved for a pacs.004 message + description: pacs.004 instruction information + value: + instructions: + - PmtRtr: + grpHdr: + msgId: '1' + creDtTm: '2018-11-26T21:47:57+02:00' + nbOfTxs: '1' + ttlRtrdIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + intrBkSttlmDt: '2018-11-26T00:00:00+02:00' + sttlmInf: + sttlmMtd: CLRG + clrSys: + prtry: ST2 + txInf: + - rtrId: '2020181126130827322001' + orgnlGrpInf: + orgnlMsgId: '1231231312' + orgnlMsgNmId: pacs.008 + orgnlEndToEndId: 10864caa82034bc8a12e4bf3e117d10d + orgnlTxId: '8097758122275259' + rtrdIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + rtrRsnInf: + orgtr: + id: + orgId: + bicorBEI: DABADKKK + rsn: + cd: AC_01 + orgnlTxRef: + intrBkSttlmDt: '2018-11-26T00:00:00+02:00' + sttlmInf: + sttlmMtd: CLRG + pmtTpInf: + svcLvl: + cd: SEPA + dbtr: + nm: Hanne Doe + dbtrAcct: + id: + iban: DK0643182702662691 + dbtrAgt: + finInstnId: + bic: DABADKKK + cdtrAgt: + finInstnId: + bic: BTRLRO22 + cdtr: + nm: John Doe + cdtrAcct: + id: + iban: RO69BTRL3333444433334444 + _metadata: + transactionSn: 14 + transactionStatus: RECEIVED + returnReason: AC01 + paymentId: 22886adc407e4280b7df22a966d08425 + _metadata: + bulkSn: 10 + direction: I + messageId: pacs.004.001.02 + procstatus: REPLIED + transactions: 1 + camt.056 instruction information: + summary: Information retrieved for a camt.056 message + description: camt.056 instruction information + value: + instructions: + - FIToFIPmtCxlReq: + assgnmt: + id: msg-id-camt.056.001.01 + assgnr: + agt: + finInstnId: + bic: TESTXXXXXXX + assgne: + agt: + finInstnId: + bic: TESTXXXXXXX + creDtTm: 2019-05-14T21:00:00.000+0000 + ctrlData: + nbOfTxs: 1 + undrlyg: + - txInf: + cxlId: 000R9087000000011 + orgnlGrpInf: + orgnlMsgId: SCTORD15682019 + orgnlMsgNmId: pacs.008.001.02 + orgnlInstrId: '6630844036108666' + orgnlEndToEndId: NOTPROVIDED + orgnlTxId: '8097758122275259' + orgnlIntrBkSttlmAmt: + value: 4000.5 + ccy: EUR + orgnlIntrBkSttlmDt: 2019-06-19T21:00:00.000+0000 + cxlRsnInf: + - orgtr: + nm: Beneficioso beneficiar io + rsn: + cd: DUPL + orgnlTxRef: + sttlmInf: + sttlmMtd: CLRG + clrSys: + cd: REP + pmtTpInf: + svcLvl: + cd: SEPA + rmtInf: + ustrd: + - Pruebas para CECA 1 + ultmtDbtr: + nm: EUR + dbtr: + nm: ENRIQUE ROMERA MARTINEZ DE MIGUEL + dbtrAcct: + id: + iban: ES1011110001087939390799 + dbtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtr: + nm: Beneficioso beneficiario + cdtrAcct: + id: + iban: ES6520950001153279157264 + _metadata: + transactionSn: 2 + transactionStatus: TO_BE_SENT + returnReason: DUPL + paymentId: poId + _metadata: + bulkSn: 2 + direction: I + messageId: camt.056.001.01 + procstatus: RETRIEVED + transactions: 1 + camt.029 instruction information: + summary: Information retrieved for a camt.029 message + description: camt.029 instruction information + value: + instructions: + - RsltnOfInvstgtn: + assgnmt: + id: msg-id-camt.029.001.03 + assgnr: + agt: + finInstnId: + bic: TESTXXXXXXX + assgne: + agt: + finInstnId: + bic: TESTXXXXXXX + creDtTm: 2019-05-14T21:00:00.000+0000 + sts: + conf: RJCT + cxlDtls: + - txInfAndSts: + cxlStsId: 568R9 + orgnlGrpInf: + orgnlMsgId: SCTORD156820190620000000000001 + orgnlMsgNmId: pacs.008.001.02 + orgnlInstrId: a5fbae19e3d24522963ad60d018f2e49 + orgnlEndToEndId: 7456b0bb2c1a4209b87b4636995c5d08 + orgnlTxId: '1002' + txCxlSts: RJCR + cxlStsRsnInf: + - orgtr: + id: + orgId: + bicorBEI: TESTXXXXXXX + rsn: + cd: AGNT + orgnlTxRef: + intrBkSttlmAmt: + value: 4000.5 + ccy: EUR + intrBkSttlmDt: 2019-06-19T21:00:00.000+0000 + sttlmInf: + sttlmMtd: CLRG + clrSys: + prtry: ACHT1234567890123456789012345678905 + pmtTpInf: + svcLvl: + cd: SEPA + rmtInf: + ustrd: + - Pruebas para CECA 1 + dbtr: + nm: ENRIQUE ROMERA MARTINEZ DE MIGUEL + dbtrAcct: + id: + iban: ES1011110001087939390799 + dbtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtrAgt: + finInstnId: + bic: TESTXXXXXXX + cdtr: + nm: Beneficioso beneficiario + cdtrAcct: + id: + iban: ES6520950001153279157264 + _metadata: + transactionSn: 3 + transactionStatus: TO_BE_SENT + returnReason: RJCT + paymentId: poId + _metadata: + bulkSn: 3 + direction: O + messageId: camt.029.001.03 + procstatus: RETRIEVED + transactions: 1 + '400': + description: >- + Bad Request - Validation error occurred. This code will cover + malformed syntax in request or incorrect data in payload. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + invalidDirection: + summary: The provided direction value is not valid + description: invalidDirection + value: + tppMessages: + - category: ERROR + code: PARAMETER_NOT_SUPPORTED + text: 'direction invalid value: example_invalid_direction' + '500': + description: Internal Server Error - Internal server error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/PaymentResponse-TPP' + examples: + internalServerError: + summary: The request failed due to an internal server error. + description: internalServerError + value: + tppMessages: + - category: ERROR + code: SERVICE_INVALID + text: >- + There was an error processing your request. It has + been logged (ID a449ea6319107e42). + '503': + description: >- + Service Unavailable - The server is currently unavailable. + Generally, this is a temporary state. +components: + schemas: + AcceptStatusUpdateOnRecall: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/TransactionInformation' + required: + - groupHeader + - transactionInformation + type: object + AccountDTO: + description: Settlement account used when settlement method is INDA/INGA. + properties: + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + identification: + $ref: '#/components/schemas/IdentificationDTO' + required: + - identification + type: object + AccountIdentificationsFilterCriteriaDTO: + description: Account identification search criteria + properties: + field: + description: >- + Contains the actual searching fields that can be native (one from + the provided list) + enum: + - SCHEME + - IBAN + - IDENTIFICATION + type: string + operator: + description: >- + EQUALS - checks that 'field' equals to 'value' (strict equals, does + not support parts or masks) + enum: + - EQUALS + - IN + - BETWEEN + - GREATER_THAN + - LESS_THAN + type: string + value: + description: The value to match the searching criteria + type: string + required: + - field + - operator + type: object + AccountIdentificationsSearchRequestDTO: + properties: + filterCriteria: + description: Account identification search criteria + items: + $ref: '#/components/schemas/AccountIdentificationsFilterCriteriaDTO' + type: array + required: + - filterCriteria + type: object + AccountIdentificationsSearchResponseDTO: + properties: + accountId: + description: AccountID (Unique and unambiguous identification for the account.) + type: string + currency: + description: Account currency + type: string + identification: + $ref: '#/components/schemas/Identification' + type: + description: Account type + type: string + required: + - accountId + - identification + type: object + AccountInternalIdentification: + description: >- + Mambu Accounts corresponding to the current IBAN / proprietary + identification + properties: + currency: + type: string + id: + type: string + type: + enum: + - DEPOSIT + - LOAN + type: string + type: object + AccountMappingResponse: + properties: + internalAccounts: + description: >- + Mambu Accounts corresponding to the current IBAN / proprietary + identification + items: + $ref: '#/components/schemas/AccountInternalIdentification' + type: array + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + AddressDTO: + properties: + buildingNumber: + description: ' The building or street number of the address. Must not exceed 16 characters.' + maxLength: 16 + minLength: 1 + type: string + city: + description: The city of the address. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + countryCode: + description: >- + Two characters as defined by ISO 3166. For example `DE` for Germany, + `TZ` for Tanzania. + maxLength: 2 + minLength: 2 + type: string + postalCode: + description: The postal code of the address. Must not exceed 16 characters. + maxLength: 16 + minLength: 1 + type: string + street: + description: The street name of the adress. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - countryCode + type: object + Agent: + description: Financial institution servicing an account for the debtor. + properties: + institutionIdentification: + $ref: '#/components/schemas/InstitutionIdentification' + required: + - institutionIdentification + type: object + AgentDTO: + description: >- + Financial institution servicing an account for the creditor. This field + is mandatory when proprietary ('other') creditor account identification + is used. + properties: + account: + $ref: '#/components/schemas/AccountDTO' + institutionIdentification: + $ref: '#/components/schemas/InstitutionIdentificationDTO' + required: + - institutionIdentification + type: object + AmendmentInformationDetailsDTO: + description: List of mandate elements that have been modified. + properties: + originalCreditorSchemeIdentification: + $ref: '#/components/schemas/OriginalCreditorSchemeIdentificationDTO' + originalDebtorAccount: + $ref: '#/components/schemas/AccountDTO' + originalDebtorAgent: + $ref: '#/components/schemas/AgentDTO' + originalMandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the original mandate. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + type: object + AmlPaymentIdentification: + description: Payment instruction reference. + properties: + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. + type: string + required: + - transactionIdentification + type: object + AmlResult: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeader' + transactions: + description: List of AML result checks, one per Payment Order. + items: + $ref: '#/components/schemas/AmlTransactionResult' + type: array + required: + - groupHeader + - transactions + type: object + AmlTransactionResult: + description: List of AML result checks, one per Payment Order. + properties: + debtorAgent: + $ref: '#/components/schemas/Agent' + interbankSettlementDate: + description: >- + InterbankSettlementDate from the original instruction in the format + `YYYY-MM-DD`. + maxLength: 10 + minLength: 10 + type: string + paymentIdentification: + $ref: '#/components/schemas/AmlPaymentIdentification' + status: + description: >- + Actual status of the AML investigation. Must be one of `ACCEPTED`, + `SUSPENDED`, `REJECTED`, `MANUAL_REDIRECT_EXTERNAL` or + `MANUAL_REDIRECT_INTERNAL`. + enum: + - ACCEPTED + - SUSPENDED + - REJECTED + - MANUAL_REDIRECT_EXTERNAL + - MANUAL_REDIRECT_INTERNAL + type: string + required: + - debtorAgent + - interbankSettlementDate + - paymentIdentification + - status + type: object + AmountDTO: + properties: + amount: + description: >- + The amount given with fractional digits, where fractions must be + compliant to the currency definition. Negative amounts are signed by + minus. The decimal separator is a dot. + maxLength: 12 + minLength: 1 + type: string + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + required: + - amount + - currency + type: object + Assignment: + description: Assignment + properties: + creationDateTime: + description: creation date time + format: date-time + type: string + identification: + description: camt.027/camt.087 assignment id + type: string + type: object + CancellationDetails: + properties: + additionalInformation: + description: >- + Further details on the cancellation request reason. The order must + be as defined in the SEPA guideline. The prefixes will be added + automatically. First occurrence will be added to the first + (mandatory) entry of additional information. When denying a recall, + if you do not want to add extra information to the mandatory + occurrence, please provide an empty string. For Legal additional + information, second and third occurrence will be added on the second + and third additional information. + items: + description: >- + Further details on the cancellation request reason. The order must + be as defined in the SEPA guideline. The prefixes will be added + automatically. First occurrence will be added to the first + (mandatory) entry of additional information. When denying a + recall, if you do not want to add extra information to the + mandatory occurrence, please provide an empty string. For Legal + additional information, second and third occurrence will be added + on the second and third additional information. + type: string + type: array + originalRecallReasonAdditionalInformation: + description: >- + Further details on the cancellation reason which can be used when + the recall rejection reason was AC03 for a recall made by the + originator or FRAD for a recall made by the financial institution. + The prefixes will be added automatically. Up to 10 occurrences are + allowed. + items: + description: >- + Further details on the cancellation reason which can be used when + the recall rejection reason was AC03 for a recall made by the + originator or FRAD for a recall made by the financial institution. + The prefixes will be added automatically. Up to 10 occurrences are + allowed. + type: string + type: array + rejectionReason: + description: >- + Reason for the cancellation status. Only ARDT, AC04, AM04, NOAS, + NOOR, CUST, LEGL, AGNT are allowed. + enum: + - ARDT + - AC04 + - AM04 + - NOAS + - NOOR + - CUST + - LEGL + - AGNT + type: string + required: + - rejectionReason + type: object + CollectionDTO: + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + creditorSchemeIdentification: + $ref: '#/components/schemas/CreditorSchemeIdentificationDTO' + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + mandateRelatedInformation: + $ref: '#/components/schemas/MandateDTO' + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentificationDTO' + paymentTypeInformation: + $ref: '#/components/schemas/PaymentTypeInformationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - creditorSchemeIdentification + - debtorAccount + - debtorName + - instructedAmount + - mandateRelatedInformation + - paymentTypeInformation + type: object + CollectionResponse: + properties: + collectionId: + description: >- + Resource identification of the generated payment initiation + resource. + type: string + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + transactionFeeIndicator: + description: >- + If set to `true`, the transaction will involve additional costs or + fees. + type: boolean + transactionStatus: + description: >- + PSD2 transaction status codes: + enum: + - ACSC + - ACSP + - ACTC + - CPVP + - RCVD + - PDNG + - RJCT + type: string + required: + - collectionId + - transactionStatus + type: object + CreateAccountMapping: + properties: + identification: + $ref: '#/components/schemas/Identification' + required: + - identification + type: object + CreateAccountMappings: + properties: + accountIds: + description: >- + IDs of the Mambu Accounts which will be correlated to the IBAN or + proprietary identification. The association will be made on account + currency. + items: + description: >- + IDs of the Mambu Accounts which will be correlated to the IBAN or + proprietary identification. The association will be made on + account currency. + type: string + type: array + identification: + $ref: '#/components/schemas/Identification' + required: + - accountIds + - identification + type: object + CreateBlockingRule: + properties: + creditorMandate: + $ref: '#/components/schemas/CreditorMandateDTO' + product: + description: >- + Payment Product to which this rule applies. For now, blocking rules + can be applied to `SEPA_DIRECT_DEBIT` only + type: string + required: + - product + type: object + CreditorMandateDTO: + description: >- + Collection mandate identification for deleting a rule applying to a + specific mandate. + properties: + creditorSchemeIdentification: + $ref: '#/components/schemas/CreditorSchemeIdentificationDTO' + mandateRelatedInformation: + $ref: '#/components/schemas/MandateRelatedInformationDTO' + required: + - creditorSchemeIdentification + - mandateRelatedInformation + type: object + CreditorSchemeIdentification: + properties: + identification: + description: Object containing the identifier. + properties: + privateIdentification: + description: Unique and unambiguous identification of a person, eg, passport. + example: ABC123 + type: string + required: + - privateIdentification + type: object + CreditorSchemeIdentificationDTO: + description: Credit party that signs the mandate. + properties: + identification: + $ref: '#/components/schemas/IdentificationDTO' + required: + - identification + type: object + DeleteBlockingRule: + properties: + creditorMandate: + $ref: '#/components/schemas/CreditorMandateDTO' + product: + description: >- + Payment product to remove blocking rules from. Must be + `SEPA_DIRECT_DEBIT`. + type: string + required: + - product + type: object + FailedPaymentResponse: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + required: + - tppMessages + type: object + FilterCriteria: + properties: + field: + type: string + operator: + type: string + value: + type: string + required: + - field + - operator + - value + type: object + FinancialInstitutionPaymentDTO: + properties: + categoryPurposeCode: + description: >- + Specifies the high level purpose of the payment based on a set of + pre-defined categories. + maxLength: 4 + minLength: 1 + type: string + creditor: + $ref: '#/components/schemas/AgentDTO' + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + debtor: + $ref: '#/components/schemas/AgentDTO' + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + intermediaryAgent1: + $ref: '#/components/schemas/AgentDTO' + intermediaryAgent2: + $ref: '#/components/schemas/AgentDTO' + intermediaryAgent3: + $ref: '#/components/schemas/AgentDTO' + paymentIdentification: + $ref: '#/components/schemas/Iso20022PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditor + - debtor + - instructedAmount + - scheme + - settlementInformation + type: object + GroupHeader: + description: GroupHeader information from the original instruction. + properties: + messageIdentification: + description: Message Identification from the original instruction. + type: string + required: + - messageIdentification + type: object + GroupHeaderIncoming: + description: >- + Set of characteristics shared by all individual transactions included in + the Request for Status Update on Recall message + properties: + creationDateTime: + description: >- + Date and time at which the inquiry message was created. Accepted + format: yyyy-MM-ddTHH:mm:ss + type: string + instructingAgent: + description: >- + Agent that is instructed by the previous party in the chain to carry + out the (set of) instruction(s). + type: string + messageIdentification: + description: Message identification to identify the inquiry message + type: string + required: + - creationDateTime + - instructingAgent + - messageIdentification + type: object + Identification: + description: Identification + properties: + currency: + description: ISO 4217 Alpha 3 currency code. + maxLength: 3 + minLength: 3 + type: string + iban: + description: >- + ISO 13616 International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. + maxLength: 34 + minLength: 15 + type: string + other: + $ref: '#/components/schemas/Other' + type: object + Identification-IBAN: + properties: + iban: + description: >- + ISO 13616 International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. + maxLength: 34 + minLength: 15 + type: string + type: object + IdentificationDTO: + description: Unique and unambiguous identification for the account. + properties: + iban: + description: >- + International Bank Account Number (IBAN) - identifier used + internationally by financial institutions to uniquely identify the + account of a customer. Must be between 15 and 34 characters. + maxLength: 34 + minLength: 15 + type: string + other: + $ref: '#/components/schemas/OtherDTO' + type: object + IdentificationsToMask: + properties: + identifications: + items: + $ref: '#/components/schemas/Identification-IBAN' + type: array + required: + - identifications + type: object + IncomingMessageResponse: + properties: + messageId: + description: Resource identification of the incoming message + type: string + messageType: + description: URN namespace of the incoming message + type: string + required: + - messageId + - messageType + type: object + InitiationPaymentDTO: + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + type: object + InstantPaymentIdentification: + description: Payment instruction reference. + properties: + acceptanceDateTime: + description: >- + AcceptanceDateTime from the original instruction; must be in the + same format as it was sent in the original instruction. + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. + type: string + required: + - acceptanceDateTime + - transactionIdentification + type: object + InstantPaymentSettlement: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeader' + transaction: + $ref: '#/components/schemas/InstantTransaction' + required: + - groupHeader + - transaction + type: object + InstantTransaction: + description: Original transaction information. + properties: + debtorAgent: + $ref: '#/components/schemas/Agent' + paymentIdentification: + $ref: '#/components/schemas/InstantPaymentIdentification' + required: + - debtorAgent + - paymentIdentification + type: object + InstitutionIdentification: + description: >- + Unique and unambiguous identification of a financial institution, as + assigned under an internationally recognised identification scheme. + properties: + bicfi: + description: >- + ISO 9362 Business identifier code (BIC) - code allocated to a + financial institution. Must be between 8 and 11 characters. + maxLength: 11 + minLength: 8 + type: string + required: + - bicfi + type: object + InstitutionIdentificationDTO: + description: >- + Unique and unambiguous identification of a financial institution, as + assigned under an internationally recognised identification scheme. + properties: + bicfi: + description: >- + ISO 9362 Business identifier code (BIC) - code allocated to a + financial institution. Must be between 8 and 11 characters. + maxLength: 11 + minLength: 8 + type: string + required: + - bicfi + type: object + Iso20022PaymentDTO: + properties: + categoryPurposeCode: + description: >- + Specifies the high level purpose of the payment based on a set of + pre-defined categories. + maxLength: 4 + minLength: 1 + type: string + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorAddress: + $ref: '#/components/schemas/AddressDTO' + creditorAgent: + $ref: '#/components/schemas/AgentDTO' + creditorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorAddress: + $ref: '#/components/schemas/AddressDTO' + debtorAgent: + $ref: '#/components/schemas/AgentDTO' + debtorIdentification: + $ref: '#/components/schemas/PartyIdentificationDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + localInstrument: + description: >- + User community specific instrument. Used to specify a local + instrument, local clearing option and/or further qualify the service + or service level. For example, whether a Direct Debit uses the + business to customer `CORE`, business to business `B2B` ruleset or + whether a Credit Transfer is of type Instant `INST`. + type: string + paymentIdentification: + $ref: '#/components/schemas/Iso20022PaymentIdentificationDTO' + purposeCode: + description: >- + The PurposeCode value or a similar explanation is not added to the + payer’s Electronic account statement. This value can be shown on + both the payers and the beneficiary’s on the Camt.053 account + statement. Purpose codes can be taken from an external list, for + example the [ISO 20022 External Code + Set](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 4 + type: string + remittanceInformationStructured: + $ref: '#/components/schemas/RemittanceDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + requestedExecutionDate: + description: >- + Optional field for recording the date of the transfer. For SEPA + Credit Transfers only the current date can be provided. Payments can + not be backdated or scheduled for the future. + maxLength: 10 + minLength: 10 + type: string + requestedExecutionTime: + description: >- + Optional field for recording the date and time of the payment + initiation. For SEPACredit Transfers, only the current date and time + can be provided. Payments can not be backdated or scheduled for the + future. + maxLength: 35 + minLength: 17 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + serviceLevel: + description: >- + Agreement under which or rules under which the transaction should be + processed. Must be `SEPA` for SEPA Credit Transfers and Direct + Debits. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + ultimateCreditor: + description: >- + Party which is the ultimate beneficiary of the payment. For example, + the payment can be credited to an account of a financing company, + with the ultimate beneficiary being the customer of the financing + company. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + ultimateDebtor: + description: >- + The Party that originally ordered goods or services and to whom the + seller has sent the invoice. Ultimate Debtor can be used when the + acceptor of the invoice is different than the payer. Must not exceed + 70 characters. + maxLength: 70 + minLength: 1 + type: string + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + - scheme + - settlementInformation + type: object + Iso20022PaymentIdentificationDTO: + properties: + endToEndIdentification: + description: >- + Unique identification assigned by the payer to identify the + transaction. This identification will be returned to the payer and + passed on to the beneficiary. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. If left empty, Mambu transaction id will + be used. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + uetr: + description: >- + Universally unique identifier to provide an end-to-end reference of + a payment transaction. + maxLength: 36 + minLength: 36 + type: string + type: object + LogRequest: + properties: + log: + maxLength: 300 + minLength: 1 + type: string + required: + - log + type: object + MandateDTO: + description: >- + Set of elements used to provide further details of the direct debit + mandate signed between the creditor and the debtor. + properties: + amendmentInformationDetails: + $ref: '#/components/schemas/AmendmentInformationDetailsDTO' + dateOfSignature: + description: >- + Date on which the direct debit mandate has been signed by the debtor + in the format `YYYY-MM-DD`. + type: string + mandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the mandate. + type: string + required: + - dateOfSignature + - mandateIdentification + type: object + MandateRelatedInformationDTO: + properties: + mandateIdentification: + description: >- + Unique identification, as assigned by the creditor, to unambiguously + identify the collection mandate. + type: string + required: + - mandateIdentification + type: object + Message: + description: List of SEPA instructions. + type: object + OriginalCamt056Data: + properties: + cancellationIdentification: + description: Cancellation identification. + type: string + groupHeader: + $ref: '#/components/schemas/GroupHeader' + historicCancellationRequest: + description: Original camt.056.001.01 message body XML for historical requests. + type: string + required: + - cancellationIdentification + type: object + OriginalCreditorSchemeIdentificationDTO: + description: Original creditor scheme identification that has been modified. + properties: + identification: + $ref: '#/components/schemas/IdentificationDTO' + name: + description: Name of the creditor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + type: object + OriginalInquiryData: + properties: + assignment: + $ref: '#/components/schemas/Assignment' + caseIdentification: + description: camt.027/camt.087 case id + type: string + historicClaimRequest: + description: Optional historic camt.087 or camt.027 xml + type: string + messageTypeName: + description: messageTypeName + enum: + - PACS_002_001_03 + - PACS_002_001_10 + - PACS_002_001_12 + - PACS_003_001_02 + - PACS_003_001_08 + - PACS_004_001_02 + - PACS_004_001_09 + - PACS_004_001_11 + - PACS_007_001_02 + - PACS_007_001_09 + - PACS_008_001_02 + - PACS_008_001_08 + - PACS_008_001_10 + - PACS_028_001_01 + - PACS_028_001_03 + - CAMT_027_001_06 + - CAMT_027_001_07 + - CAMT_029_001_03 + - CAMT_029_001_08 + - CAMT_029_001_09 + - CAMT_029_001_11 + - CAMT_056_001_01 + - CAMT_056_001_08 + - CAMT_056_001_10 + - CAMT_087_001_05 + - CAMT_087_001_06 + - SIC_PACS_008_001_08 + - SIC_PACS_004_001_09 + - SIC_PACS_002_001_10 + - MT_103 + - MT_103_RETURN + - UNKNOWN + type: string + required: + - caseIdentification + - messageTypeName + type: object + OriginalPacs008Data: + properties: + claimedValueDate: + description: Claimed value-date for change. + format: date + type: string + groupHeader: + $ref: '#/components/schemas/Pacs008GroupHeader' + historicCreditTransferRequest: + description: Original pacs.008 message body XML for historical requests. + type: string + paymentIdentification: + $ref: '#/components/schemas/PaymentIdentification' + required: + - paymentIdentification + type: object + Other: + description: >- + Unique identification of an account, as assigned by the account + servicer, using other identification scheme. + properties: + identification: + description: Identification assigned by an institution. + maxLength: 34 + minLength: 1 + type: string + scheme: + description: Name of the identification scheme. + maxLength: 35 + minLength: 1 + type: string + required: + - identification + - scheme + type: object + OtherDTO: + description: >- + Unique identification of an account, as assigned by the account + servicer, using any other identification scheme. + properties: + identification: + description: >- + Identification assigned by an institution. Must not exceed 34 + characters. + maxLength: 34 + minLength: 1 + type: string + scheme: + description: >- + Name or code of the identification scheme. Must not exceed 35 + characters. + maxLength: 35 + minLength: 1 + type: string + required: + - identification + - scheme + type: object + Pacs008GroupHeader: + description: Original pacs.008 group header information. + properties: + messageIdentification: + description: Original message identification. + type: string + settlementDate: + description: Original settlement date. + format: date + type: string + required: + - messageIdentification + type: object + PartyIdentificationDTO: + description: Beneficiary’s identification. + properties: + code: + description: >- + A four-letter code specifying the type of identification being used. + For valid codes an external catalogue should be consulted such as + the one provided in the [ISO 20022 External Code + Sets](https://www.iso20022.org/catalogue-messages/additional-content-messages/external-code-sets). + maxLength: 4 + minLength: 1 + type: string + issuer: + description: >- + The official body who provided the identification. Must not exceed + 35 characters. + maxLength: 35 + minLength: 1 + type: string + privateIdentification: + description: >- + Unique and unambiguous identification of a person, eg, passport. + Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + proprietary: + description: >- + A proprietary type of identification for the party to the + transaction. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - privateIdentification + type: object + PaymentDTO: + description: Payment details for standing order + properties: + creditorAccount: + $ref: '#/components/schemas/AccountDTO' + creditorName: + description: >- + The Party whose account is credited with the payment. Must not + exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + debtorAccount: + $ref: '#/components/schemas/AccountDTO' + debtorName: + description: The full name of the debtor. Must not exceed 70 characters. + maxLength: 70 + minLength: 1 + type: string + instructedAmount: + $ref: '#/components/schemas/AmountDTO' + remittanceInformationUnstructured: + description: >- + Payment details. Free text, one occurrence (max 140 characters). + + Payment reason (according to current recurrent payment standard) can + be given in this element. + maxLength: 140 + minLength: 1 + type: string + scheme: + description: Specifies payment scheme for processing. + type: string + settlementInformation: + $ref: '#/components/schemas/SettlementInformationDTO' + required: + - creditorAccount + - creditorName + - debtorAccount + - debtorName + - instructedAmount + type: object + PaymentDetails: + properties: + transactionStatus: + description: >- + PSD2 transaction status codes: + enum: + - ACSC + - ACSP + - ACTC + - RCVD + - PDNG + - RJCT + type: string + PaymentIdentification: + description: Payment identification. + properties: + transactionIdentification: + description: Original transaction identification. + type: string + type: object + PaymentIdentificationDTO: + description: Payment instruction reference. + properties: + endToEndIdentification: + description: >- + Unique identification assigned by the payer to identify the + transaction. This identification will be returned to the payer and + passed on to the beneficiary. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + transactionIdentification: + description: >- + Unique identification as assigned by the initiating party to be used + as transaction identifier. If left empty, Mambu transaction id will + be used. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + type: object + PaymentResponse: + properties: + paymentId: + description: >- + Resource identification of the generated payment initiation + resource. + type: string + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + transactionFeeIndicator: + description: >- + If value is `true`, the transaction will involve additional + transaction costs or fees. + type: boolean + transactionStatus: + description: 'RCVD: Payment initiation has been received by the receiving agent.' + enum: + - RCVD + type: string + required: + - paymentId + - transactionStatus + type: object + PaymentResponse-TPP: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + PaymentTypeInformationDTO: + description: Set of elements used to further specify the type of transaction. + properties: + sequenceType: + description: >- + Identifies the direct debit sequence, such as first, recurrent, + final or one-off (`FRST`, `RCUR`, `FNAL`, `OOFF`). + type: string + required: + - sequenceType + type: object + PrivateIdentificationDTO: + description: Unique and unambiguous identification of a party. + properties: + privateIdentification: + description: >- + Unique and unambiguous identification of a person, eg, passport. + Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - privateIdentification + type: object + Recall: + properties: + customerRecallReasonCode: + description: >- + Customer reason for outgoing payment recall, as defined in the SEPA + guideline + enum: + - AM09 + - AC03 + type: string + recallReasonCode: + description: Reason for outgoing payment recall, as defined in the SEPA guideline + enum: + - FRAD + - TECH + - CUST + - DUPL + type: string + required: + - recallReasonCode + type: object + Refund: + properties: + reasonCode: + description: Reason for an interbank Refund, as defined in the SEPA guideline + enum: + - MD01 + - MD06 + type: string + required: + - reasonCode + type: object + RejectStatusUpdateOnRecall: + properties: + cancellationDetails: + $ref: '#/components/schemas/CancellationDetails' + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/TransactionInformation' + required: + - cancellationDetails + - groupHeader + - transactionInformation + type: object + RemittanceDTO: + description: >- + Payment details. Structured message. Generally, these fields are used to + provide invoice or creditor reference information. References should + conform to ISO 11649, international standard of reference information. + properties: + reference: + description: >- + The actual reference. Must not exceed 35 characters. If providing a + reference number, the `referenceType` should also be provided. + maxLength: 35 + minLength: 1 + type: string + referenceIssuer: + description: >- + The entity which created or generated the reference. Must not exceed + 35 characters. + maxLength: 35 + minLength: 1 + type: string + referenceType: + description: The type of reference provided. Must not exceed 35 characters. + maxLength: 35 + minLength: 1 + type: string + required: + - reference + type: object + ResendAmlFilter: + properties: + category: + description: Message Category. Supported values are SEPA_CT, SEPA_DD or TGT. + enum: + - SEPA_CT + - SEPA_DD + - TGT + type: string + direction: + description: >- + Message Direction. Supported values are I (incoming) or O + (outgoing). + enum: + - I + - O + type: string + instructingAgent: + description: >- + Agent that instructs the next party in the chain to carry out the + (set of) instruction(s). + type: string + interbankSettlementDate: + description: >- + Date on which the amount of money ceases to be available to the + agent that owes it and when the amount of money becomes available to + the agent to which it is due. Accepted format: yyyy-MM-dd + type: string + messageId: + description: Incoming message identification. + type: string + required: + - direction + type: object + RetryPolicyDTO: + description: Failing standing orders retry policy + properties: + retryCount: + description: Specifies how many times the failing standing order will be retried + format: int32 + type: integer + type: object + Reverse: + properties: + reasonCode: + description: Reason for an interbank Reversal, as defined in the SEPA guideline + enum: + - AM05 + - MS02 + - MS03 + type: string + required: + - reasonCode + type: object + SepaMessageFilter: + properties: + dateFrom: + description: >- + Start date from which the messages should be filtered. Accepted + format: yyyy-MM-dd + type: string + dateTo: + description: >- + End date up until which the messages should be filtered. Accepted + format: yyyy-MM-dd + type: string + direction: + description: Message Direction. Supported values are I (incoming) or O (outgoing) + type: string + limit: + description: >- + Limit of the number of objects returned by the server. Defaults to + 20. + format: int32 + maximum: 100 + minimum: 1 + type: integer + messageId: + description: Message ID, representing the GrpHdr>>MsgId field of the message + type: string + messageType: + description: >- + Message type. Accepted values are pacs.008.001.02, pacs.004.001.02, + pacs.003.001.02, camt.056.001.01, camt.029.001.03 + type: string + network: + description: >- + Network for which the instructions should be received. SEPA is the + only value allowed + type: string + offset: + description: Offset from which the results should be provided. Defaults to 0. + format: int32 + minimum: 0 + type: integer + paymentId: + description: Payment ID, id provided when creating a new payment + type: string + transactionsLimit: + description: >- + Limit of the number of transactions returned by the server. Defaults + to 10. If the transactionsLimit is 0 only message headers will be + returned. If the transactionsLimit or transactionsOffset is bigger + than 0 then the messageId parameter has to be used as transactions + pagination in only available for one message. + format: int32 + minimum: 0 + type: integer + transactionsOffset: + description: >- + Offset from which the transactions should be provided. Defaults to + 0. If the transactionsLimit or transactionsOffset is bigger than 0 + then the messageId parameter has to be used as transactions + pagination in only available for one message. + format: int32 + minimum: 0 + type: integer + required: + - direction + type: object + SepaMessages: + properties: + instructions: + description: List of SEPA instructions. + items: + $ref: '#/components/schemas/Message' + type: array + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + type: object + SettlementInformationDTO: + description: >- + Specifies the details on how the settlement of the transaction(s) + between the instructing agent and the instructed agent is completed. + properties: + clearingSystem: + description: Clearing system when settlement method is CLRG. + type: string + settlementAccount: + $ref: '#/components/schemas/AccountDTO' + settlementMethod: + description: >- + Method used to settle the payment: INDA (instructed agent), INGA + (instructing agent), CLRG (clearing system) + type: string + required: + - settlementMethod + type: object + SkipStatusUpdateOnRecall: + properties: + groupHeader: + $ref: '#/components/schemas/GroupHeaderIncoming' + transactionInformation: + $ref: '#/components/schemas/StatusRequestIdentification' + required: + - groupHeader + - transactionInformation + type: object + StandingOrderCreateResponse: + properties: + id: + description: Standing order id + type: string + type: object + StandingOrderDTO: + properties: + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + ownerId: + description: Standing order owner id + maxLength: 36 + minLength: 1 + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + retryPolicy: + $ref: '#/components/schemas/RetryPolicyDTO' + startDate: + description: Standing order start date + format: date + type: string + required: + - frequency + - ownerId + - payment + - retryPolicy + - startDate + type: object + StandingOrderExecutionResponse: + properties: + creationDate: + description: Entry creation date and time + format: date-time + type: string + failReason: + description: Holds short failure description + enum: + - INSUFFICIENT_FUNDS(401) + - ACCOUNT_INACTIVE(407) + - OTHER(-1) + type: string + paymentOrderId: + description: Payment order id + type: string + requestedExecuteOn: + description: Date and time at which payment is initiated + format: date-time + type: string + standingOrderId: + description: Standing order id + type: string + status: + description: Status of payment execution + enum: + - RUNNING + - COMPLETED + - FAILED + type: string + type: + description: Execution type + enum: + - REGULAR + - RETRY + type: string + type: object + StandingOrderGetResponse: + properties: + creationDateTime: + description: Standing order creation date and time + format: date-time + type: string + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + id: + description: Standing order id + type: string + lastExecution: + description: Standing order's last payment execution date + format: date + type: string + nextExecution: + description: Standing order's next payment execution date + format: date + type: string + ownerId: + description: Standing order owner id + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + paymentsCount: + description: Standing order's count of payments executed so far + format: int32 + type: integer + retryCount: + description: Standing order's retry count setting + format: int32 + type: integer + startDate: + description: Standing order start date + format: date + type: string + status: + description: Standing order status + enum: + - ACTIVE + - SUSPENDED + - CANCELED + - WITHDRAWN + type: string + suspendDateFrom: + description: Standing order suspend start date + format: date + type: string + suspendDateTo: + description: Standing order suspend end date (inclusive) + format: date + type: string + type: object + StandingOrderSearchRequest: + properties: + filterCriteria: + items: + $ref: '#/components/schemas/FilterCriteria' + maxItems: 2 + minItems: 1 + type: array + limit: + format: int32 + maximum: 500 + minimum: 1 + type: integer + offset: + format: int32 + maximum: 2147483647 + minimum: 0 + type: integer + required: + - filterCriteria + type: object + StandingOrderSearchResponse: + properties: + creationDateTime: + description: Standing order creation date and time + format: date-time + type: string + endDate: + description: Standing order end date + format: date + type: string + frequency: + description: Standing order frequency + enum: + - DAILY, WEEKLY, MONTHLY + type: string + id: + description: Standing order id + type: string + ownerId: + description: Standing order owner id + type: string + payment: + $ref: '#/components/schemas/PaymentDTO' + retryCount: + description: Standing order's retry count setting + format: int32 + type: integer + startDate: + description: Standing order start date + format: date + type: string + status: + description: Standing order status + enum: + - ACTIVE + - SUSPENDED + - CANCELED + - WITHDRAWN + type: string + suspendDateFrom: + description: Standing order suspend start date + format: date + type: string + suspendDateTo: + description: Standing order suspend end date (inclusive) + format: date + type: string + type: object + StandingOrderSuspendDTO: + properties: + endDate: + description: Suspend standing order till date (inclusive) + format: date + type: string + id: + description: Standing order id + maxLength: 36 + minLength: 1 + type: string + startDate: + description: Suspend standing order from date + format: date + type: string + required: + - endDate + - id + type: object + StatusRequestIdentification: + description: Information concerning the Request for Status Update on Recall message + properties: + statusRequestIdentification: + description: >- + Unique identification, as assigned by an instructing party for an + instructed party, to identify the status request + type: string + required: + - statusRequestIdentification + type: object + TPPMessage: + description: Messages to the TPP on operational issues. + properties: + category: + description: Category designates the message severity. + enum: + - ERROR + - WARN + type: string + code: + description: >- + Message error + codes: + enum: + - ACCOUNT_ALREADY_MAPPED_TO_THE_SPECIFIED_IDENTIFICATION + - FEATURE_NOT_ENABLED + - FORMAT_ERROR + - INVALID_MESSAGE_TYPE + - INVALID_REQUEST_BODY + - INVALID_TRANSACTION_STATE + - INVALID_TRANSACTION_STATUS + - ORIGINAL_MESSAGE_ALREADY_REPLIED + - ORIGINAL_MESSAGE_PENDING_REPLY + - PARAMETER_NOT_SUPPORTED + - PAYMENT_FAILED + - SERVICE_INVALID + - NOT_FOUND + - RESOURCE_UNKNOWN + type: string + path: + type: string + text: + description: Additional explaining text. + maxLength: 512 + minLength: 1 + type: string + required: + - category + - code + type: object + TppMessagesResponse: + properties: + tppMessages: + description: Messages to the TPP on operational issues. + items: + $ref: '#/components/schemas/TPPMessage' + type: array + required: + - tppMessages + type: object + TransactionInformation: + description: >- + Information concerning the original transaction, to which the Request + for Status Update on Recall message refers + properties: + originalInstructionIdentification: + description: >- + Unique identification, as assigned by the original instructing party + for the original instructed party, to unambiguously identify the + original instruction. + type: string + originalMessageIdentification: + description: >- + Point to point reference assigned by the original instructing party + to identify the original group of individual transactions + type: string + statusRequestIdentification: + description: >- + Unique identification, as assigned by an instructing party for an + instructed party, to identify the status request + type: string + required: + - originalInstructionIdentification + - originalMessageIdentification + - statusRequestIdentification + type: object +tags: + - name: AML + description: > + If you are using an external service to check payments as part of your + Anti Money Laundering obligations, these endpoints receive responses which + will lead to unblocking funds and transferring them to the recipient + account in the case of an all clear or returning funds to the payer in + cases where there a compliance issue has been identified. + + + For more general information on AML flows, including how the necessary + suspense accounting should be set up in Mambu, please refer to the [AML + and Suspense + Accounts](https://support.mambu.com/docs/aml-suspense-accounting) section + of our User Guide. + - name: External Account Representation + description: >- + The External Account Representation (EAR) endpoints are used to associate + IBANs with Mambu account IDs so that payments made using the Mambu Payment + Gateway are routed to the correct accounts. + + + An IBAN can be mapped to multiple accounts but can only be associated to + one account per currency, so, for example, the same IBAN can be mapped to + one underlying Mambu account using EUR, another using GBP and another + using CHF, but not to two accounts both in EUR denomination. + + + + - name: Incoming Messages + description: > + This endpoint is the main entry point to the Mambu Payment Gateway for + external systems. + + + For more information on the types of messages accepted by this endpoint, + please refer to the [supported + flows](https://support.mambu.com/docs/payment-gateway-introduction#supported-flows) + section of the introduction to the Mambu Payment Gateway article in our + User Guide. + + + + - name: SEPA Credit Transfers + description: > + These endpoints are used for making and receiving SEPA credit transfers + through the Mambu Payment Gateway. + + + For more information on supported messages, flows and technical + information, including examples of generated XML messages and how the + fields map to these API requests, please refer to the [SEPA Credit + Transfer](https://support.mambu.com/docs/sepa-credit-transfers) section of + our User Guide. + - name: SEPA Credit Transfer Inquiries + description: > + These APIs allow you to submit inquiries for SEPA payments including for + cases where the customer claims to have not received the funds, the value + date was not correctly recorded or to request a status update for payments + which have been cancelled. + + + For more information on the types of inquiry supported and how to submit + and respond to inquiries via the Mambu Payment Gateway UI, please refer to + the relevant section of our User Guide, such as the [SEPA credit transfer + inquiries](https://support.mambu.com/docs/sct-inquiries) article for SEPA + credit transfers. + - name: SEPA Direct Debit + description: > + SEPA Direct Debit Payments are one time or recurring payments made using + the Single European Payment Area scheme for transactions made in Euros + between accounts at banks within the SEPA area, which includes all EU + countries as well as other territories such as Liechtenstein, Switzerland, + the United Kingdom, Andorra and Nordic countries. + + + Mambu supports both the Core SEPA rulebook for individuals and the B2B + scheme for companies. For more information on supported messages, flows + and technical information, please refer to the [SEPA Direct + Debit](https://support.mambu.com/docs/sepa-direct-debit) section of our + user guide. + - name: Search Messages + description: > + Use this endpoint to search for SEPA Credit Transfer and Direct Debit + messages received by the Mambu Payment Gateway. + - name: Settings + description: > + These endpoints allow you to configure settings for the Mambu Payment + Gateway such as setting callback URLs which will be notified on certain + actions. +servers: + - url: https://TENANT_NAME.mambu.com/api/v1 diff --git a/sdks/db/processed-custom-request-cache/kombo.dev.yaml b/sdks/db/processed-custom-request-cache/kombo.dev.yaml new file mode 100644 index 0000000000..224636d3c6 --- /dev/null +++ b/sdks/db/processed-custom-request-cache/kombo.dev.yaml @@ -0,0 +1,20 @@ +processed: + securitySchemes: + ApiKey: + type: http + scheme: bearer + description: >- + Create an API key on the [Secrets](https://app.kombo.dev/secrets) page + in the Kombo dashboard. + apiBaseUrl: https://api.kombo.dev/v1 + apiVersion: 1.0.0 + apiTitle: Kombo API + endpoints: 48 + sdkMethods: 54 + schemas: 282 + parameters: 188 + originalCustomRequest: + type: GET + url: https://api.kombo.dev/openapi.json + customRequestSpecFilename: kombo.dev.yaml + difficultyScore: 242 diff --git a/sdks/db/processed-custom-request-cache/localizely.com.yaml b/sdks/db/processed-custom-request-cache/localizely.com.yaml new file mode 100644 index 0000000000..afea09e7f5 --- /dev/null +++ b/sdks/db/processed-custom-request-cache/localizely.com.yaml @@ -0,0 +1,34 @@ +processed: + securitySchemes: + API auth: + type: apiKey + name: X-Api-Token + in: header + apiBaseUrl: https://api.localizely.com + apiVersion: 1.2.1 + apiDescription: >- +

Getting started

Localizely API is built on REST.
You can use this API for importing & exporting + your localization files in order to automate the process with `curl` scripts + or external CI tools.
Response is returned in JSON form even in + case of error.

If you Authenticate with your API token on this + page by clicking "Authorize" button, you can make API calls directly from + here with "Try it out", and generate such `curl` examples.

API + Authentication

Authenticate your account by sending your API token as + a request header `X-Api-Token`.
The token can be found under My Profile + page.
A user must have an Admin role in the project in order to access + the project with his token.
API requests without authentication will + fail.

Base url: `https://api.localizely.com`

+ apiTitle: Localizely API + endpoints: 4 + sdkMethods: 4 + schemas: 5 + parameters: 22 + originalCustomRequest: + type: GET + url: https://api.localizely.com/api-docs + customRequestSpecFilename: localizely.com.yaml + difficultyScore: 12 diff --git a/sdks/db/processed-custom-request-cache/mambu.com_PaymentOrder.yaml b/sdks/db/processed-custom-request-cache/mambu.com_PaymentOrder.yaml new file mode 100644 index 0000000000..4876c1ab0d --- /dev/null +++ b/sdks/db/processed-custom-request-cache/mambu.com_PaymentOrder.yaml @@ -0,0 +1,15 @@ +processed: + securitySchemes: {} + apiBaseUrl: https://TENANT_NAME.mambu.com/api/v1 + apiVersion: v1.44.15 + apiDescription: Initiates payment orders. + apiTitle: Payment Order API + endpoints: 43 + sdkMethods: 46 + schemas: 86 + parameters: 208 + originalCustomRequest: + type: GET + url: https://api.mambu.com/payments-api/mambu-payments-api-spec-oas3.json + customRequestSpecFilename: mambu.com_PaymentOrder.yaml + difficultyScore: 141 diff --git a/sdks/db/progress/kombo-progress.yaml b/sdks/db/progress/kombo-progress.yaml new file mode 100644 index 0000000000..fc77947160 --- /dev/null +++ b/sdks/db/progress/kombo-progress.yaml @@ -0,0 +1,569 @@ +examples: {} +examples_2: {} +examples_3: {} +ignoreObjectsWithNoProperties: true +operationIds: + /assessment/orders/open: + get: UnifiedAtsAssessmentApi_getOpenOrders + /assessment/orders/{assessment_order_id}/result: + put: UnifiedAtsAssessmentApi_updateOrderResult + /assessment/packages: + get: UnifiedAtsAssessmentApi_getAssessmentPackages + put: UnifiedAtsAssessmentApi_replaceAssessmentPackages + /ats/application-stages: + get: UnifiedAtsApi_getApplicationStages + /ats/applications: + get: UnifiedAtsApi_getAllApplications + /ats/applications/{application_id}/attachments: + post: UnifiedAtsApi_addAttachmentToApplication + /ats/applications/{application_id}/notes: + post: UnifiedAtsApi_addNoteToApplication + /ats/applications/{application_id}/result-links: + post: UnifiedAtsApi_addResultLink + /ats/applications/{application_id}/stage: + put: UnifiedAtsApi_moveApplicationToStage + /ats/candidates: + get: UnifiedAtsApi_getAllCandidates + post: UnifiedAtsApi_createApplication + /ats/candidates/{candidate_id}: + patch: UnifiedAtsApi_updateCandidate + /ats/candidates/{candidate_id}/attachments: + post: UnifiedAtsApi_addAttachmentToCandidate + /ats/candidates/{candidate_id}/result-links: + post: UnifiedAtsApi_addResultLinkToCandidate + /ats/candidates/{candidate_id}/tags: + delete: UnifiedAtsApi_removeCandidateTag + post: UnifiedAtsApi_addCandidateTag + /ats/jobs: + get: UnifiedAtsApi_getJobs + /ats/jobs/{job_id}/applications: + post: UnifiedAtsApi_createApplicationCandidate + /ats/tags: + get: UnifiedAtsApi_listTags + /ats/users: + get: UnifiedAtsApi_getAllUsers + /check-api-key: + get: General_verifyApiKey + /connect/activate-integration: + post: KomboConnect_activateIntegration + /connect/create-link: + post: KomboConnect_generateLink + /connect/integration-by-token/{token}: + get: KomboConnect_getIntegrationByToken + /custom/datev/data-pushes: + get: CustomEndpoints_getDataPushes + /custom/datev/employees/{employee_id}/compensations: + put: CustomEndpoints_setDatevCompensations + /custom/datev/employees/{employee_id}/prepare-payroll: + put: CustomEndpoints_prepareDatevPayroll + /custom/datev/passthrough: + post: CustomEndpoints_writeDatevAsciiFile + /custom/datev/push-data/general: + post: CustomEndpoints_pushGeneralDataToDatev + /custom/datev/push-data/payroll: + post: CustomEndpoints_pushPayrollData + /custom/silae/employees/{employee_id}/payroll-supplements: + post: CustomEndpoints_writePayrollSupplement + /force-sync: + post: General_triggerSyncSpecificIntegration + /hris/absence-types: + get: UnifiedHrisApi_listAbsenceTypes + /hris/absences: + get: UnifiedHrisApi_getAllAbsences + post: UnifiedHrisApi_createAbsence + /hris/absences/{absence_id}: + delete: UnifiedHrisApi_deleteAbsenceById + /hris/employees: + get: UnifiedHrisApi_listEmployees + post: UnifiedHrisApi_createEmployee + /hris/employees/{employee_id}: + patch: UnifiedHrisApi_updateEmployee + /hris/employees/{employee_id}/attachments: + post: UnifiedHrisApi_addAttachmentToEmployees + /hris/employments: + get: UnifiedHrisApi_listEmployments + /hris/groups: + get: UnifiedHrisApi_getAllGroups + /hris/legal-entities: + get: UnifiedHrisApi_getAllLegalEntities + /hris/locations: + get: UnifiedHrisApi_getWorkLocations + /hris/provisioning-groups/{group_id}/diff: + post: UnifiedHrisApi_getProvisioningDiff + /hris/provisioning-groups/{group_id}/setup-links: + post: UnifiedHrisApi_createProvisioningSetupLink + /hris/teams: + get: UnifiedHrisApi_listTeams + /hris/time-off-balances: + get: UnifiedHrisApi_getTimeOffBalances + /integrations/{integration_id}: + delete: General_deleteIntegration + get: General_getIntegrationDetails + /integrations/{integration_id}/relink: + post: General_createReconnectionLink + /passthrough/{tool}/{api}: + post: General_forwardRequestToApi + /tools/{category}: + get: General_getToolsCategory +operationTags: {} +renameTags: {} +requestSchemaNames: {} +responseDescriptions: {} +responseSchemaNames: + /assessment/orders/{assessment_order_id}/result: + put: + '401': + application/json: UnifiedAtsAssessmentApiUpdateOrderResultResponse + '403': + application/json: UnifiedAtsAssessmentApiUpdateOrderResult403Response + '404': + application/json: UnifiedAtsAssessmentApiUpdateOrderResult404Response + '503': + application/json: UnifiedAtsAssessmentApiUpdateOrderResult503Response + /ats/application-stages: + get: + '401': + application/json: UnifiedAtsApiGetApplicationStagesResponse + '403': + application/json: UnifiedAtsApiGetApplicationStages403Response + '404': + application/json: UnifiedAtsApiGetApplicationStages404Response + '503': + application/json: UnifiedAtsApiGetApplicationStages503Response + /ats/applications: + get: + '401': + application/json: UnifiedAtsApiGetAllApplicationsResponse + '403': + application/json: UnifiedAtsApiGetAllApplications403Response + '404': + application/json: UnifiedAtsApiGetAllApplications404Response + '503': + application/json: UnifiedAtsApiGetAllApplications503Response + /ats/applications/{application_id}/attachments: + post: + '401': + application/json: UnifiedAtsApiAddAttachmentToApplicationResponse + '403': + application/json: UnifiedAtsApiAddAttachmentToApplication403Response + '404': + application/json: UnifiedAtsApiAddAttachmentToApplication404Response + '503': + application/json: UnifiedAtsApiAddAttachmentToApplication503Response + /ats/applications/{application_id}/notes: + post: + '401': + application/json: UnifiedAtsApiAddNoteToApplicationResponse + '403': + application/json: UnifiedAtsApiAddNoteToApplication403Response + '404': + application/json: UnifiedAtsApiAddNoteToApplication404Response + '503': + application/json: UnifiedAtsApiAddNoteToApplication503Response + /ats/applications/{application_id}/result-links: + post: + '401': + application/json: UnifiedAtsApiAddResultLinkResponse + '403': + application/json: UnifiedAtsApiAddResultLink403Response + '404': + application/json: UnifiedAtsApiAddResultLink404Response + '503': + application/json: UnifiedAtsApiAddResultLink503Response + /ats/applications/{application_id}/stage: + put: + '401': + application/json: UnifiedAtsApiMoveApplicationToStageResponse + '403': + application/json: UnifiedAtsApiMoveApplicationToStage403Response + '404': + application/json: UnifiedAtsApiMoveApplicationToStage404Response + '503': + application/json: UnifiedAtsApiMoveApplicationToStage503Response + /ats/candidates: + get: + '401': + application/json: UnifiedAtsApiGetAllCandidatesResponse + '403': + application/json: UnifiedAtsApiGetAllCandidates403Response + '404': + application/json: UnifiedAtsApiGetAllCandidates404Response + '503': + application/json: UnifiedAtsApiGetAllCandidates503Response + post: + '401': + application/json: UnifiedAtsApiCreateApplicationResponse + '403': + application/json: UnifiedAtsApiCreateApplication403Response + '404': + application/json: UnifiedAtsApiCreateApplication404Response + '503': + application/json: UnifiedAtsApiCreateApplication503Response + /ats/candidates/{candidate_id}/attachments: + post: + '401': + application/json: UnifiedAtsApiAddAttachmentToCandidateResponse + '403': + application/json: UnifiedAtsApiAddAttachmentToCandidate403Response + '404': + application/json: UnifiedAtsApiAddAttachmentToCandidate404Response + '503': + application/json: UnifiedAtsApiAddAttachmentToCandidate503Response + /ats/candidates/{candidate_id}/result-links: + post: + '401': + application/json: UnifiedAtsApiAddResultLinkToCandidateResponse + '403': + application/json: UnifiedAtsApiAddResultLinkToCandidate403Response + '404': + application/json: UnifiedAtsApiAddResultLinkToCandidate404Response + '503': + application/json: UnifiedAtsApiAddResultLinkToCandidate503Response + /ats/candidates/{candidate_id}/tags: + delete: + '401': + application/json: UnifiedAtsApiRemoveCandidateTagResponse + '403': + application/json: UnifiedAtsApiRemoveCandidateTag403Response + '404': + application/json: UnifiedAtsApiRemoveCandidateTag404Response + '503': + application/json: UnifiedAtsApiRemoveCandidateTag503Response + post: + '401': + application/json: UnifiedAtsApiAddCandidateTagResponse + '403': + application/json: UnifiedAtsApiAddCandidateTag403Response + '404': + application/json: UnifiedAtsApiAddCandidateTag404Response + '503': + application/json: UnifiedAtsApiAddCandidateTag503Response + /ats/jobs: + get: + '401': + application/json: UnifiedAtsApiGetJobsResponse + '403': + application/json: UnifiedAtsApiGetJobs403Response + '404': + application/json: UnifiedAtsApiGetJobs404Response + '503': + application/json: UnifiedAtsApiGetJobs503Response + /ats/jobs/{job_id}/applications: + post: + '401': + application/json: UnifiedAtsApiCreateApplicationCandidateResponse + '403': + application/json: UnifiedAtsApiCreateApplicationCandidate403Response + '404': + application/json: UnifiedAtsApiCreateApplicationCandidate404Response + '503': + application/json: UnifiedAtsApiCreateApplicationCandidate503Response + /ats/tags: + get: + '401': + application/json: UnifiedAtsApiListTagsResponse + '403': + application/json: UnifiedAtsApiListTags403Response + '404': + application/json: UnifiedAtsApiListTags404Response + '503': + application/json: UnifiedAtsApiListTags503Response + /ats/users: + get: + '401': + application/json: UnifiedAtsApiGetAllUsersResponse + '403': + application/json: UnifiedAtsApiGetAllUsers403Response + '404': + application/json: UnifiedAtsApiGetAllUsers404Response + '503': + application/json: UnifiedAtsApiGetAllUsers503Response + /custom/datev/data-pushes: + get: + '401': + application/json: CustomEndpointsGetDataPushesResponse + '403': + application/json: CustomEndpointsGetDataPushes403Response + '404': + application/json: CustomEndpointsGetDataPushes404Response + '503': + application/json: CustomEndpointsGetDataPushes503Response + /custom/datev/employees/{employee_id}/compensations: + put: + '401': + application/json: CustomEndpointsSetDatevCompensationsResponse + '403': + application/json: CustomEndpointsSetDatevCompensations403Response + '404': + application/json: CustomEndpointsSetDatevCompensations404Response + '503': + application/json: CustomEndpointsSetDatevCompensations503Response + /custom/datev/employees/{employee_id}/prepare-payroll: + put: + '401': + application/json: CustomEndpointsPrepareDatevPayrollResponse + '403': + application/json: CustomEndpointsPrepareDatevPayroll403Response + '404': + application/json: CustomEndpointsPrepareDatevPayroll404Response + '503': + application/json: CustomEndpointsPrepareDatevPayroll503Response + /custom/datev/passthrough: + post: + '401': + application/json: CustomEndpointsWriteDatevAsciiFileResponse + '403': + application/json: CustomEndpointsWriteDatevAsciiFile403Response + '404': + application/json: CustomEndpointsWriteDatevAsciiFile404Response + '503': + application/json: CustomEndpointsWriteDatevAsciiFile503Response + /custom/datev/push-data/general: + post: + '401': + application/json: CustomEndpointsPushGeneralDataToDatevResponse + '403': + application/json: CustomEndpointsPushGeneralDataToDatev403Response + '404': + application/json: CustomEndpointsPushGeneralDataToDatev404Response + '503': + application/json: CustomEndpointsPushGeneralDataToDatev503Response + /custom/datev/push-data/payroll: + post: + '401': + application/json: CustomEndpointsPushPayrollDataResponse + '403': + application/json: CustomEndpointsPushPayrollData403Response + '404': + application/json: CustomEndpointsPushPayrollData404Response + '503': + application/json: CustomEndpointsPushPayrollData503Response + /custom/silae/employees/{employee_id}/payroll-supplements: + post: + '401': + application/json: CustomEndpointsWritePayrollSupplementResponse + '403': + application/json: CustomEndpointsWritePayrollSupplement403Response + '404': + application/json: CustomEndpointsWritePayrollSupplement404Response + '503': + application/json: CustomEndpointsWritePayrollSupplement503Response + /force-sync: + post: + '401': + application/json: GeneralTriggerSyncSpecificIntegrationResponse + /hris/absence-types: + get: + '401': + application/json: UnifiedHrisApiListAbsenceTypesResponse + '403': + application/json: UnifiedHrisApiListAbsenceTypes403Response + '404': + application/json: UnifiedHrisApiListAbsenceTypes404Response + '503': + application/json: UnifiedHrisApiListAbsenceTypes503Response + /hris/absences: + get: + '401': + application/json: UnifiedHrisApiGetAllAbsencesResponse + '403': + application/json: UnifiedHrisApiGetAllAbsences403Response + '404': + application/json: UnifiedHrisApiGetAllAbsences404Response + '503': + application/json: UnifiedHrisApiGetAllAbsences503Response + post: + '401': + application/json: UnifiedHrisApiCreateAbsenceResponse + '403': + application/json: UnifiedHrisApiCreateAbsence403Response + '404': + application/json: UnifiedHrisApiCreateAbsence404Response + '503': + application/json: UnifiedHrisApiCreateAbsence503Response + /hris/absences/{absence_id}: + delete: + '401': + application/json: UnifiedHrisApiDeleteAbsenceByIdResponse + '403': + application/json: UnifiedHrisApiDeleteAbsenceById403Response + '404': + application/json: UnifiedHrisApiDeleteAbsenceById404Response + '503': + application/json: UnifiedHrisApiDeleteAbsenceById503Response + /hris/employees: + get: + '401': + application/json: UnifiedHrisApiListEmployeesResponse + '403': + application/json: UnifiedHrisApiListEmployees403Response + '404': + application/json: UnifiedHrisApiListEmployees404Response + '503': + application/json: UnifiedHrisApiListEmployees503Response + post: + '401': + application/json: UnifiedHrisApiCreateEmployeeResponse + '403': + application/json: UnifiedHrisApiCreateEmployee403Response + '404': + application/json: UnifiedHrisApiCreateEmployee404Response + '503': + application/json: UnifiedHrisApiCreateEmployee503Response + /hris/employees/{employee_id}: + patch: + '401': + application/json: UnifiedHrisApiUpdateEmployeeResponse + '403': + application/json: UnifiedHrisApiUpdateEmployee403Response + '404': + application/json: UnifiedHrisApiUpdateEmployee404Response + '503': + application/json: UnifiedHrisApiUpdateEmployee503Response + /hris/employments: + get: + '401': + application/json: UnifiedHrisApiListEmploymentsResponse + '403': + application/json: UnifiedHrisApiListEmployments403Response + '404': + application/json: UnifiedHrisApiListEmployments404Response + '503': + application/json: UnifiedHrisApiListEmployments503Response + /hris/groups: + get: + '401': + application/json: UnifiedHrisApiGetAllGroupsResponse + '403': + application/json: UnifiedHrisApiGetAllGroups403Response + '404': + application/json: UnifiedHrisApiGetAllGroups404Response + '503': + application/json: UnifiedHrisApiGetAllGroups503Response + /hris/legal-entities: + get: + '401': + application/json: UnifiedHrisApiGetAllLegalEntitiesResponse + '403': + application/json: UnifiedHrisApiGetAllLegalEntities403Response + '404': + application/json: UnifiedHrisApiGetAllLegalEntities404Response + '503': + application/json: UnifiedHrisApiGetAllLegalEntities503Response + /hris/locations: + get: + '401': + application/json: UnifiedHrisApiGetWorkLocationsResponse + '403': + application/json: UnifiedHrisApiGetWorkLocations403Response + '404': + application/json: UnifiedHrisApiGetWorkLocations404Response + '503': + application/json: UnifiedHrisApiGetWorkLocations503Response + /hris/provisioning-groups/{group_id}/setup-links: + post: + '401': + application/json: UnifiedHrisApiCreateProvisioningSetupLinkResponse + /hris/teams: + get: + '401': + application/json: UnifiedHrisApiListTeamsResponse + '403': + application/json: UnifiedHrisApiListTeams403Response + '404': + application/json: UnifiedHrisApiListTeams404Response + '503': + application/json: UnifiedHrisApiListTeams503Response + /hris/time-off-balances: + get: + '401': + application/json: UnifiedHrisApiGetTimeOffBalancesResponse + '403': + application/json: UnifiedHrisApiGetTimeOffBalances403Response + '404': + application/json: UnifiedHrisApiGetTimeOffBalances404Response + '503': + application/json: UnifiedHrisApiGetTimeOffBalances503Response + /integrations/{integration_id}: + delete: + '401': + application/json: GeneralDeleteIntegrationResponse + get: + '401': + application/json: GeneralGetIntegrationDetailsResponse + /integrations/{integration_id}/relink: + post: + '401': + application/json: GeneralCreateReconnectionLinkResponse + /passthrough/{tool}/{api}: + post: + '401': + application/json: GeneralForwardRequestToApiResponse + '403': + application/json: GeneralForwardRequestToApi403Response + '404': + application/json: GeneralForwardRequestToApi404Response + '503': + application/json: GeneralForwardRequestToApi503Response +securityParameters: + X-Integration-Id: + header: false + cursor: + query: false + date_from: + query: false + date_until: + query: false + email: + query: false + employee_id: + query: false + employment_status: + query: false + employment_statuses: + query: false + group_ids: + query: false + ids: + query: false + include_deleted: + query: false + job_codes: + query: false + legal_entity_ids: + query: false + name_contains: + query: false + outcome: + query: false + outcomes: + query: false + page_size: + query: false + personal_emails: + query: false + post_url: + query: false + remote_created_after: + query: false + remote_ids: + query: false + status: + query: false + statuses: + query: false + time_from: + query: false + time_until: + query: false + type_ids: + query: false + updated_after: + query: false + visibilities: + query: false + work_emails: + query: false + work_location_ids: + query: false +validServerUrls: {} diff --git a/sdks/db/progress/localizely-progress.yaml b/sdks/db/progress/localizely-progress.yaml new file mode 100644 index 0000000000..37523bc84e --- /dev/null +++ b/sdks/db/progress/localizely-progress.yaml @@ -0,0 +1,50 @@ +examples: {} +examples_2: {} +examples_3: {} +operationIds: + /v1/projects/{project_id}/branches/{branch}: + post: BranchApi_createNewBranch + /v1/projects/{project_id}/files/download: + get: DownloadApi_translationsDownload + /v1/projects/{project_id}/files/upload: + post: UploadApi_languageTranslationsUpload + /v1/projects/{project_id}/status: + get: TranslationStatusApi_getProjectStatus +operationTags: {} +renameTags: {} +requestSchemaNames: + /v1/projects/{project_id}/files/upload: + post: + multipart/form-data: UploadApiLanguageTranslationsUploadRequest +responseDescriptions: {} +responseSchemaNames: {} +securityParameters: + branch: + query: false + exclude_tags: + query: false + export_empty_as: + query: false + include_tags: + query: false + java_properties_encoding: + query: false + lang_code: + query: false + lang_codes: + query: false + overwrite: + query: false + reviewed: + query: false + source_branch: + query: false + tag_added: + query: false + tag_removed: + query: false + tag_updated: + query: false + type: + query: false +validServerUrls: {} diff --git a/sdks/db/progress/mambu-payments-progress.yaml b/sdks/db/progress/mambu-payments-progress.yaml new file mode 100644 index 0000000000..8ab6f484c1 --- /dev/null +++ b/sdks/db/progress/mambu-payments-progress.yaml @@ -0,0 +1,191 @@ +examples: {} +examples_2: {} +examples_3: + /collections/{collectionId}: + get: + default: + application/json: {} + /log: + post: + default: + application/json: {} + /payments/credit-transfers: + post: + default: + application/json: {} + /payments/credit-transfers/{paymentId}: + get: + default: + application/json: {} + /payments/financial-institution-credit-transfers: + post: + default: + application/json: {} + /payments/{paymentId}: + get: + default: + application/json: {} +ignoreObjectsWithNoProperties: true +operationIds: + /accounts/identifications: + put: ExternalAccountRepresentation_associateIban + /accounts/identifications:mask: + post: ExternalAccountRepresentation_maskIdentifications + /accounts/identifications:search: + post: ExternalAccountRepresentation_searchIdentifications + /accounts/{accountId}/blocking-rules: + delete: SepaDirectDebit_removeBlockingRules + post: SepaDirectDebit_addBlockingRule + /accounts/{accountId}/identifications: + get: ExternalAccountRepresentation_getIdentifications + post: ExternalAccountRepresentation_addIdentificationAssociation + /aml:resendCallouts: + post: Aml_resendCalloutsOperation + /collections: + post: SepaDirectDebit_createCollectionInitiationRequest + /collections/aml: + post: Aml_submitAmlCheckResults + /collections/{collectionId}: + get: SepaDirectDebit_getCollectionDetails + /collections/{collectionId}/aml:resendCallout: + post: Aml_resendCallout + /collections/{collectionId}:refund: + post: SepaDirectDebit_refundCollectionInstruction + /collections/{collectionId}:reverse: + post: SepaDirectDebit_reverseCollectionInstruction + /collections/{collectionOrderId}:reject: + post: SepaDirectDebit_manuallyRejectCollection + /collections/{collectionOrderId}:rejectIncoming: + post: SepaDirectDebit_manuallyRejectCollection + /inquiries:acceptStatusUpdateOnRecall: + post: SepaCreditTransferInquiries_acceptStatusUpdateOnRecall + /inquiries:claimNonReceipt: + post: SepaCreditTransferInquiries_createNonReceiptInquiry + /inquiries:claimValueDateCorrection: + post: SepaCreditTransferInquiries_requestValueDateChange + /inquiries:rejectStatusUpdateOnRecall: + post: SepaCreditTransferInquiries_handleNegativeStatusUpdateOnRecall + /inquiries:requestStatusUpdateOnInquiry: + post: SepaCreditTransferInquiries_createStatusUpdateRequest + /inquiries:requestStatusUpdateOnRecall: + post: SepaCreditTransferInquiries_requestStatusUpdate + /inquiries:skipStatusUpdateOnRecall: + post: SepaCreditTransferInquiries_skipRecallStatusUpdate + /instructions: + get: SearchMessages_details + /log: + post: ExternalAccountRepresentation_createOrUpdateLog + /payments: + post: SepaCreditTransfers_createPaymentRequest + /payments/aml: + post: Aml_submitAmlCheckResult + /payments/credit-transfers: + post: SepaCreditTransfers_createRequest + /payments/credit-transfers/{paymentId}: + get: SepaCreditTransfers_getPaymentDetails + /payments/financial-institution-credit-transfers: + post: CreditTransfer_submitPaymentRequest + /payments/incoming: + post: IncomingMessages_createRequest + /payments/standing-orders: + post: StandingOrder_createStandingOrderRequest + /payments/standing-orders/{id}: + delete: StandingOrder_cancel + get: StandingOrder_getInformation + /payments/standing-orders/{id}/executions: + get: StandingOrder_listExecutions + /payments/standing-orders:search: + post: StandingOrder_searchByFilters + /payments/standing-orders:suspend: + post: StandingOrder_suspendRequest + /payments/{paymentId}: + get: SepaCreditTransfers_getPaymentDetails + /payments/{paymentOrderId}/aml:resendCallout: + post: Aml_resendCallout + /payments/{paymentOrderId}:approveIncomingRecall: + post: SepaCreditTransfers_approveIncomingRecall + /payments/{paymentOrderId}:approveOutgoingRecall: + post: SepaCreditTransfers_approveOutgoingRecallAction + /payments/{paymentOrderId}:denyIncomingRecall: + post: SepaCreditTransfers_denyIncomingRecallAction + /payments/{paymentOrderId}:denyOutgoingRecall: + post: SepaCreditTransfers_denyOutgoingRecallAction + /payments/{paymentOrderId}:recall: + post: SepaCreditTransfers_recallPaymentRequest + /payments/{paymentOrderId}:reject: + post: SepaCreditTransfers_manuallyRejectPayment + /payments:settleInstantPayment: + post: SepaCreditTransfers_acceptInstantPaymentSettlement +operationTags: + /payments/financial-institution-credit-transfers: + post: CreditTransfer +renameTags: {} +requestSchemaNames: + /payments/incoming: + post: + application/xml: IncomingMessagesCreateRequestRequest + text/plain: IncomingMessagesCreateRequestRequest1 +responseDescriptions: {} +responseSchemaNames: + /accounts/identifications:search: + post: + '200': + application/json: ExternalAccountRepresentationSearchIdentificationsResponse + /accounts/{accountId}/identifications: + get: + '200': + application/json: ExternalAccountRepresentationGetIdentificationsResponse + /collections/aml: + post: + '200': + '*/*': AmlSubmitAmlCheckResultsResponse + '503': + '*/*': AmlSubmitAmlCheckResults503Response + /collections/{collectionId}: + get: + default: + application/json: SepaDirectDebitGetCollectionDetailsResponse + /log: + post: + default: + application/json: ExternalAccountRepresentationCreateOrUpdateLogResponse + /payments/aml: + post: + '200': + '*/*': AmlSubmitAmlCheckResultResponse + '503': + '*/*': AmlSubmitAmlCheckResult503Response + /payments/credit-transfers: + post: + default: + application/json: SepaCreditTransfersCreateRequestResponse + /payments/credit-transfers/{paymentId}: + get: + default: + application/json: SepaCreditTransfersGetPaymentDetailsResponse + /payments/financial-institution-credit-transfers: + post: + default: + application/json: CreditTransferSubmitPaymentRequestResponse + /payments/{paymentId}: + get: + default: + application/json: SepaCreditTransfersGetPaymentDetailsdefaultResponse +securityParameters: + ApiKey: + header: false + Idempotency-Key: + header: false + X-Payment-Scheme: + header: false + X-Request-ID: + header: false + detailsLevel: + query: false + limit: + query: false + offset: + query: false + sepaMessageFilter: + query: false +validServerUrls: {} diff --git a/sdks/db/published/from-custom-request_inmobile.com.json b/sdks/db/published/from-custom-request_inmobile.com.json index 6f77212e39..fa8c34b545 100644 --- a/sdks/db/published/from-custom-request_inmobile.com.json +++ b/sdks/db/published/from-custom-request_inmobile.com.json @@ -30,7 +30,7 @@ "company": "inMobile", "sdkName": "in-mobile-{language}-sdk", "clientName": "InMobile", - "metaDescription": "inMobile er en SMS-Gateway testet af over 8.000 brugere. Vi håndterer over 150 mio. SMS-beskeder årligt og tilstræber en oppetid på 100%, men sandheden er 99,99%. \n\nUanset, om det drejer sig om at informere dine kunder, medarbejdere eller andre personer, som er vigtige for din virksomhed, gør inMobile det nemt for de rette personer at få besked på det rette tidspunkt. \n\nDu får adgang til en brugervenlig SMS-Gateway og et gennemtestet API, som du nemt kan integrere med dit eget system eller hjemmeside.\n\nØnsker du at høre mere om vores løsning, er du velkommen til at kontakte os på +45 88 33 66 99 eller på mail salg@inmobile.dk\nVi har åbent alle hverdage mellem kl. 8-17", + "metaDescription": "inMobile er en SMS-Gateway testet af over 8.000 brugere. Vi håndterer over 150 mio. SMS-beskeder årligt og tilstræber en oppetid på 100%, men sandheden er 99,99%.\n\nUanset, om det drejer sig om at informere dine kunder, medarbejdere eller andre personer, som er vigtige for din virksomhed, gør inMobile det nemt for de rette personer at få besked på det rette tidspunkt.\n\nDu får adgang til en brugervenlig SMS-Gateway og et gennemtestet API, som du nemt kan integrere med dit eget system eller hjemmeside.\n\nØnsker du at høre mere om vores løsning, er du velkommen til at kontakte os på +45 88 33 66 99 eller på mail salg@inmobile.dk\nVi har åbent alle hverdage mellem kl. 8-17", "apiStatusUrls": "inherit", "homepage": "inmobile.com", "developerDocumentation": "www.inmobile.com/docs/rest-api", @@ -1555,14 +1555,14 @@ ] } ], - "repositoryDescription": "SMS-Gateway that handles 150M+ messages annually with 99.99% uptime. Easy communication for customers and employees. User-friendly gateway and API for seamless integration. inMobile's {language} SDK generated by Konfig (https://konfigthis.com/).", + "repositoryDescription": "inMobile is an SMS-Gateway handling over 150 million SMS messages annually with a 99.99% uptime guarantee. Easily inform customers, employees, and important contacts. Access user-friendly gateway and API for seamless integration. Contact us for more information. inMobile's {language} SDK generated by Konfig (https://konfigthis.com/).", "logo": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/inmobile/logo.png", "openApiRaw": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/inmobile/openapi.yaml", "openApiGitHubUi": "https://github.com/konfig-sdks/openapi-examples/tree/HEAD/inmobile/openapi.yaml", "previewLinkImage": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/inmobile/imagePreview.png", "faviconUrl": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/inmobile/favicon.jpg", "clientNameCamelCase": "inMobile", - "lastUpdated": "2024-03-29T22:11:39.095Z", + "lastUpdated": "2024-03-29T22:25:17.346Z", "typescriptSdkUsageCode": "import { InMobile } from 'in-mobile-typescript-sdk';\n\nconst inMobile = new InMobile({\n // Provide Basic Authentiation with an arbitrary username and your api key as password, e.g. some_value_to_be_ignored:your_api_key_here\n username: \"USERNAME\",\n password: \"PASSWORD\",\n // Specify your apikey in the url as https://api.inmobile.com/some/path?apikey=your_api_key_here. This method is only recommended if basic authorization is not possible.\n queryParameter: \"APIKEY\"\n})", "typescriptSdkFirstRequestCode": "// Returns all blacklists (Paged result. Follow _links.next to fetch all)\nconst getAllResponse = inMobile.blacklist.getAll()", "fixedSpecFileName": "in-mobile-fixed-spec.yaml" diff --git a/sdks/db/published/from-custom-request_kombo.dev.json b/sdks/db/published/from-custom-request_kombo.dev.json new file mode 100644 index 0000000000..85850083ec --- /dev/null +++ b/sdks/db/published/from-custom-request_kombo.dev.json @@ -0,0 +1,2987 @@ +{ + "securitySchemes": { + "ApiKey": { + "type": "http", + "scheme": "bearer", + "description": "Create an API key on the [Secrets](https://app.kombo.dev/secrets) page in the Kombo dashboard." + } + }, + "apiBaseUrl": "https://api.kombo.dev/v1", + "apiVersion": "1.0.0", + "apiTitle": "Kombo API", + "endpoints": 48, + "sdkMethods": 54, + "schemas": 439, + "parameters": 188, + "originalCustomRequest": { + "type": "GET", + "url": "https://api.kombo.dev/openapi.json" + }, + "customRequestSpecFilename": "kombo.dev.yaml", + "difficultyScore": 242, + "difficulty": "Hard", + "company": "Kombo", + "sdkName": "kombo-{language}-sdk", + "clientName": "Kombo", + "metaDescription": "Kombo is changing how B2B SaaS companies provide HR integrations to their customers. Instead of having to build and maintain many APIs themselves, Kombos customers can integrate with Kombo's API once and offer dozens of APIs to their customers instantly.", + "apiStatusUrls": "inherit", + "homepage": "kombo.dev", + "developerDocumentation": "docs.kombo.dev", + "categories": [ + "integrations", + "ats", + "hris", + "payroll" + ], + "category": "AI Tools", + "apiDescription": "Kombo is changing how B2B SaaS companies provide HR integrations to their customers. Instead of having to build and maintain many APIs themselves, Kombos customers can integrate with Kombo's API once and offer dozens of APIs to their customers instantly.", + "methods": [ + { + "url": "/check-api-key", + "method": "verifyApiKey", + "httpMethod": "get", + "tag": "General", + "typeScriptTag": "general", + "description": "Check API key", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/force-sync", + "method": "triggerSyncSpecificIntegration", + "httpMethod": "post", + "tag": "General", + "typeScriptTag": "general", + "description": "Trigger sync", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "workday:HWUTwvyx2wLoSUHphiWVrp28" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + } + ] + }, + { + "url": "/passthrough/{tool}/{api}", + "method": "forwardRequestToApi", + "httpMethod": "post", + "tag": "General", + "typeScriptTag": "general", + "description": "Send passthrough request", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "greenhouse:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "tool", + "schema": "string", + "required": true, + "description": "The ID of the tool whose passthrough API you want to call (e.g., `personio`).", + "example": "TOOL" + }, + { + "name": "api", + "schema": "string", + "required": true, + "description": "The ID of the passthrough API you want to call (some tools provide multiple). Check the endpoint description for a list of all available APIs.", + "example": "API" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/integrations/{integration_id}", + "method": "deleteIntegration", + "httpMethod": "delete", + "tag": "General", + "typeScriptTag": "general", + "description": "Delete integration", + "parameters": [ + { + "name": "integrationId", + "schema": "string", + "required": true, + "description": "DELETE /integrations/:integration_id parameter", + "example": "INTEGRATION_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + } + ] + }, + { + "url": "/integrations/{integration_id}", + "method": "getIntegrationDetails", + "httpMethod": "get", + "tag": "General", + "typeScriptTag": "general", + "description": "Get integration details", + "parameters": [ + { + "name": "integrationId", + "schema": "string", + "required": true, + "description": "GET /integrations/:integration_id parameter", + "example": "INTEGRATION_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + } + ] + }, + { + "url": "/integrations/{integration_id}/relink", + "method": "createReconnectionLink", + "httpMethod": "post", + "tag": "General", + "typeScriptTag": "general", + "description": "Create reconnection link", + "parameters": [ + { + "name": "integrationId", + "schema": "string", + "required": true, + "description": "POST /integrations/:integration_id/relink parameter", + "example": "INTEGRATION_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + } + ] + }, + { + "url": "/tools/{category}", + "method": "getToolsCategory", + "httpMethod": "get", + "tag": "General", + "typeScriptTag": "general", + "description": "Get tools", + "parameters": [ + { + "name": "category", + "schema": "string", + "required": true, + "description": "GET /tools/:category parameter", + "example": "CATEGORY" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/hris/provisioning-groups/{group_id}/diff", + "method": "getProvisioningDiff", + "httpMethod": "post", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Get provisioning diff", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "groupId", + "schema": "string", + "required": true, + "description": "ID of the provisioning group (currently only `default` is allowed).", + "example": "GROUP_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/hris/provisioning-groups/{group_id}/setup-links", + "method": "createProvisioningSetupLink", + "httpMethod": "post", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Create provisioning setup link", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "groupId", + "schema": "string", + "required": true, + "description": "ID of the provisioning group (currently only `default` is allowed).", + "example": "GROUP_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + } + ] + }, + { + "url": "/hris/employees", + "method": "listEmployees", + "httpMethod": "get", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Get employees", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + }, + { + "name": "employmentStatus", + "schema": "string", + "required": false, + "description": "**(⚠️ Deprecated - Use the `employment_statuses` filter instead.)** Filter by the `employment_status` field." + }, + { + "name": "employmentStatuses", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of `ACTIVE`, `PENDING`, `INACTIVE`, `LEAVE` \n* `ACTIVE`: the employee is **actively employed** \n* `PENDING`: the employee is **not actively employed yet** (but they signed their contract or are part of an onboarding process) \n* `INACTIVE`: a full-time employee is no longer employed, or, for a contract worker when their contract runs out \n* `LEAVE`: the employee is still employed but **currently on leave** (note that not all HR systems support this status — use our absences API for detailed information) \n \n\nLeave this blank to get results matching all values." + }, + { + "name": "groupIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of group IDs. We will only return employees that are members of _any_ of the groups." + }, + { + "name": "legalEntityIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of legal entity IDs. We will only return employees that are members of _any_ of the legal entities." + }, + { + "name": "workLocationIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of work location IDs. We will only return employees who are at _any_ of the work locations." + }, + { + "name": "workEmails", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of work emails. We will only return employees who have _any_ of the work emails." + }, + { + "name": "personalEmails", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of personal emails. We will only return employees who have _any_ of the personal emails." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/employees", + "method": "createEmployee", + "httpMethod": "post", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Create employee", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/employees/{employee_id}", + "method": "updateEmployee", + "httpMethod": "patch", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Update employee", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "employeeId", + "schema": "string", + "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`)", + "example": "EMPLOYEE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/employees/{employee_id}/attachments", + "method": "addAttachmentToEmployees", + "httpMethod": "post", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Add attachment to employees 🦄", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "employeeId", + "schema": "string", + "required": true, + "description": "POST /hris/employees/:employee_id/attachments parameter", + "example": "EMPLOYEE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/hris/teams", + "method": "listTeams", + "httpMethod": "get", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Get teams (https://docs.kombo.dev", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/groups", + "method": "getAllGroups", + "httpMethod": "get", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Get groups", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/employments", + "method": "listEmployments", + "httpMethod": "get", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Get employments", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/locations", + "method": "getWorkLocations", + "httpMethod": "get", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Get work locations", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/absence-types", + "method": "listAbsenceTypes", + "httpMethod": "get", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Get absence types", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/time-off-balances", + "method": "getTimeOffBalances", + "httpMethod": "get", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Get time off balances", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + }, + { + "name": "employeeId", + "schema": "string", + "required": false, + "description": "Filter by a specific employee using their ID." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/absences", + "method": "getAllAbsences", + "httpMethod": "get", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Get absences", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + }, + { + "name": "dateFrom", + "schema": "string", + "required": false, + "description": "Filter for all the absences that either start _or_ haven't ended yet on/after this day. If you imagine a calendar displaying absences, this defines the left-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded." + }, + { + "name": "dateUntil", + "schema": "string", + "required": false, + "description": "Filter for absences that start on or before this day (but might continue after). If you imagine a calendar displaying absences, this defines the right-most visible day. This is a plain date (i.e., `yyyy-MM-dd`), all time information is discarded." + }, + { + "name": "typeIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of absence type IDs." + }, + { + "name": "employeeId", + "schema": "string", + "required": false, + "description": "Filter by a specific employee using their ID." + }, + { + "name": "timeFrom", + "schema": "string", + "required": false, + "description": "**(⚠️ Deprecated - Use the `date_from` filter instead.)** Filter for absences that either start after or start before and end after a certain time." + }, + { + "name": "timeUntil", + "schema": "string", + "required": false, + "description": "**(⚠️ Deprecated - Use the `date_until` filter instead.)** Filter for absences that start before a certain time." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/absences", + "method": "createAbsence", + "httpMethod": "post", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Create absence", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/absences/{absence_id}", + "method": "deleteAbsenceById", + "httpMethod": "delete", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Delete absence", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "absenceId", + "schema": "string", + "required": true, + "description": "The ID of the absence", + "example": "ABSENCE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/hris/legal-entities", + "method": "getAllLegalEntities", + "httpMethod": "get", + "tag": "Unified HRIS API", + "typeScriptTag": "unifiedHrisApi", + "description": "Get legal entities", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "bamboohr:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/applications", + "method": "getAllApplications", + "httpMethod": "get", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Get applications", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + }, + { + "name": "outcome", + "schema": "string", + "required": false, + "description": "**(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter applications by outcome. This allows you to get applications that are for example `PENDING`, `HIRED`, or `DECLINED`." + }, + { + "name": "outcomes", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` \n* `PENDING`: The application is still being processed. \n* `HIRED`: The candidate was hired. \n* `DECLINED`: The candidate was declined. \n \n\nLeave this blank to get results matching all values." + }, + { + "name": "remoteCreatedAfter", + "schema": "string", + "required": false, + "description": "Filter applications by the day they were created in the remote system. This allows you to get applications that were created on or after a certain day." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/applications/{application_id}/stage", + "method": "moveApplicationToStage", + "httpMethod": "put", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Move application to stage", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "PUT /ats/applications/:application_id/stage parameter", + "example": "APPLICATION_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/applications/{application_id}/result-links", + "method": "addResultLink", + "httpMethod": "post", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Add result link to application", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "Kombo ID of the application you want to create the link for.", + "example": "APPLICATION_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/applications/{application_id}/notes", + "method": "addNoteToApplication", + "httpMethod": "post", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Add note to application", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "Kombo ID of the application you want to create the note for.", + "example": "APPLICATION_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/applications/{application_id}/attachments", + "method": "addAttachmentToApplication", + "httpMethod": "post", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Add attachment to application", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "POST /ats/applications/:application_id/attachments parameter", + "example": "APPLICATION_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/candidates", + "method": "getAllCandidates", + "httpMethod": "get", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Get candidates", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + }, + { + "name": "email", + "schema": "string", + "required": false, + "description": "Filter the candidates based on an email address. When set, returns only the candidates where the given `email` is in `email_addresses`. " + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/candidates", + "method": "createApplication", + "httpMethod": "post", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Create candidate", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/candidates/{candidate_id}", + "method": "updateCandidate", + "httpMethod": "patch", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Update candidate 🦄", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "candidateId", + "schema": "string", + "required": true, + "description": "PATCH /ats/candidates/:candidate_id parameter", + "example": "CANDIDATE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/ats/candidates/{candidate_id}/attachments", + "method": "addAttachmentToCandidate", + "httpMethod": "post", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Add attachment to candidate", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "candidateId", + "schema": "string", + "required": true, + "description": "POST /ats/candidates/:candidate_id/attachments parameter", + "example": "CANDIDATE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/candidates/{candidate_id}/result-links", + "method": "addResultLinkToCandidate", + "httpMethod": "post", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Add result link to candidate", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "candidateId", + "schema": "string", + "required": true, + "description": "Kombo ID of the candidate you want to create the link for.", + "example": "CANDIDATE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/candidates/{candidate_id}/tags", + "method": "removeCandidateTag", + "httpMethod": "delete", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Remove tag from candidate", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "candidateId", + "schema": "string", + "required": true, + "description": "Kombo ID of the candidate you want to remove the tag from.", + "example": "CANDIDATE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/candidates/{candidate_id}/tags", + "method": "addCandidateTag", + "httpMethod": "post", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Add tag to candidate", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "candidateId", + "schema": "string", + "required": true, + "description": "Kombo ID of the candidate you want to add the tag to.", + "example": "CANDIDATE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/tags", + "method": "listTags", + "httpMethod": "get", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Get tags", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/application-stages", + "method": "getApplicationStages", + "httpMethod": "get", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Get application stages", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/jobs", + "method": "getJobs", + "httpMethod": "get", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Get jobs", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + }, + { + "name": "jobCodes", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of job codes." + }, + { + "name": "postUrl", + "schema": "string", + "required": false, + "description": "Filter by the `post_url` field. Can be used to find a job based on its public posting URL." + }, + { + "name": "status", + "schema": "string", + "required": false, + "description": "**(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by the `status` field. Can be used to find a job based on its status." + }, + { + "name": "statuses", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, `ARCHIVED` \n\nLeave this blank to get results matching all values." + }, + { + "name": "visibilities", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, `UNLISTED`, `CONFIDENTIAL` \n\nLeave this blank to get results matching all values." + }, + { + "name": "nameContains", + "schema": "string", + "required": false, + "description": "Filter by the `name` field. Can be used to find a job by keywords present in the job name." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/jobs/{job_id}/applications", + "method": "createApplicationCandidate", + "httpMethod": "post", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Create application", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "jobId", + "schema": "string", + "required": true, + "description": "Kombo ID or Remote ID of the Job this candidate should apply for. If you want to use the ID of the integrated system (https://docs.kombo.dev you need to prefix the id with \"remote:\". You can use the remote ID if you do not want to sync jobs.", + "example": "JOB_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/ats/users", + "method": "getAllUsers", + "httpMethod": "get", + "tag": "Unified ATS API", + "typeScriptTag": "unifiedAtsApi", + "description": "Get users", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "join:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + }, + { + "name": "updatedAfter", + "schema": "string", + "required": false, + "description": "Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden." + }, + { + "name": "includeDeleted", + "schema": "string", + "required": false, + "description": "By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.", + "default": "false" + }, + { + "name": "ids", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. Those IDs are validated to be 24 characters long and to exist for this integration in the database. If any of the IDs are don't exist, the endpoint will return a 404 error." + }, + { + "name": "remoteIds", + "schema": "string", + "required": false, + "description": "Filter by a comma-separated list of remote IDs." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/assessment/packages", + "method": "getAssessmentPackages", + "httpMethod": "get", + "tag": "Unified ATS (https://docs.kombo.dev API", + "typeScriptTag": "unifiedAtsHttps:DocsKomboDevApi", + "description": "Get packages", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "recruitee:HWUTwvyx2wLoSUHphiWVrp28" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/assessment/packages", + "method": "replaceAssessmentPackages", + "httpMethod": "put", + "tag": "Unified ATS (https://docs.kombo.dev API", + "typeScriptTag": "unifiedAtsHttps:DocsKomboDevApi", + "description": "Set packages", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "recruitee:HWUTwvyx2wLoSUHphiWVrp28" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/assessment/orders/open", + "method": "getOpenOrders", + "httpMethod": "get", + "tag": "Unified ATS (https://docs.kombo.dev API", + "typeScriptTag": "unifiedAtsHttps:DocsKomboDevApi", + "description": "Get open orders", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "recruitee:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response." + }, + { + "name": "pageSize", + "schema": "integer", + "required": false, + "description": "The number of results to return per page.", + "default": 100 + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/assessment/orders/{assessment_order_id}/result", + "method": "updateOrderResult", + "httpMethod": "put", + "tag": "Unified ATS (https://docs.kombo.dev API", + "typeScriptTag": "unifiedAtsHttps:DocsKomboDevApi", + "description": "Update order result", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "recruitee:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "assessmentOrderId", + "schema": "string", + "required": true, + "description": "PUT /assessment/orders/:assessment_order_id/result parameter", + "example": "ASSESSMENT_ORDER_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/connect/create-link", + "method": "generateLink", + "httpMethod": "post", + "tag": "Kombo Connect", + "typeScriptTag": "komboConnect", + "description": "Create connection link", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/connect/integration-by-token/{token}", + "method": "getIntegrationByToken", + "httpMethod": "get", + "tag": "Kombo Connect", + "typeScriptTag": "komboConnect", + "description": "Get integration by token", + "parameters": [ + { + "name": "token", + "schema": "string", + "required": true, + "description": "GET /connect/integration-by-token/:token parameter", + "example": "TOKEN" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/connect/activate-integration", + "method": "activateIntegration", + "httpMethod": "post", + "tag": "Kombo Connect", + "typeScriptTag": "komboConnect", + "description": "Activate integration (https://docs.kombo.dev", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + } + ] + }, + { + "url": "/custom/datev/passthrough", + "method": "writeDatevAsciiFile", + "httpMethod": "post", + "tag": "Custom Endpoints", + "typeScriptTag": "customEndpoints", + "description": "Write raw DATEV ASCII file", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "datev:HWUTwvyx2wLoSUHphiWVrp28" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/custom/datev/employees/{employee_id}/prepare-payroll", + "method": "prepareDatevPayroll", + "httpMethod": "put", + "tag": "Custom Endpoints", + "typeScriptTag": "customEndpoints", + "description": "Prepare DATEV Payroll", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "datev:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "employeeId", + "schema": "string", + "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`)", + "example": "EMPLOYEE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/custom/datev/employees/{employee_id}/compensations", + "method": "setDatevCompensations", + "httpMethod": "put", + "tag": "Custom Endpoints", + "typeScriptTag": "customEndpoints", + "description": "Set DATEV compensations", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "datev:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "employeeId", + "schema": "string", + "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`)", + "example": "EMPLOYEE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/custom/datev/data-pushes", + "method": "getDataPushes", + "httpMethod": "get", + "tag": "Custom Endpoints", + "typeScriptTag": "customEndpoints", + "description": "Get DATEV data pushes", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "datev:HWUTwvyx2wLoSUHphiWVrp28" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/custom/datev/push-data/general", + "method": "pushGeneralDataToDatev", + "httpMethod": "post", + "tag": "Custom Endpoints", + "typeScriptTag": "customEndpoints", + "description": "Push general data to DATEV", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "datev:HWUTwvyx2wLoSUHphiWVrp28" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/custom/datev/push-data/payroll", + "method": "pushPayrollData", + "httpMethod": "post", + "tag": "Custom Endpoints", + "typeScriptTag": "customEndpoints", + "description": "Push payroll data to DATEV", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "datev:HWUTwvyx2wLoSUHphiWVrp28" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/custom/silae/employees/{employee_id}/payroll-supplements", + "method": "writePayrollSupplement", + "httpMethod": "post", + "tag": "Custom Endpoints", + "typeScriptTag": "customEndpoints", + "description": "Write Payroll Supplement", + "parameters": [ + { + "name": "xIntegrationId", + "schema": "string", + "required": true, + "description": "ID of the integration you want to interact with.", + "example": "silae:HWUTwvyx2wLoSUHphiWVrp28" + }, + { + "name": "employeeId", + "schema": "string", + "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`)", + "example": "EMPLOYEE_ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "401", + "description": "" + }, + { + "statusCode": "403", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + } + ], + "repositoryDescription": "Kombo is changing how B2B SaaS companies provide HR integrations to their customers. Instead of having to build and maintain many APIs themselves, Kombos customers can integrate with Kombo's API once and offer dozens of APIs to their customers instantly. Kombo's {language} SDK generated by Konfig (https://konfigthis.com/).", + "logo": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/kombo/logo.png", + "openApiRaw": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/kombo/openapi.yaml", + "openApiGitHubUi": "https://github.com/konfig-sdks/openapi-examples/tree/HEAD/kombo/openapi.yaml", + "previewLinkImage": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/kombo/imagePreview.png", + "faviconUrl": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/kombo/favicon.png", + "clientNameCamelCase": "kombo", + "lastUpdated": "2024-03-29T22:25:17.346Z", + "typescriptSdkUsageCode": "import { Kombo } from 'kombo-typescript-sdk';\n\nconst kombo = new Kombo({\n // Create an API key on the [Secrets](https://app.kombo.dev/secrets) page in the Kombo dashboard.\n apiKey: \"API_KEY\"\n})", + "typescriptSdkFirstRequestCode": "// Check API key\nconst verifyApiKeyResponse = kombo.general.verifyApiKey()", + "fixedSpecFileName": "kombo-fixed-spec.yaml" +} \ No newline at end of file diff --git a/sdks/db/published/from-custom-request_localizely.com.json b/sdks/db/published/from-custom-request_localizely.com.json new file mode 100644 index 0000000000..5b719304f7 --- /dev/null +++ b/sdks/db/published/from-custom-request_localizely.com.json @@ -0,0 +1,289 @@ +{ + "securitySchemes": { + "API auth": { + "type": "apiKey", + "name": "X-Api-Token", + "in": "header" + } + }, + "apiBaseUrl": "https://api.localizely.com", + "apiVersion": "1.2.1", + "apiDescription": "

Getting started

Localizely API is built on REST.
You can use this API for importing & exporting your localization files in order to automate the process with `curl` scripts or external CI tools.
Response is returned in JSON form even in case of error.

If you Authenticate with your API token on this page by clicking \"Authorize\" button, you can make API calls directly from here with \"Try it out\", and generate such `curl` examples.

API Authentication

Authenticate your account by sending your API token as a request header `X-Api-Token`.
The token can be found under My Profile page.
A user must have an Admin role in the project in order to access the project with his token.
API requests without authentication will fail.

Base url: `https://api.localizely.com`

", + "apiTitle": "Localizely API", + "endpoints": 4, + "sdkMethods": 4, + "schemas": 6, + "parameters": 22, + "originalCustomRequest": { + "type": "GET", + "url": "https://api.localizely.com/api-docs" + }, + "customRequestSpecFilename": "localizely.com.yaml", + "difficultyScore": 12, + "difficulty": "Very Easy", + "company": "Localizely", + "sdkName": "localizely-{language}-sdk", + "clientName": "Localizely", + "metaDescription": "Localizely is a translation management system for agile teams that streamlines software localization. \n\nWe believe translation management for apps should be easy, so the team can focus on things that bring business value.\n\nDevelopers can easily integrate translations into the apps build process, and managers can easily collaborate with translators.\n\nWe built Localizely from our experience by working on software projects with 2 to 100 languages.", + "apiStatusUrls": "inherit", + "homepage": "localizely.com", + "developerDocumentation": "api.localizely.com/swagger-ui/index.html", + "categories": [ + "language", + "translation" + ], + "category": "Translation", + "methods": [ + { + "url": "/v1/projects/{project_id}/files/upload", + "method": "languageTranslationsUpload", + "httpMethod": "post", + "tag": "Upload API", + "typeScriptTag": "uploadApi", + "description": "Upload translations for a language", + "parameters": [ + { + "name": "projectId", + "schema": "string", + "required": true, + "description": "Project ID - Can be found on 'My projects' page", + "example": "PROJECT_ID" + }, + { + "name": "branch", + "schema": "string", + "required": false, + "description": "Name of the branch to upload file into. Only in case of activated branching feature." + }, + { + "name": "langCode", + "schema": "string", + "required": true, + "description": "Language to upload, specified as language code. e.g. `en`, `en_GB` or `en-GB`", + "example": "LANG_CODE" + }, + { + "name": "overwrite", + "schema": "boolean", + "required": false, + "description": "If translation in given language should be overwritten with modified translation from uploading file.", + "default": false + }, + { + "name": "reviewed", + "schema": "boolean", + "required": false, + "description": "If uploading translations, that are added, should be marked as Reviewed. For uploading translations that are only modified it will have effect only if `overwrite` is set to `true`.", + "default": false + }, + { + "name": "tagAdded", + "schema": "array", + "required": false, + "description": "Optional list of tags to add to new translations from uploading file.

Multiple tags can be defined in a following way: `&tag_added_keys=NEW&tag_added_keys=NEW_SPRINT05`" + }, + { + "name": "tagUpdated", + "schema": "array", + "required": false, + "description": "Optional list of tags to add to updated translations from uploading file.

Multiple tags can be defined in a following way: `&tag_updated_keys=UPDATED&tag_updated_keys=UPDATED_SPRINT05`" + }, + { + "name": "tagRemoved", + "schema": "array", + "required": false, + "description": "Optional list of tags to add to removed translations from uploading file.

Multiple tags can be defined in a following way: `&tag_removed_keys=REMOVED&tag_removed_keys=REMOVED_SPRINT05`" + }, + { + "name": "file", + "schema": "string", + "required": true, + "description": "", + "example": "FILE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK, file uploaded" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/projects/{project_id}/branches/{branch}", + "method": "createNewBranch", + "httpMethod": "post", + "tag": "Branch API", + "typeScriptTag": "branchApi", + "description": "Create a new branch", + "parameters": [ + { + "name": "projectId", + "schema": "string", + "required": true, + "description": "Project ID - Can be found on 'My projects' page", + "example": "PROJECT_ID" + }, + { + "name": "branch", + "schema": "string", + "required": true, + "description": "Name of the branch to be created", + "example": "BRANCH" + }, + { + "name": "sourceBranch", + "schema": "string", + "required": true, + "description": "Name of the source branch from which new branch will be created", + "example": "SOURCE_BRANCH" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK, created" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/projects/{project_id}/status", + "method": "getProjectStatus", + "httpMethod": "get", + "tag": "Translation Status API", + "typeScriptTag": "translationStatusApi", + "description": "Get Translation Status for the project", + "parameters": [ + { + "name": "projectId", + "schema": "string", + "required": true, + "description": "Project ID - Can be found on 'My projects' page", + "example": "PROJECT_ID" + }, + { + "name": "branch", + "schema": "string", + "required": false, + "description": "Name of the branch to get translation status for. Only in case of activated branching feature." + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + } + ] + }, + { + "url": "/v1/projects/{project_id}/files/download", + "method": "translationsDownload", + "httpMethod": "get", + "tag": "Download API", + "typeScriptTag": "downloadApi", + "description": "Download translations for a language in a specified file format", + "parameters": [ + { + "name": "projectId", + "schema": "string", + "required": true, + "description": "Project ID - Can be found on 'My projects' page", + "example": "PROJECT_ID" + }, + { + "name": "branch", + "schema": "string", + "required": false, + "description": "Name of the branch to download file from. Only in case of activated branching feature." + }, + { + "name": "langCodes", + "schema": "string", + "required": false, + "description": "Language to download, specified as language code. e.g. `en`, `en_GB` or `en-GB`. For multiple languages use comma separator. If omitted, all languages are downloaded." + }, + { + "name": "type", + "schema": "string", + "required": true, + "description": "File format", + "example": "TYPE" + }, + { + "name": "javaPropertiesEncoding", + "schema": "string", + "required": false, + "description": "(Only for Java .properties files download) Character encoding. Default is `latin_1`." + }, + { + "name": "includeTags", + "schema": "array", + "required": false, + "description": "Optional list of tags to be downloaded.
If not set, all string keys will be considered for download.

Multiple tags can be defined in a following way: `&include_tags=ANDROID&include_tags=ANDROID_SPRINT05`." + }, + { + "name": "excludeTags", + "schema": "array", + "required": false, + "description": "Optional list of tags to be excluded from download.
If not set, all string keys will be considered for download.

Multiple tags can be defined in a following way: `&exclude_tags=REMOVED&exclude_tags=REMOVED_SPRINT05`." + }, + { + "name": "exportEmptyAs", + "schema": "string", + "required": false, + "description": "Optional. How you would like empty translations to be exported. Allowed values are `empty` to keep empty, `main` to replace with the main language value, or `skip` to omit.", + "default": "empty" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK, file returned" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + } + ] + } + ], + "repositoryDescription": "Localizely is a translation management system that streamlines software localization for agile teams, making app translation easy and efficient. Localizely's {language} SDK generated by Konfig (https://konfigthis.com/).", + "logo": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/localizely/logo.png", + "openApiRaw": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/localizely/openapi.yaml", + "openApiGitHubUi": "https://github.com/konfig-sdks/openapi-examples/tree/HEAD/localizely/openapi.yaml", + "previewLinkImage": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/localizely/imagePreview.png", + "faviconUrl": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/localizely/favicon.png", + "clientNameCamelCase": "localizely", + "lastUpdated": "2024-03-29T22:25:17.346Z", + "typescriptSdkUsageCode": "import { Localizely } from 'localizely-typescript-sdk';\n\nconst localizely = new Localizely({\n apiAuth: \"X_API_TOKEN\"\n})", + "typescriptSdkFirstRequestCode": "// Upload translations for a language\nconst languageTranslationsUploadResponse = localizely.uploadApi.languageTranslationsUpload({\n projectId: \"PROJECT_ID\"\n langCode: \"LANG_CODE\"\n file: \"FILE\"\n})", + "fixedSpecFileName": "localizely-fixed-spec.yaml" +} \ No newline at end of file diff --git a/sdks/db/published/from-custom-request_mambu.com_PaymentOrder.json b/sdks/db/published/from-custom-request_mambu.com_PaymentOrder.json new file mode 100644 index 0000000000..b37e01d4f8 --- /dev/null +++ b/sdks/db/published/from-custom-request_mambu.com_PaymentOrder.json @@ -0,0 +1,2553 @@ +{ + "securitySchemes": {}, + "apiBaseUrl": "https://TENANT_NAME.mambu.com/api/v1", + "apiVersion": "v1.44.15", + "apiDescription": "Initiates payment orders.", + "apiTitle": "Payment Order API", + "endpoints": 43, + "sdkMethods": 46, + "schemas": 100, + "parameters": 208, + "originalCustomRequest": { + "type": "GET", + "url": "https://api.mambu.com/payments-api/mambu-payments-api-spec-oas3.json" + }, + "customRequestSpecFilename": "mambu.com_PaymentOrder.yaml", + "difficultyScore": 141, + "difficulty": "Medium", + "company": "Mambu", + "serviceName": "Payments", + "sdkName": "mambu-payments-{language}-sdk", + "clientName": "MambuPayments", + "metaDescription": "Heard of composable banking? The concept originated here at Mambu. We've been champions of composable for over a decade.\n\nMambu is the only true SaaS cloud core banking platform. Our unique and sustainable composable approach means that independent engines, systems and connectors can be assembled in any configuration to meet business requirements and the ever-changing demands of your customers. 260+ banks, lenders, fintechs, and even retailers in 65 countries turn to us to help them build modern digital financial products faster, securely and cost-effectively.\n\nReady to become a Mambuvian? Check our Jobs tab.", + "apiStatusUrls": false, + "homepage": "mambu.com", + "developerDocumentation": "api.mambu.com/payments-api/#welcome", + "categories": [ + "finance", + "banking" + ], + "category": "Finance", + "methods": [ + { + "url": "/accounts/{accountId}/blocking-rules", + "method": "removeBlockingRules", + "httpMethod": "delete", + "tag": "SEPA Direct Debit", + "typeScriptTag": "sepaDirectDebit", + "description": "Request deletion of blocking rules for the specified Mambu account. If no request body is provided, all rules for the account will be removed, if you provide a JSON body with a specific mandate ID, only the rule for that mandate will be removed. For more information on blocking SEPA Direct Debits, consult the [Blocking SEPA Direct Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) article in our user guide.", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNTID" + }, + { + "name": "creditorMandate", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "product", + "schema": "string", + "required": true, + "description": "", + "example": "PRODUCT" + } + ], + "responses": [ + { + "statusCode": "202", + "description": "Accepted - Blocking rules for the specified account have been submitted for deletion." + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/accounts/{accountId}/blocking-rules", + "method": "addBlockingRule", + "httpMethod": "post", + "tag": "SEPA Direct Debit", + "typeScriptTag": "sepaDirectDebit", + "description": "Request a blocking rule to be added to a specific Mambu account. When a blocking rule has been added for a specific mandate ID, collection requests for that mandate will be rejected and a pacs.002 message sent as response with reason code MS02. If no specific mandate ID is provided, all direct debit collection requests for the given account will be rejected. For more information on blocking SEPA Direct Debits, consult the [Blocking SEPA Direct Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) article in our user guide.", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNTID" + }, + { + "name": "creditorMandate", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "product", + "schema": "string", + "required": true, + "description": "", + "example": "PRODUCT" + } + ], + "responses": [ + { + "statusCode": "202", + "description": "Accepted - The Blocking Rule has been prepared for processing." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/accounts/{accountId}/identifications", + "method": "getIdentifications", + "httpMethod": "get", + "tag": "External Account Representation", + "typeScriptTag": "externalAccountRepresentation", + "description": "Gets associations of an external account identification (IBAN or proprietary) to a Mambu Account.", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNTID" + }, + { + "name": "limit", + "schema": "integer", + "description": "", + "default": 50 + }, + { + "name": "offset", + "schema": "integer", + "description": "", + "default": 0 + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/accounts/{accountId}/identifications", + "method": "addIdentificationAssociation", + "httpMethod": "post", + "tag": "External Account Representation", + "typeScriptTag": "externalAccountRepresentation", + "description": "Adds association of an external account identification (IBAN or proprietary) to a Mambu Account. The currency of the association will be the one of the underlining Mambu account. If an IBAN is supposed to be a multi-currency one, this API needs to be invoked multiple times with different Mambu accounts (for the different currencies).", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNTID" + }, + { + "name": "identification", + "schema": "object", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/accounts/identifications", + "method": "associateIban", + "httpMethod": "put", + "tag": "External Account Representation", + "typeScriptTag": "externalAccountRepresentation", + "description": "Create or replace associations of an external account identification (IBAN or proprietary) to one of Mambu Accounts. The currency of the association will be the one of the underlining Mambu account. ", + "parameters": [ + { + "name": "accountIds", + "schema": "array", + "required": true, + "description": "" + }, + { + "name": "identification", + "schema": "object", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/accounts/identifications:search", + "method": "searchIdentifications", + "httpMethod": "post", + "tag": "External Account Representation", + "typeScriptTag": "externalAccountRepresentation", + "description": "Searches identifications (with MambuID included) based on provided filter criteria", + "parameters": [ + { + "name": "filterCriteria", + "schema": "array", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/collections", + "method": "createCollectionInitiationRequest", + "httpMethod": "post", + "tag": "SEPA Direct Debit", + "typeScriptTag": "sepaDirectDebit", + "description": "Creates a collection initiation request. This covers the flows as described in the [SEPA Direct Debit](https://support.mambu.com/docs/sepa-direct-debit-creditor-flow) section of our user guide.", + "parameters": [ + { + "name": "xRequestId", + "schema": "string", + "required": true, + "description": "", + "example": "X-REQUEST-ID" + }, + { + "name": "idempotencyKey", + "schema": "string", + "description": "" + }, + { + "name": "creditorAccount", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "creditorAddress", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorAgent", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorIdentification", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorName", + "schema": "string", + "required": true, + "description": "", + "example": "CREDITORNAME" + }, + { + "name": "creditorSchemeIdentification", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "debtorAccount", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "debtorAddress", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorAgent", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorIdentification", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorName", + "schema": "string", + "required": true, + "description": "", + "example": "DEBTORNAME" + }, + { + "name": "instructedAmount", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "localInstrument", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "mandateRelatedInformation", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "paymentIdentification", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "paymentTypeInformation", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "purposeCode", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "remittanceInformationStructured", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "remittanceInformationUnstructured", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "requestedExecutionDate", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "requestedExecutionTime", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "serviceLevel", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "ultimateCreditor", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "ultimateDebtor", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/log", + "method": "createOrUpdateLog", + "httpMethod": "post", + "tag": "External Account Representation", + "typeScriptTag": "externalAccountRepresentation", + "description": "", + "parameters": [ + { + "name": "log", + "schema": "string", + "required": true, + "description": "", + "example": "LOG" + } + ], + "responses": [ + { + "statusCode": "default", + "description": "" + } + ] + }, + { + "url": "/payments/financial-institution-credit-transfers", + "method": "submitPaymentRequest", + "httpMethod": "post", + "tag": "CreditTransfer", + "typeScriptTag": "creditTransfer", + "description": "", + "parameters": [ + { + "name": "xRequestId", + "schema": "string", + "required": true, + "description": "", + "example": "X-REQUEST-ID" + }, + { + "name": "idempotencyKey", + "schema": "string", + "description": "" + }, + { + "name": "categoryPurposeCode", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "creditor", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "creditorAccount", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorAgent", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtor", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "debtorAccount", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorAgent", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "instructedAmount", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "intermediaryAgent1", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "intermediaryAgent2", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "intermediaryAgent3", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "paymentIdentification", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "purposeCode", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "remittanceInformationStructured", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "remittanceInformationUnstructured", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "requestedExecutionDate", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "scheme", + "schema": "string", + "required": true, + "description": "", + "example": "SCHEME" + }, + { + "name": "settlementInformation", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "ultimateCreditor", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "ultimateDebtor", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "default", + "description": "" + } + ] + }, + { + "url": "/payments/credit-transfers", + "method": "createRequest", + "httpMethod": "post", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "", + "parameters": [ + { + "name": "xRequestId", + "schema": "string", + "required": true, + "description": "", + "example": "X-REQUEST-ID" + }, + { + "name": "idempotencyKey", + "schema": "string", + "description": "" + }, + { + "name": "categoryPurposeCode", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "creditorAccount", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "creditorAddress", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorAgent", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorIdentification", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorName", + "schema": "string", + "required": true, + "description": "", + "example": "CREDITORNAME" + }, + { + "name": "debtorAccount", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "debtorAddress", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorAgent", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorIdentification", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorName", + "schema": "string", + "required": true, + "description": "", + "example": "DEBTORNAME" + }, + { + "name": "instructedAmount", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "localInstrument", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "paymentIdentification", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "purposeCode", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "remittanceInformationStructured", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "remittanceInformationUnstructured", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "requestedExecutionDate", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "requestedExecutionTime", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "scheme", + "schema": "string", + "required": true, + "description": "", + "example": "SCHEME" + }, + { + "name": "serviceLevel", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "settlementInformation", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "ultimateCreditor", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "ultimateDebtor", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "default", + "description": "" + } + ] + }, + { + "url": "/payments", + "method": "createPaymentRequest", + "httpMethod": "post", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "Creates a payment initiation request. Payments using the SEPA Credit Transfer scheme can only be created for the current date. A pacs.008 message will be generated from the data provided in this request. For more information on how these fields map to SEPA XML messages, refer to the [SEPA Credit Transfer Techincal Information](https://support.mambu.com/docs/sepa-credit-transfer-technical-information#pacs00800102) article in our user guide.", + "parameters": [ + { + "name": "xRequestId", + "schema": "string", + "required": true, + "description": "", + "example": "X-REQUEST-ID" + }, + { + "name": "idempotencyKey", + "schema": "string", + "description": "" + }, + { + "name": "creditorAccount", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "creditorAddress", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorAgent", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorIdentification", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "creditorName", + "schema": "string", + "required": true, + "description": "", + "example": "CREDITORNAME" + }, + { + "name": "debtorAccount", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "debtorAddress", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorAgent", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorIdentification", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "debtorName", + "schema": "string", + "required": true, + "description": "", + "example": "DEBTORNAME" + }, + { + "name": "instructedAmount", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "localInstrument", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "paymentIdentification", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "purposeCode", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "remittanceInformationStructured", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "remittanceInformationUnstructured", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "requestedExecutionDate", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "requestedExecutionTime", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "serviceLevel", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "ultimateCreditor", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "ultimateDebtor", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/standing-orders/{id}/executions", + "method": "listExecutions", + "httpMethod": "get", + "tag": "Standing Order", + "typeScriptTag": "standingOrder", + "description": "Get executions of standing order", + "parameters": [ + { + "name": "apiKey", + "schema": "string", + "required": true, + "description": "ApiKey header that is used for authentication", + "example": "APIKEY" + }, + { + "name": "id", + "schema": "string", + "required": true, + "description": "", + "example": "ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/payments/standing-orders/{id}", + "method": "cancel", + "httpMethod": "delete", + "tag": "Standing Order", + "typeScriptTag": "standingOrder", + "description": "Cancel Standing order", + "parameters": [ + { + "name": "id", + "schema": "string", + "required": true, + "description": "", + "example": "ID" + } + ], + "responses": [ + { + "statusCode": "204", + "description": "Standing order canceled." + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/standing-orders/{id}", + "method": "getInformation", + "httpMethod": "get", + "tag": "Standing Order", + "typeScriptTag": "standingOrder", + "description": "Gets Standing order information", + "parameters": [ + { + "name": "id", + "schema": "string", + "required": true, + "description": "", + "example": "ID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/standing-orders", + "method": "createStandingOrderRequest", + "httpMethod": "post", + "tag": "Standing Order", + "typeScriptTag": "standingOrder", + "description": "API creates standing orders. Standing order creation will trigger periodic payments for provided frequency from start date until the end date.", + "parameters": [ + { + "name": "endDate", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "frequency", + "schema": "string", + "required": true, + "description": "", + "example": "FREQUENCY" + }, + { + "name": "ownerId", + "schema": "string", + "required": true, + "description": "", + "example": "OWNERID" + }, + { + "name": "payment", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "retryPolicy", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "startDate", + "schema": "string", + "required": true, + "description": "", + "example": "STARTDATE" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/standing-orders:search", + "method": "searchByFilters", + "httpMethod": "post", + "tag": "Standing Order", + "typeScriptTag": "standingOrder", + "description": "Search for standing orders by search filters such as ownerId", + "parameters": [ + { + "name": "apiKey", + "schema": "string", + "required": true, + "description": "ApiKey header that is used for authentication", + "example": "APIKEY" + }, + { + "name": "filterCriteria", + "schema": "array", + "required": true, + "description": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "" + }, + { + "name": "offset", + "schema": "integer", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/payments/standing-orders:suspend", + "method": "suspendRequest", + "httpMethod": "post", + "tag": "Standing Order", + "typeScriptTag": "standingOrder", + "description": "API suspends standing order for a particular period of time.", + "parameters": [ + { + "name": "endDate", + "schema": "string", + "required": true, + "description": "", + "example": "ENDDATE" + }, + { + "name": "id", + "schema": "string", + "required": true, + "description": "", + "example": "ID" + }, + { + "name": "startDate", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Standing order successfully suspended." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/collections/{collectionId}", + "method": "getCollectionDetails", + "httpMethod": "get", + "tag": "SEPA Direct Debit", + "typeScriptTag": "sepaDirectDebit", + "description": "", + "parameters": [ + { + "name": "collectionId", + "schema": "string", + "required": true, + "description": "", + "example": "COLLECTIONID" + }, + { + "name": "detailsLevel", + "schema": "string", + "description": "", + "default": "FULL" + } + ], + "responses": [ + { + "statusCode": "default", + "description": "" + } + ] + }, + { + "url": "/payments/credit-transfers/{paymentId}", + "method": "getPaymentDetails", + "httpMethod": "get", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "", + "parameters": [ + { + "name": "paymentId", + "schema": "string", + "required": true, + "description": "", + "example": "PAYMENTID" + }, + { + "name": "detailsLevel", + "schema": "string", + "description": "", + "default": "FULL" + } + ], + "responses": [ + { + "statusCode": "default", + "description": "" + } + ] + }, + { + "url": "/payments/{paymentId}", + "method": "getPaymentDetails", + "httpMethod": "get", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "", + "parameters": [ + { + "name": "paymentId", + "schema": "string", + "required": true, + "description": "", + "example": "PAYMENTID" + }, + { + "name": "detailsLevel", + "schema": "string", + "description": "", + "default": "FULL" + } + ], + "responses": [ + { + "statusCode": "default", + "description": "" + } + ] + }, + { + "url": "/payments:settleInstantPayment", + "method": "acceptInstantPaymentSettlement", + "httpMethod": "post", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "Accepts requests for an instant payment settlement.", + "parameters": [ + { + "name": "groupHeader", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "transaction", + "schema": "object", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "202", + "description": "Accepted - The instant payment settlement request has been accepted for processing." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/{paymentOrderId}:reject", + "method": "manuallyRejectPayment", + "httpMethod": "post", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "Manually Reject an Outgoing Payment.", + "parameters": [ + { + "name": "paymentOrderId", + "schema": "string", + "required": true, + "description": "", + "example": "PAYMENTORDERID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - The specified payment order has been marked to be manually rejected." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/{paymentOrderId}:recall", + "method": "recallPaymentRequest", + "httpMethod": "post", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "Recall an outgoing payment.", + "parameters": [ + { + "name": "paymentOrderId", + "schema": "string", + "required": true, + "description": "", + "example": "PAYMENTORDERID" + }, + { + "name": "customerRecallReasonCode", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "recallReasonCode", + "schema": "string", + "required": true, + "description": "", + "example": "RECALLREASONCODE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Payment marked to be recalled successfully." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/{paymentOrderId}:denyOutgoingRecall", + "method": "denyOutgoingRecallAction", + "httpMethod": "post", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "Deny an Outgoing Recall.", + "parameters": [ + { + "name": "paymentOrderId", + "schema": "string", + "required": true, + "description": "", + "example": "PAYMENTORDERID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - The specified outgoing recall has been marked to be rejected." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/{paymentOrderId}:denyIncomingRecall", + "method": "denyIncomingRecallAction", + "httpMethod": "post", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "Deny an Incoming Recall.", + "parameters": [ + { + "name": "paymentOrderId", + "schema": "string", + "required": true, + "description": "", + "example": "PAYMENTORDERID" + }, + { + "name": "additionalInformation", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "originalRecallReasonAdditionalInformation", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "rejectionReason", + "schema": "string", + "required": true, + "description": "", + "example": "REJECTIONREASON" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - The specified incoming recall has been marked to be rejected." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/{paymentOrderId}:approveOutgoingRecall", + "method": "approveOutgoingRecallAction", + "httpMethod": "post", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "Approve an Outgoing Recall.", + "parameters": [ + { + "name": "paymentOrderId", + "schema": "string", + "required": true, + "description": "", + "example": "PAYMENTORDERID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - The specified outgoing recall has been authorized." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/{paymentOrderId}:approveIncomingRecall", + "method": "approveIncomingRecall", + "httpMethod": "post", + "tag": "SEPA Credit Transfers", + "typeScriptTag": "sepaCreditTransfers", + "description": "Approve an Incoming Recall.", + "parameters": [ + { + "name": "paymentOrderId", + "schema": "string", + "required": true, + "description": "", + "example": "PAYMENTORDERID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - The specified incoming recall has been authorized." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/{paymentOrderId}/aml:resendCallout", + "method": "resendCallout", + "httpMethod": "post", + "tag": "AML", + "typeScriptTag": "aml", + "description": "Resends the AML callout for an Outgoing payment.", + "parameters": [ + { + "name": "paymentOrderId", + "schema": "string", + "required": true, + "description": "", + "example": "PAYMENTORDERID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - The AML callout was resent for the provided payment order." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/incoming", + "method": "createRequest", + "httpMethod": "post", + "tag": "Incoming Messages", + "typeScriptTag": "incomingMessages", + "description": "Creates an incoming message request.", + "parameters": [ + { + "name": "xRequestId", + "schema": "string", + "required": true, + "description": "ID of the request, unique to the call, as determined by the initiating party.", + "example": "X-REQUEST-ID" + }, + { + "name": "xPaymentScheme", + "schema": "string", + "required": false, + "description": "Specifies payment scheme for processing." + } + ], + "responses": [ + { + "statusCode": "202", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/payments/aml", + "method": "submitAmlCheckResult", + "httpMethod": "post", + "tag": "AML", + "typeScriptTag": "aml", + "description": "Accepts AML check results for Payment Orders, for example SEPA Credit Transfers.", + "parameters": [ + { + "name": "xRequestId", + "schema": "string", + "required": true, + "description": "ID of the request, unique to the call, as determined by the initiating party.", + "example": "X-REQUEST-ID" + }, + { + "name": "groupHeader", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "transactions", + "schema": "array", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/inquiries:skipStatusUpdateOnRecall", + "method": "skipRecallStatusUpdate", + "httpMethod": "post", + "tag": "SEPA Credit Transfer Inquiries", + "typeScriptTag": "sepaCreditTransferInquiries", + "description": "Skips response for Request for Status Update on Recall with given details.", + "parameters": [ + { + "name": "groupHeader", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "transactionInformation", + "schema": "object", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Request for skipping Status Update on Recall response was received" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/inquiries:requestStatusUpdateOnRecall", + "method": "requestStatusUpdate", + "httpMethod": "post", + "tag": "SEPA Credit Transfer Inquiries", + "typeScriptTag": "sepaCreditTransferInquiries", + "description": "Create inquiry to request status update for a payment cancellation.", + "parameters": [ + { + "name": "cancellationIdentification", + "schema": "string", + "required": true, + "description": "", + "example": "CANCELLATIONIDENTIFICATION" + }, + { + "name": "groupHeader", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "historicCancellationRequest", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Inquiry created successfully." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/inquiries:requestStatusUpdateOnInquiry", + "method": "createStatusUpdateRequest", + "httpMethod": "post", + "tag": "SEPA Credit Transfer Inquiries", + "typeScriptTag": "sepaCreditTransferInquiries", + "description": "Create status update request for existing camt.087 or camt.027 inquiry", + "parameters": [ + { + "name": "assignment", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "caseIdentification", + "schema": "string", + "required": true, + "description": "", + "example": "CASEIDENTIFICATION" + }, + { + "name": "historicClaimRequest", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "messageTypeName", + "schema": "string", + "required": true, + "description": "", + "example": "MESSAGETYPENAME" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Inquiry created successfully." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/inquiries:rejectStatusUpdateOnRecall", + "method": "handleNegativeStatusUpdateOnRecall", + "httpMethod": "post", + "tag": "SEPA Credit Transfer Inquiries", + "typeScriptTag": "sepaCreditTransferInquiries", + "description": "Handles negative response for Request for Status Update on Recall with given details.", + "parameters": [ + { + "name": "cancellationDetails", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "groupHeader", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "transactionInformation", + "schema": "object", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Request for Status Update on Recall negative response was received" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/inquiries:claimValueDateCorrection", + "method": "requestValueDateChange", + "httpMethod": "post", + "tag": "SEPA Credit Transfer Inquiries", + "typeScriptTag": "sepaCreditTransferInquiries", + "description": "Create inquiry to request claim for value-date change.", + "parameters": [ + { + "name": "claimedValueDate", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "groupHeader", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "historicCreditTransferRequest", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "paymentIdentification", + "schema": "object", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Inquiry created successfully." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/inquiries:claimNonReceipt", + "method": "createNonReceiptInquiry", + "httpMethod": "post", + "tag": "SEPA Credit Transfer Inquiries", + "typeScriptTag": "sepaCreditTransferInquiries", + "description": "Create inquiry for claim of non-receipt", + "parameters": [ + { + "name": "claimedValueDate", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "groupHeader", + "schema": "object", + "required": false, + "description": "" + }, + { + "name": "historicCreditTransferRequest", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "paymentIdentification", + "schema": "object", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Inquiry created successfully." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/inquiries:acceptStatusUpdateOnRecall", + "method": "acceptStatusUpdateOnRecall", + "httpMethod": "post", + "tag": "SEPA Credit Transfer Inquiries", + "typeScriptTag": "sepaCreditTransferInquiries", + "description": "Handles positive response for Request for Status Update on Recall with given details.", + "parameters": [ + { + "name": "groupHeader", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "transactionInformation", + "schema": "object", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Request for Status Update on Recall positive response was received" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "404", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/collections/{collectionOrderId}:reject", + "method": "manuallyRejectCollection", + "httpMethod": "post", + "tag": "SEPA Direct Debit", + "typeScriptTag": "sepaDirectDebit", + "description": "Manually Reject an Outgoing Collection.", + "parameters": [ + { + "name": "collectionOrderId", + "schema": "string", + "required": true, + "description": "", + "example": "COLLECTIONORDERID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - The specified collection order has been marked to be manually rejected." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/collections/{collectionOrderId}:rejectIncoming", + "method": "manuallyRejectCollection", + "httpMethod": "post", + "tag": "SEPA Direct Debit", + "typeScriptTag": "sepaDirectDebit", + "description": "Manually Reject an Incoming Collection.", + "parameters": [ + { + "name": "collectionOrderId", + "schema": "string", + "required": true, + "description": "", + "example": "COLLECTIONORDERID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - The specified collection order has been marked to be manually rejected." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/collections/{collectionId}:reverse", + "method": "reverseCollectionInstruction", + "httpMethod": "post", + "tag": "SEPA Direct Debit", + "typeScriptTag": "sepaDirectDebit", + "description": "Reverse a Collection Instruction.", + "parameters": [ + { + "name": "collectionId", + "schema": "string", + "required": true, + "description": "", + "example": "COLLECTIONID" + }, + { + "name": "reasonCode", + "schema": "string", + "required": true, + "description": "", + "example": "REASONCODE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Collection Instruction marked to be reversed successfully." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/collections/{collectionId}:refund", + "method": "refundCollectionInstruction", + "httpMethod": "post", + "tag": "SEPA Direct Debit", + "typeScriptTag": "sepaDirectDebit", + "description": "Refund a Collection Instruction.", + "parameters": [ + { + "name": "collectionId", + "schema": "string", + "required": true, + "description": "", + "example": "COLLECTIONID" + }, + { + "name": "reasonCode", + "schema": "string", + "required": true, + "description": "", + "example": "REASONCODE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Collection Instruction marked to be refunded successfully." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/collections/{collectionId}/aml:resendCallout", + "method": "resendCallout", + "httpMethod": "post", + "tag": "AML", + "typeScriptTag": "aml", + "description": "Resends the AML callout for an Outgoing collection.", + "parameters": [ + { + "name": "collectionId", + "schema": "string", + "required": true, + "description": "", + "example": "COLLECTIONID" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - The AML callout was resent for the provided collection order." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/collections/aml", + "method": "submitAmlCheckResults", + "httpMethod": "post", + "tag": "AML", + "typeScriptTag": "aml", + "description": "Accepts AML check results for collections, for example, SEPA Direct Debits.", + "parameters": [ + { + "name": "xRequestId", + "schema": "string", + "required": true, + "description": "ID of the request, unique to the call, as determined by the initiating party.", + "example": "X-REQUEST-ID" + }, + { + "name": "groupHeader", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "transactions", + "schema": "array", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "" + } + ] + }, + { + "url": "/aml:resendCallouts", + "method": "resendCalloutsOperation", + "httpMethod": "post", + "tag": "AML", + "typeScriptTag": "aml", + "description": "Resends the AML callouts.", + "parameters": [ + { + "name": "category", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "direction", + "schema": "string", + "required": true, + "description": "", + "example": "DIRECTION" + }, + { + "name": "instructingAgent", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "interbankSettlementDate", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "messageId", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - The AML callouts were resent." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "405", + "description": "" + }, + { + "statusCode": "415", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/accounts/identifications:mask", + "method": "maskIdentifications", + "httpMethod": "post", + "tag": "External Account Representation", + "typeScriptTag": "externalAccountRepresentation", + "description": "Mask identifications from Payments Gateway.", + "parameters": [ + { + "name": "identifications", + "schema": "array", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "OK - Identifications masked. This operation is irreversible." + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + }, + { + "url": "/instructions", + "method": "details", + "httpMethod": "get", + "tag": "Search Messages", + "typeScriptTag": "searchMessages", + "description": "Retrieve the SEPA messages details.", + "parameters": [ + { + "name": "sepaMessageFilter", + "schema": "object", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "400", + "description": "" + }, + { + "statusCode": "500", + "description": "" + }, + { + "statusCode": "503", + "description": "Service Unavailable - The server is currently unavailable. Generally, this is a temporary state." + } + ] + } + ], + "repositoryDescription": "Mambu is a pioneer in composable banking, offering the only true SaaS cloud core banking platform. Our sustainable approach allows for flexible assembly of engines, systems, and connectors to meet diverse business needs. Trusted by 260+ institutions in 65 countries for rapid, secure, and cost-effective digital financial product development.", + "logo": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/mambu/payments/logo.png", + "openApiRaw": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/mambu/payments/openapi.yaml", + "openApiGitHubUi": "https://github.com/konfig-sdks/openapi-examples/tree/HEAD/mambu/payments/openapi.yaml", + "previewLinkImage": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/mambu/payments/imagePreview.png", + "faviconUrl": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/mambu/payments/favicon.png", + "clientNameCamelCase": "mambuPayments", + "lastUpdated": "2024-03-29T22:25:17.346Z", + "typescriptSdkUsageCode": "import { MambuPayments } from 'mambu-payments-typescript-sdk';\n\nconst mambuPayments = new MambuPayments()", + "typescriptSdkFirstRequestCode": "// Request deletion of blocking rules for the specified Mambu account. If no request body is provided, all rules for the account will be removed, if you provide a JSON body with a specific mandate ID, only the rule for that mandate will be removed. For more information on blocking SEPA Direct Debits, consult the [Blocking SEPA Direct Debits](https://support.mambu.com/docs/blocking-sepa-direct-debits) article in our user guide.\nconst removeBlockingRulesResponse = mambuPayments.sepaDirectDebit.removeBlockingRules({\n accountId: \"ACCOUNTID\"\n product: \"PRODUCT\"\n})", + "fixedSpecFileName": "mambu-payments-fixed-spec.yaml" +} \ No newline at end of file diff --git a/sdks/db/spec-data/from-custom-request_kombo.dev.json b/sdks/db/spec-data/from-custom-request_kombo.dev.json new file mode 100644 index 0000000000..cf546711e4 --- /dev/null +++ b/sdks/db/spec-data/from-custom-request_kombo.dev.json @@ -0,0 +1,23 @@ +{ + "securitySchemes": { + "ApiKey": { + "type": "http", + "scheme": "bearer", + "description": "Create an API key on the [Secrets](https://app.kombo.dev/secrets) page in the Kombo dashboard." + } + }, + "apiBaseUrl": "https://api.kombo.dev/v1", + "apiVersion": "1.0.0", + "apiTitle": "Kombo API", + "endpoints": 48, + "sdkMethods": 54, + "schemas": 282, + "parameters": 188, + "originalCustomRequest": { + "type": "GET", + "url": "https://api.kombo.dev/openapi.json" + }, + "customRequestSpecFilename": "kombo.dev.yaml", + "difficultyScore": 242, + "difficulty": "Hard" +} \ No newline at end of file diff --git a/sdks/db/spec-data/from-custom-request_localizely.com.json b/sdks/db/spec-data/from-custom-request_localizely.com.json new file mode 100644 index 0000000000..2527990f17 --- /dev/null +++ b/sdks/db/spec-data/from-custom-request_localizely.com.json @@ -0,0 +1,24 @@ +{ + "securitySchemes": { + "API auth": { + "type": "apiKey", + "name": "X-Api-Token", + "in": "header" + } + }, + "apiBaseUrl": "https://api.localizely.com", + "apiVersion": "1.2.1", + "apiDescription": "

Getting started

Localizely API is built on REST.
You can use this API for importing & exporting your localization files in order to automate the process with `curl` scripts or external CI tools.
Response is returned in JSON form even in case of error.

If you Authenticate with your API token on this page by clicking \"Authorize\" button, you can make API calls directly from here with \"Try it out\", and generate such `curl` examples.

API Authentication

Authenticate your account by sending your API token as a request header `X-Api-Token`.
The token can be found under My Profile page.
A user must have an Admin role in the project in order to access the project with his token.
API requests without authentication will fail.

Base url: `https://api.localizely.com`

", + "apiTitle": "Localizely API", + "endpoints": 4, + "sdkMethods": 4, + "schemas": 5, + "parameters": 22, + "originalCustomRequest": { + "type": "GET", + "url": "https://api.localizely.com/api-docs" + }, + "customRequestSpecFilename": "localizely.com.yaml", + "difficultyScore": 12, + "difficulty": "Very Easy" +} \ No newline at end of file diff --git a/sdks/db/spec-data/from-custom-request_mambu.com_PaymentOrder.json b/sdks/db/spec-data/from-custom-request_mambu.com_PaymentOrder.json new file mode 100644 index 0000000000..b5155cf8b5 --- /dev/null +++ b/sdks/db/spec-data/from-custom-request_mambu.com_PaymentOrder.json @@ -0,0 +1,18 @@ +{ + "securitySchemes": {}, + "apiBaseUrl": "https://TENANT_NAME.mambu.com/api/v1", + "apiVersion": "v1.44.15", + "apiDescription": "Initiates payment orders.", + "apiTitle": "Payment Order API", + "endpoints": 43, + "sdkMethods": 46, + "schemas": 86, + "parameters": 208, + "originalCustomRequest": { + "type": "GET", + "url": "https://api.mambu.com/payments-api/mambu-payments-api-spec-oas3.json" + }, + "customRequestSpecFilename": "mambu.com_PaymentOrder.yaml", + "difficultyScore": 141, + "difficulty": "Medium" +} \ No newline at end of file diff --git a/sdks/db/spec-data/motaword.com_1.0.json b/sdks/db/spec-data/motaword.com_1.0.json index 843cdeddb6..aab1334cce 100644 --- a/sdks/db/spec-data/motaword.com_1.0.json +++ b/sdks/db/spec-data/motaword.com_1.0.json @@ -51,5 +51,5 @@ "schemas": 193, "parameters": 704, "difficultyScore": 563.5, - "difficulty": "Hard" + "difficulty": "Very Hard" } \ No newline at end of file diff --git a/sdks/publish.yaml b/sdks/publish.yaml index ad552c2075..49ea7bad34 100644 --- a/sdks/publish.yaml +++ b/sdks/publish.yaml @@ -8572,7 +8572,7 @@ publish: 𝗜𝗻𝘀𝘁𝗮𝗻𝘁 𝗽𝗮𝘆𝗺𝗲𝗻𝘁𝘀. | Let your customers pay with their - bank. + bank. 𝗜𝗻𝘀𝘁𝗮𝗻𝘁 𝗽𝗮𝘆𝗼𝘂𝘁𝘀. | Send funds to anyone from your business. @@ -8594,3 +8594,73 @@ publish: serviceName: false sdkName: finshark-{language}-sdk clientName: Finshark + from-custom-request_localizely.com: + homepage: localizely.com + company: Localizely + developerDocumentation: api.localizely.com/swagger-ui/index.html + apiStatusUrls: inherit + metaDescription: >- + Localizely is a translation management system for agile teams that + streamlines software localization. + + + We believe translation management for apps should be easy, so the team can + focus on things that bring business value. + + + Developers can easily integrate translations into the apps build process, + and managers can easily collaborate with translators. + + + We built Localizely from our experience by working on software projects + with 2 to 100 languages. + categories: + - language + - translation + serviceName: false + sdkName: localizely-{language}-sdk + clientName: Localizely + from-custom-request_kombo.dev: + homepage: kombo.dev + company: Kombo + developerDocumentation: docs.kombo.dev + apiStatusUrls: inherit + metaDescription: >- + Kombo is changing how B2B SaaS companies provide HR integrations to their + customers. Instead of having to build and maintain many APIs themselves, + Kombos customers can integrate with Kombo's API once and offer dozens of + APIs to their customers instantly. + categories: + - integrations + - ats + - hris + - payroll + serviceName: false + sdkName: kombo-{language}-sdk + clientName: Kombo + from-custom-request_mambu.com_PaymentOrder: + homepage: mambu.com + company: Mambu + developerDocumentation: api.mambu.com/payments-api/#welcome + apiStatusUrls: false + metaDescription: >- + Heard of composable banking? The concept originated here at Mambu. We've + been champions of composable for over a decade. + + + Mambu is the only true SaaS cloud core banking platform. Our unique and + sustainable composable approach means that independent engines, systems + and connectors can be assembled in any configuration to meet business + requirements and the ever-changing demands of your customers. 260+ banks, + lenders, fintechs, and even retailers in 65 countries turn to us to help + them build modern digital financial products faster, securely and + cost-effectively. + + + Ready to become a Mambuvian? Check our Jobs tab. + categories: + - finance + - banking + serviceName: Payments + sdkName: mambu-payments-{language}-sdk + clientName: MambuPayments diff --git a/sdks/src/collect-from-custom-requests.ts b/sdks/src/collect-from-custom-requests.ts index 7d96d376ff..b67db877cc 100644 --- a/sdks/src/collect-from-custom-requests.ts +++ b/sdks/src/collect-from-custom-requests.ts @@ -2333,6 +2333,18 @@ const customRequests: Record = { type: "GET", url: "https://api.ilert.com/api-docs/swagger.json", }, + "localizely.com": { + type: "GET", + url: "https://api.localizely.com/api-docs", + }, + "kombo.dev": { + type: "GET", + url: "https://api.kombo.dev/openapi.json", + }, + "mambu.com_PaymentOrder": { + type: "GET", + url: "https://api.mambu.com/payments-api/mambu-payments-api-spec-oas3.json", + }, "inmobile.com": { type: "GET", url: "https://api.inmobile.com/swagger/v1/swagger.json",