---
title: "Create a Document"
method: POST
path: "/entities/document"
tags: ["Document"]
---

# Create a Document

`POST /entities/document`

## Request

- Base URL: `https://api.justifi.ai/v1`
- URL: `https://api.justifi.ai/v1/entities/document`
- Auth: none declared. Required headers: `Authorization`
- TypeScript: <https://skmtc.dev/justifi/apis/justifi-api-documentation/docs/entities/document/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a reference to a document, and receive a presigned URL for uploading the document

## Headers

- `Authorization` string, required

## Request body

- object
  - `description` string
  - `file_name` string, required
  - `file_type` string, required: the file media type/extension of the file you are uploading. For example, text/plain, application/pdf, image/png
  - `document_type` 'articles_of_incorporation' | 'balance_sheet' | 'bank_statement' | 'birth_certificate' | 'business_registration' | 'citizenship_card' | 'driver_license' | 'foreign_passport' | 'government_id' | 'nexus_card' | 'passport' | 'profit_and_loss_statement' | 'resident_card' | 'sin_card' | 'ssn_card' | 'status_card' | 'tax_return' | 'voided_check' | 'other', required: The kind of document being uploaded. To provision a business for payments, upload: - **Financial document** (all businesses): `voided_check` or `bank_statement`. - **Business document** (Canadian businesses only): `articles_of_incorporation` or `business_registration`. - **Owner identification** (Canadian businesses only): one Group 1 and one Group 2 ID per owner. - Group 1: `passport` (Canadian passport), `driver_license` (Canadian or US state driver's license), `government_id` (Canadian government-issued ID card), `resident_card` (Permanent Resident Card), `status_card` (Certificate of Indian Status). - Group 2: `nexus_card` (NEXUS card), `citizenship_card` (Canadian citizenship or naturalization card or certificate), `foreign_passport`, `birth_certificate` (Canadian birth certificate), `sin_card` (Social Insurance Number card), `ssn_card` (Social Security Number card). `balance_sheet`, `profit_and_loss_statement`, `tax_return` and `other` are optional.
  - `business_id` string, uuid: the business id to associate with this document (one of business id or identity id is required)
  - `identity_id` string, uuid: the identity id to associate with this document (one of business id or identity id is required)
  - `metadata` object: any useful information you'd like to store alongside this document

## Response `201`

Document was created and presigned successfully

- object
  - `id` string, uuid: the object id, also found in the data object
  - `type` string: the object type, or array of objects
  - `data` object: the attributes for the object
    - `id` string, uuid
    - `platform_account_id` string: platform account that owns this document
    - `description` string: description of the document, used for your reference
    - `file_name` string: file name of the document
    - `file_type` string: the file media type/extension of the file you are uploading. For example, text/plain, application/pdf, image/png
    - `document_type` 'articles_of_incorporation' | 'balance_sheet' | 'bank_statement' | 'birth_certificate' | 'business_registration' | 'citizenship_card' | 'driver_license' | 'foreign_passport' | 'government_id' | 'nexus_card' | 'passport' | 'profit_and_loss_statement' | 'resident_card' | 'sin_card' | 'ssn_card' | 'status_card' | 'tax_return' | 'voided_check' | 'other'
    - `business_id` string, uuid: the business id to associate with this document (one of business id or identity id is required)
    - `identity_id` string, uuid: the identity id to associate with this document (one of business id or identity id is required)
    - `presigned_url` string, url: url used to PUT or GET the document to our cloud provider. This is not returned via the list API
    - `metadata` object: any useful information you'd like to store alongside this document
    - `status` 'pending' | 'uploaded' | 'canceled'
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `page_info` unknown

---

[API](https://skmtc.dev/justifi/apis/justifi-api-documentation.md) - [All operations](https://skmtc.dev/justifi/apis/justifi-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/justifi/apis/justifi-api-documentation/revisions/dd9f3fed7e46?raw)
