Broker 1099-B Data in FDX JSON Format

financial data exchange

FDX JSON: Financial Data Exchange JavaScript Object Notation format. The newest modern standard for financial and tax data communication.

JSON

JSON stands for JavaScript Object Notation. JSON is a text format for storing and transporting data.

In the case of 1099-B data transportation:

  • A broker server will "serialize" 1099-B data to JSON for download or retrieval via Application Program Interface (API)
  • The receiving application, such as a tax software program, will "deserialize" the JSON back to 1099-B data for ingestion (import)

Financial Data Exchange (FDX)

The Financial Data Exchange organization (see financialdataexchange.org), "FDX", establishes industry standards for transport of both banking and tax data.

The FDX standard for tax data supersedes the older OFX and TXF standards.

FDX Tax Data Model

Tax data is transported using the TaxDataList data model. The list provides for flexibility to transport one or more annual tax documents at a time. Below is an abbreviated view of the TaxDataList model using java code.

/*
 * FDX V5.0
 * Financial Data Exchange V5.0 US Tax API
 *
 * OpenAPI spec version: 5.0.0
 * Contact: fdxsupport@financialdataexchange.org
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

package org.fdx.model;

/**
 * Paginated array of tax data
 */
public class TaxDataList extends PaginatedArray {

  @JsonProperty("forms")
  private List<TaxData> forms = null;

  public TaxDataList forms(List<TaxData> forms) {
    this.forms = forms;
    return this;
  }

}

The TaxData model is a container for one of over 50 annual tax documents or statements. In theory, more than one type of document could be included. However, most implementers choose to add a second element to the list of TaxData. Below is an abbreviated view of the TaxData model using java code.

package org.fdx.model;

import org.fdx.model.BusinessIncomeStatement;
import org.fdx.model.CryptocurrencyTaxStatement;
// ...
import org.fdx.model.Tax1099B;
// ...
import org.fdx.model.TaxW2;
// ...

/**
 * Tax data container for API requests and responses
 */
public class TaxData {

  @JsonProperty("businessIncomeStatement")
  private BusinessIncomeStatement businessIncomeStatement = null;

  @JsonProperty("cryptocurrencyTaxStatement")
  private CryptocurrencyTaxStatement cryptocurrencyTaxStatement = null;

// ...

  @JsonProperty("tax1099B")
  private Tax1099B tax1099B = null;

// ...

  @JsonProperty("taxW2C")
  private TaxW2C taxW2C = null;

// ...

}


Brokers or others that issue Form 1099-B to the recipient (with a copy to the IRS) use the Tax1099B data model.

Cryptocurrency services that do not issue Form 1099-B may:

  • use the simpler CryptocurrencyTaxStatement model or
  • use the Tax1099B data model, if they choose to do so

Below is an abbreviated view of the Tax1099B model using java code.


package org.fdx.model;

import org.joda.time.LocalDate;
import org.fdx.model.NameAddress;
import org.fdx.model.NameAddressPhone;
import org.fdx.model.SecurityDetail;
import org.fdx.model.StateTaxWithholding;
import org.fdx.model.Tax;
import org.fdx.model.TaxFormAttribute;
import org.fdx.model.TaxFormType;

/**
 * Proceeds From Broker and Barter Exchange Transactions
 */
public class Tax1099B extends Tax {

  @JsonProperty("payerNameAddress")
  private NameAddressPhone payerNameAddress = null;

  @JsonProperty("payerTin")
  private String payerTin;

  @JsonProperty("recipientTin")
  private String recipientTin;

  @JsonProperty("recipientNameAddress")
  private NameAddress recipientNameAddress = null;

  @JsonProperty("accountNumber")
  private String accountNumber;

  @JsonProperty("profitOnClosedContracts")
  private Double profitOnClosedContracts;

  @JsonProperty("unrealizedProfitOpenContractsBegin")
  private Double unrealizedProfitOpenContractsBegin;

