For AI agents: an index of this documentation is at https://developer.rippling.com/llms.txt. Public pages have a Markdown version at the same URL with .md added.

Skip to main content
guide

Schedule and manage job assignments

Schedule future job assignment changes, view pending changes, and cancel scheduled job assignments using the Organizational Data API.

Use with AI:Rippling AI ChatGPT Claude Cursor

Overview​

Job assignments manage which job codes workers are assigned to in Rippling. They use two distinct types of assignments depending on whether you are modifying an active job roster (active assignements) or scheduling a future change (scheduled assignments).

Common use cases for job assignments include:

  • Auditing and visibility: View scheduled changes for a worker or dimension to see what's pending before it hits payroll or time tracking.
  • Rescheduling dates: A start date moves from Dec 1 to Dec 15. Cancel the old scheduled change and create a new one.
  • Preventing unintended changes: A project is cancelled before it starts. Cancel the pending assignment so it never takes effect.

Key terms:

  • Active assignments: Reflect the worker's live, current roster state. Modifying an active assignment changes their assignment immediately.
  • Scheduled assignments: Reflect pending changes scheduled to take effect at a future date.

Available endpoints​

EndpointDescription
GET List job assignmentsView the current active roster for all workers.
GET Retrieve a specific job assignmentView details for one active assignment.
POST Create a new job assignmentAssign a job code immediately or schedule a future assignment.
PATCH Update a job assignmentUpdate fields on an active assignment (e.g., pay rate).
DELETE Delete a job assignmentUnassign a job code immediately or schedule a future unassignment.
GET List scheduled job assignmentsView pending scheduled changes before they take effect.
GET Retrieve a specific scheduled job assignmentView details for one pending scheduled change.
DELETE Delete a scheduled job assignmentCancel a pending scheduled change before it takes effect.

Suggested workflow​

  1. List job assignments to see the worker’s current roster.
  2. Create a job assignment. Omit effective_from to assign the job code immediately, or send a future effective_from to schedule the change.
  3. When effective_from is in the future, Rippling creates a pending scheduled change. Until that date, the worker’s active roster stays unchanged. List scheduled job assignments to get the pending change ID.
  4. On the effective_from date, Rippling applies the change to the active roster. List job assignments again to confirm.
  5. To stop a pending change before effective_from, delete the scheduled job assignment using the scheduled change ID, not the job assignment ID. A cancelled change does not apply.
  6. To remove a job code later, delete the job assignment with a future effective_from. That also creates a pending scheduled change, which can be cancelled as well.

Scheduled assignments UI​

When a worker has active scheduled job assignment changes, a Scheduled assignments tab appears in Rippling. You can find it by navigating to either:

  1. The employee's profile > Job Assignments > Scheduled assignments.
  2. Job Dimension > Job Code.

This tab shows pending scheduled assignments and unassignment changes for that particular worker. Only future, non-cancelled PENDING changes are displayed. In addition to the API, admins can cancel pending changes directly from this tab.


Requirements​

  • Jobs configured with a PER_JOB_CODE roster type on the target job dimension.
  • An API token with the following scopes:
    • job-assignments.read and scheduled-job-assignments.read to list and retrieve assignments
    • job-assignments.read-write and scheduled-job-assignments.read-write to fetch and manage changes

Fetch​

Active job assignments​

Use GET List job assignments when you need to check the current roster and see who is assigned to which job codes right now.

Request:

curl -L -X GET 'https://rest.ripplingapis.com/job-assignments' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer REDACTED'

Response:

{
"results": [
{
"id": "66d74bc3e0d1070b2ce8324d",
"created_at": "2024-09-03T17:47:47.182000+00:00",
"updated_at": "2025-11-15T10:22:30.456000+00:00",
"worker_id": "66a42f06d80b34a7fc92d971",
"worker": null,
"base_pay_rate": 65.64,
"job_code_id": "66b2512c4ad1db34abae1e82",
"job_code": null,
"job_pay_rate": 30.00,
"job_pay_rate_exceptions_id": null,
"job_pay_rate_exceptions": null
}
],
"next_link": null
}

Use GET Retrieve a specific job assignment when you have a job assignment id and need the full details of one active assignment.

Request:

curl -L -X GET 'https://rest.ripplingapis.com/job-assignments/66d74bc3e0d1070b2ce8324d' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer REDACTED'

Response:

{
"id": "66d74bc3e0d1070b2ce8324d",
"created_at": "2024-09-03T17:47:47.182000+00:00",
"updated_at": "2025-11-15T10:22:30.456000+00:00",
"worker_id": "66a42f06d80b34a7fc92d971",
"worker": null,
"base_pay_rate": 65.64,
"job_code_id": "66b2512c4ad1db34abae1e82",
"job_code": null,
"job_pay_rate": 30.00,
"job_pay_rate_exceptions_id": null,
"job_pay_rate_exceptions": null
}

Scheduled job assignments​

Use GET List scheduled job assignments when you need to see pending changes.

Request:

curl -L -X GET 'https://rest.ripplingapis.com/scheduled-job-assignments' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer REDACTED'

Response:

{
"results": [
{
"id": "67a1b2c3d4e5f6789012345a",
"created_at": "2025-10-15T14:30:00.000000+00:00",
"updated_at": "2025-10-15T14:30:00.000000+00:00",
"worker_id": "66a42f06d80b34a7fc92d971",
"job_code_id": "66b2512c4ad1db34abae1e82",
"job_dimension_id": "66b25055891aca1dfb199246",
"job_code_name": "Barista",
"job_dimension_name": "Task",
"change_type": "ASSIGN",
"effective_from": "2026-11-01T09:00:00.000000+00:00",
"reason": "New job start date",
"changed_by_id": "66a430b4d80b34a7fc931ab9",
"pay_rate": 25.00
}
],
"next_link": null
}

