{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/sps-commerce/main/json-schema/sps-commerce-trading-partner-input-schema.json", "title": "TradingPartnerInput", "description": "Model for the trading partner input payload\nIt includes various validators and processors for fields", "x-generated": "2026-10-09", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/sps-commerce-submission-api-openapi.yml#/components/schemas/TradingPartnerInput", "properties": { "submissionFormId": { "type": "string", "maxLength": 15, "minLength": 1, "title": "Submission Form ID", "description": "Mandatory identifier of the chosen Submission Form" }, "tradingPartnerName": { "type": "string", "maxLength": 75, "minLength": 1, "title": "Trading Partner Name", "description": "Full title of the Trading Partner" }, "tradingPartnerId": { "type": "string", "maxLength": 75, "minLength": 1, "title": "Trading Partner ID", "description": "Primary trading partner identifier" }, "country": { "type": "string", "maxLength": 3, "minLength": 3, "title": "Country", "description": "Country code according to ISO-3166-alpha-3" }, "businessContact": { "$ref": "#/$defs/AgreementContactDetails" }, "tpInvolvementContact": { "anyOf": [ { "$ref": "#/$defs/ThirdPartyInvolvementContact" }, { "type": "null" } ] }, "tradingPartnerId2": { "anyOf": [ { "type": "string", "maxLength": 75, "minLength": 1 }, { "type": "null" } ], "title": "Trading Partner ID 2", "description": "Optional trading partner identifier" }, "tradingPartnerId3": { "anyOf": [ { "type": "string", "maxLength": 75, "minLength": 1 }, { "type": "null" } ], "title": "Trading Partner ID 3", "description": "Optional trading partner identifier" }, "tradingPartnerId4": { "anyOf": [ { "type": "string", "minLength": 1 }, { "type": "null" } ], "title": "Trading Partner ID 4", "description": "Optional trading partner identifier" }, "tradingPartnerId5": { "anyOf": [ { "type": "string", "maxLength": 75, "minLength": 1 }, { "type": "null" } ], "title": "Trading Partner ID 5", "description": "Optional trading partner identifier" }, "tradingPartnerId6": { "anyOf": [ { "type": "string", "maxLength": 75, "minLength": 1 }, { "type": "null" } ], "title": "Trading Partner ID 6", "description": "Optional trading partner identifier" }, "tradingPartnerId7": { "anyOf": [ { "type": "string", "maxLength": 75, "minLength": 1 }, { "type": "null" } ], "title": "Trading Partner ID 7", "description": "Optional trading partner identifier" }, "tradingPartnerId8": { "anyOf": [ { "type": "string", "maxLength": 75, "minLength": 1 }, { "type": "null" } ], "title": "Trading Partner ID 8", "description": "Optional trading partner identifier" }, "tradingPartnerId9": { "anyOf": [ { "type": "string", "maxLength": 75, "minLength": 1 }, { "type": "null" } ], "title": "Trading Partner ID 9", "description": "Optional trading partner identifier" }, "tradingPartnerId10": { "anyOf": [ { "type": "string", "maxLength": 75, "minLength": 1 }, { "type": "null" } ], "title": "Trading Partner ID 10", "description": "Optional trading partner identifier" }, "purchaseOrderDollars": { "anyOf": [ { "type": "number", "minimum": 0.0 }, { "type": "null" } ], "title": "Annual Purchase Order Volume - Dollars", "description": "Annual volume of purchase orders" }, "purchaseOrderCount": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Annual Purchase Order Volume - Count", "description": "Annual total count of purchase orders" }, "existingActiveItemSkuCount": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Existing Active Item (SKU) Count", "description": "Annual total count of stock keeping units" }, "newItemSetupSkuCount": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "New Item Setup SKU Count", "description": "Annual total count of new item setup stock keeping units" }, "buyerName": { "anyOf": [ { "type": "string", "maxLength": 75, "minLength": 1 }, { "type": "null" } ], "title": "Buyer Name", "description": "Full name of the buyer person" }, "buyerEmail": { "anyOf": [ { "type": "string", "maxLength": 254, "minLength": 5, "pattern": "(^[a-zA-Z0-9+._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+$)" }, { "type": "null" } ], "title": "Buyer Email", "description": "Email address of the buyer person" }, "brandDivision": { "anyOf": [ { "type": "string", "maxLength": 255, "minLength": 1 }, { "type": "null" } ], "title": "Brand / Division", "description": "Descriptive field of the trading partner's brand / division" }, "tradingPartnerLocation": { "anyOf": [ { "$ref": "#/$defs/TradingPartnerLocation" }, { "type": "null" } ] }, "anticipatedFirstOrderDate": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Anticipated First Order Date", "description": "Enablement detail of the first anticipated order date" }, "commitmentDeadlineDate": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Commitment Deadline Date", "description": "Enablement detail of the commitment deadline date" }, "productionReadyDeadlineDate": { "anyOf": [ { "type": "string", "format": "date" }, { "type": "null" } ], "title": "Production Ready Deadline Date", "description": "Enablement detail of the production ready deadline date" }, "carrierService": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Carrier Service", "description": "Defines if the additional service is required" }, "implementationNotes": { "anyOf": [ { "type": "string", "maxLength": 32000, "minLength": 1 }, { "type": "null" } ], "title": "Implementation Notes", "description": "Plain-text implementation notes related to the Trading Partner" }, "generalNotes": { "anyOf": [ { "type": "string", "maxLength": 32000, "minLength": 1 }, { "type": "null" } ], "title": "General Notes", "description": "Plain-text general notes related to the Trading Partner" }, "includedDataExchanges": { "$ref": "#/$defs/IncludedDataExchanges" }, "fulfillmentModels": { "$ref": "#/$defs/FulfillmentModels", "title": "Fulfillment Models" }, "vendorSourcedBySps": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Vendor Sourced by SPS", "description": "Defines if trading partner should be marked as sourced by SPS" }, "uniqueSupplierGroups": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Unique Supplier Groups", "description": "List of unique supplier groups values" }, "sponsoredSolution": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Sponsored Solution", "description": "Defines if the lead source type is Retailer Sponsored" } }, "additionalProperties": false, "type": "object", "required": [ "submissionFormId", "tradingPartnerName", "tradingPartnerId", "country", "businessContact", "includedDataExchanges" ], "$defs": { "AgreementContactDetails": { "properties": { "firstName": { "type": "string", "maxLength": 50, "minLength": 1, "title": "Business Contact - First Name", "description": "Business Contact's first name" }, "lastName": { "type": "string", "maxLength": 75, "minLength": 1, "title": "Business Contact - Last Name", "description": "Business Contact's last name" }, "email": { "type": "string", "maxLength": 254, "minLength": 5, "pattern": "(^[a-zA-Z0-9+._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+$)", "title": "Business Contact - Email Address", "description": "Primary business contact's email address." }, "phone": { "anyOf": [ { "type": "string", "maxLength": 40, "minLength": 1 }, { "type": "null" } ], "title": "Business Contact - Phone Number", "description": "Primary business contact's phone number." }, "title": { "anyOf": [ { "type": "string", "maxLength": 254, "minLength": 1 }, { "type": "null" } ], "title": "Business Contact - Title", "description": "Business Contact's title" } }, "additionalProperties": false, "type": "object", "required": [ "firstName", "lastName", "email" ], "title": "AgreementContactDetails", "description": "Detailed information about agreement contact" }, "FulfillmentModels": { "properties": { "consignmentDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Consignment Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "directStoreDeliveryDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Direct Store Delivery Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "importsDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Imports Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "scanBasedTradingDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Scan-Based Trading Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "scanBasedTradingConcessionsDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Scan Based Trading/Concessions Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipDirectToBusinessDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship Direct to Business Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipDirectToConsumerDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship Direct to Consumer Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipToDcDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship to DC Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipToDcCrossDockDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship To DC - Cross Dock Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipToDcStoreDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship to DC/Store Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipToDcStoreBlanketAndReleaseDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship to DC/Store - Blanket and Release Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipToFacilityDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship to Facility Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipToFacilityBlanketAndReleaseDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship to Facility - Blanket and Release Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipToMultipleStoresDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship to Multiple Stores Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipToStoreDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship To Store Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "supplierDirectToBusinessDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Supplier Direct to Business Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "supplierDirectToCustomerDropshipDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Supplier Direct to Customer (Dropship) Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "thirdPartyMarketplaceDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Third Party Marketplace Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "transportationNorthAmericaCollectDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Transportation - North America Collect Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "transportationNorthAmericaPrepaidDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Transportation - North America Prepaid Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "vendorManagementInventoryDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Vendor Managed Inventory Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "vendorManagementInventoryVmiDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Vendor Managed Inventory (VMI) Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "shipTo3PLDocs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Ship to 3PL Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "exemptDocuments": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Exempt Documents", "description": "Defines the list of order management documents for the Trading Partner. Should include only respected documents from the chosen Submission Form!" }, "exemptedFulfillmentModels": { "anyOf": [ { "items": { "$ref": "#/$defs/SfOrderManagementEnum" }, "type": "array" }, { "type": "null" } ], "title": "Exempted Fulfillment Models", "description": "List of next possible models: ['Consignment', 'Direct Store Delivery', 'Imports', 'Scan-Based Trading', 'Scan Based Trading/Concessions', 'Ship Direct to Business', 'Ship Direct to Customer', 'Ship to DC', 'Ship to DC - Cross Dock', 'Ship to DC/Store', 'Ship to DC/Store - Blanket and Release', 'Ship to Multiple Stores', 'Ship to Store', 'Ship to Facility', 'Ship to Facility - Blanket and Release', 'Supplier Direct to Business', 'Supplier Direct to Customer (Dropship)', 'Third Party Marketplace', 'Transportation - North America Collect', 'Transportation - North America Prepaid', 'Vendor Managed Inventory', 'Vendor Managed Inventory (VMI)', 'Ship to 3PL']" } }, "additionalProperties": false, "type": "object", "title": "FulfillmentModels", "description": "Describes all of the documents for the chosen order management options. It should include only options and docs from the chosen Submission Form!" }, "IncludedDataExchanges": { "properties": { "salesData": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Sales Data", "description": "Select `Sales Data` as trading partner's data exchange. At least one data exchange should be included!" }, "item": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Item", "description": "Select `Item` as trading partner's data exchange. At least one data exchange should be included!" }, "order": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Order", "description": "Select `Order` as trading partner's data exchange. At least one data exchange should be included!" }, "itemAndOrder": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Item and Order", "description": "Select `Item and Order` as trading partner's data exchange. At least one data exchange should be included!" } }, "additionalProperties": false, "type": "object", "title": "IncludedDataExchanges", "description": "Provides information about included trading partner's data exchanges. It should include only data exchanges from the chosen Submission Form!" }, "SfOrderManagementEnum": { "type": "string", "enum": [ "Consignment", "Direct Store Delivery", "Imports", "Scan-Based Trading", "Scan Based Trading/Concessions", "Ship Direct to Business", "Ship Direct to Customer", "Ship to DC", "Ship to DC - Cross Dock", "Ship to DC/Store", "Ship to DC/Store - Blanket and Release", "Ship to Multiple Stores", "Ship to Store", "Ship to Facility", "Ship to Facility - Blanket and Release", "Supplier Direct to Business", "Supplier Direct to Customer (Dropship)", "Third Party Marketplace", "Transportation - North America Collect", "Transportation - North America Prepaid", "Vendor Managed Inventory", "Vendor Managed Inventory (VMI)", "Ship to 3PL" ], "title": "SfOrderManagementEnum" }, "ThirdPartyInvolvementContact": { "properties": { "tpInvolvementType": { "anyOf": [ { "$ref": "#/$defs/ThirdPartyInvolvementTypes" }, { "type": "null" } ], "title": "Third Party Involvement Type", "description": "Type of the third party involvement" }, "tpInvolvementFirstName": { "anyOf": [ { "type": "string", "maxLength": 50, "minLength": 1 }, { "type": "null" } ], "title": "First Name", "description": "Third Party Involvement first name" }, "tpInvolvementLastName": { "type": "string", "maxLength": 75, "minLength": 1, "title": "Last Name", "description": "Third Party Involvement last name" }, "tpInvolvementEmail": { "anyOf": [ { "type": "string", "maxLength": 254, "minLength": 5, "pattern": "(^[a-zA-Z0-9+._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+$)" }, { "type": "null" } ], "title": "Email Address", "description": "Third Party Involvement email" }, "tpInvolvementPhone": { "anyOf": [ { "type": "string", "maxLength": 40, "minLength": 1 }, { "type": "null" } ], "title": "Phone Number", "description": "Third Party Involvement phone number" }, "tpInvolvementCompanyName": { "anyOf": [ { "type": "string", "maxLength": 75, "minLength": 1 }, { "type": "null" } ], "title": "Company Name", "description": "Third Party Involvement company name" } }, "additionalProperties": false, "type": "object", "required": [ "tpInvolvementFirstName", "tpInvolvementLastName" ], "title": "ThirdPartyInvolvementContact", "description": "Detailed information about 3rd party involvement contact" }, "ThirdPartyInvolvementTypes": { "type": "string", "enum": [ "Broker", "Agent/Manufacturer's Rep" ], "title": "ThirdPartyInvolvementTypes" }, "TradingPartnerLocation": { "properties": { "address": { "anyOf": [ { "type": "string", "maxLength": 255, "minLength": 1 }, { "type": "null" } ], "title": "Address", "description": "Address[1-4] information" }, "city": { "anyOf": [ { "type": "string", "maxLength": 40, "minLength": 1 }, { "type": "null" } ], "title": "City", "description": "Free-form text for city name" }, "state": { "anyOf": [ { "type": "string", "maxLength": 50, "minLength": 1 }, { "type": "null" } ], "title": "State", "description": "Code[Standard State/Province] as defined by appropriate government agency" }, "zipCode": { "anyOf": [ { "type": "string", "maxLength": 25, "minLength": 4 }, { "type": "null" } ], "title": "ZIP Code", "description": "International postal zone excluding punctuation and blanks[Zip Code for United States]" } }, "additionalProperties": false, "type": "object", "title": "TradingPartnerLocation" } } }