---
title: "Upload a document"
method: POST
path: "/api/v1/documents/upload"
tags: ["documents"]
---

# Upload a document

`POST /api/v1/documents/upload`

Upload a document to storage. Returns document_id for referencing.

## Headers

- `x-api-key` string, nullable

## Request body

- KybDocumentUpload — Document upload for draft.
  - `base64` string, required
  - `type` 'certificate_of_incorporation' | 'formation_document' | 'articles_of_incorporation' | 'power_of_attorney' | 'corporate_structure' | 'company_registry_extract' | 'corporate_registry_extract' | 'shareholder_registry' | 'director_structure' | 'proof_of_address' | 'utility_bill' | 'annual_financial_statements' | 'articles_of_association' | 'audit_report' | 'bank_reference_letter' | 'bank_statement' | 'banking_details' | 'birth_certificate' | 'business_license' | 'business_plan' | 'certificate_of_good_standing' | 'crypto_statement' | 'credit_report' | 'criminal_record_check' | 'cv_resume' | 'driving_license' | 'education_certificate' | 'financial_projections' | 'investment_statement' | 'insurance_policy' | 'lease_agreement' | 'list_of_authorized_signatories' | 'marriage_certificate' | 'national_id' | 'operating_agreement' | 'partnership_agreement' | 'professional_license' | 'regulatory_license' | 'reference_letter' | 'register_of_members' | 'residence_permit' | 'shareholding_structure' | 'shareholders_agreement' | 'social_security_document' | 'source_of_funds_declaration' | 'tax_identification_document' | 'tax_compliance_form' | 'tax_returns' | 'payslip' | 'pitch_deck' | 'savings_statement' | 'trade_references' | 'vat_registration' | 'vendor_contracts' | 'visa' | 'wealth_statement' | 'contract' | 'invoice' | 'loan_agreement' | 'subscription_agreement' | 'safe_agreement' | 'convertible_note' | 'promissory_note' | 'marketing_material' | 'employment_contract' | 'authorization_to_act' | 'authority_to_bind' | 'income_verification_letter' | 'source_of_funds' | 'source_of_wealth' | 'supporting_document' | 'memorandum' | 'passport_front' | 'passport_back' | 'id_card_front' | 'id_card_back' | 'drivers_license_front' | 'drivers_license_back' | 'residence_permit_front' | 'residence_permit_back' | 'other', required — Open internal document type; providers map it to their own taxonomy.
  - `name` string, nullable
  - `originName` string, nullable
  - `context` string, nullable

## Response `201`

Successful Response

- DocumentDraftInfo — Document info in response.
  - `id` string, required
  - `type` 'certificate_of_incorporation' | 'formation_document' | 'articles_of_incorporation' | 'power_of_attorney' | 'corporate_structure' | 'company_registry_extract' | 'corporate_registry_extract' | 'shareholder_registry' | 'director_structure' | 'proof_of_address' | 'utility_bill' | 'annual_financial_statements' | 'articles_of_association' | 'audit_report' | 'bank_reference_letter' | 'bank_statement' | 'banking_details' | 'birth_certificate' | 'business_license' | 'business_plan' | 'certificate_of_good_standing' | 'crypto_statement' | 'credit_report' | 'criminal_record_check' | 'cv_resume' | 'driving_license' | 'education_certificate' | 'financial_projections' | 'investment_statement' | 'insurance_policy' | 'lease_agreement' | 'list_of_authorized_signatories' | 'marriage_certificate' | 'national_id' | 'operating_agreement' | 'partnership_agreement' | 'professional_license' | 'regulatory_license' | 'reference_letter' | 'register_of_members' | 'residence_permit' | 'shareholding_structure' | 'shareholders_agreement' | 'social_security_document' | 'source_of_funds_declaration' | 'tax_identification_document' | 'tax_compliance_form' | 'tax_returns' | 'payslip' | 'pitch_deck' | 'savings_statement' | 'trade_references' | 'vat_registration' | 'vendor_contracts' | 'visa' | 'wealth_statement' | 'contract' | 'invoice' | 'loan_agreement' | 'subscription_agreement' | 'safe_agreement' | 'convertible_note' | 'promissory_note' | 'marketing_material' | 'employment_contract' | 'authorization_to_act' | 'authority_to_bind' | 'income_verification_letter' | 'source_of_funds' | 'source_of_wealth' | 'supporting_document' | 'memorandum' | 'passport_front' | 'passport_back' | 'id_card_front' | 'id_card_back' | 'drivers_license_front' | 'drivers_license_back' | 'residence_permit_front' | 'residence_permit_back' | 'other', required — Open internal document type; providers map it to their own taxonomy.
  - `name` string, nullable
  - `originName` string, nullable
  - `link` string, nullable
  - `createdAt` string, date-time, nullable
  - `issueDate` string, date, nullable
  - `expiryDate` string, date, nullable
  - `content` object, nullable
  - `dakotaId` string, nullable
  - `signature` DocumentSignatureInfo — Typed view of the ``content["hellosign"]`` block for API responses.
    - `state` 'draft' | 'sent' | 'viewed' | 'partially_signed' | 'signed' | 'declined' | 'canceled' | 'expired' | 'invalid', required — Where one generated document stands with the signing provider. A document that exists is not a document that is signed: the UI has to tell a fresh draft from one waiting on a signer from a completed one.
    - `signatureRequestId` string, nullable
    - `signerEmails` string[]
    - `lastSignerEmail` string, nullable
    - `testMode` boolean

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/hevn-inc/apis/hevn-api.md) · [All operations](https://skmtc.dev/hevn-inc/apis/hevn-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hevn-inc/hevn-api/revisions/7ed1b58c5607/schema)
