> This page is for API, version 2026-01-01 (Stable) (default).
> For other versions, use one of these documentation indexes:
> - 2026-01-01 (Stable) (default): https://docs.deel.wtf/api/stable/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.deel.wtf/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.deel.wtf/_mcp/server.

# Submit KYB information for a legal entity

POST https://api.letsdeel.com/rest/legal-entities/{legal_entity_id}/kyb
Content-Type: application/json

Submits the Know Your Business (entity verification) information for a legal entity — company facts, required declarations, documents, declared persons of significant control, and the industry questionnaire when one applies. Only accepted while the entity is `PENDING` or `DRAFT`; refused once it is `REJECTED`, already under review, approved, or when verification isn't required. Returns the resulting KYB state after submission.

 **Token scopes**: `legal-entity:write`

 **Beta**: this version requires the `X-Beta: true` request header and its contract may change before it is promoted to stable. It is scheduled to become stable on 2027-01-12.

Reference: https://docs.deel.wtf/api/reference/endpoints/legal-entities/submit-legal-entity-kyb-v-2026-10-12

## Authentication

- `Authorization` header (bearer token, required) — ## Authentication The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail. ```curl curl -X GET 'https://api.deel.training/rest/v2/contracts' \ -H 'Authorization: Bearer YOUR-TOKEN-HERE' ``` [Learn more about authentication](/api/authentication)
- `Authorization` header (bearer token, required) — Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/

## Servers

- `https://api.letsdeel.com/rest` (Production, default)
- `https://api-staging.letsdeel.com/rest` (Demo)

## Request

### Path parameters

- `legal_entity_id` (string, required) — Public id of the legal entity. The entity must belong to the authenticated organization; any other id answers 404.

### Headers

- `X-Beta` (enum, required, default: true) — Opts in to the beta version of this endpoint. Must be `true`.
  - Allowed values: `true`

### Body (application/json)

This endpoint expects an object.

- `data` (LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaData, required)

## Response

### 200

The submission was accepted. The KYB state after the submission.

- `data` (LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaData, required)

## Errors

### 400 Bad Request Error

Bad request. Codes: VALIDATION_ERROR (the request body failed validation; the error item also carries a details object naming the offending key), KYB_QUESTIONNAIRE_REQUIRED (the industry questionnaire is missing), KYB_QUESTIONNAIRE_TEMPLATE_MISMATCH (the questionnaire is for another template, or none applies), KYB_QUESTIONNAIRE_ANSWERS_INVALID (`details.keys` names every question with an invalid answer). The API gateway rejects a schema-invalid request body before it reaches Deel; each error item of that response carries a path field and no code, and the body also carries a request object that describes the failed call.

- `errors` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItems, required)

### 401 Unauthorized Error

Unauthorized. The request token is missing or invalid. The API gateway rejects an unauthenticated call before it reaches Deel; a call that reaches Deel without a valid session is rejected by the access middleware, whose error item carries a message and no code.

- `errors` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItems, required)

### 403 Forbidden Error

Forbidden. Codes: GENERIC_ERROR (the token lacks the `legal-entity:write` scope, or the actor cannot submit verification for this organization), KYB_SERVICE_ACCOUNT_MISSING (the organization has no service account to act as; contact Deel support).

- `errors` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItems, required)

### 404 Not Found Error

Not found. The legal entity does not exist or does not belong to the authenticated organization. The two cases are deliberately indistinguishable.

- `errors` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItems, required)

### 409 Conflict Error

Conflict. Codes: KYB_SUBMISSION_IN_REVIEW (a submission is under review; poll the KYB state or subscribe to the `legal-entity.kyb.changed` webhook), KYB_ALREADY_APPROVED, KYB_NOT_REQUIRED, KYB_ENTITY_REJECTED (the verification was rejected; resubmission after a rejection is not yet supported over the public API).

- `errors` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItems, required)

### 422 Unprocessable Entity Error

Unprocessable. Codes: KYB_DOCUMENT_REFERENCE_INVALID (`details.keys` names every offending field; nothing was submitted), KYB_SUBMISSION_REJECTED (the verification service rejected the record; `details.reason` carries its message when available, and the document handles remain usable).

- `errors` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItems, required)

### 429 Too Many Requests Error

Too many requests. The verification service is rate-limiting submissions; nothing was submitted. Retry after a delay.

- `errors` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItems, required)

### 500 Internal Server Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 503 Service Unavailable Error

Service unavailable. The verification status could not be read, so the submission was not attempted. Retry later.

- `errors` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItems, required)

## Types

### LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaData

- `persons` (list of LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataPersonsItems, required) — Persons of significant control: directors, controlling officers, owners and the client-side submitter.
- `is_declaration_confirmed` (boolean, required) — Must be true: the client confirms the information is accurate and complete.
- `is_terms_and_conditions_accepted` (boolean, required) — Must be true: the client accepts the verification terms and conditions.
- `documents` (LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataDocuments, optional) — Company documents as handles from the upload endpoint. Supply the ones the KYB state lists as required.
- `questionnaire` (LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataQuestionnaire, optional) — Answers to the industry questionnaire. Required when the KYB state lists the `INDUSTRY_QUESTIONNAIRE` requirement, refused when no questionnaire applies.
- `formation_date` (string, optional) — Company formation date, `YYYY-MM-DD`.
- `proof_of_authority` (LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataProofOfAuthority, optional) — Proof of Authority for the person acting on behalf of the entity. Required when the KYB state lists `PROOF_OF_AUTHORITY` as outstanding, unless `is_person_with_significant_control` is `true`.
- `transaction_monthly_volume` (enum, optional) — Expected monthly transaction volume range.
  - Allowed values: `LESS_THAN_1K`, `BETWEEN_1K_AND_10K`, `BETWEEN_10K_AND_100K`, `BETWEEN_100K_AND_1M`, `GREATER_THAN_1M`
- `is_person_with_significant_control` (boolean, optional) — Declares that the submitter personally holds significant control of the company (an owner, director or controlling officer) — the declared submitter in `persons[]` should hold one of those responsibilities too. An alternative to `proof_of_authority`: when `true`, the verification service waives the Proof of Authority document requirement. Omit or set `false` if the submitter is acting on the company's behalf without significant control themselves.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaData

- `edd` (LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataEdd, required, nullable) — The open enhanced due diligence (EDD) request while the entity is in EDD: Deel needs further answers from the client before it continues the review. Null otherwise, and null while the entity is in EDD when the questions could not be read (retry later).
- `status` (enum, required) — The mapped lifecycle status of the legal entity, the same vocabulary as `status` on `GET /rest/legal-entities/{legal_entity_id}`.
  - Allowed values: `archived`, `active`, `draft`, `processing`, `processing_draft`, `pending_verification`, `awaiting_review`, `unknown`
- `persons` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataPersonsItems, required, nullable) — Declared persons of significant control: directors, controlling officers, owners and the submitter. Dates of birth, tax ids, addresses and identity documents are never returned; the person requirements in `requirements` show whether they were provided. Null when `is_detail_available` is false.
- `documents` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataDocumentsItems, required, nullable) — Presence of every company-level document type. Null when `is_detail_available` is false.
- `rejection` (LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataRejection, required, nullable) — Present only when the entity was rejected; null otherwise.
- `approved_at` (string, required, nullable) — When the entity was approved; null otherwise.
- `rejected_at` (string, required, nullable) — When the entity was last rejected; null otherwise.
- `requirements` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataRequirementsItems, required, nullable) — Everything the verification service currently requires for this entity, with whether each item is already satisfied. Empty when verification is not required. Null when `is_detail_available` is false.
- `submitted_at` (string, required, nullable) — When the verification record was created; null before the first submission.
- `questionnaire` (LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataQuestionnaire, required, nullable) — The industry questionnaire that applies to the legal entity, answered together with the first KYB submission and listed as the `INDUSTRY_QUESTIONNAIRE` requirement. Null when none applies.
- `legal_entity_id` (string, required) — Public id of the legal entity.
- `verification_type` (enum, required, nullable) — Depth of verification the entity is subject to, when known.
  - Allowed values: `NONE`, `LIGHT`, `FULL`
- `is_action_required` (boolean, required) — True while the entity is waiting on the client: `PENDING`, `DRAFT`, or `EDD` (enhanced due diligence — Ops needs something further from the client). False while Deel is reviewing or once the entity is approved, rejected or exempt.
- `is_detail_available` (boolean, required) — False when the verification service could not be read. Every detail block (`requirements`, `documents`, `persons`, `rejection`, `edd`) is then null. Retry later; the status fields are still authoritative.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItems

- `code` (enum, required) — Machine-readable error code.
  - Allowed values: `KYB_VERIFICATION_UNAVAILABLE`
- `message` (string, required) — Human-readable explanation of the error.
- `details` (LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItemsDetails, optional) — Which request field the error refers to and, for a content-type or document-type error, the accepted values.

### ApiErrorRequest

- `method` (string, optional) — The HTTP method of the failed request
- `url` (string, optional) — The relative URL of the failed request
- `status` (double, optional) — The status code of the response
- `api_req_id` (string, optional) — The request ID of the failed request
- `docs` (string, optional) — A link to the official documentation for the requested endpoint resource
- `source` (string, optional) — The source handler which produced the returned error
- `code` (double, optional) — The code of the source handler which produced the returned error

### ApiError

- `message` (string, optional) — A description of the returned error
- `path` (string, optional) — The JSON path where input validation failed

### LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataPersonsItems

- `last_name` (string, required) — Last name.
- `first_name` (string, required) — First name.
- `responsibilities` (list of enum, required) — Roles the person holds in the entity. `submitter` marks the person who authorised the submission on the client side.
  - Allowed values: `submitter`, `controllingOfficer`, `owner`, `director`
- `tax_id` (string, optional) — Personal tax identifier.
- `address` (LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataPersonsItemsAddress, optional) — Residential address.
- `job_title` (enum, optional) — Role of the person in the company, from the verification service vocabulary; required for controlling officers when the verification service asks for it.
  - Allowed values: `FOUNDER`, `MAJOR_SHAREHOLDER`, `MINORITY_SHAREHOLDER`, `EQUITY_PARTNER`, `EXECUTIVE_C_LEVEL`, `MANAGING_DIRECTOR`, `DIRECTOR`, `PRESIDENT`, `VICE_PRESIDENT`, `SENIOR_MANAGEMENT_OFFICIAL`, `AUTHORIZED_SIGNATORY`, `OTHER`
