---
title: "Create Self-Onboarding URL"
method: POST
path: "/v2/accounts/{main_account_id}/businesses/onboarding-sessions"
tags: ["Onboarding V2"]
---

# Create Self-Onboarding URL

`POST /v2/accounts/{main_account_id}/businesses/onboarding-sessions`

Generate a 1Money-hosted onboarding URL for customer self-service.

## Path parameters

- `main_account_id` string, required

## Headers

- `Idempotency-Key` string, required

## Request body

- CreateHostedBusinessOnboardingSessionRequest — Request body for generating a 1Money-hosted onboarding URL that the customer completes self-service.
  - `legal_name` string, required — Legal name of the business being onboarded. 1–100 characters. Only letters, numbers, spaces, and the characters `/ - ? : ( ) . , ' +` are allowed.
  - `redirect_url` string, nullable — Optional URL where the customer is redirected after completing — or abandoning — the hosted onboarding journey. Must be a valid absolute URL when provided.

## Response `201`

Hosted onboarding session link created successfully.

- HostedBusinessOnboardingSessionResponse — 1Money-hosted business onboarding session for customer self-service.
  - `account_id` string
  - `status` 'DRAFT' | 'PROCESSING' | 'ACTION_REQUIRED' | 'UNDER_REVIEW' | 'APPROVED' | 'REJECTED', required — Onboarding lifecycle status of a business sub-account. - `DRAFT` — sub-account initiated but not yet submitted for review. - `PROCESSING` — submitted and being prepared for review. - `ACTION_REQUIRED` — a Request for Information (RFI) is open and waiting on the partner to respond. See [RFI Handling](https://developer.1money.com/reference/business_onboarding_overview#request-for-information-handling-rfi). - `UNDER_REVIEW` — active manual compliance review is in progress or provisioning. - `APPROVED` — terminal status; the sub-account is active and ready to transact. - `REJECTED` — terminal status; the sub-account cannot be activated.
  - `onboarding_url` string, required — 1Money-hosted URL that walks the customer through the full business onboarding journey. Share this URL with the customer.
  - `expires_at` string, required — Timestamp at which the hosted onboarding URL expires (RFC 3339 format).

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/1money/apis/1money-openapi.md) · [All operations](https://skmtc.net/1money/apis/1money-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/1money/1money-openapi/revisions/aa2718d28cb5/schema)
