> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stableyard.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# Onboarding overview

> The verification gates between creating an account and using a fiat rail, for each account type.

Onboarding is the set of verification gates an account passes before it can use a fiat rail. Stablecoin movement needs none of them, and creating an account starts no verification.

Each gate is a resource you read, never a state you infer from a wallet, a payment or another account.

## Onboarding by account type

`subjectType`, fixed when the account is created, decides which path an account takes. See [Universal Payment Account](/universal-payment-account#subjecttype-decides-what-the-account-may-ever-do).

| Step | `individual` | `business` | Crypto only |
| - | - | - | - |
| 1 | `POST /v2/accounts` with `subjectType: "individual"` | `POST /v2/accounts` with `subjectType: "business"` | `POST /v2/accounts`, either type |
| 2 | [Verify the email](/concepts/email-verification) | Not used | Not used |
| 3 | [Individual KYC](/concepts/individual-kyc) on a provider-hosted page | Not used | Not used |
| 4 | [Activate a capability](/concepts/capability-activation): the customer completes a Stableyard-hosted form | Activate a capability with `business.legalName`: the company's representative completes a provider-hosted [business verification](/concepts/business-verification) | Not used |
| Opens | The bank rails your app is entitled to | US bank rails only: a linked US bank, a USD on-ramp account and payouts to that bank | Stablecoin rails only |

The steps run in this order. A KYC session without a verified email is refused, and an individual's capability activation without current identity eligibility is refused.

A crypto-only integration stops at step 1. Crypto rails depend only on your app's product access and work whether or not anyone has been verified.

## The gates

```mermaid theme={null}
flowchart LR
  K["Your organization's KYB<br/>once"] --> E["Email verified<br/>individual"]
  E --> I["Identity verified<br/>individual, provider-hosted"]
  I --> C["Capability active<br/>Stableyard-hosted form"]
  BV["Business verification<br/>business, provider-hosted"] --> C
  K --> BV
  C --> R["Bank rails open"]
```

| Gate | Who passes it | Read it from |
| - | - | - |
| Partner KYB | Your organization, once | `compliance.partnerKyb.status` in `GET /v2/partners/config` |
| Email | Each `individual` account | `GET /v2/accounts/{accountId}/email` |
| Identity (KYC) | Each `individual` account | `GET /v2/accounts/{accountId}/kyc` |
| Business verification | Each `business` account | `GET /v2/accounts/{accountId}/capabilities` |
| Capability | Each account, per capability | `GET /v2/accounts/{accountId}/capabilities` |

## Partner KYB gates all fiat

Until your organization's KYB is approved, no fiat product works for you or for any of your accounts. You complete it with Stableyard, not through the Partner API. Read its standing at runtime:

```bash theme={null}
curl https://staging-api-v2.stableyard.fi/v2/partners/config \
  -u "$APP_ID:$APP_SECRET"
```

```json theme={null}
{
  "compliance": {
    "partnerKyb": { "status": "approved", "updatedAt": "2026-09-30T09:00:00Z" },
    "requirements": {
      "partnerFiatAccess": "kyb",
      "individualUpaFiatAccess": "kyc",
      "businessUpaFiatAccess": "kyb"
    }
  }
}
```

| `compliance.partnerKyb.status` | Meaning |
| - | - |
| `not_started` | Nothing submitted yet |
| `pending` | Under review |
| `approved` | Fiat can open for your accounts, subject to each account's own verification |
| `action_required` | Stableyard needs something from you |

`compliance.requirements` states what each party passes:

| Field | Value | Who passes it |
| - | - | - |
| `partnerFiatAccess` | `kyb` | Your organization |
| `individualUpaFiatAccess` | `kyc` | Each `individual` account |
| `businessUpaFiatAccess` | `kyb` | Each `business` account that represents one of your customers |

Your organization's KYB also covers [Your Business UPA](/universal-payment-account#your-business-upa), the one `business` account you designate as your own operating identity. It needs no separate verification.

## What each flow needs

| Flow | Account | Needs first | Page |
| - | - | - | - |
| Verify an email | `individual` | The account. Your app environment's email policy decides how | [Email verification](/concepts/email-verification) |
| Verify identity | `individual` | A verified email | [Individual KYC](/concepts/individual-kyc) |
| Verify a business | `business` | Business verification enabled for your banking program | [Business KYB](/concepts/business-verification) |
| Activate a capability | Either | Partner KYB approved, the account's own verification, your app entitled to the capability, and one banking program covering the country, currency, rail and account type | [Capability activation](/concepts/capability-activation) |
| Move stablecoin | Either | Your app's product access only | [Universal Payment Account](/universal-payment-account) |

An account created before explicit classification may report `subjectType: "unclassified"`. It remains usable for non-regulated activity, but cannot start verification: those calls return `422 account_subject_unclassified`.

## Related

<CardGroup cols={2}>
  <Card title="Email verification" icon="envelope" href="/concepts/email-verification">
    Verify an individual's email with a Stableyard code, or assert one you already verified.
  </Card>

  <Card title="Individual KYC" icon="user" href="/concepts/individual-kyc">
    Send the customer to a provider-hosted page and read the result.
  </Card>

  <Card title="Business KYB" icon="building" href="/concepts/business-verification">
    Verify a business for US bank rails through a hosted application.
  </Card>

  <Card title="Capability activation" icon="toggle-on" href="/concepts/capability-activation">
    Turn a verified customer into one who can use a bank rail.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.