Skip to content

Skip, resume or confirm an onboarding step

The onboarding.steps.update operation: POST /api/v1/onboarding/steps/{step} in the REST API and the onboarding_steps_update tool in the MCP server.

POST/api/v1/onboarding/steps/{step}

Changes one step of the organization's onboarding checklist and returns the checklist:

  • skip: the step is set aside (skipped) and the checklist moves on. It counts as done as soon as the organization's data shows it done;
  • resume: a skipped step is open again (and a confirmed registrations review is open again);
  • complete: confirms the registrations review (registrations): the home registration numbers are right, existing OSS, UK or other registrations are entered, and the blocked jurisdictions were reviewed. The other steps follow the organization's data and can't be marked done (onboarding_step_not_manual).

Needs org:write (organization owners and admins).

At a glance

  • REST: POST /api/v1/onboarding/steps/{step}
  • MCP tool: onboarding_steps_update
  • Operation ID: onboarding.steps.update
  • Scope: Organization
  • Permission: org:write
  • Risk tier: write
  • Dry run: Supported (send Ownrecord-Dry-Run: true)
  • Idempotency: Idempotency-Key required
  • Modes: Test and live
  • Authentication: API key with the org:write scope
  • Since: M12

Request

Path parameters

FieldTypeDescription
stepone of legal_entity, brand, processor, registrations, catalog, test_checkout, go_live

Body

A JSON object (Content-Type: application/json):

FieldTypeRequiredDescription
actionone of skip, resume, completeYesskip a step, resume a skipped (or confirmed) one, or complete the registrations review.
expectedVersioninteger (at least 0)NoThe checklist's version you read (0 before the first change); a stale one is version_conflict.

Response

200 OK with a JSON object:

FieldTypeDescription
object"onboarding_checklist"
orgIdorg_… ID
completebooleanEvery step is done or skipped.
nextone of legal_entity, brand, processor, registrations, catalog, test_checkout, go_live or nullThe first step that is neither done nor skipped.
doneinteger
totalinteger
stepsarray of object
steps[].stepone of legal_entity, brand, processor, registrations, catalog, test_checkout, go_live
steps[].statusone of todo, in_progress, done, skipped
steps[].doneByone of data, person or nullHow a done step is known: from the organization's data, or from a person's confirmation.
steps[].skippedAtdate-time or null
steps[].completedAtdate-time or nullWhen a person confirmed the step (the registrations review only).
completedAtdate-time or nullWhen the checklist was first complete.
versioninteger0 until a step was first skipped or confirmed.

Examples

Confirm the registrations review

HTTP
POST /api/v1/onboarding/steps/registrations
Authorization: Bearer or_test_…
Idempotency-Key: 3f1c9a52-7d0e-4b8f-9a61-0c2d5e8b7f14
Content-Type: application/json

{
  "action": "complete"
}

Response (200):

JSON
{
  "object": "onboarding_checklist",
  "orgId": "org_01m4tx5nj7ekd958x53w4bntcg",
  "complete": false,
  "next": "catalog",
  "done": 4,
  "total": 7,
  "steps": [
    {
      "step": "legal_entity",
      "status": "done",
      "doneBy": "data",
      "skippedAt": null,
      "completedAt": null
    },
    {
      "step": "brand",
      "status": "done",
      "doneBy": "data",
      "skippedAt": null,
      "completedAt": null
    },
    {
      "step": "processor",
      "status": "done",
      "doneBy": "data",
      "skippedAt": null,
      "completedAt": null
    },
    {
      "step": "registrations",
      "status": "done",
      "doneBy": "person",
      "skippedAt": null,
      "completedAt": "2026-10-26T09:00:00.000Z"
    },
    {
      "step": "catalog",
      "status": "todo",
      "doneBy": null,
      "skippedAt": null,
      "completedAt": null
    },
    {
      "step": "test_checkout",
      "status": "todo",
      "doneBy": null,
      "skippedAt": null,
      "completedAt": null
    },
    {
      "step": "go_live",
      "status": "todo",
      "doneBy": null,
      "skippedAt": null,
      "completedAt": null
    }
  ],
  "completedAt": null,
  "version": 1
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400The step or action is unknown.Fix the fields listed in details.issues and send the request again.
onboarding_step_not_manual400complete on a step the organization's data decides.Do the step (for example, create the brand), or skip it. Only the registrations review is marked done.
onboarding_step_done409skip or complete on a step that is already done.Nothing to do. A done step can't be skipped or marked again.
version_conflict409The checklist changed since expectedVersion; read it again.Fetch the object again and retry the change.
permission_denied403You can't change this organization's onboarding.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, invalid_json, unsupported_media_type, authentication_required, api_key_invalid, resource_not_found, idempotency_key_required, idempotency_key_reused, idempotency_in_progress, approval_required, approval_rejected, approval_expired, stale_approval, approval_policy_denied, rate_limited, internal_error.