Correct or void a filed 1099
Files a correction or a void against 1099 forms already sent to the IRS, optionally overriding the recipient details or amounts that were wrong.
Authorization
AuthorizationstringrequiredBody
application/json
taxYearintegerrequiredThe tax year the original filing was for, for example 2025.
vendorIdsinteger[]Vendors to correct or void, as JSON numbers. Supply this, ownerIds, or both.
ownerIdsinteger[]Owners to correct or void, as JSON numbers. Supply this, vendorIds, or both.
filingTypeenum<string>requiredWhether this is a correction or a void. Original is refused here; use the transmission endpoint for a first filing.
overridesobject[]Per-recipient replacement values. Anything you leave out keeps whatever MagicDoor has on file.
Response
200 · One status entry per recipient.
statusesobject[]One entry per vendor or owner in the request.
400 · Neither `vendorIds` nor `ownerIds` held anything, or `filingType` was `Original`.
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.
A correction replaces a filed form with new details, and the entry that comes back names the filing it corrects in originalIrisSubmissionId. A void withdraws a form that should never have been filed at all. Which one you need is a tax question, not an API question.
{
"taxYear": 2025,
"vendorIds": [1830472847398408008],
"filingType": "Correction",
"overrides": [
{
"accountType": "Vendor",
"accountId": 1830472847398408008,
"recipientName": "Pine Ridge HOA Inc",
"amount": 12400.00
}
]
}{
"statuses": [
{
"accountId": 1830472847398408008,
"accountType": "Vendor",
"status": "Pending",
"irisSubmissionId": "1830472847398428028",
"filingType": "Correction",
"originalIrisSubmissionId": "1830472847398427027"
}
]
}