---
title: "Initiate KYB verification"
method: POST
path: "/v1/organizations/{organization_id}/kyb/links"
tags: ["Fiat"]
---

# Initiate KYB verification

`POST /v1/organizations/{organization_id}/kyb/links`

## Request

- Base URL: `https://api.privy.io`
- URL: `https://api.privy.io/v1/organizations/{organization_id}/kyb/links`
- Auth: HTTP basic

Generates a hosted KYB link for the organization and returns the current KYB status snapshot.

## Path parameters

- `organization_id` string, required: The ID of the organization.

## Headers

- `privy-app-id` string, required: ID of your Privy app.

## Request body

- KybLinksRequestBody: Request body for initiating a hosted KYB flow for an organization.
  - `provider` 'bridge', required: KYC/KYB provider identifier.
  - `environment` 'production' | 'sandbox': Provider environment (production or sandbox).
  - `email` string, email, required: Email address for the organization.
  - `business_name` string: Legal name of the business.
  - `endorsements` KyxEndorsementName[]: Endorsements to request during KYB.
  - `redirect_uri` string, uri: URI to redirect after completing KYB.
  - `client_agreement_id` string: Client-side agreement ID for ToS acceptance.

## Response `200`

KYB status snapshot including the hosted verification link.

- KybStatusResponse: Full KYB status for an organization with a given provider.
  - `provider` 'bridge', required: KYC/KYB provider identifier.
  - `environment` 'production' | 'sandbox', required: Provider environment (production or sandbox).
  - `status` string, required: KYC/KYB status for the user.
  - `tos` KyxTosStatusDetail, required: Terms of Service acceptance status for a KYC or KYB flow.
    - `status` string, required: Status of Terms of Service acceptance. Passthrough from the provider.
    - `link` string, uri: ToS acceptance link, if pending.
  - `endorsements` KyxEndorsement[], required
    - `name` string, required: Endorsement identifier.
    - `status` string, required: Status of an endorsement. Passthrough from the provider.
    - `missing` string[], nullable, required: Missing requirements, or null if complete.
    - `issues` string[], nullable, required: Provider issue codes, or null if none.
  - `capabilities` KyxCapabilities, required: Capability statuses for the customer.
    - `payin_crypto` string, required: Status of a capability. Passthrough from the provider.
    - `payout_crypto` string, required: Status of a capability. Passthrough from the provider.
    - `payin_fiat` string, required: Status of a capability. Passthrough from the provider.
    - `payout_fiat` string, required: Status of a capability. Passthrough from the provider.
  - `requirements_due` string[], required: Top-level items still needed (e.g. link a bank account).
  - `future_requirements_due` string[], required: Items that will be required in the future.
  - `kyb` KyxVerificationStatusDetail, required: Verification status detail for a KYC or KYB check.
    - `status` string, required: Status of KYC/KYB verification. Passthrough from the provider.
    - `link` string, uri: Verification link, if applicable.
    - `rejection_reasons` string[]: Reasons for rejection, if status is closed or action_required.

## Changes

- **2026-10-16** `4facbfa7f9d4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/privy-io/apis/privy-api/changes/v1/organizations/:organization_id/kyb/links/post.md)

---

[API](https://skmtc.dev/privy-io/apis/privy-api.md) - [All operations](https://skmtc.dev/privy-io/apis/privy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/privy-io/apis/privy-api/revisions/3a2288470053?raw)