  @JsonProperty("unrealizedProfitOpenContractsEnd")
  private Double unrealizedProfitOpenContractsEnd;

  @JsonProperty("aggregateProfitOnContracts")
  private Double aggregateProfitOnContracts;

  @JsonProperty("bartering")
  private Double bartering;

  @JsonProperty("securityDetails")
  private List<SecurityDetail> securityDetails = null;

  @JsonProperty("secondTinNotice")
  private Boolean secondTinNotice;

}


Individual sales are included in the list of SecurityDetail objects. Below is an abbreviated view of the SecurityDetail model using java code.

package org.fdx.model;

import org.joda.time.LocalDate;
import org.fdx.model.CodeAmount;
import org.fdx.model.ExpiredOptionType;
import org.fdx.model.InvestmentSaleType;
import org.fdx.model.SaleProceedsType;
import org.fdx.model.SaleTermType;
import org.fdx.model.StateTaxWithholding;

/**
 * Tax information for a single security transaction
 */
public class SecurityDetail {

  @JsonProperty("checkboxOnForm8949")
  private String checkboxOnForm8949;

  @JsonProperty("securityName")
  private String securityName;

  @JsonProperty("numberOfShares")
  private Double numberOfShares;

  @JsonProperty("saleDescription")
  private String saleDescription;

  @JsonProperty("dateAcquired")
  private LocalDate dateAcquired;

  @JsonProperty("variousDatesAcquired")
  private Boolean variousDatesAcquired;

  @JsonProperty("dateOfSale")
  private LocalDate dateOfSale;

  @JsonProperty("salesPrice")
  private Double salesPrice;

  @JsonProperty("accruedMarketDiscount")
  private Double accruedMarketDiscount;

  @JsonProperty("adjustmentCodes")
  private List<CodeAmount> adjustmentCodes = null;

  @JsonProperty("costBasis")
  private Double costBasis;

  @JsonProperty("correctedCostBasis")
  private Double correctedCostBasis;

  @JsonProperty("washSaleLossDisallowed")
  private Double washSaleLossDisallowed;

  @JsonProperty("longOrShort")
  private SaleTermType longOrShort = null;

  @JsonProperty("ordinary")
  private Boolean ordinary;

  @JsonProperty("collectible")
  private Boolean collectible;

  @JsonProperty("qof")
  private Boolean qof;

  @JsonProperty("federalTaxWithheld")
  private Double federalTaxWithheld;

  @JsonProperty("noncoveredSecurity")
  private Boolean noncoveredSecurity;

  @JsonProperty("grossOrNet")
  private SaleProceedsType grossOrNet = null;

  @JsonProperty("lossNotAllowed")
  private Boolean lossNotAllowed;

  @JsonProperty("basisReported")
  private Boolean basisReported;

  @JsonProperty("stateTaxWithholding")
  private List<StateTaxWithholding> stateTaxWithholding = null;

  @JsonProperty("cusip")
  private String cusip;

  @JsonProperty("foreignAccountTaxCompliance")
  private Boolean foreignAccountTaxCompliance;

  @JsonProperty("expiredOption")
  private ExpiredOptionType expiredOption = null;

  @JsonProperty("investmentSaleType")
  private InvestmentSaleType investmentSaleType = null;

}

Below is an abbreviated view of the CryptocurrencyTaxStatement and CryptocurrencyGainOrLoss models using java code.

package org.fdx.model;

/**
 * Array of cryptocurrency gains and losses
 */

public class CryptocurrencyTaxStatement extends Tax {

  @JsonProperty("gainsAndLosses")
  private List<CryptocurrencyGainOrLoss> gainsAndLosses = null;

}

package org.fdx.model;

/**
 * Tax information for a single cryptocurrency transaction.
 * If reported on Form 1099-B, use Tax1099B and SecurityDetail instead of this entity.
 */

public class CryptocurrencyGainOrLoss {

  @JsonProperty("cryptocurrencyName")
  private String cryptocurrencyName;

  @JsonProperty("symbol")
  private String symbol;

