Contractor worker accreditation
Event: contractor_worker.accreditation.
One notice is sent per contractor worker and work center when the worker changes between
accredited and not accredited in that work center. The new state is in accreditation.status:
approved or revoked.
Accredited
A contractor worker is accredited in a work center when:
- the contractor is enabled and the worker is active,
- the contractor has a worker certificate assigned, and
- every required document is uploaded, validated for that work center and not expired:
- the documents of the contractor's worker certificate (the worker's own documents),
- the documents of the contractor's own certificate,
- for each active contract of the worker that includes the work center, what the contract requires from its workers, from the worker's position and from the contractor.
Supply and machinery documents don't count.
When it is sent
Tazki reviews the worker whenever something that affects the result changes: a document is validated, rejected, deleted or expires, a requirement is added or removed, a contract starts, ends or changes, the worker is activated, deactivated or changes position, the contractor is disabled, and so on. A notice is sent only when the result of that review differs from the last state notified for that worker and work center.
- First review. The first time Tazki reviews a worker in a work center, it only records the state and sends nothing, even if the worker is accredited. Notices start with the next change.
- New work center. A worker that Tazki already knows and that joins another work center gets an
approvednotice if they are accredited there right away. If they are not, nothing is sent (they were never accredited there). - Expirations are checked daily, shortly after midnight (Chile time): a worker whose document
expired the day before gets a
revokednotice. - Validating one document doesn't send anything while other required documents are still missing.
Example: approved
{
"event": "contractor_worker.accreditation",
"worker": {
"user_id": 1001,
"name": "Example Worker",
"rut": "11.111.111-1",
"email": "worker@example.com",
"position": "Example Position",
"contractor": { "name": "Example Contractor", "rut": "99.999.999-9" },
"branch_id": 10,
"branch": "Example Work Center"
},
"accreditation": {
"status": "approved",
"changed_at": "2026-11-05T10:12:00-03:00",
"next_expiration": {
"document": "Example Document",
"owner": "worker",
"contract": null,
"expires_on": "2027-01-15"
},
"cause": null
}
}
Example: revoked
{
"event": "contractor_worker.accreditation",
"worker": {
"user_id": 1001,
"name": "Example Worker",
"rut": "11.111.111-1",
"email": "worker@example.com",
"position": "Example Position",
"contractor": { "name": "Example Contractor", "rut": "99.999.999-9" },
"branch_id": 10,
"branch": "Example Work Center"
},
"accreditation": {
"status": "revoked",
"changed_at": "2027-01-16T00:05:00-03:00",
"next_expiration": null,
"cause": {
"reason": "expired",
"document": "Example Document",
"owner": "worker",
"contract": null
}
}
}
Fields
| Field | Description |
|---|---|
event | contractor_worker.accreditation |
worker.user_id | Tazki user id of the worker |
worker.name, worker.rut, worker.email | Worker data; email can be null |
worker.position | Position name, or null |
worker.contractor | Contractor name and rut |
worker.branch_id, worker.branch | Work center the notice is about |
accreditation.status | approved or revoked |
accreditation.changed_at | When the change that caused the notice happened in Tazki |
accreditation.next_expiration | Only with approved: the required document that expires first (document, owner, contract, expires_on), or null if none of them expires |
accreditation.cause | Only with revoked: why the worker stopped being accredited (see Causes); null with approved |
owner is worker (a document of the worker) or contractor (a document of the contractor).
contract is { "code", "name" } when the document is required by a contract, otherwise null.
Causes
cause.reason | Meaning | document |
|---|---|---|
expired | A required document expired | The document |
rejected | A required document was rejected | The document |
deleted | A required document was deleted | The document |
required | A required document is missing, for example because a new requirement was added or a contract started | The document |
deactivated | The worker was deactivated | null |
contractor_disabled | The contractor was disabled | null |
no_certificate | The contractor has no worker certificate assigned | null |
Handling duplicates
worker.user_id, worker.branch_id, accreditation.status and accreditation.changed_at together
identify a notice. If notices arrive out of order, the one with the latest changed_at is the current
state.