- `citizenship` (string, optional) — Citizenship as an ISO 3166-1 alpha-2 country code.
- `middle_name` (string, optional, nullable) — Middle name, when any.
- `date_of_birth` (string, optional) — Date of birth, `YYYY-MM-DD`.
- `identity_documents` (LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataPersonsItemsIdentityDocuments, optional) — Identity document sides and selfie for the person, as upload handles.
- `ownership_percentage` (double, optional) — Ownership percentage; required for owners when the verification service asks for it.
- `identification_document_type` (enum, optional) — Type of the identity document supplied in `identity_documents`.
  - Allowed values: `PASSPORT`, `DRIVERS_LICENSE`, `ID_DOCUMENT`

### LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataDocuments

Company documents as handles from the upload endpoint. Supply the ones the KYB state lists as required.

- `company_bank_statement` (string, optional) — Handle of a document uploaded as `COMPANY_BANK_STATEMENT`.
- `articles_of_incorporation` (string, optional) — Handle of a document uploaded as `ARTICLES_OF_INCORPORATION`.
- `certificate_of_good_standing` (string, optional) — Handle of a document uploaded as `CERTIFICATE_OF_GOOD_STANDING`.
- `ultimate_beneficial_owner_form` (string, optional) — Handle of a document uploaded as `ULTIMATE_BENEFICIAL_OWNER_FORM`.

### LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataQuestionnaire

Answers to the industry questionnaire. Required when the KYB state lists the `INDUSTRY_QUESTIONNAIRE` requirement, refused when no questionnaire applies.

- `answers` (list of LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataQuestionnaireAnswersItems, required) — One answer per question that applies. Answers to questions that do not currently apply are ignored.
- `template_id` (integer, required) — The `questionnaire.template_id` from the KYB state.

### LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataProofOfAuthority

Proof of Authority for the person acting on behalf of the entity. Required when the KYB state lists `PROOF_OF_AUTHORITY` as outstanding, unless `is_person_with_significant_control` is `true`.

- `document` (string, required) — Handle of a document uploaded as `PROOF_OF_AUTHORITY`.
- `meta_type` (enum, required) — What kind of document evidences the authority: a power of attorney, a board resolution or minutes, or another document.
  - Allowed values: `POWER_OF_ATTORNEY`, `RESOLUTION_OR_MINUTES`, `OTHER`

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataEdd

The open enhanced due diligence (EDD) request while the entity is in EDD: Deel needs further answers from the client before it continues the review. Null otherwise, and null while the entity is in EDD when the questions could not be read (retry later).

- `id` (string, required) — Public id of the EDD request. Send it as `edd_request_id` when answering.
- `status` (enum, required) — `AWAITING_ANSWERS` until the answers are sent; `ANSWERED` once they are, until the entity is back in review.
  - Allowed values: `AWAITING_ANSWERS`, `ANSWERED`
- `questions` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataEddQuestionsItems, required) — Every question of the EDD form, in form order.
- `requested_at` (string, required, nullable) — When Deel requested the EDD.
- `is_answerable_over_api` (boolean, required) — False when the form has a required unsupported question. Contact Deel support to clear such a request.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataPersonsItems

- `id` (string, required, nullable) — Public id of the declared person, when the verification service has assigned one.
- `last_name` (string, required) — Last name as declared.
- `first_name` (string, required) — First name as declared.
- `responsibilities` (list of enum, required) — Roles the person holds in the entity.
  - Allowed values: `submitter`, `controllingOfficer`, `owner`, `director`
- `ownership_percentage` (double, required, nullable) — Declared ownership percentage for owners; null otherwise.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataDocumentsItems

- `type` (enum, required) — Company-level document type.
  - Allowed values: `PROOF_OF_AUTHORITY`, `ARTICLES_OF_INCORPORATION`, `COMPANY_BANK_STATEMENT`, `LIST_OF_DIRECTORS`, `CERTIFICATE_OF_GOOD_STANDING`, `ULTIMATE_BENEFICIAL_OWNER_FORM`
- `meta_type` (enum, required, nullable) — Kind of Proof of Authority document, when this entry's type is PROOF_OF_AUTHORITY. Null for every other document type.
  - Allowed values: `POWER_OF_ATTORNEY`, `RESOLUTION_OR_MINUTES`, `OTHER`
- `is_provided` (boolean, required) — Whether a file for this document has been submitted. File contents and URLs are never returned.
- `is_required` (boolean, required) — Whether the verification service currently requires this document.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataRejection

Present only when the entity was rejected; null otherwise.

- `rejected_at` (string, required, nullable) — When the rejection was recorded.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataRequirementsItems

- `key` (string, required) — Requirement key as published by the verification service, e.g. `FORMATION_DATE`, `ARTICLES_OF_INCORPORATION`, `PROOF_OF_AUTHORITY`, `UBO_NAME`, `DIRECTOR_KYC_DOCUMENT`. Person-level keys are prefixed with the role they constrain: `DIRECTOR_`, `CONTROLLING_OFFICER_`, `UBO_` or `SUBMITTER_`.
- `category` (enum, required) — What kind of input satisfies the requirement: a company field, a company document, an attribute of a declared person, or the industry questionnaire (`INDUSTRY_QUESTIONNAIRE`, answered in `questionnaire` of the submission and described in the `questionnaire` block of this state).
  - Allowed values: `FIELD`, `DOCUMENT`, `PERSON`, `QUESTIONNAIRE`
- `is_satisfied` (boolean, required) — Whether the current submission already satisfies the requirement.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataQuestionnaire

The industry questionnaire that applies to the legal entity, answered together with the first KYB submission and listed as the `INDUSTRY_QUESTIONNAIRE` requirement. Null when none applies.

- `answers` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataQuestionnaireAnswersItems, required, nullable) — The answers the verification service has saved. Null until answers are saved.
- `questions` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataQuestionnaireQuestionsItems, required) — Every question of the questionnaire, in template order.
- `template_id` (integer, required) — Id of the questionnaire template that applies. Send it as `template_id` when answering.
- `display_name` (string, required) — Display name of the template.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaErrorsItemsDetails

Which request field the error refers to and, for a content-type or document-type error, the accepted values.

- `key` (string, optional) — The request field the error refers to.
- `keys` (list of string, optional) — Every offending request field, for a multi-field error.
- `allowed` (list of string, optional) — Accepted values for the field.

### LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataPersonsItemsAddress

Residential address.

- `zip` (string, required) — Postal code.
- `city` (string, required) — City.
- `street` (string, required) — Street address.
- `country` (string, required) — ISO 3166-1 alpha-2 country code.
- `state` (string, optional, nullable) — State or province. Required for US addresses, as a 2-letter ISO 3166-2 code (e.g. `CA`).

### LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataPersonsItemsIdentityDocuments

Identity document sides and selfie for the person, as upload handles.

- `back` (string, optional) — Handle of a document uploaded as `IDENTITY_DOCUMENT_BACK`. Not needed for passports.
- `front` (string, optional) — Handle of a document uploaded as `IDENTITY_DOCUMENT_FRONT`.
- `selfie` (string, optional) — Handle of a document uploaded as `SELFIE`.

### LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataQuestionnaireAnswersItems

- `value` (LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataQuestionnaireAnswersItemsValue, required) — The answer, in the form the question type takes. For a document question, send a list with one document handle.
- `question_key` (string, required) — The `key` of the question answered.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataEddQuestionsItems

- `key` (string, required) — Key of the question within this EDD request, in form order. Send it as `question_key` when answering.
- `type` (enum, required) — What kind of answer the question takes. `COUNTRY` takes an ISO 3166-1 alpha-2 code (e.g. `US`), `CURRENCY` an ISO 4217 code (e.g. `USD`) and `STATE` a state name (e.g. `California`), each as a string, or a list of strings when the form allows several. `DOCUMENT_UPLOAD` questions are answered with a list of document handles from `POST /rest/legal-entities/{legal_entity_id}/kyb/edd/documents`. `UNSUPPORTED` questions cannot be answered over the API; when one of them is required, `is_answerable_over_api` is false.
  - Allowed values: `TEXT`, `LONG_TEXT`, `NUMBER`, `EMAIL`, `PHONE_NUMBER`, `DATE`, `DATE_RANGE`, `ADDRESS`, `SINGLE_CHOICE`, `MULTIPLE_CHOICE`, `COUNTRY`, `STATE`, `CURRENCY`, `DOCUMENT_UPLOAD`, `UNSUPPORTED`
- `title` (string, required) — The question as the reviewer wrote it.
- `options` (list of string, required, nullable) — For `SINGLE_CHOICE` and `MULTIPLE_CHOICE` questions, the option titles to answer with. Null for every other type.
- `description` (string, required, nullable) — Helper text for the question, when any.
- `is_required` (boolean, required) — Whether the question must currently be answered.
- `repeat_group` (LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataEddQuestionsItemsRepeatGroup, required, nullable) — Set when this question belongs to a repeatable group (e.g. "add another director"); null otherwise.
- `revealed_when` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataEddQuestionsItemsRevealedWhenItems, required, nullable) — Conditions under which this question applies, met if any one of them does. Null when the question always applies. Only answer it when a condition is met.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataQuestionnaireAnswersItems

- `value` (LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataQuestionnaireAnswersItemsValue, required) — The saved answer, in the form the question type takes. It is null for a document question: the file is never returned.
- `question_key` (string, required) — The `key` of the question answered.
- `is_document_provided` (boolean, optional) — Present only for a document question that has an uploaded document. It says a document exists; it never gives the file.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataQuestionnaireQuestionsItems

