1099-K
Overview
Payments made with a credit card or payment card and certain other types of payments, including third-party network transactions, must be reported on Form 1099-K.
1099-K Issuance
To issue a 1099-K form and initiate the filing process use an existing userId
and payerId
and call the POST /users/{userId}/documents
API endpoint.
Form 1099-K Guidelines
- Only one (1) Form 1099-K is allowed per
userId
perpayerId
peryear
- To make changes to an existing Form 1099-K, delete it, and recreate it with your changes
- Once the filing process has started, your Form 1099-K 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": "1099k",
"year": 2022,
"payerId": "<<testPayerId>>",
"payerClassification": "PSE",
"transactionsReportedClassification": "paymentCard",
"pseName": "Payment Entity",
"psePhoneNumber": "5555555555",
"accountNumber": "1234567890",
"aggregateGrossAmount": 279878.76,
"aggregateGrossAmountCardNotPresent": 23323.23,
"merchantCategoryCode": "4582",
"numberOfPaymentTransactions": 767,
"federalIncomeTaxWithheld": 0,
"grossAmountsByMonth": {
"january": 23323.23,
"february": 23323.23,
"march": 23323.23,
"april": 23323.23,
"may": 23323.23,
"june": 23323.23,
"july": 23323.23,
"august": 23323.23,
"september": 23323.23,
"october": 23323.23,
"november": 23323.23,
"december": 23323.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: '1099k',
year: 2022,
payerId: '<<testPayerId>>',
payerClassification: 'PSE',
transactionsReportedClassification: 'paymentCard',
pseName: 'Payment Entity',
psePhoneNumber: '55555555555',
accountNumber: '1234567890',
aggregateGrossAmount: 23323.23,
aggregateGrossAmountCardNotPresent: 23323.23,
merchantCategoryCode: '4582',
numberOfPaymentTransactions: 767,
federalIncomeTaxWithheld: 23323.23,
grossAmountsByMonth: {
january: 23323.23,
february: 23323.23,
march: 23323.23,
april: 23323.23,
may: 23323.23,
june: 23323.23,
july: 23323.23,
august: 23323.23,
september: 23323.23,
october: 23323.23,
november: 23323.23,
december: 23323.23
},
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": "1099k",
"year": "2022",
"payerId": "<<testPayerId>>",
"payerClassification": "PSE",
"transactionsReportedClassification": "paymentCard",
"pseName": "Payment Entity",
"psePhoneNumber": "55555555555",
"accountNumber": "1234567890",
"aggregateGrossAmount": 23323.23,
"aggregateGrossAmountCardNotPresent": 23323.23,
"merchantCategoryCode": "4582",
"numberOfPaymentTransactions": 767,
"federalIncomeTaxWithheld": 23323.23,
"grossAmountsByMonth": {
"january": 23323.23,
"february": 23323.23,
"march": 23323.23,
"april": 23323.23,
"may": 23323.23,
"june": 23323.23,
"july": 23323.23,
"august": 23323.23,
"september": 23323.23,
"october": 23323.23,
"november": 23323.23,
"december": 23323.23
},
"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>>";
GrossAmountsByMonth grossAmountsByMonth = GrossAmountsByMonth.builder()
.january(23323.23)
.february(23323.23)
.march(23323.23)
.april(23323.23)
.may(23323.23)
.june(23323.23)
.july(23323.23)
.august(23323.23)
.september(23323.23)
.october(23323.23)
.november(23323.23)
.december(23323.23)
.build();
Form1099KDocumentRequest form1099KDocumentRequest = Form1099KDocumentRequest.builder()
.payerId(payerId)
.payerClassification(PayerClassification.PAYMENT_SETTLEMENT_ENTITY)
.pseName("Payment Entity")
.psePhoneNumber("5555555555")
.transactionsReportedClassification(TransactionsReportedClassification.PAYMENT_CARD)
.accountNumber("1234567890")
.merchantCategoryCode("4582")
.aggregateGrossAmount(23323.23)
.aggregateGrossAmountCardNotPresent(23323.23)
.numberOfPaymentTransactions(767)
.grossAmountsByMonth(grossAmountsByMonth)
.federalIncomeTaxWithheld(23323.23)
.year(2022)
.build();
AboundBulkResponse<Document> response = abound
.documents()
.create(userId, Collections.singletonList(form1099KDocumentRequest));
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": "1099k",
"year": 2022,
"payerId": "<<testPayerId>>",
"payerClassification": "PSE",
"transactionsReportedClassification": "paymentCard",
"pseName": "Payment Entity",
"psePhoneNumber": "5555555555",
"accountNumber": "1234567890",
"aggregateGrossAmount": 23323.23,
"aggregateGrossAmountCardNotPresent": 23323.23,
"merchantCategoryCode": "4582",
"numberOfPaymentTransactions": 767,
"federalIncomeTaxWithheld": 23323.23,
"grossAmountsByMonth": {
"january": 23323.23,
"february": 23323.23,
"march": 23323.23,
"april": 23323.23,
"may": 23323.23,
"june": 23323.23,
"july": 23323.23,
"august": 23323.23,
"september": 23323.23,
"october": 23323.23,
"november": 23323.23,
"december": 23323.23
},
"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 = "1099k",
year = 2022,
payerId = "<<testPayerId>>",
payerClassification = "PSE",
transactionsReportedClassification = "paymentCard",
pseName = "Payment Entity",
psePhoneNumber = "55555555555",
accountNumber = "1234567890",
aggregateGrossAmount = 23323.23,
aggregateGrossAmountCardNotPresent = 23323.23,
merchantCategoryCode = "4582",
numberOfPaymentTransactions = 767,
federalIncomeTaxWithheld = 23323.23,
grossAmountsByMonth = new {
january = 23323.23,
february = 23323.23,
march = 23323.23,
april = 23323.23,
may = 23323.23,
june = 23323.23,
july = 23323.23,
august = 23323.23,
september = 23323.23,
october = 23323.23,
november = 23323.23,
december = 23323.23
},
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: '1099k',
year: 2022,
payerId: '<<testPayerId>>',
payerClassification: 'PSE',
transactionsReportedClassification: 'paymentCard',
pseName: 'Payment Entity',
psePhoneNumber: '55555555555',
accountNumber: '1234567890',
aggregateGrossAmount: 23323.23,
aggregateGrossAmountCardNotPresent: 23323.23,
merchantCategoryCode: '4582',
numberOfPaymentTransactions: 767,
federalIncomeTaxWithheld: 23323.23,
grossAmountsByMonth: {
january: 23323.23,
february: 23323.23,
march: 23323.23,
april: 23323.23,
may: 23323.23,
june: 23323.23,
july: 23323.23,
august: 23323.23,
september: 23323.23,
october: 23323.23,
november: 23323.23,
december: 23323.23
},
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-K.pdf?AWSAccessKeyId=AKIA6C6AUYYBZMXK74XQ&Expires=1630612016&Signature=%2BYaWwX3GPId1QAzDrVPY3Meeycs%3D",
"documentName": "2022 Form 1099-K",
"type": "1099k",
"year": "2022",
"status": "created",
"createdTimestamp": 1628275165630
}
]
}
Form 1099-K Fields
Below is the Form 1099-K with our fields overlaid. Note that to fit user information is displayed for individuals, if business information is available that will be displayed instead.
Form 1099-K Definitions
Field | Form 1099-K | Description |
---|---|---|
documentId | -- | The unique id generated by Abound® API to designate this form. Store this value in your database. |
status | -- | The status generated by Abound® API. Possible statuses include: created , verifying , pending , error , and done . |
type | -- | This specifies the Form 1099 type, in this case, enter 1099k . |
payerId | -- | Unique ID associated with the Payer. Store this value in your database. |
year | -- | This is the tax year associated with the Form 1099-K issued. |
isCorrected | Corrected box | (Optional) If true , the corrected checkbox will be marked on the document. Defaults to false . |
accountNumber | Account number | May show an account number or other unique number the PSE assigned to distinguish a account. |
payerClassification | Check to indicate the payer's classification type: | Checkbox to mark either: - Payment settlement entity (PSE) - Electronic Payment Facilitator (EPF)/Other third party |
transactionsReportedClassification | Check to indicate transactions reported are: | Checkbox to mark either: - Payment card - Third party network |
pseName | PSE'S name and telephone number | Required if paymentSettlementEntity is checked. |
psePhoneNumber | PSE'S name and telephone number | Required if paymentSettlementEntity is checked |
aggregateGrossAmount | Box 1a -- Gross amount of payment card/third party network transactions | ($) aggregate gross amount of payment card/third party network transactions made to you through the PSE during the calendar year. |
aggregateGrossAmountCardNotPresent | Box 1b -- Card Not Present transactions | ($) Shows the aggregate gross amount of all reportable payment transactions made to you through the PSE during the calendar year where the card was not present at the time of the transaction or the card number was keyed into the terminal. Typically, this relates to online sales, phone sales, or catalogue sales. If the box for third party network is checked, or if these are third party network transactions, Card Not Present transactions will not be reported. |
merchantCategoryCode | Box 2 -- Merchant category code | Payment brands use merchant category codes (MCCs) to classify merchants and businesses by the type of goods or services provided. It is a four (4) digit code. This may be left blank. |
numberOfPaymentTransactions | Box 3 -- Number of payment transactions | Shows the number of payment transactions (not including refund transactions) processed through the payment card/ third party network. |
federalIncomeTaxWithheld | Box 4 -- Federal income tax withheld | Abound currently does not support non-zero values in this field. Please contact us for more information. |
grossAmountsByMonth.january | Box 5a -- January | ($) Show the gross amount of payment card/third party network transactions made to you for each month of the calendar year |
grossAmountsByMonth.february | Box 5a -- February | ($) |
grossAmountsByMonth.march | Box 5a -- March | ($) |
grossAmountsByMonth.april | Box 5a -- April | ($) |
grossAmountsByMonth.may | Box 5a -- May | ($) |
grossAmountsByMonth.june | Box 5a -- June | ($) |
grossAmountsByMonth.july | Box 5a -- July | ($) |
grossAmountsByMonth.august | Box 5a -- August | ($) |
grossAmountsByMonth.september | Box 5a -- September | ($) |
grossAmountsByMonth.october | Box 5a -- October | ($) |
grossAmountsByMonth.november | Box 5a -- November | ($) |
grossAmountsByMonth.december | Box 5a -- December | ($) |
filingState | Not displayed on form. | Abbreviation for the state to which the 1099 will be reported. |
userStateId | Box 7 State identification no. | Up to two (2) states per Form 1099-K. |
stateTaxWithheld | Box 8 State income tax withheld | Abound currently does not support non-zero values in this field. Please contact us for more information. |
Updated 11 days ago