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

# KYB

> Business information, people, documents and a settlement account, submitted once through the API.

Ladder creates your organisation from the details you give the partnerships team. `GET /organisation` then tells you what is still missing:

```json theme={null}
{
  "data": {
    "id": "3794e63e-9214-4636-927d-9bf5cf137f69",
    "legal_name": "Harbour Point Asset Management Limited",
    "country": "NG",
    "kyb_status": "draft",
    "environment": "test",
    "kyb_missing": [
      "business.entity_type", "business.registration_number", "business.date_of_incorporation",
      "business.tax_id", "business.registered_address", "business.operating_address",
      "business.industry", "business.expected_monthly_volume", "business.source_of_funds",
      "business.licence_regulator", "business.licence_type", "business.licence_number",
      "people: at least one director", "people: at least one authorised signatory",
      "documents.certificate_of_incorporation", "documents.registry_status_report",
      "documents.constitution", "documents.board_resolution", "documents.proof_of_address",
      "documents.financial_statement", "documents.aml_policy", "documents.regulatory_licence",
      "settlement_accounts: at least one"
    ]
  }
}
```

<Steps>
  <Step title="Business information">
    `PUT /kyb/business`. `entity_type` is one of `private_limited`, `public_limited`, `partnership`, `other`.

    ```json theme={null}
    {
      "entity_type": "private_limited",
      "registration_number": "RC-1234567",
      "date_of_incorporation": "2018-03-14",
      "tax_id": "12345678-0001",
      "registered_address": "14 Harbour Point Road, Victoria Island, Lagos",
      "operating_address": "14 Harbour Point Road, Victoria Island, Lagos",
      "industry": "Asset management",
      "expected_monthly_volume": "NGN 250,000,000",
      "source_of_funds": "Client subscriptions to managed portfolios",
      "licence_regulator": "SEC Nigeria",
      "licence_type": "Fund/Portfolio Manager",
      "licence_number": "SEC/FM/0123",
      "technical_contact_email": "integrations@yourcompany.com"
    }
    ```
  </Step>

  <Step title="People">
    `POST /kyb/people`, one call per person. At least one `director` and one `signatory`; every beneficial owner holding 5 percent or more as `beneficial_owner` with `ownership_percentage`; politically exposed persons flagged with `is_pep` and details. ID numbers are stored encrypted and returned masked.
  </Step>

  <Step title="Documents">
    `POST /kyb/documents`, multipart, PDF, JPEG or PNG up to 2 MB. Required types: `certificate_of_incorporation`, `registry_status_report` (CAC status report, or Form 3 in Ghana), `constitution` (MEMART), `board_resolution`, `proof_of_address`, `financial_statement`, `aml_policy`, `regulatory_licence`. Add one `person_id` per person. Use `other` for anything Ladder asks for later. See [document uploads](/guides/authentication#document-uploads) for how to sign a multipart body.
  </Step>

  <Step title="Settlement accounts">
    `POST /kyb/settlement-accounts`: the bank account in your name that Ladder pays redemptions and payouts to, one per currency. Include `bank_code` on NGN accounts; it is required to take a direct-debit mandate on the account later.
  </Step>

  <Step title="Submit">
    `POST /kyb/submit`. Before everything is in you get `400 kyb_incomplete` with the same `missing` list.
  </Step>
</Steps>

## Status flow

```
draft → submitted → in_review → approved
                        ↓
               more_info_required → (you edit and resubmit) → in_review
```

Each change fires a `kyb.status_changed` webhook. While the status is `draft` or `more_info_required` the `kyb/*` endpoints are editable; otherwise they answer `409 kyb_not_editable`. After approval Ladder issues your live keys. A settlement account Ladder has verified cannot be deleted (`409 settlement_account_verified`); add a new one instead.


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