---
title: "Update onboarding status for a merchant with a specific provider. Use 'enrolling' to start enrollment or 'onboarded' to complete it."
method: PUT
path: "/api/v1/merchants/{merchantId}/onboarding/{provider}/status"
tags: ["Onboarding"]
---

# Update onboarding status for a merchant with a specific provider. Use 'enrolling' to start enrollment or 'onboarded' to complete it.

`PUT /api/v1/merchants/{merchantId}/onboarding/{provider}/status`

## Request

- Base URL: `https://core.quidkey.com`
- URL: `https://core.quidkey.com/api/v1/merchants/{merchantId}/onboarding/{provider}/status`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/banqzinc/apis/quidkey-api/docs/api/v1/merchants/:merchantId/onboarding/:provider/status/put.ts> (a function with typed inputs; its response is checked against the schema)

Update onboarding status for a merchant with a specific provider. Use 'enrolling' to start enrollment or 'onboarded' to complete it.

## Path parameters

- `merchantId` string, uuid, required: The unique identifier of the merchant
- `provider` string, required: The provider name

## Request body

- OnboardingUpdateStatusInput
  - `status` union, required: The target state: 'enrolling' to start enrollment, 'onboarded' to complete it.
    - 'enrolling'
    - 'onboarded'

## Response `200`

Success

- OnboardingProviderReadinessResponse: Response containing a single provider readiness result
  - `success` boolean, required: Indicates if the request was successful
  - `data` object, required
    - `provider` string, required: Provider identifier
    - `mode` union, required: Provider operating mode
      - 'sandbox'
      - 'live'
    - `status` union, required: Overall readiness status for this provider
      - 'not_applicable'
      - 'not_ready'
      - 'ready'
      - 'enrolling'
      - 'onboarded'
    - `requirements` object[], required
      - `code` string, required: Requirement identifier
      - `label` string, required: Human-readable label
      - `met` boolean, required: Whether the requirement is met
      - `blocker` string: Reason the requirement is not met
      - `problems` object[]: Specific field-level problems
        - `field` string, required: The field that has the problem
        - `message` string, required: Description of the problem
        - `value` unknown
    - `depends_on` object[], required
      - `provider` string, required: Provider identifier
      - `satisfied` boolean, required: Whether the dependency is satisfied
    - `can_enroll` boolean, required: Whether the merchant can enroll with this provider right now

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found

## Changes

- **2026-06-17** `b372e7d5563d`: 1 info
  - endpoint added
- **2025-11-02** `919eb7a392aa`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/banqzinc/apis/quidkey-api/changes/api/v1/merchants/:merchantId/onboarding/:provider/status/put.md)

---

[API](https://skmtc.dev/banqzinc/apis/quidkey-api.md) - [All operations](https://skmtc.dev/banqzinc/apis/quidkey-api/llms.txt) - [OpenAPI document](https://skmtc.dev/banqzinc/apis/quidkey-api/revisions/f86d2bdbcb08?raw)