- `key` (string, required) — Key of the question within the questionnaire. Send it as `question_key` when answering.
- `type` (enum, required) — What kind of answer the question takes. `SINGLE_CHOICE`: the text of one option (a yes/no question has the options `Yes` and `No`). `MULTIPLE_CHOICE`: a list of option texts. `TEXT`: a string. `DOCUMENT_UPLOAD`: a list with exactly one handle from `POST /rest/legal-entities/{legal_entity_id}/kyb/documents`, uploaded with `document_type` `QUESTIONNAIRE_DOCUMENT`.
  - Allowed values: `TEXT`, `LONG_TEXT`, `NUMBER`, `EMAIL`, `PHONE_NUMBER`, `DATE`, `DATE_RANGE`, `ADDRESS`, `SINGLE_CHOICE`, `MULTIPLE_CHOICE`, `COUNTRY`, `STATE`, `CURRENCY`, `DOCUMENT_UPLOAD`, `UNSUPPORTED`
- `title` (string, required) — The question as the reviewer wrote it.
- `options` (list of string, required, nullable) — For `SINGLE_CHOICE` and `MULTIPLE_CHOICE` questions, the option titles to answer with. Null for every other type.
- `description` (string, required, nullable) — Helper text for the question, when any.
- `is_required` (boolean, required) — Whether the question must be answered when it applies. A question with `revealed_when` applies only when one of its conditions is met.
- `revealed_when` (list of LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataQuestionnaireQuestionsItemsRevealedWhenItems, required, nullable) — Conditions under which this question applies, met if any one of them does. Null when the question always applies. Only answer it when a condition is met.

### LegalEntitiesLegalEntityIdKybPostRequestBodyContentApplicationJsonSchemaDataQuestionnaireAnswersItemsValue

The answer, in the form the question type takes. For a document question, send a list with one document handle.

- string
- list of string

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataEddQuestionsItemsRepeatGroup

Set when this question belongs to a repeatable group (e.g. "add another director"); null otherwise.

- `name` (string, required) — Name of the repeatable group this question belongs to.
- `index` (integer, required) — Zero-based position of this question within its repeat group instance.
- `max_repeats` (integer, required) — Maximum number of instances of this group the form allows.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataEddQuestionsItemsRevealedWhenItems

- `equals` (string, required) — Option title `question` must be answered with for this question to apply.
- `question` (string, required) — Key of the question whose answer gates this one.

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataQuestionnaireAnswersItemsValue

The saved answer, in the form the question type takes. It is null for a document question: the file is never returned.

- string
- list of string

### LegalEntitiesLegalEntityIdKybPostResponsesContentApplicationJsonSchemaDataQuestionnaireQuestionsItemsRevealedWhenItems

- `equals` (string, required) — Option title `question` must be answered with for this question to apply.
- `question` (string, required) — Key of the question whose answer gates this one.

## Examples

### Submitter acts with a Proof of Authority

**Request**

```json
{
  "data": {
    "persons": [
      {
        "last_name": "Hopper",
        "first_name": "Grace",
        "responsibilities": [
          "submitter"
        ],
        "address": {
          "zip": "94105",
          "city": "San Francisco",
          "street": "1 Market Street",
          "country": "US",
          "state": "CA"
        },
        "job_title": "AUTHORIZED_SIGNATORY",
        "citizenship": "US",
        "date_of_birth": "1988-12-09",
        "identity_documents": {
          "back": "f8c0d2e4-6a8b-4c0d-8e4f-6a8b0c2d4e37",
          "front": "e7b9c1d3-5f7a-4b9c-9d3e-5f7a9b1c3d26",
          "selfie": "a9d1e3f5-7b9c-4d1e-9f5a-7b9c1d3e5f48"
        },
        "identification_document_type": "DRIVERS_LICENSE"
      },
      {
        "last_name": "Lovelace",
        "first_name": "Ada",
        "responsibilities": [
          "owner",
          "director"
        ],
        "tax_id": "AB123456C",
        "address": {
          "zip": "SW1Y 4JU",
          "city": "London",
          "street": "1 St James Square",
          "country": "GB"
        },
        "job_title": "MANAGING_DIRECTOR",
        "citizenship": "GB",
        "middle_name": "Augusta",
        "date_of_birth": "1985-12-10",
        "identity_documents": {
          "front": "1b3d5f7a-9c1e-4f3a-8b5d-7f9a1c3e5a59",
          "selfie": "2c4e6a8b-0d2f-4a4b-9c6e-8a0b2d4f6b60"
        },
        "ownership_percentage": 60,
        "identification_document_type": "PASSPORT"
      },
      {
        "last_name": "Babbage",
        "first_name": "Charles",
        "responsibilities": [
          "owner"
        ],
        "tax_id": "CD654321A",
        "address": {
          "zip": "SW1A 2AA",
          "city": "London",
          "street": "10 Downing Street",
          "country": "GB"
        },
        "job_title": "MINORITY_SHAREHOLDER",
        "citizenship": "GB",
        "date_of_birth": "1979-12-26",
        "identity_documents": {
          "front": "3d5f7a9c-1e3a-4b5c-8d7f-9a1c3e5a7c71",
          "selfie": "4e6a8b0d-2f4b-4c6d-9e8a-0b2d4f6b8d82"
        },
        "ownership_percentage": 40,
        "identification_document_type": "PASSPORT"
      }
    ],
    "is_declaration_confirmed": true,
    "is_terms_and_conditions_accepted": true,
    "documents": {
      "company_bank_statement": "7a2d4b6c-1e3f-4a5b-8c9d-0e1f2a3b4c52",
      "articles_of_incorporation": "3f1c2a9e-0b7d-4c1e-9a52-6d8e1f0a2b31",
      "certificate_of_good_standing": "b4e6f8a0-2c4d-4e6f-8a0b-2c4d6e8f0a73",
      "ultimate_beneficial_owner_form": "c5f7a9b1-3d5e-4f7a-9b1c-3d5e7f9a1b94"
    },
    "formation_date": "2019-04-01",
    "proof_of_authority": {
      "document": "d6a8b0c2-4e6f-4a8b-8c2d-4e6f8a0b2c15",
      "meta_type": "POWER_OF_ATTORNEY"
    },
    "transaction_monthly_volume": "BETWEEN_10K_AND_100K",
    "is_person_with_significant_control": false
  }
}
```

**Response**

```json
{
  "data": {
    "edd": null,
    "status": "awaiting_review",
    "persons": [
      {
        "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
        "last_name": "Hopper",
        "first_name": "Grace",
        "responsibilities": [
          "submitter"
        ],
        "ownership_percentage": null
      },
      {
        "id": "c51e53d2-8a2f-4944-890b-f605a3ab247e",
        "last_name": "Lovelace",
        "first_name": "Ada",
        "responsibilities": [
          "owner",
          "director"
        ],
        "ownership_percentage": 60
      },
      {
        "id": "d62f64e3-9b3a-4a55-9a1c-0716b4bc358f",
        "last_name": "Babbage",
        "first_name": "Charles",
        "responsibilities": [
          "owner"
        ],
        "ownership_percentage": 40
      }
    ],
    "documents": [
      {
        "type": "PROOF_OF_AUTHORITY",
        "meta_type": "POWER_OF_ATTORNEY",
        "is_provided": true,
        "is_required": true
      },
      {
        "type": "ARTICLES_OF_INCORPORATION",
        "meta_type": null,
        "is_provided": true,
        "is_required": true
      },
      {
        "type": "COMPANY_BANK_STATEMENT",
        "meta_type": null,
        "is_provided": true,
        "is_required": false
      },
      {
        "type": "CERTIFICATE_OF_GOOD_STANDING",
        "meta_type": null,
        "is_provided": true,
        "is_required": false
      },
      {
        "type": "ULTIMATE_BENEFICIAL_OWNER_FORM",
        "meta_type": null,
        "is_provided": true,
        "is_required": false
      }
    ],
    "rejection": null,
    "approved_at": null,
    "rejected_at": null,
    "requirements": [
      {
        "key": "ARTICLES_OF_INCORPORATION",
        "category": "DOCUMENT",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_ADDRESS",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_CITIZENSHIP",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_DOB",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_KYC_DOCUMENT",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_NAME",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_SELFIE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "FORMATION_DATE",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "IDENTIFICATION_DOCUMENT_TYPE",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "PROOF_OF_AUTHORITY",
        "category": "DOCUMENT",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_ADDRESS",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_CITIZENSHIP",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_DOB",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_KYC_DOCUMENT",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_NAME",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_SELFIE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "TERMS_AND_CONDITIONS",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "TRANSACTION_MONTHLY_VOLUME",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "UBO_ADDRESS",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_CITIZENSHIP",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_DOB",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_KYC_DOCUMENT",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_NAME",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_OWNERSHIP_PERCENTAGE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_SELFIE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_TAX_ID",
        "category": "PERSON",
        "is_satisfied": true
      }
    ],
    "submitted_at": "2026-09-01T10:30:00.000Z",
    "questionnaire": {
      "answers": [
        {
          "value": "Yes",
          "question_key": "q1"
        }
      ],
      "questions": [
        {
          "key": "q1",
          "type": "SINGLE_CHOICE",
          "title": "What is the source of the funds used to pay Deel invoices?",
          "options": [
            "Revenue from customers",
            "Investment"
          ],
          "description": "For example revenue from customers, investment, or a loan.",
          "is_required": true,
          "revealed_when": [
            {
              "equals": "Yes",
              "question": "q1"
            }
          ]
        }
      ],
      "template_id": 7,
      "display_name": "Crypto"
    },
    "legal_entity_id": "5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b",
    "verification_type": "FULL",
    "is_action_required": false,
    "is_detail_available": true
  }
}
```

**SDK Code**

