UploadAttachment
UploadAttachment
This endpoint can be used to attach yearly transaction details or any other supporting documents to your recipients’ 1099-DA form copies.
How it works
-
Create Form – Generate a 1099-DA form for the recipient.
-
Upload Transaction Documents – Use the UploadAttachment endpoint against each form to upload additional PDFs for that recipient.
-
Transmit & Distribute – After uploading, call the Transmit endpoint. TaxBandits will deliver the 1099-DA along with the attached documents (via Postal Mailing and/or Online Access, if enabled).
Key points
- Enable Postal Mailing or Online Access for each recipient.
- Mask TIN details in attachments before uploading.
- Provide either PDFByteArray or FilePath for each RecordId (not both).
- Call the UploadAttachment endpoint before transmitting. Attachments cannot be uploaded afterward.
- If multiple PDFs are uploaded for the same RecordId, the latest upload replaces earlier ones.
- Limits: Up to 100 PDFs or a total of 100 MB per submission. Each ByteArray must not exceed 2 MB.
POST Form1099DA/UploadAttachment Request Body
| Field | Type | Description |
|---|---|---|
| SummaryAttachment | Object[] | Object to get the attachment details |
| RecordID | Guid | Unique identifier of the records given by TaxBandits |
| PDFByte | ByteArray | Byte array of the pdf document |
| FilePath | String | File path of the pdf document |
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. |
| SuccessRecords | Object | Object contains the success records |
| RecordID | Guid | Unique Identifier of the records generated by TaxBandits |
| Info | String | Success records information |
| ErrorRecords | Object | Object contains the error records. |
| RecordID | Guid | Unique Identifier of the records generated by TaxBandits |
| Errors | Object[] | Shows detailed error information. |
| Id | string | Returns the validation error code. |
| Name | string | Name of the validation error. |
| Message | string | Description of the validation error. |
Request JSON
{
"SummaryAttachment": [
{
"RecordID": "e88e7f1d-7ae5-43b6-99f6-38d85664035a",
"PDFByte": "JVBERi0xLjMKJcOHw6zCj8KiCjEgMCBvYmoKPDwvVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCgoyIDAgb2JqCjw8L1R5cGUgL1BhZ2VzCj4+CmVuZG9iagoKMyAwIG9iago8PC9Qcm9kdWNlciAoXS5jZr7J2RzsWMGZesbjnpitsebz7uIEZ5dbRhmC/A6w6QJx87yIZn+lw6h212zv0LgpCj4+CmVuZG9iagoKNCAwIG9iago8PC9GaWx0ZXIgL1N0YW5kYXJkCi9WIDIKL1IgMwovUCAtMTg1MgovTyA8MzY0NTFCRDM5RDc1M0I3QzFEMTA5MjJDMjhFNjY2NUFBNEYzMzUzRkIwMzQ4QjUzNjg5M0UzQjFEQjVDNTc5Qj4KL1UgPDREM0ZCQTBEQTkzNDdGRTdBMDhBRDk0Mzk2OEJBNzM2MzE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MzM4MzI3OTU+Ci9MZW5ndGggMTI4Cj4+CmVuZG9iagoKeHJlZgowIDUKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDE5IDAwMDAwIG4gCjAwMDAwMDAwNjggMDAwMDAgbiAKMDAwMDAwMDEwMiAwMDAwMCBuIAowMDAwMDAwMTg2IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSA1Ci9Sb290IDEgMCBSCi9JbmZvIDMgMCBSCi9JRCBbPDU1MUQwRTI4MOUE+XQovRW5jcnlwdCA0IDAgUgo+PgpzdGFydHhyZWYKMzk2CiUlRU9GCg==",
"FilePath": null
},
{
"RecordID": "04ec74ea-9099-42a0-9a64-710a4d7eec37",
"PDFByte": null,
"FilePath": "https://amazonaws.com/pdfs/a570efbd-740f-4ae2-bfe7-26356cd85148.pdf"
}
]
}
Response JSON
- 200
- 300
- 400
- 401
Success Response - You'll get the below response when the request is processed successfully.
{
"StatusCode": 200,
"StatusName": "Ok",
"StatusMessage": "Successful API Call",
"SuccessRecords": [
{
"RecordID": "e88e7f1d-7ae5-43b6-99f6-38d85664035a",
"Info": "Attachment Uploaded Successfully"
},
{
"RecordID": "e88e7f1d-7ae5-43b6-99f6-38d85664035a",
"Info": "Attachment Uploaded Successfully"
}
]
"ErrorRecords": null
}
Multi-status Response - You'll get the below response when multiple statuses are included.
{
"StatusCode": 300,
"StatusName": "MultiStatus",
"StatusMessage": "Multiple statuses are available for the request",
"SuccessRecords": [
{
"RecordId": "16ab14e4-33f0-4c7e-a396-3791ccb35994",
"Info": "Attachment Uploaded Successfully"
}
],
"ErrorRecords": [
{
"RecordId": "b614b5ab-497a-4b93-97b8-9c34428da95a",
"Errors": [
{
"Id": "F00-100643",
"Name": "RecordId[1]",
"Message": "Invalid RecordId[b614b5ab-497a-4b93-97b8-9c34428da95a]"
}
]
}
],
"Errors": null
}
Bad Request Response - You'll get the below response when your API requests contain any validation errors.
{
"StatusCode": 400,
"StatusName": "BadRequest",
"StatusMessage": "Validation error has occurred",
"RecordId": null,
"FilePath": null,
"Errors": [
{
"Id": "F00-100192",
"Name": "RecordId",
"Message": "Invalid RecordId"
}
]
}
Unauthorized Response - 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-100001",
"Name": "Authorization",
"Message": "JWT EXPIRED"
}
]
}