---
title: "Create or reconcile the flow-bound Stripe test subscription"
method: POST
path: "/onboarding/v3/subscribe"
tags: ["Onboarding"]
---

# Create or reconcile the flow-bound Stripe test subscription

`POST /onboarding/v3/subscribe`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/onboarding/v3/subscribe`
- Auth: HTTP bearer

Request body is empty; all economics and provider IDs come from durable server state.

## Headers

- `X-Median-App-Surface` 'qa'

## Request body

- OnboardingV3EmptyBody

## Response `200`

Completed flow or a minimal invoice action secret

- OnboardingV3SubscribeApiResponse
  - `success` true, required
  - `data` union, required
    - object
      - `flow` OnboardingV3Flow, required
        - `id` string, uuid, required
        - `companyId` string, uuid, nullable, required
        - `stage` 'auth' | 'price' | 'sales' | 'subscribe' | 'setup' | 'books', required
        - `revenueBand` string, nullable, required
        - `expensesBand` string, nullable, required
        - `accountCount` integer, nullable, required
        - `priceTier` '200' | '500' | 'custom' | 'sales' | 'null', nullable, required
        - `priceMonthlyCents` integer, nullable, required
        - `pricePlanId` 'essential' | 'growth' | 'custom' | 'null', nullable, required
        - `trialDays` integer, required
        - `billingInterval` 'year': Present only when the customer chose annual billing on a custom offer (absent = monthly).
        - `welcomeCall` object, nullable, required
        - `accountName` string, required
        - `accountEmail` string, email, required
        - `createdAt` string, date-time, required
        - `updatedAt` string, date-time, required
    - object
      - `actionRequired` object, required
        - `clientSecret` string, required

## Other responses

- `400`: Onboarding request body is not valid JSON
- `401`: Authentication required
- `403`: Insufficient permissions or not a company member
- `404`: Resource not found
- `409`: Request conflicts with the durable onboarding state
- `413`: Onboarding pricing request exceeds the 4096-byte route limit
- `415`: Onboarding request charset or content encoding is unsupported
- `422`: Validation error
- `503`: Required sandbox provider configuration or service is unavailable

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