```python Submitter acts with a Proof of Authority
import requests

url = "https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb"

payload = { "data": {
        "persons": [
            {
                "last_name": "Hopper",
                "first_name": "Grace",
                "responsibilities": ["submitter"],
                "address": {
                    "zip": "94105",
                    "city": "San Francisco",
                    "street": "1 Market Street",
                    "country": "US",
                    "state": "CA"
                },
                "job_title": "AUTHORIZED_SIGNATORY",
                "citizenship": "US",
                "date_of_birth": "1988-12-09",
                "identity_documents": {
                    "back": "f8c0d2e4-6a8b-4c0d-8e4f-6a8b0c2d4e37",
                    "front": "e7b9c1d3-5f7a-4b9c-9d3e-5f7a9b1c3d26",
                    "selfie": "a9d1e3f5-7b9c-4d1e-9f5a-7b9c1d3e5f48"
                },
                "identification_document_type": "DRIVERS_LICENSE"
            },
            {
                "last_name": "Lovelace",
                "first_name": "Ada",
                "responsibilities": ["owner", "director"],
                "tax_id": "AB123456C",
                "address": {
                    "zip": "SW1Y 4JU",
                    "city": "London",
                    "street": "1 St James Square",
                    "country": "GB"
                },
                "job_title": "MANAGING_DIRECTOR",
                "citizenship": "GB",
                "middle_name": "Augusta",
                "date_of_birth": "1985-12-10",
                "identity_documents": {
                    "front": "1b3d5f7a-9c1e-4f3a-8b5d-7f9a1c3e5a59",
                    "selfie": "2c4e6a8b-0d2f-4a4b-9c6e-8a0b2d4f6b60"
                },
                "ownership_percentage": 60,
                "identification_document_type": "PASSPORT"
            },
            {
                "last_name": "Babbage",
                "first_name": "Charles",
                "responsibilities": ["owner"],
                "tax_id": "CD654321A",
                "address": {
                    "zip": "SW1A 2AA",
                    "city": "London",
                    "street": "10 Downing Street",
                    "country": "GB"
                },
                "job_title": "MINORITY_SHAREHOLDER",
                "citizenship": "GB",
                "date_of_birth": "1979-12-26",
                "identity_documents": {
                    "front": "3d5f7a9c-1e3a-4b5c-8d7f-9a1c3e5a7c71",
                    "selfie": "4e6a8b0d-2f4b-4c6d-9e8a-0b2d4f6b8d82"
                },
                "ownership_percentage": 40,
                "identification_document_type": "PASSPORT"
            }
        ],
        "is_declaration_confirmed": True,
        "is_terms_and_conditions_accepted": True,
        "documents": {
            "company_bank_statement": "7a2d4b6c-1e3f-4a5b-8c9d-0e1f2a3b4c52",
            "articles_of_incorporation": "3f1c2a9e-0b7d-4c1e-9a52-6d8e1f0a2b31",
            "certificate_of_good_standing": "b4e6f8a0-2c4d-4e6f-8a0b-2c4d6e8f0a73",
            "ultimate_beneficial_owner_form": "c5f7a9b1-3d5e-4f7a-9b1c-3d5e7f9a1b94"
        },
        "formation_date": "2019-04-01",
        "proof_of_authority": {
            "document": "d6a8b0c2-4e6f-4a8b-8c2d-4e6f8a0b2c15",
            "meta_type": "POWER_OF_ATTORNEY"
        },
        "transaction_monthly_volume": "BETWEEN_10K_AND_100K",
        "is_person_with_significant_control": False
    } }
headers = {
    "X-Beta": "true",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Submitter acts with a Proof of Authority
const url = 'https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb';
const options = {
  method: 'POST',
  headers: {
    'X-Beta': 'true',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"data":{"persons":[{"last_name":"Hopper","first_name":"Grace","responsibilities":["submitter"],"address":{"zip":"94105","city":"San Francisco","street":"1 Market Street","country":"US","state":"CA"},"job_title":"AUTHORIZED_SIGNATORY","citizenship":"US","date_of_birth":"1988-12-09","identity_documents":{"back":"f8c0d2e4-6a8b-4c0d-8e4f-6a8b0c2d4e37","front":"e7b9c1d3-5f7a-4b9c-9d3e-5f7a9b1c3d26","selfie":"a9d1e3f5-7b9c-4d1e-9f5a-7b9c1d3e5f48"},"identification_document_type":"DRIVERS_LICENSE"},{"last_name":"Lovelace","first_name":"Ada","responsibilities":["owner","director"],"tax_id":"AB123456C","address":{"zip":"SW1Y 4JU","city":"London","street":"1 St James Square","country":"GB"},"job_title":"MANAGING_DIRECTOR","citizenship":"GB","middle_name":"Augusta","date_of_birth":"1985-12-10","identity_documents":{"front":"1b3d5f7a-9c1e-4f3a-8b5d-7f9a1c3e5a59","selfie":"2c4e6a8b-0d2f-4a4b-9c6e-8a0b2d4f6b60"},"ownership_percentage":60,"identification_document_type":"PASSPORT"},{"last_name":"Babbage","first_name":"Charles","responsibilities":["owner"],"tax_id":"CD654321A","address":{"zip":"SW1A 2AA","city":"London","street":"10 Downing Street","country":"GB"},"job_title":"MINORITY_SHAREHOLDER","citizenship":"GB","date_of_birth":"1979-12-26","identity_documents":{"front":"3d5f7a9c-1e3a-4b5c-8d7f-9a1c3e5a7c71","selfie":"4e6a8b0d-2f4b-4c6d-9e8a-0b2d4f6b8d82"},"ownership_percentage":40,"identification_document_type":"PASSPORT"}],"is_declaration_confirmed":true,"is_terms_and_conditions_accepted":true,"documents":{"company_bank_statement":"7a2d4b6c-1e3f-4a5b-8c9d-0e1f2a3b4c52","articles_of_incorporation":"3f1c2a9e-0b7d-4c1e-9a52-6d8e1f0a2b31","certificate_of_good_standing":"b4e6f8a0-2c4d-4e6f-8a0b-2c4d6e8f0a73","ultimate_beneficial_owner_form":"c5f7a9b1-3d5e-4f7a-9b1c-3d5e7f9a1b94"},"formation_date":"2019-04-01","proof_of_authority":{"document":"d6a8b0c2-4e6f-4a8b-8c2d-4e6f8a0b2c15","meta_type":"POWER_OF_ATTORNEY"},"transaction_monthly_volume":"BETWEEN_10K_AND_100K","is_person_with_significant_control":false}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Submitter acts with a Proof of Authority
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb"

	payload := strings.NewReader("{\n  \"data\": {\n    \"persons\": [\n      {\n        \"last_name\": \"Hopper\",\n        \"first_name\": \"Grace\",\n        \"responsibilities\": [\n          \"submitter\"\n        ],\n        \"address\": {\n          \"zip\": \"94105\",\n          \"city\": \"San Francisco\",\n          \"street\": \"1 Market Street\",\n          \"country\": \"US\",\n          \"state\": \"CA\"\n        },\n        \"job_title\": \"AUTHORIZED_SIGNATORY\",\n        \"citizenship\": \"US\",\n        \"date_of_birth\": \"1988-12-09\",\n        \"identity_documents\": {\n          \"back\": \"f8c0d2e4-6a8b-4c0d-8e4f-6a8b0c2d4e37\",\n          \"front\": \"e7b9c1d3-5f7a-4b9c-9d3e-5f7a9b1c3d26\",\n          \"selfie\": \"a9d1e3f5-7b9c-4d1e-9f5a-7b9c1d3e5f48\"\n        },\n        \"identification_document_type\": \"DRIVERS_LICENSE\"\n      },\n      {\n        \"last_name\": \"Lovelace\",\n        \"first_name\": \"Ada\",\n        \"responsibilities\": [\n          \"owner\",\n          \"director\"\n        ],\n        \"tax_id\": \"AB123456C\",\n        \"address\": {\n          \"zip\": \"SW1Y 4JU\",\n          \"city\": \"London\",\n          \"street\": \"1 St James Square\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"MANAGING_DIRECTOR\",\n        \"citizenship\": \"GB\",\n        \"middle_name\": \"Augusta\",\n        \"date_of_birth\": \"1985-12-10\",\n        \"identity_documents\": {\n          \"front\": \"1b3d5f7a-9c1e-4f3a-8b5d-7f9a1c3e5a59\",\n          \"selfie\": \"2c4e6a8b-0d2f-4a4b-9c6e-8a0b2d4f6b60\"\n        },\n        \"ownership_percentage\": 60,\n        \"identification_document_type\": \"PASSPORT\"\n      },\n      {\n        \"last_name\": \"Babbage\",\n        \"first_name\": \"Charles\",\n        \"responsibilities\": [\n          \"owner\"\n        ],\n        \"tax_id\": \"CD654321A\",\n        \"address\": {\n          \"zip\": \"SW1A 2AA\",\n          \"city\": \"London\",\n          \"street\": \"10 Downing Street\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"MINORITY_SHAREHOLDER\",\n        \"citizenship\": \"GB\",\n        \"date_of_birth\": \"1979-12-26\",\n        \"identity_documents\": {\n          \"front\": \"3d5f7a9c-1e3a-4b5c-8d7f-9a1c3e5a7c71\",\n          \"selfie\": \"4e6a8b0d-2f4b-4c6d-9e8a-0b2d4f6b8d82\"\n        },\n        \"ownership_percentage\": 40,\n        \"identification_document_type\": \"PASSPORT\"\n      }\n    ],\n    \"is_declaration_confirmed\": true,\n    \"is_terms_and_conditions_accepted\": true,\n    \"documents\": {\n      \"company_bank_statement\": \"7a2d4b6c-1e3f-4a5b-8c9d-0e1f2a3b4c52\",\n      \"articles_of_incorporation\": \"3f1c2a9e-0b7d-4c1e-9a52-6d8e1f0a2b31\",\n      \"certificate_of_good_standing\": \"b4e6f8a0-2c4d-4e6f-8a0b-2c4d6e8f0a73\",\n      \"ultimate_beneficial_owner_form\": \"c5f7a9b1-3d5e-4f7a-9b1c-3d5e7f9a1b94\"\n    },\n    \"formation_date\": \"2019-04-01\",\n    \"proof_of_authority\": {\n      \"document\": \"d6a8b0c2-4e6f-4a8b-8c2d-4e6f8a0b2c15\",\n      \"meta_type\": \"POWER_OF_ATTORNEY\"\n    },\n    \"transaction_monthly_volume\": \"BETWEEN_10K_AND_100K\",\n    \"is_person_with_significant_control\": false\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("X-Beta", "true")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Submitter acts with a Proof of Authority
require 'uri'
require 'net/http'

url = URI("https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-Beta"] = 'true'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"data\": {\n    \"persons\": [\n      {\n        \"last_name\": \"Hopper\",\n        \"first_name\": \"Grace\",\n        \"responsibilities\": [\n          \"submitter\"\n        ],\n        \"address\": {\n          \"zip\": \"94105\",\n          \"city\": \"San Francisco\",\n          \"street\": \"1 Market Street\",\n          \"country\": \"US\",\n          \"state\": \"CA\"\n        },\n        \"job_title\": \"AUTHORIZED_SIGNATORY\",\n        \"citizenship\": \"US\",\n        \"date_of_birth\": \"1988-12-09\",\n        \"identity_documents\": {\n          \"back\": \"f8c0d2e4-6a8b-4c0d-8e4f-6a8b0c2d4e37\",\n          \"front\": \"e7b9c1d3-5f7a-4b9c-9d3e-5f7a9b1c3d26\",\n          \"selfie\": \"a9d1e3f5-7b9c-4d1e-9f5a-7b9c1d3e5f48\"\n        },\n        \"identification_document_type\": \"DRIVERS_LICENSE\"\n      },\n      {\n        \"last_name\": \"Lovelace\",\n        \"first_name\": \"Ada\",\n        \"responsibilities\": [\n          \"owner\",\n          \"director\"\n        ],\n        \"tax_id\": \"AB123456C\",\n        \"address\": {\n          \"zip\": \"SW1Y 4JU\",\n          \"city\": \"London\",\n          \"street\": \"1 St James Square\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"MANAGING_DIRECTOR\",\n        \"citizenship\": \"GB\",\n        \"middle_name\": \"Augusta\",\n        \"date_of_birth\": \"1985-12-10\",\n        \"identity_documents\": {\n          \"front\": \"1b3d5f7a-9c1e-4f3a-8b5d-7f9a1c3e5a59\",\n          \"selfie\": \"2c4e6a8b-0d2f-4a4b-9c6e-8a0b2d4f6b60\"\n        },\n        \"ownership_percentage\": 60,\n        \"identification_document_type\": \"PASSPORT\"\n      },\n      {\n        \"last_name\": \"Babbage\",\n        \"first_name\": \"Charles\",\n        \"responsibilities\": [\n          \"owner\"\n        ],\n        \"tax_id\": \"CD654321A\",\n        \"address\": {\n          \"zip\": \"SW1A 2AA\",\n          \"city\": \"London\",\n          \"street\": \"10 Downing Street\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"MINORITY_SHAREHOLDER\",\n        \"citizenship\": \"GB\",\n        \"date_of_birth\": \"1979-12-26\",\n        \"identity_documents\": {\n          \"front\": \"3d5f7a9c-1e3a-4b5c-8d7f-9a1c3e5a7c71\",\n          \"selfie\": \"4e6a8b0d-2f4b-4c6d-9e8a-0b2d4f6b8d82\"\n        },\n        \"ownership_percentage\": 40,\n        \"identification_document_type\": \"PASSPORT\"\n      }\n    ],\n    \"is_declaration_confirmed\": true,\n    \"is_terms_and_conditions_accepted\": true,\n    \"documents\": {\n      \"company_bank_statement\": \"7a2d4b6c-1e3f-4a5b-8c9d-0e1f2a3b4c52\",\n      \"articles_of_incorporation\": \"3f1c2a9e-0b7d-4c1e-9a52-6d8e1f0a2b31\",\n      \"certificate_of_good_standing\": \"b4e6f8a0-2c4d-4e6f-8a0b-2c4d6e8f0a73\",\n      \"ultimate_beneficial_owner_form\": \"c5f7a9b1-3d5e-4f7a-9b1c-3d5e7f9a1b94\"\n    },\n    \"formation_date\": \"2019-04-01\",\n    \"proof_of_authority\": {\n      \"document\": \"d6a8b0c2-4e6f-4a8b-8c2d-4e6f8a0b2c15\",\n      \"meta_type\": \"POWER_OF_ATTORNEY\"\n    },\n    \"transaction_monthly_volume\": \"BETWEEN_10K_AND_100K\",\n    \"is_person_with_significant_control\": false\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Submitter acts with a Proof of Authority
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb")
  .header("X-Beta", "true")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"data\": {\n    \"persons\": [\n      {\n        \"last_name\": \"Hopper\",\n        \"first_name\": \"Grace\",\n        \"responsibilities\": [\n          \"submitter\"\n        ],\n        \"address\": {\n          \"zip\": \"94105\",\n          \"city\": \"San Francisco\",\n          \"street\": \"1 Market Street\",\n          \"country\": \"US\",\n          \"state\": \"CA\"\n        },\n        \"job_title\": \"AUTHORIZED_SIGNATORY\",\n        \"citizenship\": \"US\",\n        \"date_of_birth\": \"1988-12-09\",\n        \"identity_documents\": {\n          \"back\": \"f8c0d2e4-6a8b-4c0d-8e4f-6a8b0c2d4e37\",\n          \"front\": \"e7b9c1d3-5f7a-4b9c-9d3e-5f7a9b1c3d26\",\n          \"selfie\": \"a9d1e3f5-7b9c-4d1e-9f5a-7b9c1d3e5f48\"\n        },\n        \"identification_document_type\": \"DRIVERS_LICENSE\"\n      },\n      {\n        \"last_name\": \"Lovelace\",\n        \"first_name\": \"Ada\",\n        \"responsibilities\": [\n          \"owner\",\n          \"director\"\n        ],\n        \"tax_id\": \"AB123456C\",\n        \"address\": {\n          \"zip\": \"SW1Y 4JU\",\n          \"city\": \"London\",\n          \"street\": \"1 St James Square\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"MANAGING_DIRECTOR\",\n        \"citizenship\": \"GB\",\n        \"middle_name\": \"Augusta\",\n        \"date_of_birth\": \"1985-12-10\",\n        \"identity_documents\": {\n          \"front\": \"1b3d5f7a-9c1e-4f3a-8b5d-7f9a1c3e5a59\",\n          \"selfie\": \"2c4e6a8b-0d2f-4a4b-9c6e-8a0b2d4f6b60\"\n        },\n        \"ownership_percentage\": 60,\n        \"identification_document_type\": \"PASSPORT\"\n      },\n      {\n        \"last_name\": \"Babbage\",\n        \"first_name\": \"Charles\",\n        \"responsibilities\": [\n          \"owner\"\n        ],\n        \"tax_id\": \"CD654321A\",\n        \"address\": {\n          \"zip\": \"SW1A 2AA\",\n          \"city\": \"London\",\n          \"street\": \"10 Downing Street\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"MINORITY_SHAREHOLDER\",\n        \"citizenship\": \"GB\",\n        \"date_of_birth\": \"1979-12-26\",\n        \"identity_documents\": {\n          \"front\": \"3d5f7a9c-1e3a-4b5c-8d7f-9a1c3e5a7c71\",\n          \"selfie\": \"4e6a8b0d-2f4b-4c6d-9e8a-0b2d4f6b8d82\"\n        },\n        \"ownership_percentage\": 40,\n        \"identification_document_type\": \"PASSPORT\"\n      }\n    ],\n    \"is_declaration_confirmed\": true,\n    \"is_terms_and_conditions_accepted\": true,\n    \"documents\": {\n      \"company_bank_statement\": \"7a2d4b6c-1e3f-4a5b-8c9d-0e1f2a3b4c52\",\n      \"articles_of_incorporation\": \"3f1c2a9e-0b7d-4c1e-9a52-6d8e1f0a2b31\",\n      \"certificate_of_good_standing\": \"b4e6f8a0-2c4d-4e6f-8a0b-2c4d6e8f0a73\",\n      \"ultimate_beneficial_owner_form\": \"c5f7a9b1-3d5e-4f7a-9b1c-3d5e7f9a1b94\"\n    },\n    \"formation_date\": \"2019-04-01\",\n    \"proof_of_authority\": {\n      \"document\": \"d6a8b0c2-4e6f-4a8b-8c2d-4e6f8a0b2c15\",\n      \"meta_type\": \"POWER_OF_ATTORNEY\"\n    },\n    \"transaction_monthly_volume\": \"BETWEEN_10K_AND_100K\",\n    \"is_person_with_significant_control\": false\n  }\n}")
  .asString();
```

