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.
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:
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.
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.
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".
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.
To import your Masterworks Schedule K-1 information, enter or paste your assigned user ID and entity ID.
User ID
Entity ID
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.
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 ###
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
Include the document id and document code in the Basic Auth Username and Password fields, respectively.
Include your API key in the header as seen here:
See the response as seen below:
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: