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_type | US platform | EU platform |
|---|---|---|
corporation | by_laws, proof_of_address, certificate_of_good_standing, one of certificate_of_incorporation / articles_of_incorporation | Same as US |
llc | operating_agreement, proof_of_address, certificate_of_good_standing, one of articles_of_organization / certificate_of_organization | Same as US |
partnership | partnership_agreement, proof_of_address, certificate_of_good_standing | excerpt_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_proprietorship | proof_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_profit | proof_of_address, proof_of_non_profit_status, one of by_laws / articles_of_organization | lei_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 |
trust | excerpt_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_submitter | Same 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.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
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.