```php Submitter acts with a Proof of Authority
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb', [
  'body' => '{
  "data": {
    "persons": [
      {
        "last_name": "Hopper",
        "first_name": "Grace",
        "responsibilities": [
          "submitter"
        ],
        "address": {
          "zip": "94105",
          "city": "San Francisco",
          "street": "1 Market Street",
          "country": "US",
          "state": "CA"
        },
        "job_title": "AUTHORIZED_SIGNATORY",
        "citizenship": "US",
        "date_of_birth": "1988-12-09",
        "identity_documents": {
          "back": "f8c0d2e4-6a8b-4c0d-8e4f-6a8b0c2d4e37",
          "front": "e7b9c1d3-5f7a-4b9c-9d3e-5f7a9b1c3d26",
          "selfie": "a9d1e3f5-7b9c-4d1e-9f5a-7b9c1d3e5f48"
        },
        "identification_document_type": "DRIVERS_LICENSE"
      },
      {
        "last_name": "Lovelace",
        "first_name": "Ada",
        "responsibilities": [
          "owner",
          "director"
        ],
        "tax_id": "AB123456C",
        "address": {
          "zip": "SW1Y 4JU",
          "city": "London",
          "street": "1 St James Square",
          "country": "GB"
        },
        "job_title": "MANAGING_DIRECTOR",
        "citizenship": "GB",
        "middle_name": "Augusta",
        "date_of_birth": "1985-12-10",
        "identity_documents": {
          "front": "1b3d5f7a-9c1e-4f3a-8b5d-7f9a1c3e5a59",
          "selfie": "2c4e6a8b-0d2f-4a4b-9c6e-8a0b2d4f6b60"
        },
        "ownership_percentage": 60,
        "identification_document_type": "PASSPORT"
      },
      {
        "last_name": "Babbage",
        "first_name": "Charles",
        "responsibilities": [
          "owner"
        ],
        "tax_id": "CD654321A",
        "address": {
          "zip": "SW1A 2AA",
          "city": "London",
          "street": "10 Downing Street",
          "country": "GB"
        },
        "job_title": "MINORITY_SHAREHOLDER",
        "citizenship": "GB",
        "date_of_birth": "1979-12-26",
        "identity_documents": {
          "front": "3d5f7a9c-1e3a-4b5c-8d7f-9a1c3e5a7c71",
          "selfie": "4e6a8b0d-2f4b-4c6d-9e8a-0b2d4f6b8d82"
        },
        "ownership_percentage": 40,
        "identification_document_type": "PASSPORT"
      }
    ],
    "is_declaration_confirmed": true,
    "is_terms_and_conditions_accepted": true,
    "documents": {
      "company_bank_statement": "7a2d4b6c-1e3f-4a5b-8c9d-0e1f2a3b4c52",
      "articles_of_incorporation": "3f1c2a9e-0b7d-4c1e-9a52-6d8e1f0a2b31",
      "certificate_of_good_standing": "b4e6f8a0-2c4d-4e6f-8a0b-2c4d6e8f0a73",
      "ultimate_beneficial_owner_form": "c5f7a9b1-3d5e-4f7a-9b1c-3d5e7f9a1b94"
    },
    "formation_date": "2019-04-01",
    "proof_of_authority": {
      "document": "d6a8b0c2-4e6f-4a8b-8c2d-4e6f8a0b2c15",
      "meta_type": "POWER_OF_ATTORNEY"
    },
    "transaction_monthly_volume": "BETWEEN_10K_AND_100K",
    "is_person_with_significant_control": false
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'X-Beta' => 'true',
  ],
]);

echo $response->getBody();
```

