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/v2/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": 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
}
]
}
]
}'
const fetch = require('node-fetch');
const url = 'https://sandbox-api.withabound.com/v2/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/v2/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.V2
);
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/v2/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/v2/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/v2/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 some fields have been shortened to fit.
Form 1099-K Definitions
Field | Form 1099-K | Description |
---|---|---|
| -- | The unique id generated by Abound® API to designate this form. Store this value in your database. |
| -- | The status generated by Abound® API. Possible statuses include: "created", "pending", "cancelled", "error" and "done". |
| -- | This specifies the Form 1099 type, in this case, enter |
| -- | Unique ID associated with the Payer. Store this value in your database. |
| -- | This is the tax year associated with the Form 1099-K issued. |
| Corrected box | (Optional) If |
| Account number | May show an account number or other unique number the PSE assigned to distinguish a account. |
| Check to indicate the payer's classification type: | Checkbox to mark either:
|
| Check to indicate transactions reported are: | Checkbox to mark either:
|
| PSE'S name and telephone number | Required if paymentSettlementEntity is checked. |
| PSE'S name and telephone number | Required if paymentSettlementEntity is checked |
| 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. |
| 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. |
| Box 2 -- Merchant category code | Payment brands use merchant category codes (MCCs) to |
| Box 3 -- Number of payment transactions | Shows the number of payment transactions (not including refund transactions) processed through the payment card/ third party network. |
| Box 4 -- Federal income tax withheld | ($) Shows backup withholding. Generally, a payer must backup withhold if you did not furnish your TIN or you did not furnish the correct TIN to the payer. |
| Box 5a -- January | ($) Show the gross amount of payment card/third party network transactions made to you for each month of the calendar year |
| Box 5a -- February | ($) |
| Box 5a -- March | ($) |
| Box 5a -- April | ($) |
| Box 5a -- May | ($) |
| Box 5a -- June | ($) |
| Box 5a -- July | ($) |
| Box 5a -- August | ($) |
| Box 5a -- September | ($) |
| Box 5a -- October | ($) |
| Box 5a -- November | ($) |
| Box 5a -- December | ($) |
| Box 6 State | Up to two (2) states per Form 1099-K. |
| Box 7 State identification no. | Up to two (2) states per Form 1099-K. |
| Box 8 State income tax withheld | ($) Up to two (2) states per Form 1099-K. |
Updated about 1 month ago