Uploading Company Provided Documents
Learn how to upload company provided documents to Check API
The company provided document object represents a company document uploaded directly to Check API. This has implications in the company review process, where a company may be asked for additional documentation to fulfill a verification requirement. A company provided document must be a PDF, JPG, or PNG and cannot exceed 6 MB in size.
The following document types are supported:
- Form 940 (
940
) - Form 941 (
941
) - Form 943 (
943
) - Form 944 (
944
) - Form 945 (
945
) - SS4 (
ss4
) - CP-575 (
cp_575
) - 147-C (
147_c
) - Non-expired government-issued photo ID for authorized signer (
signatory_photo_id
) - Voided Check (
voided_check
) - Full bank statement including bank name, account number, and account owner's name and address (
bank_statement
) - Bank letter, on bank letterhead, including account number and account owner’s name (
bank_letter
) - Profit & Loss Statement (
profit_and_loss
) - Cash Flow Statement (
cash_flow_statement
) - Balance Sheet (
balance_sheet
) - Articles of Incorporation (
articles_of_incorporation
) - Amendment to Articles of Incorporation showing the addition of Signer (
articles_of_incorporation_signatory_amendment
) - State registration document, proving registration of company in the state of legal address (
state_registration
)
Document Upload Example
Step 1: Create a company provided document
To upload a document to Check API, begin by first creating a company provided document object.
The following example creates a document which represents a 940 form for a company.
We make a POST
request to http://sandbox.checkhq.com/company_provided_documents with the ID of the company we are uploading the document for and the type of the document.
curl --request POST \
--url https://sandbox.checkhq.com/company_provided_documents \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
> --data '{"company": "com_kGYEICK22GEzj8trreH3", "document_type": "940"}'
When this request succeeds, we are met with some metadata related to the created entity. The key attributes to note are the upload_url
, upload_status
, and file_content_type
. The upload_url
is the Check API URL which we will later make a multipart/form-data
request to when uploading the actual file associated with this document. The upload_status
represents whether this document has been uploaded or not. All company provided documents have an upload_status
of "pending"
upon initial creation, as they do not yet have an associated uploaded file. The file_content_type
is the MIME type of the uploaded file. This is null
by default.
{
"id": "doc_1fyTzNTwEg1gWwKOqYK9",
"company": "com_kGYEICK22GEzj8trreH3",
"document_type": "940",
"upload_url": "https://sandbox.checkhq.com/company_provided_documents/doc_1fyTzNTwEg1gWwKOqYK9/upload",
"upload_status": "pending",
"file_content_type": null,
"provided_filename": null
}
Step 2: Upload a file for the company provided document
With the company provided document object created, we need to upload the actual file associated with the document.
To do this, we make a PUT
request to the upload_url
returned in the above response. The path parameter com_kGYEICK22GEzj8trreH3
is the ID of the company we created a document for above. This request is a multipart/form-data
request, with the form data containing a single key file
whose value is the file we are uploading.
curl --request PUT \
--url https://sandbox.checkhq.com/company_provided_documents/doc_1fyTzNTwEg1gWwKOqYK9/upload \
--header 'Authorization: Bearer YOUR_API_KEY' \
> --form 'file=@"/path/to/file/test.pdf"'
Upon successful upload, we receive the metadata for the company provided document we created previously, this time with an upload_status
of "uploaded"
, a file_content_type
which denotes the MIME type of the uploaded file (in this case "application/pdf"
) and a provided_filename
which denotes the filename of the uploaded file (in this case "test.pdf"
).
{
"id": "doc_1fyTzNTwEg1gWwKOqYK9",
"company": "com_kGYEICK22GEzj8trreH3",
"document_type": "940",
"upload_url": "https://sandbox.checkhq.com/company_provided_documents/doc_1fyTzNTwEg1gWwKOqYK9/upload",
"upload_status": "uploaded",
"file_content_type": "application/pdf",
"provided_filename": "test.pdf"
}
Upload Errors
Uploaded files must be PDF, JPG, or PNG and be less than 6 MB in size. The upload endpoint will surface a validation error when the user does not attach a file to the request or when the user attempts to upload a file which does not meet the above criteria.
Example error response for a request sent with no file in the request body
{
"error": {
"type": "validation_error",
"message": "Please correct the required fields and try again.",
"input_errors": [
{
"message": "File must be provided"
}
]
}
}
Example error response for a request sent with a file that is not one of the supported file types
{
"error": {
"type": "validation_error",
"message": "Please correct the required fields and try again.",
"input_errors": [
{
"message": "Invalid file type. File must be application/pdf, image/jpeg, or image/png"
}
]
}
}
Updated over 1 year ago