---
title: "Create Customer Onboarding Request"
method: POST
path: "/v1/customers/{customerId}/onboarding-requests"
tags: ["Customer Onboarding"]
---

# Create Customer Onboarding Request

`POST /v1/customers/{customerId}/onboarding-requests`

Creates an API-based onboarding request for a customer and returns the Dynamic Form Schema that describes the required customer information. Complete `data.requirements.schema`, then submit the resulting object to the request's submit endpoint.

## Path parameters

- `customerId` string, uuid, required

## Request body

- CreateCustomerOnboardingRequestDto
  - `provider` string — Provider slug or provider UUID. Omit to use provider routing.
  - `type` 'onramp' | 'offramp' — Intended customer activity.
  - `routeIntent` CreateCustomerOnboardingRouteIntent
    - `sourceCurrencyCode` string, required
    - `targetCurrencyCode` string, required
    - `chain` string
    - `network` string
  - `callbackUrl` string, uri — URL notified as the onboarding request progresses.

## Response `201`

Customer onboarding request created.

- CustomerOnboardingRequestResponse
  - `statusCode` integer, required
  - `message` string, required
  - `data` CustomerOnboardingRequestData, required
    - `customerId` string, uuid, required
    - `case` CustomerOnboardingCase, required
      - `id` string, uuid, required
      - `businessId` string, uuid, required
      - `customerId` string, uuid, required
      - `providerId` string, uuid, required
      - `subjectType` 'customer', required
      - `status` 'draft' | 'collecting_information' | 'ready_for_submission' | 'submitted' | 'action_required' | 'pending_admin_review' | 'in_review' | 'approved' | 'rejected' | 'failed' | 'expired', required
      - `mode` 'api_only' | 'hosted_only' | 'hybrid' | 'manual', required
      - `feature` union
        - 'offramp' | 'onramp_payment_order' | 'onramp_virtual_account'
        - string
      - `providerReference` string, nullable
      - `routeIntent` object, nullable
      - `data` object, nullable
      - `hostedSessions` object[], nullable
      - `reason` string, nullable
      - `metadata` object, nullable
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
    - `requirements` CustomerOnboardingRequirements, required — Current customer-onboarding requirements. Provider identifiers are intentionally omitted.
      - `mode` 'api_only' | 'hosted_only' | 'hybrid' | 'manual', required
      - `subjectType` 'customer', required
      - `feature` union
        - 'offramp' | 'onramp_payment_order' | 'onramp_virtual_account'
        - string
      - `status` 'draft' | 'collecting_information' | 'ready_for_submission' | 'submitted' | 'action_required' | 'pending_admin_review' | 'in_review' | 'approved' | 'rejected' | 'failed' | 'expired', required
      - `schema` object, required — JSON Schema Draft 07 contract for the value submitted as `data`.

---

[API](https://skmtc.net/blockradar/apis/blockradar-documentation.md) · [All operations](https://skmtc.net/blockradar/apis/blockradar-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/blockradar/blockradar-documentation/revisions/97f95b4cfc0d/schema)
