Contract → List contract amendments: New endpoint is added, allowing users to list the amendments made to a specific contract throughout its lifecycle
Screenings → Get worker's KYC details: New endpoint is added, allowing organizations to retrieve detailed KYC verification data for workers
Changed
Job scopes → Request job scope validation: client_name is now supported in the request payload, allowing users to specify the client name for job scope validation
Contract → Sign worker contract: created_at is now included in the success response, allowing to track the time when a contract is signed
Contract → Sign worker contract: updated_at is now included in the success response, allowing to track the last update time of the contract
Payouts → Get the auto-withdrawal setting: New endpoint that allows users to check if auto-withdrawal is enabled and view the selected withdrawal method
Payouts → Change the auto-withdrawal setting: New endpoint to update a contractor's auto-withdrawal setting, allowing users to enable or disable auto-withdrawal and specify a withdrawal threshold or method
Payouts → Request to withdraw funds: New endpoint to manually trigger a fund withdrawal, allowing users to specify an amount and beneficiary
Payouts → List contractor balances: New endpoint to retrieve the available balances of a contractor, allowing users to check payout-ready funds per currency
Provides a list of industry subcategories for Legal Entity classification
Returns a paginated list of industry subcategories that can be associated with a Legal Entity.
Each item includes subcategory details, associated industry category name, and timestamps (created_at, updated_at). Results can be sorted by category_name or subcategory_name, and support cursor-based pagination for efficient data retrieval.
This endpoint is particularly useful when configuring or updating Legal Entities, enabling users to input valid industry options.
Added personalEmail property to the parameters in order to allow differentiating between work email (email property) and personal email (personalEmail new property)
Added support for filtering the seniorities list by EOR contracts
is_eor_contract (boolean, optional)
New public API query parameter to include only levels valid for EOR contracts
🚀 New Endpoint: Create Child Organization
This process creates a new organization that includes the following elements:
An API token specific to the new organization, which can be used to perform API operations on its behalf.
A default group associated with the organization.
A hierarchical structure that connects the authenticated organization (the Parent Organization) to the new organization (the Child Organization). This hierarchy allows the Child Organization to inherit white-label settings from its Parent Organization.
A user from the Parent Organization who will be assigned to the Child Organization.
This endpoint establishes the minimum requirements necessary for the new organization to be fully operational immediately after its creation. Prerequisites: Requires an organization token with the organizations: write scope. The organization associated with the token must have the partner portal feature enabled, and it must be a parent organization (i.e., it should not be a child of another organization in the hierarchy). Endpoint: POST /rest/v2/organizations/children Token scopes: organizations:write API Reference: Create Child Organization Request Example:
Added rejection_reason and rejection_note to process object
Renamed case_created_at to created_at
Renamed last_updated_at to updated_at
{
"data": {
...
"process": {
...
"rejection_reason": "Poor image quality", // available when process has been rejected
"rejection_note": "This is the reason why the case was rejected.", // available when process has been rejected
"created_at": "2025-07-21T18:04:55.771Z",
"updated_at": "2025-07-21T18:04:55.771Z"
}
}
}
🚀 Enhancements and Endpoint renamed: Retrieve a required document for a case
Renamed previous_document_request to previous_rejected_document
Renamed expiry_date to expiration_date
Added created_at and updated_at
{
"data": {
"id": "f1a44946-6418-4295-b231-f4ae240e7663",
"immigration_document_requirement_id": "ed1f24a0-3d59-4668-9c93-417b677e3e84", // static id
"name": "Proof of employment",
"description": "A government-issued document that proves your right to work in India. \n",
"document": {
"status": "PENDING",
},
"previous_rejected_document": {
"id": "4ec1006d-df21-469a-b6fc-55eba5840940",
"status": "REJECTED",
"rejection_reason": "Incomplete information",
"rejection_note": "The submitted document is missing some necessary details."
},
"created_at": "2025-07-21T18:04:55.771Z",
"updated_at": "2025-07-21T18:04:55.771Z"
}
}
🚀 Enhancements and Endpoint renamed: Upload a required immigration document
Added scope_of_work which represents the content sent on scope field in request body.
These changes align the update endpoint with the EOR contract creation endpoint, which has supported this flexible scope of work format. It ensures consistency across contract flows and provides a unified experience for clients integrating with both endpoints.
Employee Agreement and Onboarding Tracking endpoints update
Improves Employee Agreement and Onboarding Tracking endpoints to allow for version validation during signature collection to avoid inconsistencies that could be caused by race condition.
Updated: POST /v2/eor/workers/contracts/:contract_id/signatures
Add an optional version property to the payload in order to allow the client to specify the version of the Employment Agreement to be signed. In case of a mismatch, the API will return a 409 Conflict error. If the version either matches the internal version or is not provided, the endpoint will behave as before.
Add a 409 Conflict error response to the response schema.
Updated: GET /v2/eor/workers/contracts/:contract_id/employee-agreement/download
Add an optional version query param to the endpoint in order to allow the client to specify the version of the Employment Agreement to be downloaded. We don't keep multiple Employment Agreements saved, so this version is for checking if the client has the correct version of the EA. In case of a mismatch, the API will return a 409 Conflict error. If the version either matches the internal version or is not provided, the endpoint will behave as before.
Add a 409 Conflict error response to the response schema.
Updated: GET /v2/onboarding/tracker/hris_profile/:hris_profile_id
Add a employee_agreement object to the response schema, with the following properties:
version_hash: Version of the Employment Agreement. Can be null if the EA has not yet been generated.
status: Status of the Employment Agreement. Can be null if the EA has not yet been generated.
The version_hash can be used to check if the client has the correct version of the EA when downloading or signing it as mentioned in the previous endpoints.
Updated: Cost centers are now retrieved by legal_entity_id parameter, and the request and response format has been adjusted to cost_center_number and cost_center_name instead of number and name.