> ## 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.

# Choose your pattern

> Three ways to run Stableyard for your customers, the gates each one passes, and what to confirm first.

Pick the pattern that matches who your customers are and how their money moves. Each one lists the parties to confirm, the gates in order, and what works where today.

<CardGroup cols={3}>
  <Card title="Embedded ramps for individuals" icon="mobile" href="#pattern-embedded-ramps-for-individuals">
    People fund from a US bank and cash out to their own bank, inside your app.
  </Card>

  <Card title="Platform for business customers" icon="building" href="#pattern-platform-for-business-customers">
    Companies get US bank access through your product after hosted verification.
  </Card>

  <Card title="Crypto-only payouts" icon="wallet" href="#pattern-crypto-only-payouts">
    Stablecoin to wallets, accounts and handles, with no verification.
  </Card>
</CardGroup>

| Pattern | Signals | What to scope |
| - | - | - |
| [Embedded ramps for individuals](#pattern-embedded-ramps-for-individuals) | End users are people. They need bank details to fund and a bank to cash out to | Who signs from the wallet. US-only funding. Which payout markets you need |
| [Platform for business customers](#pattern-platform-for-business-customers) | End users are companies. A representative completes verification | Business verification enabled for you. US bank rails only. Who the representative is |
| [Crypto-only payouts](#pattern-crypto-only-payouts) | Value stays in stablecoin, wallet to wallet or account to account | Who signs from the payment source. Chains and assets from your configuration |

## Pattern: Embedded ramps for individuals

**Use when:** a consumer app, wallet or fintech gives individual users a USD on-ramp and an off-ramp to their own bank, inside its own product.

| Party | Confirm before building |
| - | - |
| Customer of record | Each user is an `individual` account. `subjectType` never changes, so create a company as `business` from the start |
| Wallet controller | Who signs from the wallet that receives on-ramped funds and funds payouts: the user, or your platform |
| Your organization | Your KYB is approved. Until it is, no fiat step below works |
| Support owner | Who tells the user what to do when verification is rejected or a payout needs review |

<Steps>
  <Step title="Create the account">
    `POST /v2/accounts` with `subjectType: "individual"` and the user's wallet. See [Universal Payment Account](/universal-payment-account).
  </Step>

  <Step title="Verify the email">
    A code Stableyard emails, or your own assertion where Stableyard has enabled it. See [Email verification](/concepts/email-verification).
  </Step>

  <Step title="Verify identity">
    `POST /v2/accounts/{accountId}/kyc/session`, then send the user to the provider-hosted `verificationUrl`. See [Individual KYC](/concepts/individual-kyc).
  </Step>

  <Step title="Activate the bank capabilities">
    `bank_onramp` to fund, `linked_bank` to cash out. Each can return a one-time Stableyard-hosted form. See [Capability activation](/concepts/capability-activation).
  </Step>

  <Step title="Issue an on-ramp account">
    `POST /v2/accounts/{accountId}/onramp-bank-accounts`, then show the deposit instructions. See [On-ramp accounts](/concepts/on-ramp-accounts).
  </Step>

  <Step title="Link the user's bank">
    `POST /v2/accounts/{accountId}/bank-accounts` with the country's fields. See [Bank accounts](/concepts/bank-accounts).
  </Step>

  <Step title="Pay out">
    `POST /v2/payments` with `destination.type: "bank_account"`. The wallet funds the payment's escrow. See [Sending payments](/payments/sending-payments).
  </Step>
</Steps>

| Leg | Where it works today |
| - | - |
| Fund by bank transfer | United States, USD, over ACH, Fedwire or FedNow. Certified on staging |
| Link a bank | United States, Philippines and Vietnam |
| Pay out to a linked bank | United States only. Certified on staging. Philippine and Vietnamese links cannot receive payouts yet |
| Pay a bank in the Philippines or Vietnam | A one-time bank transfer by account details, `destination.type: "external_bank"` |

<Warning>
  Verification needs a person. Every user completes an identity check hosted by a verification provider and, for each bank capability, a form hosted by Stableyard. No API accepts identity documents from you.
</Warning>

**Stableyard enables:** Identity & KYC, the on-ramp, the linked-bank route for each country, and External Bank Transfer for one-time bank transfers.

## Pattern: Platform for business customers

**Use when:** your customers are companies, such as merchants, suppliers or payroll clients, and each needs US bank access through your product.

| Party | Confirm before building |
| - | - |
| Customer of record | Each company is a `business` account. Your own company is not one of them: your organization's KYB covers it |
| Authorized representative | The person at each company who completes verification. The hosted link is a credential; send it only to them |
| Legal name | The company's exact legal name. It is sent once, and a different name later is refused |
| Support owner | Who handles an expired or rejected business application with Stableyard |

<Steps>
  <Step title="Create the account">
    `POST /v2/accounts` with `subjectType: "business"`. Add a `displayProfile` for how payers see the company. See [Universal Payment Account](/universal-payment-account).
  </Step>

  <Step title="Start business verification">
    `POST /v2/accounts/{accountId}/capability-activations` with `capability: "linked_bank"` and `business.legalName`. A business skips the email and individual identity steps. See [Business KYB](/concepts/business-verification).
  </Step>

  <Step title="Send the representative the hosted link">
    `continue_business_verification` means the link is not ready: send the same request again. `complete_compliance` carries the link. Wait for `ready: true`. See [Capability activation](/concepts/capability-activation#business-accounts).
  </Step>

  <Step title="Fund in USD, if you need it">
    Activate `bank_onramp` on the same approved company, without `business`, then issue an on-ramp account. See [On-ramp accounts](/concepts/on-ramp-accounts).
  </Step>

  <Step title="Link the company's US bank">
    `POST /v2/accounts/{accountId}/bank-accounts` with `country: "US"`. See [Bank accounts](/concepts/bank-accounts).
  </Step>

  <Step title="Pay out">
    `POST /v2/payments` with `destination.type: "bank_account"`. See [Sending payments](/payments/sending-payments).
  </Step>
</Steps>

| Leg | Where it works today |
| - | - |
| Bank access for a business | US bank rails only: a linked US bank, a USD on-ramp account and payouts to that bank |
| One-time transfers to a third party's bank, and QR payments | Not available to `business` accounts |
| Stablecoin collection, payouts, handles and deposit addresses | Available without verification |

**Stableyard enables:** business verification for the banking program, plus the on-ramp and the US linked-bank route. Until it is enabled, a business activation is refused.

## Pattern: Crypto-only payouts

**Use when:** value stays in stablecoin: payouts to wallets, transfers between your customers by handle, or top-ups to a reusable deposit address.

| Party | Confirm before building |
| - | - |
| Customer of record | Any `individual` or `business` account. No verification is needed |
| Wallet controller | Who signs from the payment source, or whether a Vault authorizes sends without a per-send signature |
| Recipient | A wallet address, another account, or a payment handle |

<Steps>
  <Step title="Create the account with a wallet">
    `POST /v2/accounts` with `wallets`. See [Universal Payment Account](/universal-payment-account).
  </Step>

  <Step title="Set the payment source">
    `PUT /v2/accounts/{accountId}/payment-source` names the wallet or Vault that funds sends. See [Sending payments](/payments/sending-payments#set-a-payment-source-first).
  </Step>

  <Step title="Preview the send">
    `POST /v2/payments/preview`. Proceed only when your source's funding option reports `available: true`.
  </Step>

  <Step title="Create and confirm it">
    `POST /v2/payments` with a `crypto_wallet`, `payment_handle` or `upa` destination, then `POST /v2/payments/{paymentId}/confirm` with the proof `nextAction` asks for.
  </Step>

  <Step title="Collect, if you need it">
    Give a customer a reusable address with `POST /v2/accounts/{accountId}/deposit-addresses`. See [Depositing funds](/payments/depositing-funds).
  </Step>
</Steps>

Chains and assets come from `networks` in `GET /v2/partners/config`, not from a table. See [Supported regions and currencies](/supported-regions-and-currencies).

## Confirm before building

<Steps>
  <Step title="Name the customer of record">
    Decide `individual` or `business` for every customer type. It cannot be changed after creation.
  </Step>

  <Step title="Read your configuration">
    `compliance.partnerKyb.status` is `approved` and the products you need are available. See [Going live](/white-label/going-live#what-stableyard-must-enable).
  </Step>

  <Step title="Check coverage for your markets">
    Fiat is enabled per country, per rail and per app. See [Supported regions and currencies](/supported-regions-and-currencies).
  </Step>

  <Step title="Decide who signs">
    Stableyard never signs for a connected wallet. Your user or your platform does.
  </Step>

  <Step title="Assign support ownership">
    Rejected verification, expired links and payments that need intervention all reach a person. Decide whose.
  </Step>
</Steps>

<Card title="Next: Quickstart" icon="rocket" href="/white-label/quickstart">
  Run the embedded-ramps pattern end to end on staging.
</Card>


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