  @JsonProperty("quantity")
  private Double quantity;

  @JsonProperty("saleDescription")
  private String saleDescription;

  @JsonProperty("dateAcquired")
  private LocalDate dateAcquired;

  @JsonProperty("variousDatesAcquired")
  private Boolean variousDatesAcquired;

  @JsonProperty("dateOfSale")
  private LocalDate dateOfSale;

  @JsonProperty("salesPrice")
  private Double salesPrice;

  @JsonProperty("costBasis")
  private Double costBasis;

  @JsonProperty("longOrShort")
  private SaleTermType longOrShort = null;

}


More detailed information about FDX JSON is available at our educational sibling website, www.taxdataexchange.org.

Resources to help brokers generate FDX JSON files are available at our sibling implementation website, www.taxdochub.com.

Example 1099-B Data in FDX JSON Format

{
  "forms": [
    {
      "tax1099B": {
        "securityDetails": [
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "PTE 05/21/2021 CALL $2.50",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-05-21",
            "salesPrice": 0.0,
            "costBasis": 155.0
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "XSPA 07/16/2021 CALL $3.00",
            "dateAcquired": "2021-03-19",
            "dateOfSale": "2021-07-16",
            "salesPrice": 0.0,
            "costBasis": 80.0
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "APPLE INC. COMMON STOCK",
            "dateAcquired": "2021-01-25",
            "dateOfSale": "2021-04-16",
            "salesPrice": 134.75,
            "costBasis": 142.03
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "ARCIMOTO, INC. COMMON STOCK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-01-21",
            "salesPrice": 618.98,
            "costBasis": 499.86
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "ARCIMOTO, INC. COMMON STOCK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-01-26",
            "salesPrice": 604.95,
            "costBasis": 500.0
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "CANOO INC. CLASS A COMMON STOCK",
            "dateAcquired": "2021-03-16",
            "dateOfSale": "2021-03-22",
            "salesPrice": 790.49,
            "costBasis": 784.0
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "CHURCHILL CAPITAL CORP IV",
            "dateAcquired": "2021-01-22",
            "dateOfSale": "2021-01-25",
            "salesPrice": 467.28,
            "costBasis": 481.2,
            "washSaleLossDisallowed": 13.92
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "CHURCHILL CAPITAL CORP IV",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-01-28",
            "salesPrice": 324.18,
            "costBasis": 319.55
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "CHURCHILL CAPITAL CORP IV",
            "dateAcquired": "2021-01-25",
            "dateOfSale": "2021-01-28",
            "salesPrice": 65.1,
            "costBasis": 75.08,
            "washSaleLossDisallowed": 9.98
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "CHURCHILL CAPITAL CORP IV",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-02-23",
            "salesPrice": 320.0,
            "costBasis": 332.64
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "CHURCHILL CAPITAL CORP IV",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-04-26",
            "salesPrice": 940.73,
            "costBasis": 929.85
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "CLEVELAND-CLIFFS INC.",
            "dateAcquired": "2021-03-31",
            "dateOfSale": "2021-07-20",
            "salesPrice": 100.0,
            "costBasis": 99.33
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "CONTEXTLOGIC INC. CLASS A COMM ON STOCK",
            "dateAcquired": "2021-07-22",
            "dateOfSale": "2021-07-29",
            "salesPrice": 1818.44,
            "costBasis": 1713.6
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "THE WALT DISNEY COMPANY",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-03-16",
            "salesPrice": 470.53,
            "costBasis": 418.98
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "ENERGOUS CORPORATION COMMON ST OCK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-02-19",
            "salesPrice": 606.5,
            "costBasis": 445.63
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "ENERGOUS CORPORATION COMMON ST OCK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-03-25",
            "salesPrice": 1345.63,
            "costBasis": 1301.3
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "ENERGOUS CORPORATION COMMON ST OCK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-03-25",
            "salesPrice": 797.29,
            "costBasis": 832.39,
            "washSaleLossDisallowed": 25.44
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "ENERGOUS CORPORATION COMMON ST OCK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-04-22",
            "salesPrice": 488.98,
            "costBasis": 511.46
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "FUBOTV INC.",
            "dateAcquired": "2021-01-25",
            "dateOfSale": "2021-02-22",
            "salesPrice": 506.38,
            "costBasis": 504.0
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "GEVO, INC. COMMON STOCK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-01-26",
            "salesPrice": 704.8,
            "costBasis": 500.0
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "GEVO, INC. COMMON STOCK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-02-08",
            "salesPrice": 611.8,
            "costBasis": 609.79
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "GEVO, INC. COMMON STOCK",
            "dateAcquired": "2021-01-26",
            "dateOfSale": "2021-02-08",
            "salesPrice": 1.55,
            "costBasis": 1.58,
            "washSaleLossDisallowed": 0.02
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "JAGUAR HEALTH, INC. COMMON STO CK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-01-28",
            "salesPrice": 705.22,
            "costBasis": 697.1
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "JAGUAR HEALTH, INC. COMMON STO CK",
            "dateAcquired": "2021-01-27",
            "dateOfSale": "2021-01-29",
            "salesPrice": 1.6,
            "costBasis": 1.37
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "LUMINAR TECHNOLOGIES, INC. CLA SS A COMMON STOCK",
            "dateAcquired": "2021-02-01",
            "dateOfSale": "2021-02-18",
            "salesPrice": 226.35,
            "costBasis": 225.68
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "MARATHON PATENT GROUP, INC. CO MMON STOCK",
            "dateAcquired": "2021-02-03",
            "dateOfSale": "2021-02-03",
            "salesPrice": 122.8,
            "costBasis": 121.5
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "MCDONALD'S CORPORATION",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-02-22",
            "salesPrice": 530.87,
            "costBasis": 528.33
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "MOSYS, INC. COMMON STOCK",
            "dateAcquired": "2021-03-16",
            "dateOfSale": "2021-05-18",
            "salesPrice": 104.0,
            "costBasis": 112.25
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "NIO INC. AMERICAN DEPOSITARY S HARES, EACH REPRESE",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-03-16",
            "salesPrice": 463.92,
            "costBasis": 627.11
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "PINTEREST, INC. CLASS A COMMON STOCK",
            "dateAcquired": "2021-04-28",
            "dateOfSale": "2021-04-28",
            "salesPrice": 3344.89,
            "costBasis": 3416.5
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "POLARITYTE, INC. COMMON STOCK",
            "dateAcquired": "2021-02-09",
            "dateOfSale": "2021-02-11",
            "salesPrice": 944.91,
            "costBasis": 760.0
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "RENESOLA LTD AMERICAN DEPOSITA RY (EACH REPRESENTI",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-02-10",
            "salesPrice": 183.05,
            "costBasis": 182.97
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "TESLA, INC. COMMON STOCK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-02-25",
            "salesPrice": 1377.1,
            "costBasis": 1681.74
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "VANECK SOCIAL SENTIMENT ETF",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-03-17",
            "salesPrice": 50.18,
            "costBasis": 49.57
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "XPRESSPA GROUP, INC. COMMON ST OCK",
            "variousDatesAcquired": true,
            "dateOfSale": "2021-08-31",
            "salesPrice": 281.98,
            "costBasis": 272.65
          },
          {
            "checkboxOnForm8949": "A",
            "saleDescription": "ZOMEDICA CORP.",
            "dateAcquired": "2021-02-03",
            "dateOfSale": "2021-02-04",
            "salesPrice": 138.1,
            "costBasis": 112.5
          },
          {
            "checkboxOnForm8949": "C",
            "saleDescription": "TILRAY BRANDS, INC. CLASS 2 CO MMON STOCK",
            "dateAcquired": "2021-02-10",
            "dateOfSale": "2021-05-10",
            "salesPrice": 6.5,
            "costBasis": 12.27
          }
        ]
      }
    }
  ]
}