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 19 days ago
