Information for Tax Prep Software Developers

Delight your users through technical innovation!

Sign up to access the Schedule K-1.com API server.

Both Open Financial Exchange (OFX) and
Financial Data Exchange (FDX) Rest APIs are supported.

Contact support@schedulek-1.com
to set up an API service agreement and obtain an API key.

 

To Import K-1 Data From SCHEDULEK-1.COM

 

 

1. Prompt your user for tax document credentials

Each K-1 is assigned a unique document ID and a document code.

In the footer of the K-1 you will see a colon-separated string with:

  1. The server ID,
  2. The assigned document ID, and
  3. The assigned document code

The combination of all three is known as the document "coordinates".

For example:

You can prompt for these credentials in any of four ways.

 

A. Prompt the user to enter or copy and paste the document ID and a document code separately.

Import From ScheduleK-1.com

ScheduleK-1.com logo

To import your K-1 information, enter your assigned tax document ID and tax document code. Your partnership will provide you these codes.

Tax Document ID

Document Code

 

 

B. Prompt the user to copy and paste the document ID and a document code together separated by the colon.

Import From ScheduleK-1.com

ScheduleK-1.com logo

To import your K-1 information, copy and paste your tax document codes into the space below. Your partnership will provide you these codes.

To import your K-1 information, copy and paste your tax document coordinates into the space below. Your partnership will provide you the coordinates.

Tax Document Codes

 

 

C. Prompt the user to copy and paste the document "coordinates".

Import Your K-1 Information

Tax Document Coordinates

 

D. Prompt the user to enter or copy and paste partnership-specific information.

Some large partnerships will use the hosting services of Schedule K-1.com but use their own brand as the hosting entity. Here is one example.

Import Your Masterworks Schedule K-1 Information

Masterworks logo

To import your Masterworks Schedule K-1 information, enter or paste your assigned user ID and entity ID.

User ID

Entity ID

 

 

 

2. Using the document credentials, submit HTTP GET request to our API server

The GET request will include headers as seen below.

Accept: application/json
Authorization: Basic {base-64-encoded-tax-document-id-colon-document-code}
x-apikey: {your-api-key}

The authorization header consists of a string of "{taxDocumentId}:{taxDocumentCode}" encoded using Base64 encoding.

Contact support@schedulek-1.com to set up an API service agreement and obtain an API key.

Development & Testing - IntelliJ

If you use IntelliJ IDEA's built in HTTP client, your .http file would look like this

GET https://endpoint-domain-here.com/fdx/v5/tax-forms/6215901221224448
Accept: application/json
x-apikey: API-KEY-HERE
Authorization: Basic 6215901221224448 91991158
###
Development & Testing - CURL

If you use the CURL HTTP client, your command would look like this:

curl -X GET --location "https://domain-here/fdx/v5/tax-forms/6215901221224448" \
    -H "Accept: application/json" \
    -H "x-apikey: R3VgcNfo1kQTgLVR2123456778bAoyXuT9mxwlaGWw" \
    --basic --user 6215901221224448:91991158
Development & Testing - Postman

Include the document id and document code in the Basic Auth Username and Password fields, respectively.

Postman

Include your API key in the header as seen here:

Postman

See the response as seen below:

Postman
 

3. Receive the tax document information in industry-standard FDX JSON format and
ingest into the user's tax return

The JSON will look like this:

{
  "tax1065K1" : {
    "taxYear" : 2023,
    "taxFormDate" : "2024-03-30",
    "taxFormType" : "Tax1065K1",
    "finalK1" : true,
    "partnershipTin" : "12-3456789",
    "partnershipNameAddress" : {
        "line1" : "1718-1/2 Oak Blvd",
        "line2" : "Suite 230",
        "city" : "Austin",
        "state" : "TX",
        "postalCode" : "78735",
        "name1" : "American People Corp."
    },
    "irsCenter" : "Ogden",
    "publiclyTraded" : true,
    "partnerTin" : "xxx-xx-1234",
    "partnerNameAddress" : {
        "line1" : "1 Main St",
        "city" : "Melrose",
        "state" : "NY",
        "postalCode" : "12121",
        "name1" : "Kris Q. Public"
    },
    "generalPartner" : true,
    "limitedPartner" : false,
    "domestic" : true,
    "foreign" : false,
    "disregardedEntity" : false,
    "entityType" : "LLC",
    "retirementPlan" : false,
    "profitShareBegin" : 20.0,
    "profitShareEnd" : 21.0,
    "lossShareBegin" : 22.0,
    "lossShareEnd" : 23.0,
    "capitalShareBegin" : 24.0,
    "capitalShareEnd" : 25.0,
    "nonrecourseLiabilityShareBegin" : 27.0,
    "nonrecourseLiabilityShareEnd" : 28.0,
    "qualifiedLiabilityShareBegin" : 29.0,
    "qualifiedLiabilityShareEnd" : 30.0,
    "recourseLiabilityShareBegin" : 31.0,
    "recourseLiabilityShareEnd" : 32.0,
    "capitalAccountBegin" : 134.0,
    "capitalAccountContributions" : 135.0,
    "capitalAccountIncrease" : 136.0,
    "capitalAccountOther" : 137.0,
    "capitalAccountWithdrawals" : 138.0,
    "capitalAccountEnd" : 139.0,
    "builtInGain" : false,
    "unrecognizedSection704Begin" : 246.0,
    "unrecognizedSection704End" : 247.0,
    "ordinaryIncome" : 1048.0,
    "netRentalRealEstateIncome" : 2049.0,
    "otherRentalIncome" : 3050.0,
    "guaranteedPaymentServices" : 4252.0,
    "guaranteedPaymentCapital" : 4353.0,
    "guaranteedPayment" : 4151.0,
    "interestIncome" : 5054.0,
    "ordinaryDividends" : 6155.0,
    "qualifiedDividends" : 6256.0,
    "dividendEquivalents" : 6357.0,
    "royalties" : 7058.0,
    "netShortTermGain" : 8059.0,
    "netLongTermGain" : 9160.0,
    "collectiblesGain" : 9261.0,
    "unrecaptured1250Gain" : 9362.0,
    "net1231Gain" : 10063.0,
    "otherIncome" : [ {
        "code" : "I",
        "amount" : 11064.0
    } ],
    "section179Deduction" : 12065.0,
    "otherDeductions" : [ {
        "code" : "O",
        "amount" : 13066.0
    } ],
    "selfEmployment" : [ {
        "code" : "S",
        "amount" : 14067.0
    } ],
    "credits" : [ {
        "code" : "C",
        "amount" : 15068.0
    } ],
    "foreignCountry" : "Norway",
    "foreignTransactions" : [ {
        "code" : "B",
        "amount" : 16070.0
    } ],
    "amtItems" : [ {
        "code" : "W",
        "amount" : 17071.0
    } ],
    "taxExemptIncome" : [ {
        "code" : "X",
        "amount" : 18072.0
    } ],
    "distributions" : [ {
        "code" : "Y",
        "amount" : 19073.0
    } ],
    "otherInfo" : [ {
        "code" : "Z",
        "amount" : 20074.0
    } ],
    "multipleAtRiskActivities" : true,
    "multiplePassiveActivities" : false
  }
}
    

We recommend that you implement data ingestion in a way that data received via API and file upload can leverage the same processes as seen below: