contractorOps.terms.set
Set a contractor's agreement terms without a signature (for example a daily or weekly hour limit, or terms of an agreement signed elsewhere), with contractorId, terms, effectiveFrom, optional jobRoleId and idempotencyKey. A titled agreement must link to an active matching job role; a unique match is resolved when jobRoleId is omitted. They take effect from effectiveFrom: hour limits apply to every timesheet entry from then on, and role, rate, pay schedule and dates update the profile. A blank rate keeps the rate already agreed (the previous version's, or the profile's). Pass basisTermsId (the version in effect when you read it, or null for none) to be refused when someone else changed the agreement since. A first version can't start after hours that are waiting to be paid.
/api/v1/accounting/contractorOps.terms.setPermissions
Who can call it
Retries
MCP
accounting_contractor_ops_terms_setFields
contractorIdstring (ID)RequiredThe ID of a contractor, from contractors.list.
termsanyRequiredeffectiveFromstring (date)RequiredjobRoleIdstring (ID)The ID of the related record.
notestringA short note, kept with the record.
at most 2000 characters
basisTermsIdstring (ID) or nullidempotencyKeystringRequiredAny unique text you generate once per intended change, so a retried request only happens once. Send it as the Idempotency-Key header instead if you prefer; if you send both they must match.
8–200 characters
Example
curl https://app.getoatmilk.com/api/v1/accounting/contractorOps.terms.set \
-H "Authorization: Bearer $OATMILK_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"contractorId": "4d5e6f7a-8b9c-4d0e-8f1a-2b3c4d5e6f7a",
"terms": null,
"effectiveFrom": "2026-09-01"
}'{
"data": { … }
}Try it
Try it
Checks your input with this action’s real schema and answers like the API, with synthetic data. No key needed, and nothing changes.
curl https://app.getoatmilk.com/api/v1/accounting/contractorOps.terms.set \
-H "Authorization: Bearer $OATMILK_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"contractorId": "4d5e6f7a-8b9c-4d0e-8f1a-2b3c4d5e6f7a",
"terms": null,
"effectiveFrom": "2026-09-01"
}'More in Contractors.