Submit 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.

Required documents. An entity can only be approved once every document required for its entity_type and region (US or EU platform) has been uploaded. "One of" means any single document from the group satisfies it.

entity_typeUS platformEU platform
corporationby_laws, proof_of_address, certificate_of_good_standing, one of certificate_of_incorporation / articles_of_incorporationSame as US
llcoperating_agreement, proof_of_address, certificate_of_good_standing, one of articles_of_organization / certificate_of_organizationSame as US
partnershippartnership_agreement, proof_of_address, certificate_of_good_standingexcerpt_of_the_chamber_of_commerce, partnership_agreement, certificate_of_good_conduct_of_entrepreneur, source_of_funds, financial_report, certified_valid_id_of_control_person_and_beneficial_owner, power_of_authorization, id_of_submitter, group_of_companies_chart_including_affiliated_foundation
sole_proprietorshipproof_of_address, certificate_of_good_standing (business_license and business_name_filing_document are optional)excerpt_of_the_chamber_of_commerce, proof_of_residence, certificate_of_good_conduct_of_entrepreneur, source_of_funds, certified_valid_id_of_control_person_and_beneficial_owner
non_profitproof_of_address, proof_of_non_profit_status, one of by_laws / articles_of_organizationlei_certificate, excerpt_of_the_chamber_of_commerce, annual_accounts, power_of_authorization (a power of attorney or a board resolution authorising the submitter), plus legal_opinion when the entity was created with is_complex_structure: true
trustexcerpt_of_the_chamber_of_commerce, proof_of_residence, articles_of_incorporation, articles_of_associations, trust_agreement, certificate_of_good_conduct_of_nnp, source_of_funds, certified_valid_id_of_control_person_and_beneficial_owner, power_of_authorization, id_of_submitterSame as US

Any document without a dedicated type can be uploaded as supporting_document with a free-text document_description; it does not count towards the required set.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

For document uploads to a participant, you must include the header 'X-SCX-FILE-HASH' and pass the value of your hashed document.

File Hashing

Step 1

Read File Content and Base64 EncodeThe first step is to read the entire file as binary data (bytes) and immediately convert this raw data into a Base64-encoded string.

  • Action: Open the target file in binary read mode ("rb") and read its entire content into memory.
  • Transformation: Take the raw binary data and apply a Base64 encoding function to it. This produces a string composed of standard ASCII characters.
  • Purpose: This Base64 string is the unique intermediate representation that will be used as the input for the cryptographic hash function.

Step 2

Hash the Base64 String (SHA-256)Next, the intermediate Base64 string is used as the input for the SHA-256 algorithm.

  • Pre-Hashing Prep: The Base64 string must be converted back into bytes using a standard character encoding (e.g., UTF-8) before being fed into the SHA-256 function.
  • Hashing: The SHA-256 algorithm processes these input bytes to generate a fixed-size 32-byte hash value, also known as the digest.

Step 3

Base64 Encode the Final DigestThe final step is to take the raw 32-byte digest generated in Step 2 and convert it into a string format that is easily stored and shared.

  • Action: Apply a second Base64 encoding operation, but this time to the raw 32-byte SHA-256 digest (not the original file content).
  • Result: This yields the final Base64-encoded hash string, which is the result of your specific three-step hashing process.

Body Params

Entity document metadata including participant code, document type, user code (if applicable), and base64-encoded file data

Headers
string
required

HMAC-SHA256 signature of the request, base64-encoded. See the Authentication guide for the exact signing formula.

string
required

Current Unix timestamp in seconds. Must be within 60 seconds of server time or the request is rejected.

Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json