Use GET Retrieve a scheduled job assignment when you have a scheduled change id and need the full details of one pending change.

Request:

curl -L -X GET 'https://rest.ripplingapis.com/scheduled-job-assignments/67a1b2c3d4e5f6789012345a' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer REDACTED'

Response:

{
"id": "67a1b2c3d4e5f6789012345a",
"created_at": "2025-10-15T14:30:00.000000+00:00",
"updated_at": "2025-10-15T14:30:00.000000+00:00",
"worker_id": "66a42f06d80b34a7fc92d971",
"job_code_id": "66b2512c4ad1db34abae1e82",
"job_dimension_id": "66b25055891aca1dfb199246",
"job_code_name": "Barista",
"job_dimension_name": "Task",
"change_type": "ASSIGN",
"effective_from": "2026-11-01T09:00:00.000000+00:00",
"reason": "New job start date",
"changed_by_id": "66a430b4d80b34a7fc931ab9",
"pay_rate": 25.00
}

Create​

Use POST Create a new job assignment to assign a worker to a job code immediately or schedule a future assignment using effective_from.

These endpoints require a valid worker ID and job code ID. The job code's dimension must also have the Pay rate organizational attribute enabled.

Immediate assignment​

Omit effective_from to assign the worker to the job code immediately.

Request:

curl -L -X POST 'https://rest.ripplingapis.com/job-assignments/'
-H 'Accept: application/json'
-H 'Content-Type: application/json'
-H 'Authorization: Bearer REDACTED'

Request body:

{
"worker_id": "66a42f06d80b34a7fc92d971",
"job_code_id": "66b2512c4ad1db34abae1e82",
"job_pay_rate": 25.00
}

Response:

{
"id": "66d74bc3e0d1070b2ce8324d",
"created_at": "2024-09-03T17:47:47.182000+00:00",
"updated_at": "2024-09-03T17:47:47.182000+00:00",
"worker_id": "66a42f06d80b34a7fc92d971",
"worker": null,
"base_pay_rate": 65.64,
"job_code_id": "66b2512c4ad1db34abae1e82",
"job_code": null,
"job_pay_rate": 25.00,
"job_pay_rate_exceptions_id": null,
"job_pay_rate_exceptions": null
}

Future assignment​

Request:

curl -L -X POST 'https://rest.ripplingapis.com/job-assignments/'
-H 'Accept: application/json'
-H 'Content-Type: application/json'
-H 'Authorization: Bearer REDACTED'

Request body:

{
"worker_id": "66a42f06d80b34a7fc92d971",
"job_code_id": "66b2512c4ad1db34abae1e82",
"effective_from": "2026-11-01T09:00:00.000Z",
"change_reason": "New job start date",
"job_pay_rate": 25.00
}

A successful response returns 200 OK.

When effective_from is a future date, the response body will be empty. Use GET List scheduled job assignments to retrieve the pending change.


Update​

Job assignment​

Use PATCH Update a job assignment to modify an already-active assignment (e.g., pay rate). This endpoint does not schedule new changes.

Request:

curl -L -X PATCH 'https://rest.ripplingapis.com/job-assignments/66d74bc3e0d1070b2ce8324d'
-H 'Accept: application/json'
-H 'Content-Type: application/json'
-H 'Authorization: Bearer REDACTED'

Request body:

{
"worker_id": "66a42f06d80b34a7fc92d971",
"job_code_id": "66b2512c4ad1db34abae1e82",
"job_pay_rate": 30.00
}

Response:

{
"id": "66d74bc3e0d1070b2ce8324d",
"created_at": "2024-09-03T17:47:47.182000+00:00",
"updated_at": "2025-11-15T10:22:30.456000+00:00",
"worker_id": "66a42f06d80b34a7fc92d971",
"worker": null,
"base_pay_rate": 65.64,
"job_code_id": "66b2512c4ad1db34abae1e82",
"job_code": null,
"job_pay_rate": 30.00,
"job_pay_rate_exceptions_id": null,
"job_pay_rate_exceptions": null
}

Delete​

Job assignment​

Use DEL Delete a job assignment to remove a worker from a job code immediately or schedule a future unassignment. To remove the assignment right away, send no request body.

Request:

curl -L -X DELETE 'https://rest.ripplingapis.com/job-assignments/66d74bc3e0d1070b2ce8324d' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer REDACTED'

A successful delete returns 200 and no body.

Include a JSON body with a future effective_from to schedule a future unassignment. You must send Content-Type: application/json.

Request:

curl -L -X DELETE 'https://rest.ripplingapis.com/job-assignments/66d74bc3e0d1070b2ce8324d' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer REDACTED' \
-d '{
"effective_from": "2025-11-30T23:59:00.000Z",
"change_reason": "Role ending"
}'

A successful delete returns 200 and no body.

Scheduled change​

Use DEL Delete a scheduled job assignment to cancel a pending scheduled change before it takes effect. Use the scheduled change id from GET List scheduled job assignments as opposed to the job assignment id.

Request:

curl -L -X DELETE 'https://rest.ripplingapis.com/scheduled-job-assignments/67a1b2c3d4e5f6789012345a' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer REDACTED'

A successful delete returns 200 and no body.


See also​