```csharp Submitter acts with a Proof of Authority
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb");
var request = new RestRequest(Method.POST);
request.AddHeader("X-Beta", "true");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"data\": {\n    \"persons\": [\n      {\n        \"last_name\": \"Hopper\",\n        \"first_name\": \"Grace\",\n        \"responsibilities\": [\n          \"submitter\"\n        ],\n        \"address\": {\n          \"zip\": \"94105\",\n          \"city\": \"San Francisco\",\n          \"street\": \"1 Market Street\",\n          \"country\": \"US\",\n          \"state\": \"CA\"\n        },\n        \"job_title\": \"AUTHORIZED_SIGNATORY\",\n        \"citizenship\": \"US\",\n        \"date_of_birth\": \"1988-12-09\",\n        \"identity_documents\": {\n          \"back\": \"f8c0d2e4-6a8b-4c0d-8e4f-6a8b0c2d4e37\",\n          \"front\": \"e7b9c1d3-5f7a-4b9c-9d3e-5f7a9b1c3d26\",\n          \"selfie\": \"a9d1e3f5-7b9c-4d1e-9f5a-7b9c1d3e5f48\"\n        },\n        \"identification_document_type\": \"DRIVERS_LICENSE\"\n      },\n      {\n        \"last_name\": \"Lovelace\",\n        \"first_name\": \"Ada\",\n        \"responsibilities\": [\n          \"owner\",\n          \"director\"\n        ],\n        \"tax_id\": \"AB123456C\",\n        \"address\": {\n          \"zip\": \"SW1Y 4JU\",\n          \"city\": \"London\",\n          \"street\": \"1 St James Square\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"MANAGING_DIRECTOR\",\n        \"citizenship\": \"GB\",\n        \"middle_name\": \"Augusta\",\n        \"date_of_birth\": \"1985-12-10\",\n        \"identity_documents\": {\n          \"front\": \"1b3d5f7a-9c1e-4f3a-8b5d-7f9a1c3e5a59\",\n          \"selfie\": \"2c4e6a8b-0d2f-4a4b-9c6e-8a0b2d4f6b60\"\n        },\n        \"ownership_percentage\": 60,\n        \"identification_document_type\": \"PASSPORT\"\n      },\n      {\n        \"last_name\": \"Babbage\",\n        \"first_name\": \"Charles\",\n        \"responsibilities\": [\n          \"owner\"\n        ],\n        \"tax_id\": \"CD654321A\",\n        \"address\": {\n          \"zip\": \"SW1A 2AA\",\n          \"city\": \"London\",\n          \"street\": \"10 Downing Street\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"MINORITY_SHAREHOLDER\",\n        \"citizenship\": \"GB\",\n        \"date_of_birth\": \"1979-12-26\",\n        \"identity_documents\": {\n          \"front\": \"3d5f7a9c-1e3a-4b5c-8d7f-9a1c3e5a7c71\",\n          \"selfie\": \"4e6a8b0d-2f4b-4c6d-9e8a-0b2d4f6b8d82\"\n        },\n        \"ownership_percentage\": 40,\n        \"identification_document_type\": \"PASSPORT\"\n      }\n    ],\n    \"is_declaration_confirmed\": true,\n    \"is_terms_and_conditions_accepted\": true,\n    \"documents\": {\n      \"company_bank_statement\": \"7a2d4b6c-1e3f-4a5b-8c9d-0e1f2a3b4c52\",\n      \"articles_of_incorporation\": \"3f1c2a9e-0b7d-4c1e-9a52-6d8e1f0a2b31\",\n      \"certificate_of_good_standing\": \"b4e6f8a0-2c4d-4e6f-8a0b-2c4d6e8f0a73\",\n      \"ultimate_beneficial_owner_form\": \"c5f7a9b1-3d5e-4f7a-9b1c-3d5e7f9a1b94\"\n    },\n    \"formation_date\": \"2019-04-01\",\n    \"proof_of_authority\": {\n      \"document\": \"d6a8b0c2-4e6f-4a8b-8c2d-4e6f8a0b2c15\",\n      \"meta_type\": \"POWER_OF_ATTORNEY\"\n    },\n    \"transaction_monthly_volume\": \"BETWEEN_10K_AND_100K\",\n    \"is_person_with_significant_control\": false\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Submitter acts with a Proof of Authority
import Foundation

let headers = [
  "X-Beta": "true",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["data": [
    "persons": [
      [
        "last_name": "Hopper",
        "first_name": "Grace",
        "responsibilities": ["submitter"],
        "address": [
          "zip": "94105",
          "city": "San Francisco",
          "street": "1 Market Street",
          "country": "US",
          "state": "CA"
        ],
        "job_title": "AUTHORIZED_SIGNATORY",
        "citizenship": "US",
        "date_of_birth": "1988-12-09",
        "identity_documents": [
          "back": "f8c0d2e4-6a8b-4c0d-8e4f-6a8b0c2d4e37",
          "front": "e7b9c1d3-5f7a-4b9c-9d3e-5f7a9b1c3d26",
          "selfie": "a9d1e3f5-7b9c-4d1e-9f5a-7b9c1d3e5f48"
        ],
        "identification_document_type": "DRIVERS_LICENSE"
      ],
      [
        "last_name": "Lovelace",
        "first_name": "Ada",
        "responsibilities": ["owner", "director"],
        "tax_id": "AB123456C",
        "address": [
          "zip": "SW1Y 4JU",
          "city": "London",
          "street": "1 St James Square",
          "country": "GB"
        ],
        "job_title": "MANAGING_DIRECTOR",
        "citizenship": "GB",
        "middle_name": "Augusta",
        "date_of_birth": "1985-12-10",
        "identity_documents": [
          "front": "1b3d5f7a-9c1e-4f3a-8b5d-7f9a1c3e5a59",
          "selfie": "2c4e6a8b-0d2f-4a4b-9c6e-8a0b2d4f6b60"
        ],
        "ownership_percentage": 60,
        "identification_document_type": "PASSPORT"
      ],
      [
        "last_name": "Babbage",
        "first_name": "Charles",
        "responsibilities": ["owner"],
        "tax_id": "CD654321A",
        "address": [
          "zip": "SW1A 2AA",
          "city": "London",
          "street": "10 Downing Street",
          "country": "GB"
        ],
        "job_title": "MINORITY_SHAREHOLDER",
        "citizenship": "GB",
        "date_of_birth": "1979-12-26",
        "identity_documents": [
          "front": "3d5f7a9c-1e3a-4b5c-8d7f-9a1c3e5a7c71",
          "selfie": "4e6a8b0d-2f4b-4c6d-9e8a-0b2d4f6b8d82"
        ],
        "ownership_percentage": 40,
        "identification_document_type": "PASSPORT"
      ]
    ],
    "is_declaration_confirmed": true,
    "is_terms_and_conditions_accepted": true,
    "documents": [
      "company_bank_statement": "7a2d4b6c-1e3f-4a5b-8c9d-0e1f2a3b4c52",
      "articles_of_incorporation": "3f1c2a9e-0b7d-4c1e-9a52-6d8e1f0a2b31",
      "certificate_of_good_standing": "b4e6f8a0-2c4d-4e6f-8a0b-2c4d6e8f0a73",
      "ultimate_beneficial_owner_form": "c5f7a9b1-3d5e-4f7a-9b1c-3d5e7f9a1b94"
    ],
    "formation_date": "2019-04-01",
    "proof_of_authority": [
      "document": "d6a8b0c2-4e6f-4a8b-8c2d-4e6f8a0b2c15",
      "meta_type": "POWER_OF_ATTORNEY"
    ],
    "transaction_monthly_volume": "BETWEEN_10K_AND_100K",
    "is_person_with_significant_control": false
  ]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Submitter holds significant control

**Response**

```json
{
  "data": {
    "edd": null,
    "status": "awaiting_review",
    "persons": [
      {
        "id": "e73a75f4-0c4b-4b66-8b2d-1827c5cd469a",
        "last_name": "Lovelace",
        "first_name": "Ada",
        "responsibilities": [
          "submitter",
          "owner",
          "director"
        ],
        "ownership_percentage": 100
      }
    ],
    "documents": [
      {
        "type": "PROOF_OF_AUTHORITY",
        "meta_type": null,
        "is_provided": false,
        "is_required": false
      },
      {
        "type": "ARTICLES_OF_INCORPORATION",
        "meta_type": null,
        "is_provided": true,
        "is_required": true
      },
      {
        "type": "COMPANY_BANK_STATEMENT",
        "meta_type": null,
        "is_provided": true,
        "is_required": false
      },
      {
        "type": "CERTIFICATE_OF_GOOD_STANDING",
        "meta_type": null,
        "is_provided": false,
        "is_required": false
      },
      {
        "type": "ULTIMATE_BENEFICIAL_OWNER_FORM",
        "meta_type": null,
        "is_provided": false,
        "is_required": false
      }
    ],
    "rejection": null,
    "approved_at": null,
    "rejected_at": null,
    "requirements": [
      {
        "key": "ARTICLES_OF_INCORPORATION",
        "category": "DOCUMENT",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_ADDRESS",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_CITIZENSHIP",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_DOB",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_KYC_DOCUMENT",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_NAME",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_SELFIE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "FORMATION_DATE",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "IDENTIFICATION_DOCUMENT_TYPE",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_ADDRESS",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_CITIZENSHIP",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_DOB",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_KYC_DOCUMENT",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_NAME",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_SELFIE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "TERMS_AND_CONDITIONS",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "TRANSACTION_MONTHLY_VOLUME",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "UBO_ADDRESS",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_CITIZENSHIP",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_DOB",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_KYC_DOCUMENT",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_NAME",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_OWNERSHIP_PERCENTAGE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_SELFIE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_TAX_ID",
        "category": "PERSON",
        "is_satisfied": true
      }
    ],
    "submitted_at": "2026-09-01T11:30:00.000Z",
    "questionnaire": {
      "answers": [
        {
          "value": "Yes",
          "question_key": "q1"
        }
      ],
      "questions": [
        {
          "key": "q1",
          "type": "SINGLE_CHOICE",
          "title": "What is the source of the funds used to pay Deel invoices?",
          "options": [
            "Revenue from customers",
            "Investment"
          ],
          "description": "For example revenue from customers, investment, or a loan.",
          "is_required": true,
          "revealed_when": [
            {
              "equals": "Yes",
              "question": "q1"
            }
          ]
        }
      ],
      "template_id": 7,
      "display_name": "Crypto"
    },
    "legal_entity_id": "5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b",
    "verification_type": "FULL",
    "is_action_required": false,
    "is_detail_available": true
  }
}
```

**SDK Code**

```python Submitter holds significant control
import requests

