---
title: "Submit entity documents"
method: POST
path: "/participants/entity/documents"
tags: ["Entity Participants"]
---

# Submit entity documents

`POST /participants/entity/documents`

Submits a business document on behalf of an entity, or an identity document on behalf of a control person or a beneficial owner of the entity, if you operate a platform on zerohash.

**EU NNP onboarding.** For an entity onboarded through an EU-region platform, the required document set is `lei_certificate`, `excerpt_of_the_chamber_of_commerce`, `annual_accounts`, and `power_of_authorization` (a power of attorney or a board resolution authorising the submitter). When the entity was created with `is_complex_structure: true`, a `legal_opinion` document is additionally required before the entity can be approved. Any document without a dedicated type can be uploaded as `supporting_document` with a free-text `document_description`.

## Headers

- `X-SCX-SIGNED` string, required
- `X-SCX-TIMESTAMP` string, required

## Request body

- union
  - object — All accepted fields for Entity document submission.
    - `document` string — base 64 encoded file that you wish to upload (10mb limit)
    - `mime` string — The MIME type of the file you are uploading
    - `file_name` string — The name of the document that you are uploading
    - `participant_code` string — Your participant code, or the participant_code of the customer on behalf of whom you are uploading the document `participant_code` or `user_code` must be provided, but not both
    - `user_code` string — The user code of the Control Person or Beneficial Owner `participant_code` or `user_code` must be provided, but not both
    - `document_type` 'business_license' | 'business_name_filing_document' | 'proof_of_address' | 'certificate_of_good_standing' | 'operating_agreement' | 'partnership_agreement' | 'articles_of_incorporation' | 'articles_of_organization' | 'certificate_of_incorporation' | 'certificate_of_organization' | 'by_laws' | 'proof_of_non_profit_status' | 'excerpt_of_the_chamber_of_commerce' | 'articles_of_associations' | 'source_of_funds' | 'certificate_of_good_conduct_of_nnp' | 'certified_valid_id_of_control_person_and_beneficial_owner' | 'power_of_authorization' | 'id_of_submitter' | 'group_of_companies_chart_including_affiliated_foundation' | 'us_drivers_license' | 'us_passport' | 'us_passport_card' | 'us_permanent_resident_card' | 'us_border_crossing_card' | 'us_alien_card' | 'us_id_card' | 'us_temporary_resident_card' | 'us_visa' | 'non_us_passport' | 'non_us_other' | 'eu_passport' | 'eu_id_card' | 'eu_drivers_license' | 'eu_address_verification' | 'form_w9' | 'form_w8_ben' | 'form_w8_ben_e' | 'form_w8_imy' | 'form_w8_eci' | 'form_w8_exp' | 'form_w8_ce' | 'miscellaneous' | 'lei_certificate' | 'annual_accounts' | 'legal_opinion' | 'supporting_document' — The type of document being uploaded. **EU NNP required documents** (entity onboarded through an EU-region platform): `lei_certificate`, `excerpt_of_the_chamber_of_commerce`, `annual_accounts`, and `power_of_authorization` (accepts either a power of attorney or a board resolution authorising the submitter to act for the entity). When the entity is submitted with `is_complex_structure: true`, `legal_opinion` is additionally required before the entity can be approved. Use `supporting_document` together with `document_description` for any document that does not have a dedicated type.
    - `id_front` boolean — (optional) determines if the document is the front or back of an ID
    - `document_description` string — Optional free-text description of the document. Mainly used with `supporting_document`, but accepted for any document type. Recommended values include: `Legal opinion - complex ownership structure`, `UBO certified ID`, `Trust agreement`, `Group structure chart`.
  - object — All accepted fields for entity supporting documents submission. Required `document_type` depends on the `entity_type` submitted with the entity participant. **EU NNP required set:** `lei_certificate`, `excerpt_of_the_chamber_of_commerce`, `annual_accounts`, and `power_of_authorization` (a power of attorney or a board resolution). `legal_opinion` is additionally required when the entity is submitted with `is_complex_structure: true`.
    - `document` string — base 64 encoded file that you wish to upload (10mb limit)
    - `mime` string — The MIME type of the file you are uploading
    - `file_name` string — The name of the document that you are uploading
    - `participant_code` string — Your participant code, or the participant_code of the customer on behalf of whom you are uploading the document
    - `document_type` 'business_license' | 'business_name_filing_document' | 'proof_of_address' | 'certificate_of_good_standing' | 'operating_agreement' | 'partnership_agreement' | 'articles_of_incorporation' | 'articles_of_organization' | 'certificate_of_incorporation' | 'certificate_of_organization' | 'by_laws' | 'proof_of_non_profit_status' | 'excerpt_of_the_chamber_of_commerce' | 'articles_of_associations' | 'source_of_funds' | 'certificate_of_good_conduct_of_nnp' | 'certified_valid_id_of_control_person_and_beneficial_owner' | 'power_of_authorization' | 'id_of_submitter' | 'group_of_companies_chart_including_affiliated_foundation' | 'lei_certificate' | 'annual_accounts' | 'legal_opinion' | 'supporting_document' — A valid document type
    - `document_description` string — Optional free-text description of the document. Mainly used with `supporting_document`, but accepted for any document type. Recommended values include: `Legal opinion - complex ownership structure`, `UBO certified ID`, `Trust agreement`, `Group structure chart`.
  - object — Beneficial Owner or Control Person document fields for identity verification documents (front and back).
    - `document` string — base 64 encoded file that you wish to upload (10mb limit)
    - `mime` string — The MIME type of the file you are uploading
    - `file_name` string — The name of the document that you are uploading
    - `participant_code` string — Your participant code, or the participant_code of the customer on behalf of whom you are uploading the document
    - `document_type` 'eu_drivers_license' | 'eu_id_card' | 'us_id_card' | 'us_drivers_license' | 'us_alien_card' | 'us_permanent_resident_card' | 'us_border_crossing_card' | 'us_passport_card' — A valid document type
    - `id_front` boolean — Determines if the document is the front or back of an ID. The field is **mandatory** only for the following document types: `eu_id_card`, `eu_drivers_license`, `us_id_card`, `us_drivers_license`, `us_passport_card`.

## Response `201`

Successfully created entity document. Returns the created resource with generated IDs and timestamps.

- PostEntityDocumentsResponse
  - `message` object
    - `state` string — Upload state.
    - `file_name` string — Name of the uploaded file, echoed back from the request.
    - `created_at` number — Unix timestamp in milliseconds indicating when the document upload was recorded.

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/zerohash/apis/zerohash-api.md) · [All operations](https://skmtc.net/zerohash/apis/zerohash-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zerohash/zerohash-api/revisions/8b647d934363/schema)
