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

# Submit documents

`POST /participants/documents`

Submits a document on behalf of you or a customer if you operate a platform on zerohash.

## Headers

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

## Request body

- union
  - object — All accepted fields for a document
    - `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` 'us_drivers_license' | 'us_passport' | 'us_passport_card' | 'us_permanent_resident_card' | 'us_border_crossing_card' | 'us_alien_card' | 'us_id_card' | 'non_us_passport' | 'non_us_other' | 'proof_of_income' | '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' | 'source_of_funds_for_purchase' | 'proof_of_employment_status' | 'proof_of_industry' | 'miscellaneous' — A valid ID type. **Additional shopper document types:** `source_of_funds_for_purchase`, `proof_of_employment_status`, and `proof_of_industry` are accepted for natural persons onboarded with `onboarding_profile: shopper`, in addition to the other document types listed here. They have no effect for participants on any other onboarding profile.
    - `id_front` boolean — Optional field to indicate if the document is the front or back of an ID. The field is **mandatory** only for the following document types:: `us_drivers_license`, `us_permanent_resident_card`, `us_border_crossing_card`, `us_alien_card`, `us_id_card`, `us_passport_card`, `eu_id_card`, `eu_drivers_license`.
  - object — US single-sided document submission (no id_front field)
    - `document` string, required — base 64 encoded file that you wish to upload (10mb limit)
    - `mime` string, required — The MIME type of the file you are uploading
    - `file_name` string, required — The name of the document that you are uploading
    - `participant_code` string, required — Your participant code, or the participant_code of the customer on behalf of whom you are uploading the document
    - `document_type` 'us_passport' | 'non_us_passport' | 'non_us_other' | 'proof_of_income' | 'form_w9' | 'form_w8_ben' | 'form_w8_ben_e' | 'form_w8_imy' | 'form_w8_eci' | 'form_w8_exp' | 'form_w8_ce' | 'source_of_funds_for_purchase' | 'proof_of_employment_status' | 'proof_of_industry', required — A valid US single-sided document type. **Additional shopper document types:** `source_of_funds_for_purchase`, `proof_of_employment_status`, and `proof_of_industry` are accepted for natural persons onboarded with `onboarding_profile: shopper`, in addition to the other document types listed here. They have no effect for participants on any other onboarding profile.
  - object — US two-sided document submission (id_front optional)
    - `document` string, required — base 64 encoded file that you wish to upload (10mb limit)
    - `mime` string, required — The MIME type of the file you are uploading
    - `file_name` string, required — The name of the document that you are uploading
    - `participant_code` string, required — Your participant code, or the participant_code of the customer on behalf of whom you are uploading the document
    - `document_type` 'us_drivers_license' | 'us_permanent_resident_card' | 'us_border_crossing_card' | 'us_alien_card' | 'us_id_card' | 'us_passport_card', required — A valid US two-sided document type
    - `id_front` boolean, required — Optional field to indicate if the document is the front or back of an ID. The field is **mandatory** only for the folliwng US two-sided documents: `us_drivers_license`, `us_permanent_resident_card`, `us_border_crossing_card`, `us_alien_card`, `us_id_card`, `us_passport_card`.
  - object — EU single-sided document submission (no id_front field)
    - `document` string, required — base 64 encoded file that you wish to upload (10mb limit)
    - `mime` string, required — The MIME type of the file you are uploading
    - `file_name` string, required — The name of the document that you are uploading
    - `participant_code` string, required — Your participant code, or the participant_code of the customer on behalf of whom you are uploading the document
    - `document_type` 'eu_passport' | 'eu_address_verification' | 'us_passport' | 'non_us_passport' | 'non_us_other', required — A valid EU single-sided document type
  - object — EU two-sided document submission (id_front optional)
    - `document` string, required — base 64 encoded file that you wish to upload (10mb limit)
    - `mime` string, required — The MIME type of the file you are uploading
    - `file_name` string, required — The name of the document that you are uploading
    - `participant_code` string, required — Your participant code, or the participant_code of the customer on behalf of whom you are uploading the document
    - `document_type` 'eu_id_card' | 'eu_drivers_license' | 'us_id_card' | 'us_drivers_license' | 'us_passport_card', required — A valid EU two-sided document type
    - `id_front` boolean, required — Optional field to indicate if the document is the front or back of an ID. The field is **mandatory** only for the following EU two-sided documents: `eu_id_card`, `eu_drivers_license`, `us_id_card`, `us_drivers_license`, `us_passport_card`.

## Response `201`

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

- PostDocumentsResponse
  - `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)