url = "https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb"

headers = {
    "X-Beta": "true",
    "Authorization": "Bearer <token>"
}

response = requests.post(url, headers=headers)

print(response.json())
```

```javascript Submitter holds significant control
const url = 'https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb';
const options = {method: 'POST', headers: {'X-Beta': 'true', Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Submitter holds significant control
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb"

	req, _ := http.NewRequest("POST", url, nil)

	req.Header.Add("X-Beta", "true")
	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Submitter holds significant control
require 'uri'
require 'net/http'

url = URI("https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-Beta"] = 'true'
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Submitter holds significant control
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb")
  .header("X-Beta", "true")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Submitter holds significant control
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'X-Beta' => 'true',
  ],
]);

echo $response->getBody();
```

```csharp Submitter holds significant control
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb");
var request = new RestRequest(Method.POST);
request.AddHeader("X-Beta", "true");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Submitter holds significant control
import Foundation

let headers = [
  "X-Beta": "true",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Submitter holds significant control (no Proof of Authority)

**Request**

```json
{
  "data": {
    "persons": [
      {
        "last_name": "Lovelace",
        "first_name": "Ada",
        "responsibilities": [
          "submitter",
          "owner",
          "director"
        ],
        "tax_id": "AB123456C",
        "address": {
          "zip": "SW1Y 4JU",
          "city": "London",
          "street": "1 St James Square",
          "country": "GB"
        },
        "job_title": "FOUNDER",
        "citizenship": "GB",
        "date_of_birth": "1985-12-10",
        "identity_documents": {
          "front": "7b9c1e3a-5c7d-4e9f-8a1b-3c5d7e9f1ab5",
          "selfie": "8c0d2f4b-6d8e-4f0a-9b2c-4d6e8f0a2bc6"
        },
        "ownership_percentage": 100,
        "identification_document_type": "PASSPORT"
      }
    ],
    "is_declaration_confirmed": true,
    "is_terms_and_conditions_accepted": true,
    "documents": {
      "company_bank_statement": "6a8b0d2f-4b6c-4d8e-9f0a-2b4c6d8e0fa4",
      "articles_of_incorporation": "5f7a9c1e-3a5b-4c7d-8e9f-1a3b5c7d9e93"
    },
    "formation_date": "2023-02-15",
    "transaction_monthly_volume": "BETWEEN_1K_AND_10K",
    "is_person_with_significant_control": true
  }
}
```

**Response**

```json
{
  "data": {
    "edd": null,
    "status": "awaiting_review",
    "persons": [
      {
        "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
        "last_name": "Hopper",
        "first_name": "Grace",
        "responsibilities": [
          "submitter"
        ],
        "ownership_percentage": null
      },
      {
        "id": "c51e53d2-8a2f-4944-890b-f605a3ab247e",
        "last_name": "Lovelace",
        "first_name": "Ada",
        "responsibilities": [
          "owner",
          "director"
        ],
        "ownership_percentage": 60
      },
      {
        "id": "d62f64e3-9b3a-4a55-9a1c-0716b4bc358f",
        "last_name": "Babbage",
        "first_name": "Charles",
        "responsibilities": [
          "owner"
        ],
        "ownership_percentage": 40
      }
    ],
    "documents": [
      {
        "type": "PROOF_OF_AUTHORITY",
        "meta_type": "POWER_OF_ATTORNEY",
        "is_provided": true,
        "is_required": true
      },
      {
        "type": "ARTICLES_OF_INCORPORATION",
        "meta_type": null,
        "is_provided": true,
        "is_required": true
      },
      {
        "type": "COMPANY_BANK_STATEMENT",
        "meta_type": null,
        "is_provided": true,
        "is_required": false
      },
      {
        "type": "CERTIFICATE_OF_GOOD_STANDING",
        "meta_type": null,
        "is_provided": true,
        "is_required": false
      },
      {
        "type": "ULTIMATE_BENEFICIAL_OWNER_FORM",
        "meta_type": null,
        "is_provided": true,
        "is_required": false
      }
    ],
    "rejection": null,
    "approved_at": null,
    "rejected_at": null,
    "requirements": [
      {
        "key": "ARTICLES_OF_INCORPORATION",
        "category": "DOCUMENT",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_ADDRESS",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_CITIZENSHIP",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_DOB",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_KYC_DOCUMENT",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_NAME",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "DIRECTOR_SELFIE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "FORMATION_DATE",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "IDENTIFICATION_DOCUMENT_TYPE",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "PROOF_OF_AUTHORITY",
        "category": "DOCUMENT",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_ADDRESS",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_CITIZENSHIP",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_DOB",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_KYC_DOCUMENT",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_NAME",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "SUBMITTER_SELFIE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "TERMS_AND_CONDITIONS",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "TRANSACTION_MONTHLY_VOLUME",
        "category": "FIELD",
        "is_satisfied": true
      },
      {
        "key": "UBO_ADDRESS",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_CITIZENSHIP",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_DOB",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_KYC_DOCUMENT",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_NAME",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_OWNERSHIP_PERCENTAGE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_SELFIE",
        "category": "PERSON",
        "is_satisfied": true
      },
      {
        "key": "UBO_TAX_ID",
        "category": "PERSON",
        "is_satisfied": true
      }
    ],
    "submitted_at": "2026-09-01T10:30:00.000Z",
    "questionnaire": {
      "answers": [
        {
          "value": "Yes",
          "question_key": "q1"
        }
      ],
      "questions": [
        {
          "key": "q1",
          "type": "SINGLE_CHOICE",
          "title": "What is the source of the funds used to pay Deel invoices?",
          "options": [
            "Revenue from customers",
            "Investment"
          ],
          "description": "For example revenue from customers, investment, or a loan.",
          "is_required": true,
          "revealed_when": [
            {
              "equals": "Yes",
              "question": "q1"
            }
          ]
        }
      ],
      "template_id": 7,
      "display_name": "Crypto"
    },
    "legal_entity_id": "5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b",
    "verification_type": "FULL",
    "is_action_required": false,
    "is_detail_available": true
  }
}
```

**SDK Code**

```python Submitter holds significant control (no Proof of Authority)
import requests

url = "https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb"

payload = { "data": {
        "persons": [
            {
                "last_name": "Lovelace",
                "first_name": "Ada",
                "responsibilities": ["submitter", "owner", "director"],
                "tax_id": "AB123456C",
                "address": {
                    "zip": "SW1Y 4JU",
                    "city": "London",
                    "street": "1 St James Square",
                    "country": "GB"
                },
                "job_title": "FOUNDER",
                "citizenship": "GB",
                "date_of_birth": "1985-12-10",
                "identity_documents": {
                    "front": "7b9c1e3a-5c7d-4e9f-8a1b-3c5d7e9f1ab5",
                    "selfie": "8c0d2f4b-6d8e-4f0a-9b2c-4d6e8f0a2bc6"
                },
                "ownership_percentage": 100,
                "identification_document_type": "PASSPORT"
            }
        ],
        "is_declaration_confirmed": True,
        "is_terms_and_conditions_accepted": True,
        "documents": {
            "company_bank_statement": "6a8b0d2f-4b6c-4d8e-9f0a-2b4c6d8e0fa4",
            "articles_of_incorporation": "5f7a9c1e-3a5b-4c7d-8e9f-1a3b5c7d9e93"
        },
        "formation_date": "2023-02-15",
        "transaction_monthly_volume": "BETWEEN_1K_AND_10K",
        "is_person_with_significant_control": True
    } }
headers = {
    "X-Beta": "true",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Submitter holds significant control (no Proof of Authority)
const url = 'https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb';
const options = {
  method: 'POST',
  headers: {
    'X-Beta': 'true',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: '{"data":{"persons":[{"last_name":"Lovelace","first_name":"Ada","responsibilities":["submitter","owner","director"],"tax_id":"AB123456C","address":{"zip":"SW1Y 4JU","city":"London","street":"1 St James Square","country":"GB"},"job_title":"FOUNDER","citizenship":"GB","date_of_birth":"1985-12-10","identity_documents":{"front":"7b9c1e3a-5c7d-4e9f-8a1b-3c5d7e9f1ab5","selfie":"8c0d2f4b-6d8e-4f0a-9b2c-4d6e8f0a2bc6"},"ownership_percentage":100,"identification_document_type":"PASSPORT"}],"is_declaration_confirmed":true,"is_terms_and_conditions_accepted":true,"documents":{"company_bank_statement":"6a8b0d2f-4b6c-4d8e-9f0a-2b4c6d8e0fa4","articles_of_incorporation":"5f7a9c1e-3a5b-4c7d-8e9f-1a3b5c7d9e93"},"formation_date":"2023-02-15","transaction_monthly_volume":"BETWEEN_1K_AND_10K","is_person_with_significant_control":true}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Submitter holds significant control (no Proof of Authority)
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb"

	payload := strings.NewReader("{\n  \"data\": {\n    \"persons\": [\n      {\n        \"last_name\": \"Lovelace\",\n        \"first_name\": \"Ada\",\n        \"responsibilities\": [\n          \"submitter\",\n          \"owner\",\n          \"director\"\n        ],\n        \"tax_id\": \"AB123456C\",\n        \"address\": {\n          \"zip\": \"SW1Y 4JU\",\n          \"city\": \"London\",\n          \"street\": \"1 St James Square\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"FOUNDER\",\n        \"citizenship\": \"GB\",\n        \"date_of_birth\": \"1985-12-10\",\n        \"identity_documents\": {\n          \"front\": \"7b9c1e3a-5c7d-4e9f-8a1b-3c5d7e9f1ab5\",\n          \"selfie\": \"8c0d2f4b-6d8e-4f0a-9b2c-4d6e8f0a2bc6\"\n        },\n        \"ownership_percentage\": 100,\n        \"identification_document_type\": \"PASSPORT\"\n      }\n    ],\n    \"is_declaration_confirmed\": true,\n    \"is_terms_and_conditions_accepted\": true,\n    \"documents\": {\n      \"company_bank_statement\": \"6a8b0d2f-4b6c-4d8e-9f0a-2b4c6d8e0fa4\",\n      \"articles_of_incorporation\": \"5f7a9c1e-3a5b-4c7d-8e9f-1a3b5c7d9e93\"\n    },\n    \"formation_date\": \"2023-02-15\",\n    \"transaction_monthly_volume\": \"BETWEEN_1K_AND_10K\",\n    \"is_person_with_significant_control\": true\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("X-Beta", "true")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Submitter holds significant control (no Proof of Authority)
require 'uri'
require 'net/http'

url = URI("https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-Beta"] = 'true'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"data\": {\n    \"persons\": [\n      {\n        \"last_name\": \"Lovelace\",\n        \"first_name\": \"Ada\",\n        \"responsibilities\": [\n          \"submitter\",\n          \"owner\",\n          \"director\"\n        ],\n        \"tax_id\": \"AB123456C\",\n        \"address\": {\n          \"zip\": \"SW1Y 4JU\",\n          \"city\": \"London\",\n          \"street\": \"1 St James Square\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"FOUNDER\",\n        \"citizenship\": \"GB\",\n        \"date_of_birth\": \"1985-12-10\",\n        \"identity_documents\": {\n          \"front\": \"7b9c1e3a-5c7d-4e9f-8a1b-3c5d7e9f1ab5\",\n          \"selfie\": \"8c0d2f4b-6d8e-4f0a-9b2c-4d6e8f0a2bc6\"\n        },\n        \"ownership_percentage\": 100,\n        \"identification_document_type\": \"PASSPORT\"\n      }\n    ],\n    \"is_declaration_confirmed\": true,\n    \"is_terms_and_conditions_accepted\": true,\n    \"documents\": {\n      \"company_bank_statement\": \"6a8b0d2f-4b6c-4d8e-9f0a-2b4c6d8e0fa4\",\n      \"articles_of_incorporation\": \"5f7a9c1e-3a5b-4c7d-8e9f-1a3b5c7d9e93\"\n    },\n    \"formation_date\": \"2023-02-15\",\n    \"transaction_monthly_volume\": \"BETWEEN_1K_AND_10K\",\n    \"is_person_with_significant_control\": true\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Submitter holds significant control (no Proof of Authority)
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb")
  .header("X-Beta", "true")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"data\": {\n    \"persons\": [\n      {\n        \"last_name\": \"Lovelace\",\n        \"first_name\": \"Ada\",\n        \"responsibilities\": [\n          \"submitter\",\n          \"owner\",\n          \"director\"\n        ],\n        \"tax_id\": \"AB123456C\",\n        \"address\": {\n          \"zip\": \"SW1Y 4JU\",\n          \"city\": \"London\",\n          \"street\": \"1 St James Square\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"FOUNDER\",\n        \"citizenship\": \"GB\",\n        \"date_of_birth\": \"1985-12-10\",\n        \"identity_documents\": {\n          \"front\": \"7b9c1e3a-5c7d-4e9f-8a1b-3c5d7e9f1ab5\",\n          \"selfie\": \"8c0d2f4b-6d8e-4f0a-9b2c-4d6e8f0a2bc6\"\n        },\n        \"ownership_percentage\": 100,\n        \"identification_document_type\": \"PASSPORT\"\n      }\n    ],\n    \"is_declaration_confirmed\": true,\n    \"is_terms_and_conditions_accepted\": true,\n    \"documents\": {\n      \"company_bank_statement\": \"6a8b0d2f-4b6c-4d8e-9f0a-2b4c6d8e0fa4\",\n      \"articles_of_incorporation\": \"5f7a9c1e-3a5b-4c7d-8e9f-1a3b5c7d9e93\"\n    },\n    \"formation_date\": \"2023-02-15\",\n    \"transaction_monthly_volume\": \"BETWEEN_1K_AND_10K\",\n    \"is_person_with_significant_control\": true\n  }\n}")
  .asString();
```

```php Submitter holds significant control (no Proof of Authority)
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb', [
  'body' => '{
  "data": {
    "persons": [
      {
        "last_name": "Lovelace",
        "first_name": "Ada",
        "responsibilities": [
          "submitter",
          "owner",
          "director"
        ],
        "tax_id": "AB123456C",
        "address": {
          "zip": "SW1Y 4JU",
          "city": "London",
          "street": "1 St James Square",
          "country": "GB"
        },
        "job_title": "FOUNDER",
        "citizenship": "GB",
        "date_of_birth": "1985-12-10",
        "identity_documents": {
          "front": "7b9c1e3a-5c7d-4e9f-8a1b-3c5d7e9f1ab5",
          "selfie": "8c0d2f4b-6d8e-4f0a-9b2c-4d6e8f0a2bc6"
        },
        "ownership_percentage": 100,
        "identification_document_type": "PASSPORT"
      }
    ],
    "is_declaration_confirmed": true,
    "is_terms_and_conditions_accepted": true,
    "documents": {
      "company_bank_statement": "6a8b0d2f-4b6c-4d8e-9f0a-2b4c6d8e0fa4",
      "articles_of_incorporation": "5f7a9c1e-3a5b-4c7d-8e9f-1a3b5c7d9e93"
    },
    "formation_date": "2023-02-15",
    "transaction_monthly_volume": "BETWEEN_1K_AND_10K",
    "is_person_with_significant_control": true
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
    'X-Beta' => 'true',
  ],
]);

echo $response->getBody();
```

```csharp Submitter holds significant control (no Proof of Authority)
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb");
var request = new RestRequest(Method.POST);
request.AddHeader("X-Beta", "true");
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"data\": {\n    \"persons\": [\n      {\n        \"last_name\": \"Lovelace\",\n        \"first_name\": \"Ada\",\n        \"responsibilities\": [\n          \"submitter\",\n          \"owner\",\n          \"director\"\n        ],\n        \"tax_id\": \"AB123456C\",\n        \"address\": {\n          \"zip\": \"SW1Y 4JU\",\n          \"city\": \"London\",\n          \"street\": \"1 St James Square\",\n          \"country\": \"GB\"\n        },\n        \"job_title\": \"FOUNDER\",\n        \"citizenship\": \"GB\",\n        \"date_of_birth\": \"1985-12-10\",\n        \"identity_documents\": {\n          \"front\": \"7b9c1e3a-5c7d-4e9f-8a1b-3c5d7e9f1ab5\",\n          \"selfie\": \"8c0d2f4b-6d8e-4f0a-9b2c-4d6e8f0a2bc6\"\n        },\n        \"ownership_percentage\": 100,\n        \"identification_document_type\": \"PASSPORT\"\n      }\n    ],\n    \"is_declaration_confirmed\": true,\n    \"is_terms_and_conditions_accepted\": true,\n    \"documents\": {\n      \"company_bank_statement\": \"6a8b0d2f-4b6c-4d8e-9f0a-2b4c6d8e0fa4\",\n      \"articles_of_incorporation\": \"5f7a9c1e-3a5b-4c7d-8e9f-1a3b5c7d9e93\"\n    },\n    \"formation_date\": \"2023-02-15\",\n    \"transaction_monthly_volume\": \"BETWEEN_1K_AND_10K\",\n    \"is_person_with_significant_control\": true\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Submitter holds significant control (no Proof of Authority)
import Foundation

let headers = [
  "X-Beta": "true",
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["data": [
    "persons": [
      [
        "last_name": "Lovelace",
        "first_name": "Ada",
        "responsibilities": ["submitter", "owner", "director"],
        "tax_id": "AB123456C",
        "address": [
          "zip": "SW1Y 4JU",
          "city": "London",
          "street": "1 St James Square",
          "country": "GB"
        ],
        "job_title": "FOUNDER",
        "citizenship": "GB",
        "date_of_birth": "1985-12-10",
        "identity_documents": [
          "front": "7b9c1e3a-5c7d-4e9f-8a1b-3c5d7e9f1ab5",
          "selfie": "8c0d2f4b-6d8e-4f0a-9b2c-4d6e8f0a2bc6"
        ],
        "ownership_percentage": 100,
        "identification_document_type": "PASSPORT"
      ]
    ],
    "is_declaration_confirmed": true,
    "is_terms_and_conditions_accepted": true,
    "documents": [
      "company_bank_statement": "6a8b0d2f-4b6c-4d8e-9f0a-2b4c6d8e0fa4",
      "articles_of_incorporation": "5f7a9c1e-3a5b-4c7d-8e9f-1a3b5c7d9e93"
    ],
    "formation_date": "2023-02-15",
    "transaction_monthly_volume": "BETWEEN_1K_AND_10K",
    "is_person_with_significant_control": true
  ]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/legal-entities/5f4a2c0e-6f1c-4a52-9c4e-1c8f1d2e3a4b/kyb")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```