File 1099 forms with the IRS
Submits original 1099 filings to the IRS through their IRIS service for the vendors and owners you name, for one tax year. Returns one status entry per recipient.
Authorization
AuthorizationstringrequiredBody
application/json
taxYearintegerrequiredThe tax year being filed for, for example 2025.
vendorIdsinteger[]Vendors to file for, as JSON numbers. Supply this, ownerIds, or both.
ownerIdsinteger[]Owners to file for, as JSON numbers. Supply this, vendorIds, or both.
Response
200 · One status entry per recipient, whether the filing was accepted or refused.
statusesobject[]One entry per vendor or owner in the request.
400 · Neither `vendorIds` nor `ownerIds` held anything.
401 · The access token is missing, expired, or not valid for this company.
Everywhere else in this API a Snowflake id travels as a decimal string, because a 64-bit integer loses precision in JavaScript. On these three endpoints vendorIds, ownerIds and accountId are plain JSON numbers around nineteen digits long. In JavaScript, parse the response with a JSON reviver or a big-integer-aware parser, or the last digits will be silently rounded and you will act on the wrong vendor.
accountType, status and filingType are turned into strings by hand rather than by the JSON serializer, so they come back PascalCase: Vendor, Accepted, Correction. Most enums elsewhere in this API are camelCase.
When the recipients do not pass validation the call still returns 200. Every failing recipient comes back with status of ValidationFailed and an errorMessage saying why. Check the entries, not just the HTTP status.
An accepted transmission is a real filing with the United States Internal Revenue Service. Putting one right afterwards means a separate correction or void filing; there is no delete.
Check GET /company-app/companies/tax-documents/check first: it tells you whether the company is allowed to file at all, and why not if it is not.
{
"taxYear": 2025,
"vendorIds": [1830472847398408008],
"ownerIds": [1830472847398413013]
}{
"statuses": [
{
"accountId": 1830472847398408008,
"accountType": "Vendor",
"status": "Accepted",
"irisSubmissionId": "1830472847398427027",
"filingType": "Original",
"receiptId": "1-000000-00000-000"
},
{
"accountId": 1830472847398413013,
"accountType": "Owner",
"status": "ValidationFailed",
"errorMessage": "Recipient TIN is missing"
}
]
}