Amendment Tutorial: End-to-End Walkthrough
This guide walks you through the full lifecycle of an EOR contract amendment, from retrieving validation settings to signing.
Retrieve amendment settings
curl --location --request GET '{{host}}/rest/eor/contracts/{{contract_id}}/amendments/validation/settings' \--header 'accept: application/json' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{token}}' \}'
Response:
{"data": [{"data_point": "CONTRACT_TERM","rules": [{"nullable": false,"is_editable": true,"possible_options": ["DEFINITE","INDEFINITE"]}]},{"data_point": "CUSTOM","rules": [{"nullable": false,"is_editable": true,"possible_options": ["START_DATE","END_DATE","BENEFITS","PROBATION_PERIOD","VARIABLE_COMPENSATIONS","INCENTIVE_PLAN","SALARY","FIXED_ALLOWANCES","JOB_TITLE","SENIORITY_ID","SENIORITY_DATE","JOB_CODE","JOB_CATEGORY","JOB_SCOPE","EMPLOYMENT_TYPE","PERSONAL_DATA","OTHER"]}]},{"data_point": "EMPLOYMENT_TYPE","rules": [{"nullable": false,"is_editable": true,"possible_options": ["FULL_TIME"]}]}]}
Create amendment
curl --location POST '{{host}}/rest/eor/contracts/{{contract_id}}/amendments/' \--header 'accept: application/json' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{token}}' \--data '{"data": {}}'
Response:
{"data": {"id": "993f6533-e941-47a3-962d-f871359076ff","effective_date": null,"salary": "96000.0000","employment_type": "FULL_TIME","seniority_id": 1,"job_title": "Chief Quality Liaison","time_off_type": "STANDARD","probation_period_type_for_definite": null,"document_type": "SOW_EA","holidays": 25,"probation_period": 180,"scope": "Chief Quality Liaison","employee_nationality": "PH","employment_state": null,"start_date": "2025-08-05T20:15:05.872Z","end_date": null,"work_hours_per_week": "40.00","sick_leave_days": null,"type": "OPS","created_at": "2025-08-29T10:31:54.514Z","updated_at": "2025-08-29T10:31:54.539Z","requested_by": 2856213,"is_hrx_action_needed": false,"legal_context": null,"rejection_context": null,"void_deadline": null,"void_deadline_type": null,"notice_period_type": null,"notice_period_after_probation": "5","notice_period_during_probation": "1","notice_period_time_unit": "WEEK","currency": "USD","is_effective_date_updated": false,"description": null,"work_schedule_id": null,"work_schedule_rules_version": null,"source": "PUBLIC_API","job_category": null,"job_code": null,"seniority_date": null,"custom_items": [],"amendment_statuses": [{"name": "DRAFT","friendly_name": "DRAFT","amendment_flow_status": {"created_at": "2025-08-29T10:31:54.552Z"}}],"items": []}}
Update the amendment (optional)
Use the id from the response to update data points if needed.
curl --location PATCH '{{host}}/rest/eor/contracts/{{contract_id}}/amendments/993f6533-e941-47a3-962d-f871359076ff' \--header 'accept: application/json' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{token}}' \--data '{"data": {"probation_period": 20}}'
Response:
{"data": {"id": "993f6533-e941-47a3-962d-f871359076ff","effective_date": null,"salary": "96000.0000","employment_type": "FULL_TIME","seniority_id": 1,"job_title": "Chief Quality Liaison","time_off_type": "STANDARD","probation_period_type_for_definite": null,"document_type": "SOW_EA","holidays": 25,"probation_period": 20,"scope": "Chief Quality Liaison","employee_nationality": "PH","employment_state": null,"start_date": "2025-08-05T20:15:05.872Z","end_date": null,"work_hours_per_week": "40.00","sick_leave_days": null,"type": "AUTOMATED","created_at": "2025-08-29T10:31:54.514Z","updated_at": "2025-08-29T10:41:10.880Z","requested_by": 2856213,"is_hrx_action_needed": false,"legal_context": null,"rejection_context": null,"void_deadline": null,"void_deadline_type": null,"notice_period_type": null,"notice_period_after_probation": "5","notice_period_during_probation": "1","notice_period_time_unit": "WEEK","currency": "USD","is_effective_date_updated": false,"description": null,"work_schedule_id": null,"work_schedule_rules_version": null,"source": "PUBLIC_API","job_category": null,"job_code": null,"seniority_date": null,"custom_items": [],"amendment_statuses": [{"name": "DRAFT","friendly_name": "DRAFT","amendment_flow_status": {"created_at": "2025-08-29T10:31:54.552Z"}}],"items": [{"data_point": "PROBATION_PERIOD","id": "a643c866-66dc-4809-bc42-0d8b418bdc2b","item": "PROBATION_PERIOD_DECREASE","type": "AUTOMATED","previous_value": "180","new_value": "20"}]}}
Fetch effective date limits (optional)
Use the amendment id to retrieve the valid effective date range. If your UI includes a date picker, use the returned limits and flags to configure it.
curl --location GET '{{host}}/rest/eor/contracts/{{contract_id}}/amendments/993f6533-e941-47a3-962d-f871359076ff/effective-date-limitations' \--header 'Authorization: Bearer {{token}}'
Response:
{"data": {"is_hidden": false,"is_disabled": false,"min_effective_date": "2025-07-01","max_effective_date": "2025-12-31","default_effective_date": "2025-08-29T00:00:00.000+00:00","message": "The effective date should align with the payroll cycle."}}
Set the effective date (optional)
Call the update amendment endpoint with the chosen effective date.
curl --location PATCH '{{host}}/rest/eor/contracts/{{contract_id}}/amendments/993f6533-e941-47a3-962d-f871359076ff' \--header 'accept: application/json' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{token}}' \--data '{"data": {"effective_date": "2025-09-30","probation_period": 20}}'
Response:
{"data": {"id": "993f6533-e941-47a3-962d-f871359076ff","effective_date": "2025-09-30T00:00:00.000Z","salary": "96000.0000","employment_type": "FULL_TIME","seniority_id": 1,"job_title": "Chief Quality Liaison","time_off_type": "STANDARD","probation_period_type_for_definite": null,"document_type": "SOW_EA","holidays": 25,"probation_period": 20,"scope": "Chief Quality Liaison","employee_nationality": "PH","employment_state": null,"start_date": "2025-08-05T20:15:05.872Z","end_date": null,"work_hours_per_week": "40.00","sick_leave_days": null,"type": "AUTOMATED","created_at": "2025-08-29T10:31:54.514Z","updated_at": "2025-08-29T10:41:10.880Z","requested_by": 2856213,"is_hrx_action_needed": false,"legal_context": null,"rejection_context": null,"void_deadline": null,"void_deadline_type": null,"notice_period_type": null,"notice_period_after_probation": "5","notice_period_during_probation": "1","notice_period_time_unit": "WEEK","currency": "USD","is_effective_date_updated": false,"description": null,"work_schedule_id": null,"work_schedule_rules_version": null,"source": "PUBLIC_API","job_category": null,"job_code": null,"seniority_date": null,"custom_items": [],"amendment_statuses": [{"name": "DRAFT","friendly_name": "DRAFT","amendment_flow_status": {"created_at": "2025-08-29T10:31:54.552Z"}}],"items": [{"data_point": "PROBATION_PERIOD","id": "a643c866-66dc-4809-bc42-0d8b418bdc2b","item": "PROBATION_PERIOD_DECREASE","type": "AUTOMATED","previous_value": "180","new_value": "20"}]}}
Confirm the amendment
curl --location --request POST '{{host}}/rest/eor/contracts/mdyyevp/amendments/993f6533-e941-47a3-962d-f871359076ff/confirm' \--header 'accept: application/json' \--header 'Authorization: Bearer {{token}}'
Response:
{"data": {"id": "993f6533-e941-47a3-962d-f871359076ff","effective_date": "2025-09-30T00:00:00.000Z","type": "AUTOMATED","amendment_statuses": [{"name": "PREPARING_DOCUMENTS.AMENDMENT_REQUESTED.EA","friendly_name": "EA","amendment_flow_status": {"created_at": "2025-03-25T11:32:52.963Z"}},{"name": "PREPARING_DOCUMENTS.AMENDMENT_REQUESTED.EA.PENDING_DOCUMENT_SUBMIT","friendly_name": "AWAITING_REVIEW","amendment_flow_status": {"created_at": "2025-03-25T11:32:52.963Z"}},{"name": "PREPARING_DOCUMENTS.AMENDMENT_REQUESTED.SOW","friendly_name": "SOW","amendment_flow_status": {"created_at": "2025-03-25T11:32:52.963Z"}},{"name": "PREPARING_DOCUMENTS.AMENDMENT_REQUESTED.SOW.PENDING_DOCUMENT_SUBMIT","friendly_name": "AWAITING_REVIEW","amendment_flow_status": {"created_at": "2025-03-25T11:32:52.963Z"}},{"name": "PREPARING_DOCUMENTS.AMENDMENT_REQUESTED.CUSTOM_REVIEW","friendly_name": "CUSTOM_REVIEW","amendment_flow_status": {"created_at": "2025-03-25T11:32:52.963Z"}},{"name": "PREPARING_DOCUMENTS.AMENDMENT_REQUESTED.CUSTOM_REVIEW.CUSTOM_SKIPPED","friendly_name": "CUSTOM_SKIPPED","amendment_flow_status": {"created_at": "2025-03-25T11:32:52.963Z"}},{"name": "PREPARING_DOCUMENTS.AMENDMENT_REQUESTED","friendly_name": "AMENDMENT_REQUESTED","amendment_flow_status": {"created_at": "2025-03-25T11:32:52.963Z"}},{"name": "PREPARING_DOCUMENTS","friendly_name": "PREPARING_DOCUMENTS","amendment_flow_status": {"created_at": "2025-03-25T11:32:52.963Z"}}],"items": [{"data_point": "PROBATION_PERIOD","id": "a643c866-66dc-4809-bc42-0d8b418bdc2b","item": "PROBATION_PERIOD_DECREASE","type": "AUTOMATED","previous_value": "180","new_value": "20"}]}}
Wait for Deel review
Poll the amendment status endpoint or listen for the EOR_AMENDMENT_V2_CLIENT_ACTIVE webhook event.
curl --location GET '{{host}}/rest/eor/contracts/mdyyevp/amendments/993f6533-e941-47a3-962d-f871359076ff' \--header 'accept: application/json' \--header 'Authorization: Bearer {{token}}'
Example webhook payload:
{"data": {"meta": {"event_type": "eor.amendment.status.updated","event_type_id": "de688244-7869-46db-8ac7-00083965cc9b","organization_id": "9c09a153-1418-4127-8c44-e99483e7c321","organization_name": "20TT65OV","tracking_id": "d09a72b0002191b65de3a453d177f1a7"},"resource": {"amendment_flow_id": "116fdec2-d8b6-4c64-82d9-089cccf92731","organization_id": "9c09a153-1418-4127-8c44-e99483e7c321","status": "EOR_AMENDMENT_V2_CLIENT_ACTIVE"}},"timestamp": "2025-02-07T12:36:16.360Z"}
To download the EA document:
curl --location GET '{{host}}/rest/eor/contracts/mdyyevp/amendments/993f6533-e941-47a3-962d-f871359076ff/pdf' \--header 'accept: application/json' \--header 'Authorization: Bearer {{token}}'
Response:
{"data": {"url": "{{host}}/eor-experience-dev/amendment_documents/fb4a3959-0a93-4dd9-9b46-7f1af60b2bbd.pdf?AWSAccessKeyId=TEST_ACCESS_KEY&Expires=1673158576&Signature=TEST_SIGNATURE"}}
To cancel the amendment before it becomes active:
curl --location --request DELETE '{{host}}/rest/eor/contracts/mdyyevp/amendments/993f6533-e941-47a3-962d-f871359076ff' \--header 'accept: application/json' \--header 'Authorization: Bearer {{token}}'
Response:
{"data": {"success": true}}
Sign the amendment (employee)
Once Deel completes its review, the employee signs the amendment.
curl --location --request POST '{{host}}/rest/eor/contracts/mdyyevp/amendments/993f6533-e941-47a3-962d-f871359076ff/sign' \--header 'accept: application/json' \--header 'Authorization: Bearer {{token}}'
If the amendment requires a Deel countersignature, Deel’s internal team reviews it. Once signed, the amendment becomes active immediately or on the specified effective date.