A payroll entity is one legal employer with its own EIN. Every payroll, employee and tax filing belongs to one.
Create
POST /v1/organizations/{organizationId}/payroll-entities with the legal name, an optional doingBusinessAs and website, the primary business contact, and termsAccepted: true. Send an Idempotency-Key header so a retry never creates a second employer; repeating a key within 24 hours returns the original entity with 200.
The business contact's details are passed to the payroll engine for verification and are not stored by Odin Payroll.
Read
GET /v1/organizations/{organizationId}/payroll-entitieslists entities.GET /v1/payroll-entities/{entityId}reads one.
Responses include live details from the payroll engine. If the engine is briefly unavailable you still get the entity, with engine: "unavailable" and the last known status.
Status
| status | kybStatus | Meaning |
|---|---|---|
onboarding |
new or pending |
Verification has not finished |
active |
passed |
Ready to run payroll |
action_required |
failed |
Verification needs attention |
Changes arrive as payroll_entity.kyb_status_changed events.