AttachDocuments
FinCEN requires you to attach identification documents for both the Company Applicant and Beneficial Owner when submitting a BOI Report. This endpoint allows you to upload these identification documents. You must include the corresponding CompanyApplicantId or BeneficialOwnerId in the request to upload the documents for the respective Id.
Best Practices to Attach Documents:
- Ensure that the AttachDocuments endpoint is called for every report before transmitting your report.
- Either upload the PDFByte or FilePath for a CompanyApplicantId or BeneficialOwnerId. If you provide both PDFByte and FilePath for an Id, TaxBandits will throw an error.
- If you upload the attachment using FilePath, make sure the file is downloadable.
- You can send up to 100 MB (Cumulative of all Attachment file ByteArrays) or 100 documents in a single submission. Each Byte Array can be a maximum of 4 MB.
- If you upload multiple documents for a single ID, the most recent document will be updated to that particular ID. You can view the document using the ViewAttachDocuments endpoint.
POSTBOIR/AttachDocuments
Request Body
Field | Type | Description |
---|---|---|
CompanyApplicantAttachments | object[] | Object to get the Company Applicant attachment details |
CompanyApplicantId | Guid | A unique ID generated by TaxBandits will be returned in the response after the company applicant is created. You must provide this CompanyApplicantId to upload the document against the ID. |
PDFByte | ByteArray | Provide the Byte array of the pdf document |
FilePath | string | Provide the File path of the pdf document |
BeneficialOwnerAttachments | object[] | Object to get the Beneficial Owner attachment details |
BeneficialOwnerId | Guid | A unique ID generated by TaxBandits will be returned in the response after the Beneficial Owner is created. You must provide this BeneficialOwnerId to upload the document against the ID. |
PDFByte | ByteArray | Provide the Byte array of the pdf document |
Filepath | string | Provide the File path of the pdf document |
Request JSON
- Sample 1
- Sample 2
Files attached as PDFByte
{
"CompanyApplicantAttachments": [
{
"CompanyApplicantId": "251622d2-2ec8-4b19-aa68-c17c7feeb99f",
"PDFByte": "JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PC9UaXRsZSAoRm9ybSAxMDk5IExU==",
"FilePath": null
}
],
"BeneficialOwnerAttachments": [
{
"BeneficialOwnerId": "7ff5b4aa-e4cb-403f-9405-209a71b4f69e",
"PDFByte": "JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PC9UaXRsZSAoRm9ybSAxMDk5IEg==",
"FilePath": null
}
]
}
Provided FilePath
{
"CompanyApplicantAttachments": [
{
"CompanyApplicantId": "251622d2-2ec8-4b19-aa68-c17c7feeb99f",
"PDFByte": null,
"FilePath": "https://amazonaws.com/pdfs/a570efbd-740f-4ae2-bfe7-26356cd85148.pdf"
}
],
"BeneficialOwnerAttachments": [
{
"BeneficialOwnerId": "7ff5b4aa-e4cb-403f-9405-209a71b4f69e",
"PDFByte": null,
"FilePath": "https://amazonaws.com/pdfs/a570efbd-740f-4ae2-bfe7-26356cd85148.pdf"
}
]
}
Response Body
Field | Type | Description |
---|---|---|
StatusCode | number | Returns the HTTP status codes like 200, 300 etc. |
StatusName | string | Name of the status code |
StatusMessage | string | Detailed status message |
CompanyApplicantAttachments | object | Retrieves the information of successfully uploaded company applicant documents. |
SuccessRecords | object[] | It will show the detailed information about the success status of uploaded company applicant documents. |
CompanyApplicantId | Guid | Returns the CompanyApplicantId for the uploaded document. |
Info | string | Returns the success records information |
ErrorRecords | object[] | It will show the detailed information about the errored status of uploaded company applicant documents. |
Id | string | Error ID number. This ID is assigned by TaxBandits and it is unique for each error. |
Name | string | Name of the errored node in Company Applicant object. |
Message | string | Shows the description of the error message. |
BeneficialOwnerAttachments | object | Retrieves the information of successfully uploaded beneficial owner documents. |
SuccessRecords | object[] | It will show the detailed information about the success status of uploaded beneficial owner documents. |
BeneficialOwnerId | Guid | Returns the BeneficialOwnerId for the uploaded document. |
Info | string | Returns the success records information |
ErrorRecords | object[] | It will show the detailed information about the errored status of uploaded beneficial owner documents. |
Id | string | Error ID number. This ID is assigned by TaxBandits and it is unique for each error. |
Name | string | Name of the errored node in Beneficial Owner object. |
Message | string | Shows the description of the error message. |
Response JSON
- 200
- 300
- 400
- 401
This is a sample response for successful API requests.
{
"StatusCode": 200,
"StatusName": "Ok",
"StatusMessage": "Successful API call",
"CompanyApplicantAttachments": {
"SuccessRecords": [
{
"CompanyApplicantId": "ae3bb92b-1abb-429f-9149-8416d3a0e2b6",
"Info": "Attachment Uploaded Successfully"
}
],
"ErrorRecords": null
},
"BeneficialOwnerAttachments": {
"SuccessRecords": [
{
"BeneficialOwnerId": "5060cf6a-72ae-4633-aa47-39d1c5675788",
"Info": "Attachment Uploaded Successfully"
}
],
"ErrorRecords": null
}
}
You’ll get the below response if your API request contains both valid and invalid details.
{
"StatusCode": 300,
"StatusName": "MultiStatus",
"StatusMessage": "Multiple statuses are available for the request",
"CompanyApplicantAttachments": {
"SuccessRecords": null,
"ErrorRecords": [
{
"Id": "BOI-ER-1514",
"Name": "CompanyApplicantAttachments[0].CompanyApplicantId",
"Message": "Invalid CompanyApplicantId"
}
]
},
"BeneficialOwnerAttachments": {
"SuccessRecords": [
{
"BeneficialOwnerId": "cd854868-a1a6-4928-befb-922a869c9360",
"Info": "Attachment Uploaded Successfully"
}
],
"ErrorRecords": null
}
}
You'll get the below response when your API requests contain any validation errors.
{
"StatusCode": 400,
"StatusName": "BadRequest",
"StatusMessage": "Validation error has occurred",
"CompanyApplicantAttachments": {
"SuccessRecords": null,
"ErrorRecords": [
{
"Id": "BOI-ER-1436",
"Name": "CompanyApplicantAttachments[0].FilePath",
"Message": "FilePath must have a valid extension (.pdf, .png, .jpeg, .jpg)"
}
]
},
"BeneficialOwnerAttachments": {
"SuccessRecords": null,
"ErrorRecords": [
{
"Id": "BOI-ER-1448",
"Name": "BeneficialOwnerAttachments[0].PDFByte",
"Message": "Upload Valid PDF Byte"
}
]
}
}
You'll get the below response when your API requests don't contain valid authentication credentials.
{
"StatusCode": 401,
"StatusName": "Unauthorized",
"StatusMessage": "Invalid authorization credentials",
"Errors": [
{
"Id": "AUTH-100026",
"Name": "Authorization ",
"Message": "Authorization Failed"
}
]
}