1099-INT
Overview
Financial institutions use Form 1099-INT to report interest income to investors and to the IRS. Form 1099-INT includes a breakdown of different types of interest income and related expenses. A Payer must issue a 1099-INT to any individual or party (User) to whom it paid at least $10 of interest during the tax year.
Issuing a 1099-INT
To issue a 1099-INT form and initiate the filing process use an existing userId
and payerId
and call the POST /users/{userId}/documents
API endpoint.
Form 1099-INT Guidelines
- Only one (1) Form 1099-INT is allowed per
userId
perpayerId
peryear
- To make changes to an existing Form 1099-INT, delete it, and recreate it with your changes
- Once the filing process has started, your Form 1099-INT cannot be deleted
curl \
--request POST \
--url https://sandbox-api.withabound.com/<<apiVersion>>/users/<<testUserId>>/documents \
--header 'Authorization: Bearer <<apiKey>>' \
--header 'Content-Type: application/json' \
--data '{
"documents": [
{
"type": "1099int",
"year": 2022,
"payerId": "<<testPayerId>>",
"hasFatcaFilingRequirement": true,
"accountNumber": "1234567890",
"payersRoutingNumber": "054000030",
"interestIncome": 832.32,
"earlyWithdrawalPenalty": 232.23,
"usSavingsBondsInterest": 194.23,
"federalIncomeTaxWithheld": 0,
"investmentExpenses": 194.23,
"foreignTaxPaid": 194.23,
"foreignTaxPaidCountry": "FR",
"taxExemptInterest": 194.23,
"specifiedPrivateActivityBondInterest": 194.23,
"marketDiscount": 194.23,
"bondPremium": 194.23,
"bondPremiumTreasury": 194.23,
"bondPremiumTaxExemptBond": 194.23,
"stateTaxInfo": [
{
"filingState": "CA",
"userStateId": "1234567891",
"stateTaxWithheld": 0
}
]
}
]
}'
const fetch = require('node-fetch');
const url = 'https://sandbox-api.withabound.com/<<apiVersion>>/users/<<testUserId>>/documents';
const options = {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: 'Bearer <<apiKey>>'
},
body: JSON.stringify({
documents: [
{
type: '1099int',
year: 2022,
payerId: '<<testPayerId>>',
hasFatcaFilingRequirement: true,
accountNumber: '1234567890',
payersRoutingNumber: '054000030',
interestIncome: 832.32,
earlyWithdrawalPenalty: 232.23,
usSavingsBondsInterest: 194.23,
federalIncomeTaxWithheld: 194.23,
investmentExpenses: 194.23,
foreignTaxPaid: 194.23,
foreignTaxPaidCountry: 'fr',
taxExemptInterest: 194.23,
specifiedPrivateActivityBondInterest: 194.23,
marketDiscount: 194.23,
bondPremium: 194.23,
bondPremiumTreasury: 194.23,
bondPremiumTaxExemptBond: 194.23,
taxExemptTaxCreditBondCusipNumbers: ['037833100'],
stateTaxInfo: [
{
filingState: 'CA',
payerStateId: '1234567891',
stateTaxWithheld: 194.23
},
{
filingState: 'AZ',
payerStateId: '1234567892',
stateTaxWithheld: 194.23
}
]
}
]
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));
import requests
url = "https://sandbox-api.withabound.com/<<apiVersion>>/users/<<testUserId>>/documents"
payload = {"documents": [
{
"type": "1099int",
"year": "2022",
"payerId": "<<testPayerId>>",
"hasFatcaFilingRequirement": True,
"accountNumber": "1234567890",
"payersRoutingNumber": "054000030",
"interestIncome": 832.32,
"earlyWithdrawalPenalty": 232.23,
"usSavingsBondsInterest": 194.23,
"federalIncomeTaxWithheld": 194.23,
"investmentExpenses": 194.23,
"foreignTaxPaid": 194.23,
"foreignTaxPaidCountry": "fr",
"taxExemptInterest": 194.23,
"specifiedPrivateActivityBondInterest": 194.23,
"marketDiscount": 194.23,
"bondPremium": 194.23,
"bondPremiumTreasury": 194.23,
"bondPremiumTaxExemptBond": 194.23,
"taxExemptTaxCreditBondCusipNumbers": ["037833100"],
"stateTaxInfo": [
{
"filingState": "CA",
"payerStateId": "1234567891",
"stateTaxWithheld": 194.23
},
{
"filingState": "AZ",
"payerStateId": "1234567892",
"stateTaxWithheld": 194.23
}
]
}
]}
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Bearer <<apiKey>>"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
// import com.squareup.okhttp.*;
// import com.google.gson.JsonObject;
// import com.google.gson.JsonArray;
// import com.withabound.AboundConfig;
// import com.withabound.models.*;
// import com.withabound.resources.base*;
AboundConfig aboundConfig = new AboundConfig(
"<<sandbox_app_id>>",
"<<sandbox_app_secret>>",
AboundEnvironment.SANDBOX,
AboundApiVersion.<<apiVersionUppercase>>
);
Abound abound = new Abound(aboundConfig);
String userId = "<<testUserId>>";
String payerId = "<<testPayerId>>";
String accountNumber = "1234567890";
StateTaxInfo stateTaxInfo_CA = StateTaxInfo.builder()
.filingState("ca")
.payerStateId("1234567891")
.stateTaxWithheld(194.23)
.build();
StateTaxInfo stateTaxInfo_AZ = StateTaxInfo.builder()
.filingState("az")
.payerStateId("1234567892")
.stateTaxWithheld(194.23)
.build();
Form1099INTDocumentRequest form1099INTDocumentRequest = Form1099INTDocumentRequest.builder()
.payerId(payerId)
.year(2022)
.hasFatcaFilingRequirement(true)
.accountNumber(accountNumber)
.payersRoutingNumber("054000030")
.interestIncome(832.32)
.earlyWithdrawalPenalty(232.23)
.usSavingsBondsInterest(194.23)
.federalIncomeTaxWithheld(194.23)
.investmentExpenses(194.23)
.foreignTaxPaid(194.23)
.foreignTaxPaidCountry("France")
.taxExemptInterest(194.23)
.specifiedPrivateActivityBondInterest(194.23)
.marketDiscount(194.23)
.bondPremium(194.23)
.bondPremiumTreasury(194.23)
.bondPremiumTaxExemptBond(194.23)
.stateTaxInfo(Arrays.asList(stateTaxInfo_CA, stateTaxInfo_AZ))
.build();
AboundBulkResponse<Document> response = abound.documents()
.create(userId, Collections.singletonList(form1099INTDocumentRequest));
System.out.println(response.getData());
package main
import (
"bytes"
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://sandbox-api.withabound.com/<<apiVersion>>/users/<<testUserId>>/documents"
var requestBody = []byte(`{
"documents": [
{
"type": "1099int",
"year": 2022,
"payerId": "<<testPayerId>>",
"hasFatcaFilingRequirement": true,
"accountNumber": "1234567890",
"payersRoutingNumber": "054000030",
"interestIncome": 832.32,
"earlyWithdrawalPenalty": 232.23,
"usSavingsBondsInterest": 194.23,
"federalIncomeTaxWithheld": 194.23,
"investmentExpenses": 194.23,
"foreignTaxPaid": 194.23,
"foreignTaxPaidCountry": "fr",
"taxExemptInterest": 194.23,
"specifiedPrivateActivityBondInterest": 194.23,
"marketDiscount": 194.23,
"bondPremium": 194.23,
"bondPremiumTreasury": 194.23,
"bondPremiumTaxExemptBond": 194.23,
"taxExemptTaxCreditBondCusipNumbers": ["037833100"],
"stateTaxInfo": [
{
"filingState": "CA",
"payerStateId": "1234567891",
"stateTaxWithheld": 194.23
},
{
"filingState": "AZ",
"payerStateId": "1234567892",
"stateTaxWithheld": 194.23
}
]
}
]
}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(requestBody))
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Authorization", "Bearer <<apiKey>>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
// using RestSharp;
var client = new RestClient("https://sandbox-api.withabound.com/<<apiVersion>>/users/<<testUserId>>/documents");
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "application/json");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer <<apiKey>>");
request.AddJsonBody(new {
documents = new[] {
new {
type = "1099int",
year = 2022,
payerId = "<<testPayerId>>",
hasFatcaFilingRequirement = true,
accountNumber = "1234567890",
payersRoutingNumber = "054000030",
interestIncome = 832.32,
earlyWithdrawalPenalty = 232.23,
usSavingsBondsInterest = 194.23,
federalIncomeTaxWithheld = 194.23,
investmentExpenses = 194.23,
foreignTaxPaid = 194.23,
foreignTaxPaidCountry = "fr",
taxExemptInterest = 194.23,
specifiedPrivateActivityBondInterest = 194.23,
marketDiscount = 194.23,
bondPremium = 194.23,
bondPremiumTreasury = 194.23,
bondPremiumTaxExemptBond = 194.23,
taxExemptTaxCreditBondCusipNumbers = new[] {"037833100"},
stateTaxInfo = new[] {
new {
filingState = "CA",
payerStateId = "1234567891",
stateTaxWithheld = 194.23
},
new {
filingState = "AZ",
payerStateId = "1234567892",
stateTaxWithheld = 194.23
}
}
}
}
});
IRestResponse response = client.Execute(request);
require 'uri'
require 'net/http'
require 'openssl'
require 'json'
url = URI("https://sandbox-api.withabound.com/<<apiVersion>>/users/<<testUserId>>/documents")
requestBody = {
documents: [
{
type: '1099int',
year: 2022,
payerId: '<<testPayerId>>',
hasFatcaFilingRequirement: true,
accountNumber: '1234567890',
payersRoutingNumber: '054000030',
interestIncome: 832.32,
earlyWithdrawalPenalty: 232.23,
usSavingsBondsInterest: 194.23,
federalIncomeTaxWithheld: 194.23,
investmentExpenses: 194.23,
foreignTaxPaid: 194.23,
foreignTaxPaidCountry: 'fr',
taxExemptInterest: 194.23,
specifiedPrivateActivityBondInterest: 194.23,
marketDiscount: 194.23,
bondPremium: 194.23,
bondPremiumTreasury: 194.23,
bondPremiumTaxExemptBond: 194.23,
taxExemptTaxCreditBondCusipNumbers: ['037833100'],
stateTaxInfo: [
{
filingState: 'CA',
payerStateId: '1234567891',
stateTaxWithheld: 194.23
},
{
filingState: 'AZ',
payerStateId: '1234567892',
stateTaxWithheld: 194.23
}
]
}
]
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept"] = 'application/json'
request["Content-Type"] = 'application/json'
request["Authorization"] = 'Bearer <<apiKey>>'
request.body = requestBody.to_json
response = http.request(request)
puts response.read_body
Response
{
"data": [
{
"documentId": "documentId_testefbd5d3d9ee9526ef9ff89a7c6b879174170",
"documentURL": "https://tax-documents-sandbox.s3.us-west-2.amazonaws.com/test62ae93bafa6310aa9952e8b3bf5796443111/2022_Form_1099-INT.pdf?AWSAccessKeyId=AKIA6C6AUYYBZMXK74XQ&Expires=1630596723&Signature=SUiFVxwNl2JNk3ApLssyC8uS3zQ%3D",
"documentName": "2022 Form 1099-INT",
"type": "1099int",
"year": "2022",
"status": "created",
"createdTimestamp": 1628275165630
}
]
}
Form 1099-INT Fields
Below is the Form 1099-INT with fields overlaid. Note that to fit this is presented with a payee of individual, business information would populate for user fields if available.
Form 1099-INT Definitions
Field | Form 1099-INT | Description |
---|---|---|
documentId | -- | The unique id generated by Abound® API to designate this form. Store this value in your database. |
type | -- | This specifies the Form 1099 type, in this case, enter 1099int . |
status | -- | The status generated by Abound® API. Possible statuses include: created , verifying , pending , error , and done . |
payerId | -- | Unique ID associated with the Payer. Store this value in your database. |
year | -- | This is the tax year associated with the Form 1099-INT. |
isCorrected | Corrected box | (Optional) If true , the corrected checkbox will be marked on the document. Defaults to false . |
hasFatcaFilingRequirement | FATCA filing requirement (checkbox) | Satisfying a requirement to report with respect to a U.S. account for chapter 4 purposes |
accountNumber | Account number | The IRS “encourages” a payer to designate an account number for all Forms 1099-INT filed. This field is required if Payer has multiple accounts for a Recipient for whom it is filing more than one Form 1099-INT. This field is also required if the “FATCA filing requirement” box is checked. |
payersRoutingNumber | Payer's RTN (optional) | A routing and transit number (RTN) is a unique nine-digit number used to identify a bank for purposes of directing financial flows. This is essentially bank's bank account -- their account with the Federal Reserve. |
interestIncome | Box 1 -- Interest Income | ($) |
earlyWithdrawalPenalty | Box 2 -- Early Withdrawal Penalty | ($) |
usSavingsBondsInterest | Box 3 -- Interest on U.S. Savings Bonds and Treasury Obligations | ($) |
federalIncomeTaxWithheld | Box 4 -- Federal Income Tax Withheld | Abound currently does not support non-zero values in this field. Please contact us for more information. |
investmentExpenses | Box 5 -- Investment Expenses | ($) |
foreignTaxPaid | Box 6 -- Foreign Tax Paid | ($) Foreign tax paid on interest |
foreignTaxPaidCountry | Box 7 -- Foreign Country or U.S. Possession | |
taxExemptInterest | Box 8 -- Tax-Exempt Interest | ($) |
specifiedPrivateActivityBondInterest | Box 9 -- Specified Private Activity Bond Interest | ($) |
marketDiscount | Box 10 -- Market Discount | ($) |
bondPremium | Box 11 -- Bond Premium | ($ or blank) Taxable covered security acquired at a premium (other than a U.S. Treasury obligation) |
bondPremiumTreasury | Box 12. Bond Premium on U.S. Treasury Obligations | ($ or blank) |
bondPremiumTaxExemptBond | Box 13. Bond Premium on Tax-Exempt Bond | ($ or blank) |
taxExemptTaxCreditBondCusipNumbers | Box 14. Tax-Exempt and Tax Credit Bond CUSIP No. | (# or “various”) CUSIP number of the tax-exempt bond for which tax-exempt interest is reported in box 8 or tax credit bond is reported in box 1. If is reported in the aggregate for multiple bonds or accounts, enter “various.” A CUSIP number is a unique identification number assigned to registered bonds in the United States. It comprises nine letters and includes letters and numbers. |
filingState | Not displayed on form. | Abbreviation for the state to which the 1099 will be reported. |
userStateId | Box 16 State identification no. | Up to two (2) states per Form 1099-INT. State tax withheld reporting boxes. |
stateTaxWithheld | Box 17 State tax withheld | Abound currently does not support non-zero values in this field. Please contact us for more information. |
Updated 11 days ago