Schema Changes - 2025-12-13
This document contains the changes to the schema files compared to the main branch.
Changes
diff --git a/schema/Api/CustomerBroker/CreateCustomerRequest.json b/schema/Api/CustomerBroker/CreateCustomerRequest.json
index 432f19ea..28f26af1 100644
--- a/schema/Api/CustomerBroker/CreateCustomerRequest.json
+++ b/schema/Api/CustomerBroker/CreateCustomerRequest.json
@@ -6,7 +6,7 @@
"properties": {
"defaultWarehouseId": { "description": "Optional. Warehouse identifier.", "type": ["string", "null"] },
"id": {
- "description": "Required. Unique customer identifier. Must not be empty. Must exist for update. Cannot be the same as parent.id.",
+ "description": "Required. Unique customer identifier. Must not be empty. Cannot be the same as parent.id.",
"type": "string",
"minLength": 1
},
@@ -14,17 +14,18 @@
"description": "Optional. XML sender identifier.",
"type": ["string", "null"]
},
- "billToCodeRequiredOnOrder": {
- "description": "Required. Indicates whether BillTo code is required on order placement.",
- "type": "boolean"
- },
"billingEntities": {
- "type": ["array", "null"],
+ "description": "Billing entities. At least one is required.",
+ "type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
- "id": {"description": "Required. Billing entity identifier.", "type": "string"},
+ "id": {
+ "description": "Required. Billing entity identifier. Must not be empty.",
+ "type": "string",
+ "minLength": 1
+ },
"xmlSenderId": { "description": "Optional. XmlSenderId override.", "type": ["string", "null"] },
"addresses": {
"description": "Required. Child addresses. Must be an empty array [] for create operations (business rule override).",
@@ -46,36 +47,50 @@
}
},
"required": ["id", "isDefaultForCustomer", "addresses"]
- }
+ },
+ "minItems": 1
+ },
+ "brokerScopes": {
+ "description": "Optional. Broker scopes.",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
},
- "brokerScopes": { "type": "array", "items": {"type": "string"} },
"contactAddress": {
+ "description": "Optional. Contact address.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
"address1": {
"description": "Required if contactAddress is present. Address line 1. Must not be empty.",
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
"address2": { "description": "Optional. Address line 2.", "type": ["string", "null"] },
"address3": { "description": "Optional. Address line 3.", "type": ["string", "null"] },
"city": {
"description": "Required if contactAddress is present. City. Must not be empty.",
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
"company": { "description": "Optional. Company name.", "type": ["string", "null"] },
"country": {
"description": "Required if contactAddress is present. Country. Must not be empty.",
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
"faxNumber": { "description": "Optional. Fax number.", "type": ["string", "null"] },
"name": { "description": "Optional. Contact name.", "type": ["string", "null"] },
"phoneNumber": { "description": "Optional. Phone number.", "type": ["string", "null"] },
"postalCode": {
"description": "Required if contactAddress is present. Postal code. Must not be empty.",
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
- "stateProvince": {"description": "Required. State or province.", "type": "string"}
+ "stateProvince": {
+ "description": "Required if contactAddress is present. State or province. Must not be empty.",
+ "type": "string",
+ "minLength": 1
+ }
},
"required": ["address1", "city", "country", "postalCode", "stateProvince"]
},
@@ -85,9 +100,10 @@
"format": "email"
},
"createDateTimeUtc": {
- "description": "Optional. Creation date/time in UTC. Must not be in the future if provided.",
+ "description": "Optional. Creation date/time in UTC.",
"type": ["string", "null"]
},
+ "directMailProvider": { "description": "Optional. Direct mail provider.", "type": ["string", "null"] },
"doValidateOrderPrice": {
"description": "Required. Indicates whether order price validation is performed on order placement for the Sales Order.",
"type": "boolean"
@@ -100,49 +116,58 @@
"additionalProperties": false,
"properties": {
"emailNotificationTemplateId": {
- "description": "Required. Email notification template identifier.",
- "type": "string"
+ "description": "Optional. Email notification template identifier.",
+ "type": ["string", "null"]
},
"emailAddresses": {
- "description": "Required. Array of email addresses.",
- "type": "array",
+ "description": "Optional. Array of email addresses.",
+ "type": ["array", "null"],
"items": {"type": "string"}
}
- },
- "required": ["emailNotificationTemplateId", "emailAddresses"]
+ }
}
},
+ "emailServiceProvider": {
+ "description": "Optional. Email service provider.",
+ "type": ["string", "null"]
+ },
+ "inheritParentOffers": {
+ "description": "Optional. Inherit parent offers flag. Defaults to false.",
+ "type": ["boolean", "null"],
+ "default": false
+ },
"invoiceEmailAddress": {
"description": "Optional. Invoice email address. Must be a valid email if provided.",
"type": ["string", "null"],
"format": "email"
},
+ "mailingFileLocation": {
+ "description": "Optional. Mailing file location.",
+ "type": ["string", "null"]
+ },
"name": {"description": "Required. Customer name.", "type": "string", "minLength": 1},
- "offerRevisionDelimiter": { "type": ["string", "null"] },
+ "offerRevisionDelimiter": {
+ "description": "Optional. Offer revision delimiter.",
+ "type": ["string", "null"]
+ },
"parent": {
+ "description": "Optional. Parent customer reference.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
- "id": {
- "description": "Required. Must not be the same as the customer id. Must exist in the system.",
- "type": ["string", "null"]
- },
- "name": { "type": ["string", "null"] }
- },
- "required": ["id"]
+ "id" : { "description": "Optional. Parent customer ID." , "type": ["string", "null"] },
+ "name": { "description": "Optional. Parent customer name.", "type": ["string", "null"] }
+ }
},
- "partner": { "description": "Optional. Partner name.", "type": ["string", "null"] },
"paymentEmailAddress": {
"description": "Optional. Payment email address. Must be a valid email if provided.",
"type": ["string", "null"],
"format": "email"
},
- "phoneNumber": { "description": "Optional. Phone number.", "type": ["string", "null"] },
"productionFileLocation": {
"description": "Optional. Production file location.",
"type": ["string", "null"]
},
- "salesRep": { "description": "Optional. Sales representative.", "type": ["string", "null"] },
"shipMethodMappings": {
"description": "Optional. Ship method mappings for the customer.",
"type": ["array", "null"],
@@ -165,11 +190,7 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "fulfillmentSystemId": {
- "description": "Required. Fulfillment system identifier.",
- "type": "integer",
- "format": "int64"
- },
+ "fulfillmentSystemId": {"description": "Required. Fulfillment system identifier.", "type": "integer"},
"fulfillmentSystemShipMethodId": {
"description": "Required. Fulfillment system ship method identifier.",
"type": "string"
@@ -181,8 +202,8 @@
"trackingUrl": { "description": "Optional. Tracking URL.", "type": ["string", "null"] }
},
"required": [
- "fulfillmentSystemShipMethods", "ratesProviderShipMethodId",
- "sourceSystemShipMethodId"
+ "sourceSystemShipMethodId", "ratesProviderShipMethodId",
+ "fulfillmentSystemShipMethods"
]
}
},
@@ -193,11 +214,7 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "id": {
- "description": "Required. Source system identifier.",
- "type": "integer",
- "format": "int64"
- },
+ "id": {"description": "Required. Source system identifier.", "type": "integer"},
"sourceSystemCustomerId": {
"description": "Required. Source system customer identifier.",
"type": "string"
@@ -206,8 +223,10 @@
"required": ["id", "sourceSystemCustomerId"]
}
},
- "subsidiary": { "description": "Optional. Subsidiary name.", "type": ["string", "null"] },
- "website": { "description": "Optional. Website URL.", "type": ["string", "null"] }
+ "useDefaultBillingEntity": {
+ "description": "Optional. Use default billing entity flag.",
+ "type": ["boolean", "null"]
+ }
},
- "required": ["id", "name", "doValidateOrderPrice", "billToCodeRequiredOnOrder"]
+ "required": ["id", "name", "doValidateOrderPrice", "billingEntities"]
}
diff --git a/schema/Api/CustomerBroker/CreateCustomerResponse.json b/schema/Api/CustomerBroker/CreateCustomerResponse.json
index 1fef47a3..885ecfbd 100644
--- a/schema/Api/CustomerBroker/CreateCustomerResponse.json
+++ b/schema/Api/CustomerBroker/CreateCustomerResponse.json
@@ -5,9 +5,12 @@
"additionalProperties": false,
"properties": {
"data": {
+ "description": "Response data.",
"type": ["object", "null"],
"additionalProperties": false,
- "properties": { "id": { "type": ["string", "null"] } }
+ "properties": {
+ "id": { "description": "Created customer identifier.", "type": ["string", "null"] }
+ }
},
"failureMessages": { "type": "array", "items": {"type": "string"} },
"informationalMessages": { "type": "array", "items": {"type": "string"} },
diff --git a/schema/Api/CustomerBroker/GetBillingEntitiesResponse.json b/schema/Api/CustomerBroker/GetBillingEntitiesResponse.json
index 60854edf..2bbb83b3 100644
--- a/schema/Api/CustomerBroker/GetBillingEntitiesResponse.json
+++ b/schema/Api/CustomerBroker/GetBillingEntitiesResponse.json
@@ -5,59 +5,56 @@
"additionalProperties": false,
"properties": {
"data": {
- "description": "Optional. Array of billing entity summary data objects.",
+ "description": "Array of billing entity summary data objects.",
"type": ["array", "null"],
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
- "id": {
- "description": "Unique billing entity identifier.",
- "type": ["string", "null"]
- },
+ "id": {"description": "Billing entity identifier.", "type": "string"},
"defaultBillToAddress": {
- "description": "Optional. Default billing address for this entity.",
+ "description": "Default billing address for this entity.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
- "address1" : { "description": "Required. Address line 1." , "type": "string" },
- "address2" : { "description": "Optional. Address line 2." , "type": ["string", "null"] },
- "address3" : { "description": "Optional. Address line 3." , "type": ["string", "null"] },
- "city" : { "description": "Required. City." , "type": "string" },
- "code" : { "description": "Required. Code for the address.", "type": "string" },
- "company" : { "description": "Optional. Company name." , "type": ["string", "null"] },
- "country" : { "description": "Required. Country." , "type": "string" },
- "emailAddress" : { "description": "Optional. Email address." , "type": ["string", "null"] },
- "faxNumber" : { "description": "Optional. Fax number." , "type": ["string", "null"] },
- "name" : { "description": "Required. Address name." , "type": "string" },
- "phoneNumber" : { "description": "Optional. Phone number." , "type": ["string", "null"] },
- "postalCode" : { "description": "Required. Postal code." , "type": "string" },
- "stateProvince": { "description": "Required. State or province." , "type": "string" }
+ "address1" : { "description": "Address line 1." , "type": "string" },
+ "address2" : { "description": "Address line 2." , "type": ["string", "null"] },
+ "address3" : { "description": "Address line 3." , "type": ["string", "null"] },
+ "city" : { "description": "City." , "type": "string" },
+ "code" : { "description": "Address code." , "type": "string" },
+ "company" : { "description": "Company name." , "type": ["string", "null"] },
+ "country" : { "description": "Country." , "type": "string" },
+ "emailAddress" : { "description": "Email address." , "type": ["string", "null"] },
+ "faxNumber" : { "description": "Fax number." , "type": ["string", "null"] },
+ "name" : { "description": "Address name." , "type": "string" },
+ "phoneNumber" : { "description": "Phone number." , "type": ["string", "null"] },
+ "postalCode" : { "description": "Postal code." , "type": "string" },
+ "stateProvince": { "description": "State or province.", "type": "string" }
},
- "required": ["code", "name", "address1", "city", "country", "stateProvince", "postalCode"]
+ "required": ["code", "name", "address1", "city", "stateProvince", "postalCode", "country"]
},
"defaultShipToAddress": {
- "description": "Optional. Default shipping address for this entity.",
+ "description": "Default shipping address for this entity.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
- "address1" : { "description": "Required. Address line 1." , "type": "string" },
- "address2" : { "description": "Optional. Address line 2." , "type": ["string", "null"] },
- "address3" : { "description": "Optional. Address line 3." , "type": ["string", "null"] },
- "city" : { "description": "Required. City." , "type": "string" },
- "code" : { "description": "Required. Code for the address.", "type": "string" },
- "company" : { "description": "Optional. Company name." , "type": ["string", "null"] },
- "country" : { "description": "Required. Country." , "type": "string" },
- "emailAddress" : { "description": "Optional. Email address." , "type": ["string", "null"] },
- "faxNumber" : { "description": "Optional. Fax number." , "type": ["string", "null"] },
- "name" : { "description": "Required. Address name." , "type": "string" },
- "phoneNumber" : { "description": "Optional. Phone number." , "type": ["string", "null"] },
- "postalCode" : { "description": "Required. Postal code." , "type": "string" },
- "stateProvince": { "description": "Required. State or province." , "type": "string" }
+ "address1" : { "description": "Address line 1." , "type": "string" },
+ "address2" : { "description": "Address line 2." , "type": ["string", "null"] },
+ "address3" : { "description": "Address line 3." , "type": ["string", "null"] },
+ "city" : { "description": "City." , "type": "string" },
+ "code" : { "description": "Address code." , "type": "string" },
+ "company" : { "description": "Company name." , "type": ["string", "null"] },
+ "country" : { "description": "Country." , "type": "string" },
+ "emailAddress" : { "description": "Email address." , "type": ["string", "null"] },
+ "faxNumber" : { "description": "Fax number." , "type": ["string", "null"] },
+ "name" : { "description": "Address name." , "type": "string" },
+ "phoneNumber" : { "description": "Phone number." , "type": ["string", "null"] },
+ "postalCode" : { "description": "Postal code." , "type": "string" },
+ "stateProvince": { "description": "State or province.", "type": "string" }
},
- "required": ["code", "name", "address1", "city", "country", "stateProvince", "postalCode"]
+ "required": ["code", "name", "address1", "city", "stateProvince", "postalCode", "country"]
},
- "name": { "description": "Billing entity name.", "type": ["string", "null"] }
+ "name": {"description": "Billing entity name.", "type": "string"}
},
"required": ["id", "name"]
}
diff --git a/schema/Api/CustomerBroker/GetBillingEntityDetailsResponse.json b/schema/Api/CustomerBroker/GetBillingEntityDetailsResponse.json
index 3b27eb23..1ff4691b 100644
--- a/schema/Api/CustomerBroker/GetBillingEntityDetailsResponse.json
+++ b/schema/Api/CustomerBroker/GetBillingEntityDetailsResponse.json
@@ -5,59 +5,44 @@
"additionalProperties": false,
"properties": {
"data": {
- "description": "Optional. Detailed billing entity data.",
+ "description": "Billing entity detail data.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
- "id": {
- "description": "Unique billing entity identifier.",
+ "id": { "description": "Billing entity identifier.", "type": ["string", "null"] },
+ "parentId": {
+ "description": "Parent billing entity identifier.",
"type": ["string", "null"]
},
- "defaultBillToAddress": {
- "description": "Optional. Default billing address for this entity.",
- "type": ["object", "null"],
- "additionalProperties": false,
- "properties": {
- "address1" : { "description": "Required. Address line 1." , "type": "string" },
- "address2" : { "description": "Optional. Address line 2." , "type": ["string", "null"] },
- "address3" : { "description": "Optional. Address line 3." , "type": ["string", "null"] },
- "city" : { "description": "Required. City." , "type": "string" },
- "code" : { "description": "Required. Code for the address.", "type": "string" },
- "company" : { "description": "Optional. Company name." , "type": ["string", "null"] },
- "country" : { "description": "Required. Country." , "type": "string" },
- "emailAddress" : { "description": "Optional. Email address." , "type": ["string", "null"] },
- "faxNumber" : { "description": "Optional. Fax number." , "type": ["string", "null"] },
- "name" : { "description": "Required. Address name." , "type": "string" },
- "phoneNumber" : { "description": "Optional. Phone number." , "type": ["string", "null"] },
- "postalCode" : { "description": "Required. Postal code." , "type": "string" },
- "stateProvince": { "description": "Required. State or province." , "type": "string" }
- },
- "required": ["code", "name", "address1", "city", "country", "stateProvince", "postalCode"]
- },
- "defaultShipToAddress": {
- "description": "Optional. Default shipping address for this entity.",
- "type": ["object", "null"],
- "additionalProperties": false,
- "properties": {
- "address1" : { "description": "Required. Address line 1." , "type": "string" },
- "address2" : { "description": "Optional. Address line 2." , "type": ["string", "null"] },
- "address3" : { "description": "Optional. Address line 3." , "type": ["string", "null"] },
- "city" : { "description": "Required. City." , "type": "string" },
- "code" : { "description": "Required. Code for the address.", "type": "string" },
- "company" : { "description": "Optional. Company name." , "type": ["string", "null"] },
- "country" : { "description": "Required. Country." , "type": "string" },
- "emailAddress" : { "description": "Optional. Email address." , "type": ["string", "null"] },
- "faxNumber" : { "description": "Optional. Fax number." , "type": ["string", "null"] },
- "name" : { "description": "Required. Address name." , "type": "string" },
- "phoneNumber" : { "description": "Optional. Phone number." , "type": ["string", "null"] },
- "postalCode" : { "description": "Required. Postal code." , "type": "string" },
- "stateProvince": { "description": "Required. State or province." , "type": "string" }
- },
- "required": ["code", "name", "address1", "city", "country", "stateProvince", "postalCode"]
+ "addresses": {
+ "description": "Full list of addresses.",
+ "type": ["array", "null"],
+ "items": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "address1" : { "description": "Address line 1." , "type": ["string", "null"] },
+ "address2" : { "description": "Address line 2." , "type": ["string", "null"] },
+ "address3" : { "description": "Address line 3." , "type": ["string", "null"] },
+ "city" : { "description": "City." , "type": ["string", "null"] },
+ "code" : { "description": "Address code." , "type": ["string", "null"] },
+ "company" : { "description": "Company name." , "type": ["string", "null"] },
+ "country" : { "description": "Country." , "type": ["string", "null"] },
+ "emailAddress" : { "description": "Email address." , "type": ["string", "null"] },
+ "faxNumber" : { "description": "Fax number." , "type": ["string", "null"] },
+ "name" : { "description": "Address name." , "type": ["string", "null"] },
+ "phoneNumber" : { "description": "Phone number." , "type": ["string", "null"] },
+ "postalCode" : { "description": "Postal code." , "type": ["string", "null"] },
+ "stateProvince": { "description": "State or province.", "type": ["string", "null"] }
+ }
+ }
},
- "name": { "description": "Billing entity name.", "type": ["string", "null"] }
- },
- "required": ["id", "name"]
+ "customerSince": { "description": "Customer since date.", "type": ["string", "null"] },
+ "defaultBillToAddressCode": { "description": "Default bill-to address code.", "type": ["string", "null"] },
+ "defaultShipToAddressCode": { "description": "Default ship-to address code.", "type": ["string", "null"] },
+ "name": { "description": "Billing entity name.", "type": ["string", "null"] },
+ "status": { "description": "Billing entity status.", "type": ["string", "null"] }
+ }
},
"failureMessages": { "type": "array", "items": {"type": "string"} },
"informationalMessages": { "type": "array", "items": {"type": "string"} },
@@ -68,25 +53,32 @@
{
"data": {
"id": "BE-001",
- "defaultBillToAddress": {
- "address1": "123 Main St",
- "city": "Springfield",
- "code": "MAIN",
- "country": "US",
- "name": "Main Office",
- "postalCode": "12345",
- "stateProvince": "IL"
- },
- "defaultShipToAddress": {
- "address1": "456 Ship St",
- "city": "Springfield",
- "code": "SHIP",
- "country": "US",
- "name": "Shipping Warehouse",
- "postalCode": "12346",
- "stateProvince": "IL"
- },
- "name": "Main Billing Entity"
+ "parentId": null,
+ "addresses": [
+ {
+ "address1": "123 Main St",
+ "city": "Springfield",
+ "code": "MAIN",
+ "country": "US",
+ "name": "Main Office",
+ "postalCode": "12345",
+ "stateProvince": "IL"
+ },
+ {
+ "address1": "456 Ship St",
+ "city": "Springfield",
+ "code": "SHIP",
+ "country": "US",
+ "name": "Shipping Warehouse",
+ "postalCode": "12346",
+ "stateProvince": "IL"
+ }
+ ],
+ "customerSince": "2020-01-15T00:00:00Z",
+ "defaultBillToAddressCode": "MAIN",
+ "defaultShipToAddressCode": "SHIP",
+ "name": "Main Billing Entity",
+ "status": "Active"
},
"failureMessages": [],
"informationalMessages": [],
diff --git a/schema/Api/CustomerBroker/GetCustomerIdResponse.json b/schema/Api/CustomerBroker/GetCustomerIdResponse.json
index fe6d290c..183b5d63 100644
--- a/schema/Api/CustomerBroker/GetCustomerIdResponse.json
+++ b/schema/Api/CustomerBroker/GetCustomerIdResponse.json
@@ -5,6 +5,7 @@
"additionalProperties": false,
"properties": {
"data": {
+ "description": "Response data.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": { "id": { "description": "Customer identifier.", "type": ["string", "null"] } }
diff --git a/schema/Api/CustomerBroker/GetCustomerResponse.json b/schema/Api/CustomerBroker/GetCustomerResponse.json
index a43fa531..399c4522 100644
--- a/schema/Api/CustomerBroker/GetCustomerResponse.json
+++ b/schema/Api/CustomerBroker/GetCustomerResponse.json
@@ -5,243 +5,172 @@
"additionalProperties": false,
"properties": {
"data": {
+ "description": "Customer detail data.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
- "defaultWarehouseId": { "description": "Optional. Warehouse identifier.", "type": ["string", "null"] },
- "id": {
- "description": "Required. Unique customer identifier. Must not be empty. Must exist for update. Cannot be the same as parent.id.",
- "type": ["string", "null"],
- "minLength": 1
- },
- "xmlSenderId": {
- "description": "Optional. XML sender identifier.",
- "type": ["string", "null"]
- },
- "billToCodeRequiredOnOrder": {
- "description": "Required. Indicates whether BillTo code is required on order placement.",
- "type": "boolean"
- },
+ "defaultWarehouseId": { "description": "Default warehouse identifier.", "type": ["string", "null"] },
+ "id": { "description": "Customer identifier.", "type": ["string", "null"] },
+ "xmlSenderId": { "description": "XML sender identifier.", "type": ["string", "null"] },
"billingEntities": {
+ "description": "Billing entities.",
"type": ["array", "null"],
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
- "id": {"description": "Required. Billing entity identifier.", "type": "string"},
- "xmlSenderId": { "description": "Optional. XmlSenderId override.", "type": ["string", "null"] },
+ "id": {"description": "Billing entity identifier.", "type": "string"},
+ "xmlSenderId": { "description": "XmlSenderId override.", "type": ["string", "null"] },
"addresses": {
- "description": "Required. Addresses linked to this billing entity.",
- "type": "array",
+ "description": "Addresses linked to this billing entity.",
+ "type": ["array", "null"],
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
- "xmlSenderId": { "description": "Optional. XmlSenderId.", "type": ["string", "null"] },
- "address1": {"description": "Required. Address line 1.", "type": "string"},
- "address2": { "description": "Optional. Address line 2.", "type": ["string", "null"] },
- "address3": { "description": "Optional. Address line 3.", "type": ["string", "null"] },
- "city": {"description": "Required. City.", "type": "string"},
- "code": {"description": "Required. Code for the address.", "type": "string"},
- "company": { "description": "Optional. Company name.", "type": ["string", "null"] },
- "country": {"description": "Required. Country.", "type": "string"},
- "emailAddress": { "description": "Optional. Email address.", "type": ["string", "null"] },
- "faxNumber": { "description": "Optional. Fax number.", "type": ["string", "null"] },
- "isBillToDefault": {
- "description": "Required. Indicates whether this is the default bill-to address.",
- "type": "boolean"
- },
- "isShipToDefault": {
- "description": "Required. Indicates whether this is the default ship-to address.",
- "type": "boolean"
- },
- "name": {"description": "Required. Address name.", "type": "string"},
- "phoneNumber": { "description": "Optional. Phone number.", "type": ["string", "null"] },
- "postalCode": {"description": "Required. Postal code.", "type": "string"},
- "stateProvince": {"description": "Required. State or province.", "type": "string"}
+ "xmlSenderId" : { "description": "XmlSenderId." , "type": ["string", "null"] },
+ "address1" : { "description": "Address line 1." , "type": "string" },
+ "address2" : { "description": "Address line 2." , "type": ["string", "null"] },
+ "address3" : { "description": "Address line 3." , "type": ["string", "null"] },
+ "city" : { "description": "City." , "type": "string" },
+ "code" : { "description": "Address code." , "type": "string" },
+ "company" : { "description": "Company name." , "type": ["string", "null"] },
+ "country" : { "description": "Country." , "type": "string" },
+ "emailAddress" : { "description": "Email address." , "type": ["string", "null"] },
+ "faxNumber" : { "description": "Fax number." , "type": ["string", "null"] },
+ "isBillToDefault": { "description": "Bill-to default flag.", "type": ["boolean", "null"] },
+ "isShipToDefault": { "description": "Ship-to default flag.", "type": ["boolean", "null"] },
+ "name" : { "description": "Address name." , "type": "string" },
+ "phoneNumber" : { "description": "Phone number." , "type": ["string", "null"] },
+ "postalCode" : { "description": "Postal code." , "type": "string" },
+ "stateProvince" : { "description": "State or province." , "type": "string" }
},
- "required": [
- "code", "name", "address1", "city", "country", "stateProvince", "postalCode",
- "isBillToDefault", "isShipToDefault"
- ]
+ "required": ["code", "name", "address1", "city", "stateProvince", "postalCode", "country"]
}
},
"isDefaultForCustomer": {
- "description": "Required. Indicates whether this is the default billing entity for the customer.",
- "type": "boolean"
+ "description": "Indicates whether this is the default billing entity for the customer.",
+ "type": ["boolean", "null"]
}
},
- "required": ["id", "isDefaultForCustomer", "addresses"]
+ "required": ["id"]
}
},
- "brokerScopes": { "type": "array", "items": {"type": "string"} },
+ "brokerScopes": {
+ "description": "Broker scopes.",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
+ },
"contactAddress": {
+ "description": "Contact address.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
- "address1": {
- "description": "Required if contactAddress is present. Address line 1. Must not be empty.",
- "type": "string"
- },
- "address2": { "description": "Optional. Address line 2.", "type": ["string", "null"] },
- "address3": { "description": "Optional. Address line 3.", "type": ["string", "null"] },
- "city": {
- "description": "Required if contactAddress is present. City. Must not be empty.",
- "type": "string"
- },
- "company": { "description": "Optional. Company name.", "type": ["string", "null"] },
- "country": {
- "description": "Required if contactAddress is present. Country. Must not be empty.",
- "type": "string"
- },
- "faxNumber": { "description": "Optional. Fax number.", "type": ["string", "null"] },
- "name": { "description": "Optional. Contact name.", "type": ["string", "null"] },
- "phoneNumber": { "description": "Optional. Phone number.", "type": ["string", "null"] },
- "postalCode": {
- "description": "Required if contactAddress is present. Postal code. Must not be empty.",
- "type": "string"
- },
- "stateProvince": {"description": "Required. State or province.", "type": "string"}
- },
- "required": ["address1", "city", "country", "postalCode", "stateProvince"]
- },
- "contactEmailAddress": {
- "description": "Optional. Contact email address. Must be a valid email if provided.",
- "type": ["string", "null"],
- "format": "email"
- },
- "doValidateOrderPrice": {
- "description": "Required. Indicates whether order price validation is performed on order placement for the Sales Order.",
- "type": "boolean"
+ "address1" : { "description": "Address line 1." , "type": ["string", "null"] },
+ "address2" : { "description": "Address line 2." , "type": ["string", "null"] },
+ "address3" : { "description": "Address line 3." , "type": ["string", "null"] },
+ "city" : { "description": "City." , "type": ["string", "null"] },
+ "company" : { "description": "Company name." , "type": ["string", "null"] },
+ "country" : { "description": "Country." , "type": ["string", "null"] },
+ "faxNumber" : { "description": "Fax number." , "type": ["string", "null"] },
+ "name" : { "description": "Contact name." , "type": ["string", "null"] },
+ "phoneNumber" : { "description": "Phone number." , "type": ["string", "null"] },
+ "postalCode" : { "description": "Postal code." , "type": ["string", "null"] },
+ "stateProvince": { "description": "State or province.", "type": ["string", "null"] }
+ }
},
+ "contactEmailAddress": { "description": "Contact email address.", "type": ["string", "null"] },
+ "directMailProvider": { "description": "Direct mail provider.", "type": ["string", "null"] },
+ "doValidateOrderPrice": { "description": "Order price validation flag.", "type": ["boolean", "null"] },
"emailNotificationSubscriptions": {
- "description": "Optional. List of email notification subscriptions.",
+ "description": "Email notification subscriptions.",
"type": ["array", "null"],
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"emailNotificationTemplateId": {
- "description": "Required. Email notification template identifier.",
- "type": "string"
+ "description": "Email notification template identifier.",
+ "type": ["string", "null"]
},
"emailAddresses": {
- "description": "Required. Array of email addresses.",
- "type": "array",
+ "description": "Array of email addresses.",
+ "type": ["array", "null"],
"items": {"type": "string"}
}
- },
- "required": ["emailNotificationTemplateId", "emailAddresses"]
+ }
}
},
- "invoiceEmailAddress": {
- "description": "Optional. Invoice email address. Must be a valid email if provided.",
- "type": ["string", "null"],
- "format": "email"
- },
- "name": { "type": ["string", "null"] },
- "offerRevisionDelimiter": { "type": ["string", "null"] },
+ "emailServiceProvider": { "description": "Email service provider.", "type": ["string", "null"] },
+ "inheritParentOffers": { "description": "Inherit parent offers flag.", "type": ["boolean", "null"] },
+ "invoiceEmailAddress": { "description": "Invoice email address.", "type": ["string", "null"] },
+ "mailingFileLocation": { "description": "Mailing file location.", "type": ["string", "null"] },
+ "name": { "description": "Customer name.", "type": ["string", "null"] },
+ "offerRevisionDelimiter": { "description": "Offer revision delimiter.", "type": ["string", "null"] },
"parent": {
+ "description": "Parent customer reference.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
- "id": {
- "description": "Required. Must not be the same as the customer id. Must exist in the system.",
- "type": ["string", "null"]
- },
- "name": { "type": ["string", "null"] }
- },
- "required": ["id"]
- },
- "partner": { "description": "Optional. Partner name.", "type": ["string", "null"] },
- "paymentEmailAddress": {
- "description": "Optional. Payment email address. Must be a valid email if provided.",
- "type": ["string", "null"],
- "format": "email"
- },
- "phoneNumber": { "description": "Optional. Phone number.", "type": ["string", "null"] },
- "productionFileLocation": {
- "description": "Optional. Production file location.",
- "type": ["string", "null"]
+ "id" : { "description": "Parent customer identifier.", "type": ["string", "null"] },
+ "name": { "description": "Parent customer name." , "type": ["string", "null"] }
+ }
},
- "salesRep": { "description": "Optional. Sales representative.", "type": ["string", "null"] },
+ "paymentEmailAddress": { "description": "Payment email address.", "type": ["string", "null"] },
+ "productionFileLocation": { "description": "Production file location.", "type": ["string", "null"] },
"shipMethodMappings": {
- "description": "Optional. Ship method mappings for the customer.",
+ "description": "Ship method mappings.",
"type": ["array", "null"],
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"ratesProviderShipMethodId": {
- "description": "Required. Rates provider ship method identifier.",
- "type": "string"
+ "description": "Rates provider ship method identifier.",
+ "type": ["string", "null"]
},
"sourceSystemShipMethodId": {
- "description": "Required. Source system ship method identifier.",
- "type": "string"
+ "description": "Source system ship method identifier.",
+ "type": ["string", "null"]
},
"fulfillmentSystemShipMethods": {
- "description": "Required. Fulfillment system ship methods.",
- "type": "array",
+ "description": "Fulfillment system ship methods.",
+ "type": ["array", "null"],
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
- "fulfillmentSystemId": {
- "description": "Required. Fulfillment system identifier.",
- "type": "integer",
- "format": "int64"
- },
+ "fulfillmentSystemId": { "description": "Fulfillment system identifier.", "type": ["integer", "null"] },
"fulfillmentSystemShipMethodId": {
- "description": "Required. Fulfillment system ship method identifier.",
- "type": "string"
- },
- "fulfillmentSystemName": {"description": "Required. Fulfillment system name.", "type": "string"}
- },
- "required": [
- "fulfillmentSystemId", "fulfillmentSystemName", "fulfillmentSystemShipMethodId"
- ]
+ "description": "Fulfillment system ship method identifier.",
+ "type": ["string", "null"]
+ }
+ }
}
},
- "trackingUrl": { "description": "Optional. Tracking URL.", "type": ["string", "null"] }
- },
- "required": [
- "fulfillmentSystemShipMethods", "ratesProviderShipMethodId",
- "sourceSystemShipMethodId"
- ]
+ "trackingUrl": { "description": "Tracking URL.", "type": ["string", "null"] }
+ }
}
},
"sourceSystems": {
- "description": "Optional. Source systems for the customer.",
+ "description": "Source systems.",
"type": ["array", "null"],
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
- "authClientId": {
- "description": "Optional. Authentication client identifier.",
- "type": ["string", "null"]
- },
- "id": {
- "description": "Required. Source system identifier.",
- "type": "integer",
- "format": "int64"
- },
+ "id": { "description": "Source system identifier.", "type": ["integer", "null"] },
"sourceSystemCustomerId": {
- "description": "Optional. Source system customer identifier.",
- "type": ["string", "null"]
- },
- "clientSecret": {
- "description": "Optional. Client secret for authentication.",
+ "description": "Source system customer identifier.",
"type": ["string", "null"]
- },
- "name": { "description": "Optional. Source system name.", "type": ["string", "null"] }
- },
- "required": ["id"]
+ }
+ }
}
},
- "subsidiary": { "description": "Optional. Subsidiary name.", "type": ["string", "null"] },
- "website": { "description": "Optional. Website URL.", "type": ["string", "null"] }
+ "useDefaultBillingEntity": {
+ "description": "Use default billing entity flag.",
+ "type": ["boolean", "null"]
+ }
}
},
"failureMessages": { "type": "array", "items": {"type": "string"} },
diff --git a/schema/Api/CustomerBroker/GetOfferCatalogFamilyResponse.json b/schema/Api/CustomerBroker/GetOfferCatalogFamilyResponse.json
new file mode 100644
index 00000000..4af1ba51
--- /dev/null
+++ b/schema/Api/CustomerBroker/GetOfferCatalogFamilyResponse.json
@@ -0,0 +1,53 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "GetOfferCatalogFamilyResponse.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "description": "Offer catalog family data containing ancestor and descendant customer IDs.",
+ "type": ["object", "null"],
+ "additionalProperties": false,
+ "properties": {
+ "ancestors": {
+ "description": "List of ancestor customer IDs in the offer catalog hierarchy.",
+ "type": "array",
+ "items": {"type": "string"}
+ },
+ "descendants": {
+ "description": "List of descendant customer IDs in the offer catalog hierarchy.",
+ "type": "array",
+ "items": {"type": "string"}
+ }
+ },
+ "required": ["ancestors", "descendants"]
+ },
+ "failureMessages": { "type": "array", "items": {"type": "string"} },
+ "informationalMessages": { "type": "array", "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean"}
+ },
+ "required": ["failureMessages", "informationalMessages", "operationWasSuccessful", "data"],
+ "examples": [
+ {
+ "data": {
+ "ancestors" : [ "PARENT-001", "GRANDPARENT-001" ],
+ "descendants": [ "CHILD-001" , "CHILD-002" , "GRANDCHILD-001" ]
+ },
+ "failureMessages": [],
+ "informationalMessages": [],
+ "operationWasSuccessful": true
+ },
+ {
+ "data": {"ancestors": [], "descendants": []},
+ "failureMessages": [],
+ "informationalMessages": ["Customer has no parent or child relationships."],
+ "operationWasSuccessful": true
+ },
+ {
+ "data": null,
+ "failureMessages": ["Customer not found."],
+ "informationalMessages": [],
+ "operationWasSuccessful": false
+ }
+ ]
+}
diff --git a/schema/Api/CustomerBroker/InternalGetOfferCatalogFamilyParameters.json b/schema/Api/CustomerBroker/InternalGetOfferCatalogFamilyParameters.json
new file mode 100644
index 00000000..df3a87aa
--- /dev/null
+++ b/schema/Api/CustomerBroker/InternalGetOfferCatalogFamilyParameters.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "CustomerId": {
+ "in": "path",
+ "name": "customerId",
+ "schema": {"type": "string"},
+ "required": true
+ }
+}
diff --git a/schema/Api/CustomerBroker/InternalGetOfferCatalogFamilyResponse.json b/schema/Api/CustomerBroker/InternalGetOfferCatalogFamilyResponse.json
new file mode 100644
index 00000000..3fc569ee
--- /dev/null
+++ b/schema/Api/CustomerBroker/InternalGetOfferCatalogFamilyResponse.json
@@ -0,0 +1,52 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "InternalGetOfferCatalogFamilyResponse.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "type": ["object", "null"],
+ "additionalProperties": false,
+ "properties": {
+ "ancestors": {
+ "description": "Required. Array of customer IDs representing ancestor customers in the offer catalog family tree.",
+ "type": "array",
+ "items": {"type": "string"}
+ },
+ "descendants": {
+ "description": "Required. Array of customer IDs representing descendant customers in the offer catalog family tree.",
+ "type": "array",
+ "items": {"type": "string"}
+ }
+ },
+ "required": ["ancestors", "descendants"]
+ },
+ "failureMessages": { "type": "array", "items": {"type": "string"} },
+ "informationalMessages": { "type": "array", "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean"}
+ },
+ "required": ["failureMessages", "informationalMessages", "operationWasSuccessful", "data"],
+ "examples": [
+ {
+ "data": {
+ "ancestors" : [ "PARENT-001", "GRANDPARENT-001" ],
+ "descendants": [ "CHILD-001" , "CHILD-002" ]
+ },
+ "failureMessages": [],
+ "informationalMessages": [],
+ "operationWasSuccessful": true
+ },
+ {
+ "data": {"ancestors": [], "descendants": []},
+ "failureMessages": [],
+ "informationalMessages": [],
+ "operationWasSuccessful": true
+ },
+ {
+ "data": null,
+ "failureMessages": ["Customer not found"],
+ "informationalMessages": [],
+ "operationWasSuccessful": false
+ }
+ ]
+}
diff --git a/schema/Api/CustomerBroker/UpdateCustomerRequest.json b/schema/Api/CustomerBroker/UpdateCustomerRequest.json
index 3a782699..33acaece 100644
--- a/schema/Api/CustomerBroker/UpdateCustomerRequest.json
+++ b/schema/Api/CustomerBroker/UpdateCustomerRequest.json
@@ -14,17 +14,18 @@
"description": "Optional. XML sender identifier.",
"type": ["string", "null"]
},
- "billToCodeRequiredOnOrder": {
- "description": "Required. Indicates whether BillTo code is required on order placement.",
- "type": "boolean"
- },
"billingEntities": {
- "type": ["array", "null"],
+ "description": "Billing entities. At least one is required.",
+ "type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
- "id": {"description": "Required. Billing entity identifier.", "type": "string"},
+ "id": {
+ "description": "Required. Billing entity identifier. Must not be empty.",
+ "type": "string",
+ "minLength": 1
+ },
"xmlSenderId": { "description": "Optional. XmlSenderId override.", "type": ["string", "null"] },
"addresses": {
"description": "Required. Addresses linked to this billing entity.",
@@ -45,36 +46,50 @@
}
},
"required": ["id", "isDefaultForCustomer", "addresses"]
- }
+ },
+ "minItems": 1
+ },
+ "brokerScopes": {
+ "description": "Optional. Broker scopes.",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
},
- "brokerScopes": { "type": "array", "items": {"type": "string"} },
"contactAddress": {
+ "description": "Optional. Contact address.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
"address1": {
"description": "Required if contactAddress is present. Address line 1. Must not be empty.",
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
"address2": { "description": "Optional. Address line 2.", "type": ["string", "null"] },
"address3": { "description": "Optional. Address line 3.", "type": ["string", "null"] },
"city": {
"description": "Required if contactAddress is present. City. Must not be empty.",
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
"company": { "description": "Optional. Company name.", "type": ["string", "null"] },
"country": {
"description": "Required if contactAddress is present. Country. Must not be empty.",
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
"faxNumber": { "description": "Optional. Fax number.", "type": ["string", "null"] },
"name": { "description": "Optional. Contact name.", "type": ["string", "null"] },
"phoneNumber": { "description": "Optional. Phone number.", "type": ["string", "null"] },
"postalCode": {
"description": "Required if contactAddress is present. Postal code. Must not be empty.",
- "type": "string"
+ "type": "string",
+ "minLength": 1
},
- "stateProvince": {"description": "Required. State or province.", "type": "string"}
+ "stateProvince": {
+ "description": "Required if contactAddress is present. State or province. Must not be empty.",
+ "type": "string",
+ "minLength": 1
+ }
},
"required": ["address1", "city", "country", "postalCode", "stateProvince"]
},
@@ -83,6 +98,7 @@
"type": ["string", "null"],
"format": "email"
},
+ "directMailProvider": { "description": "Optional. Direct mail provider.", "type": ["string", "null"] },
"doValidateOrderPrice": {
"description": "Required. Indicates whether order price validation is performed on order placement for the Sales Order.",
"type": "boolean"
@@ -95,49 +111,58 @@
"additionalProperties": false,
"properties": {
"emailNotificationTemplateId": {
- "description": "Required. Email notification template identifier.",
- "type": "string"
+ "description": "Optional. Email notification template identifier.",
+ "type": ["string", "null"]
},
"emailAddresses": {
- "description": "Required. Array of email addresses.",
- "type": "array",
+ "description": "Optional. Array of email addresses.",
+ "type": ["array", "null"],
"items": {"type": "string"}
}
- },
- "required": ["emailNotificationTemplateId", "emailAddresses"]
+ }
}
},
+ "emailServiceProvider": {
+ "description": "Optional. Email service provider.",
+ "type": ["string", "null"]
+ },
+ "inheritParentOffers": {
+ "description": "Optional. Inherit parent offers flag. Defaults to false.",
+ "type": ["boolean", "null"],
+ "default": false
+ },
"invoiceEmailAddress": {
"description": "Optional. Invoice email address. Must be a valid email if provided.",
"type": ["string", "null"],
"format": "email"
},
+ "mailingFileLocation": {
+ "description": "Optional. Mailing file location.",
+ "type": ["string", "null"]
+ },
"name": {"description": "Required. Customer name.", "type": "string", "minLength": 1},
- "offerRevisionDelimiter": { "type": ["string", "null"] },
+ "offerRevisionDelimiter": {
+ "description": "Optional. Offer revision delimiter.",
+ "type": ["string", "null"]
+ },
"parent": {
+ "description": "Optional. Parent customer reference.",
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
- "id": {
- "description": "Required. Must not be the same as the customer id. Must exist in the system.",
- "type": ["string", "null"]
- },
- "name": { "type": ["string", "null"] }
- },
- "required": ["id"]
+ "id" : { "description": "Optional. Parent customer ID." , "type": ["string", "null"] },
+ "name": { "description": "Optional. Parent customer name.", "type": ["string", "null"] }
+ }
},
- "partner": { "description": "Optional. Partner name.", "type": ["string", "null"] },
"paymentEmailAddress": {
"description": "Optional. Payment email address. Must be a valid email if provided.",
"type": ["string", "null"],
"format": "email"
},
- "phoneNumber": { "description": "Optional. Phone number.", "type": ["string", "null"] },
"productionFileLocation": {
"description": "Optional. Production file location.",
"type": ["string", "null"]
},
- "salesRep": { "description": "Optional. Sales representative.", "type": ["string", "null"] },
"shipMethodMappings": {
"description": "Optional. Ship method mappings for the customer.",
"type": ["array", "null"],
@@ -160,11 +185,7 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "fulfillmentSystemId": {
- "description": "Required. Fulfillment system identifier.",
- "type": "integer",
- "format": "int64"
- },
+ "fulfillmentSystemId": {"description": "Required. Fulfillment system identifier.", "type": "integer"},
"fulfillmentSystemShipMethodId": {
"description": "Required. Fulfillment system ship method identifier.",
"type": "string"
@@ -176,8 +197,8 @@
"trackingUrl": { "description": "Optional. Tracking URL.", "type": ["string", "null"] }
},
"required": [
- "fulfillmentSystemShipMethods", "ratesProviderShipMethodId",
- "sourceSystemShipMethodId"
+ "sourceSystemShipMethodId", "ratesProviderShipMethodId",
+ "fulfillmentSystemShipMethods"
]
}
},
@@ -188,11 +209,7 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "id": {
- "description": "Required. Source system identifier.",
- "type": "integer",
- "format": "int64"
- },
+ "id": {"description": "Required. Source system identifier.", "type": "integer"},
"sourceSystemCustomerId": {
"description": "Required. Source system customer identifier.",
"type": "string"
@@ -201,12 +218,14 @@
"required": ["id", "sourceSystemCustomerId"]
}
},
- "subsidiary": { "description": "Optional. Subsidiary name.", "type": ["string", "null"] },
"updateDateTimeUtc": {
- "description": "Optional. Update date/time in UTC. Must not be in the future if provided.",
+ "description": "Optional. Update date/time in UTC.",
"type": ["string", "null"]
},
- "website": { "description": "Optional. Website URL.", "type": ["string", "null"] }
+ "useDefaultBillingEntity": {
+ "description": "Optional. Use default billing entity flag.",
+ "type": ["boolean", "null"]
+ }
},
- "required": ["id", "name", "doValidateOrderPrice", "billToCodeRequiredOnOrder"]
+ "required": ["id", "name", "doValidateOrderPrice", "billingEntities"]
}
diff --git a/schema/Api/CustomerBroker/UpdateCustomerResponse.json b/schema/Api/CustomerBroker/UpdateCustomerResponse.json
index a354b0fb..4b16ef3a 100644
--- a/schema/Api/CustomerBroker/UpdateCustomerResponse.json
+++ b/schema/Api/CustomerBroker/UpdateCustomerResponse.json
@@ -5,9 +5,12 @@
"additionalProperties": false,
"properties": {
"data": {
+ "description": "Response data.",
"type": ["object", "null"],
"additionalProperties": false,
- "properties": { "id": { "type": ["string", "null"] } }
+ "properties": {
+ "id": { "description": "Updated customer identifier.", "type": ["string", "null"] }
+ }
},
"failureMessages": { "type": "array", "items": {"type": "string"} },
"informationalMessages": { "type": "array", "items": {"type": "string"} },
diff --git a/schema/Api/OfferBroker/CalculateOfferPricingRequest.json b/schema/Api/OfferBroker/CalculateOfferPricingRequest.json
new file mode 100644
index 00000000..517cff70
--- /dev/null
+++ b/schema/Api/OfferBroker/CalculateOfferPricingRequest.json
@@ -0,0 +1,47 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CalculateOfferPricingRequest.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "offers": {
+ "description": "Required. List of offers to calculate pricing for.",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "offerId": {
+ "description": "Required. The offer ID to calculate pricing for.",
+ "type": "string",
+ "minLength": 1
+ },
+ "pageCount": {
+ "description": "Page count (used only if tiers and page count tiers exist).",
+ "type": ["integer", "null"],
+ "format": "int32"
+ },
+ "productIds": {
+ "description": "Product IDs for filtering (optional).",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
+ },
+ "quantity": {
+ "description": "Required. The quantity to calculate pricing for.",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1
+ }
+ },
+ "required": ["offerId", "quantity"]
+ },
+ "minItems": 1
+ },
+ "priceClasses": {
+ "description": "Preferred price classes (priority order). Nullable.",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
+ }
+ },
+ "required": ["offers"]
+}
diff --git a/schema/Api/OfferBroker/CalculateOfferPricingResponse.json b/schema/Api/OfferBroker/CalculateOfferPricingResponse.json
new file mode 100644
index 00000000..c03427b6
--- /dev/null
+++ b/schema/Api/OfferBroker/CalculateOfferPricingResponse.json
@@ -0,0 +1,58 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "CalculateOfferPricingResponse.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "type": ["object", "null"],
+ "additionalProperties": false,
+ "properties": {
+ "customerId": {
+ "description": "The customer ID for which pricing was calculated.",
+ "type": "string"
+ },
+ "offers": {
+ "description": "List of calculated offer pricing results.",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "offerId": {"description": "The offer ID.", "type": "string"},
+ "extendedPrice": {
+ "description": "Total price (unitPrice * quantity).",
+ "type": "number",
+ "format": "double"
+ },
+ "pageCount": {
+ "description": "Page count if applicable.",
+ "type": ["integer", "null"],
+ "format": "int32"
+ },
+ "priceClass": { "description": "The price class applied.", "type": ["string", "null"] },
+ "productIds": {
+ "description": "Product IDs if specified.",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
+ },
+ "quantity": {"description": "The quantity requested.", "type": "integer", "format": "int32"},
+ "unitPrice": {"description": "Price per unit.", "type": "number", "format": "double"}
+ },
+ "required": ["offerId", "quantity", "unitPrice", "extendedPrice"]
+ }
+ },
+ "totalExtendedPrice": {
+ "description": "Sum of all extended prices.",
+ "type": "number",
+ "format": "double"
+ }
+ },
+ "required": ["customerId", "offers", "totalExtendedPrice"]
+ },
+ "failureMessages": { "type": "array", "items": {"type": "string"} },
+ "informationalMessages": { "type": "array", "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean"}
+ },
+ "required": ["failureMessages", "informationalMessages", "operationWasSuccessful", "data"]
+}
diff --git a/schema/Api/OfferBroker/GetCalculateOfferPricingParameters.json b/schema/Api/OfferBroker/GetCalculateOfferPricingParameters.json
new file mode 100644
index 00000000..6b5e6cbd
--- /dev/null
+++ b/schema/Api/OfferBroker/GetCalculateOfferPricingParameters.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "CorrelationId": {
+ "description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
+ "in": "header",
+ "name": "x-correlation-id",
+ "schema": {"type": "string"},
+ "required": false
+ }
+}
diff --git a/schema/Api/OfferBroker/GetCalculateOfferPricingRequest.json b/schema/Api/OfferBroker/GetCalculateOfferPricingRequest.json
new file mode 100644
index 00000000..10ca2cbd
--- /dev/null
+++ b/schema/Api/OfferBroker/GetCalculateOfferPricingRequest.json
@@ -0,0 +1,48 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "GetCalculateOfferPricingRequest.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "offers": {
+ "description": "List of offers to calculate pricing for. At least one offer must be provided.",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "offerId": {
+ "description": "Offer ID. Required, must not be empty.",
+ "type": "string",
+ "minLength": 1
+ },
+ "pageCount": {
+ "description": "Page count (used only if tiers and page count tiers exist). Must be >= 1 when provided.",
+ "type": ["integer", "null"],
+ "format": "int32",
+ "minimum": 1
+ },
+ "productIds": {
+ "description": "Optional product IDs for product-list type offers.",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
+ },
+ "quantity": {
+ "description": "Quantity to order. Must be >= 0.",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 0
+ }
+ },
+ "required": ["offerId", "quantity"]
+ },
+ "minItems": 1
+ },
+ "priceClasses": {
+ "description": "Preferred price classes (priority order). Nullable.",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
+ }
+ },
+ "required": ["offers"]
+}
diff --git a/schema/Api/OfferBroker/GetCalculateOfferPricingResponse.json b/schema/Api/OfferBroker/GetCalculateOfferPricingResponse.json
new file mode 100644
index 00000000..d8dcc652
--- /dev/null
+++ b/schema/Api/OfferBroker/GetCalculateOfferPricingResponse.json
@@ -0,0 +1,69 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "GetCalculateOfferPricingResponse.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "description": "Response data containing calculated pricing.",
+ "type": ["object", "null"],
+ "additionalProperties": false,
+ "properties": {
+ "customerId": {"description": "Customer ID used for pricing calculation.", "type": "string"},
+ "offers": {
+ "description": "List of calculated offer pricing details.",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "offerId": {"description": "Offer ID.", "type": "string", "minLength": 1},
+ "extendedPrice": {
+ "description": "Extended price (unit price * quantity + surcharges).",
+ "type": "number",
+ "format": "double",
+ "minimum": 0
+ },
+ "pageCount": {
+ "description": "Page count used for pricing.",
+ "type": ["integer", "null"],
+ "format": "int32",
+ "minimum": 1
+ },
+ "priceClass": { "description": "Price class applied.", "type": ["string", "null"] },
+ "productIds": {
+ "description": "Product IDs included in pricing.",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
+ },
+ "quantity": {
+ "description": "Quantity ordered.",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1
+ },
+ "unitPrice": {
+ "description": "Unit price per item.",
+ "type": "number",
+ "format": "double",
+ "minimum": 0
+ }
+ },
+ "required": ["offerId", "quantity", "unitPrice", "extendedPrice"]
+ }
+ },
+ "totalExtendedPrice": {
+ "description": "Total extended price for all offers.",
+ "type": "number",
+ "format": "double",
+ "minimum": 0
+ }
+ },
+ "required": ["customerId", "offers", "totalExtendedPrice"]
+ },
+ "failureMessages": { "type": "array", "items": {"type": "string"} },
+ "informationalMessages": { "type": "array", "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean"}
+ },
+ "required": ["failureMessages", "informationalMessages", "operationWasSuccessful", "data"]
+}
diff --git a/schema/Api/OfferBroker/GetOfferInventoryResponse.json b/schema/Api/OfferBroker/GetOfferInventoryResponse.json
index 5a4e31df..8a32bbfa 100644
--- a/schema/Api/OfferBroker/GetOfferInventoryResponse.json
+++ b/schema/Api/OfferBroker/GetOfferInventoryResponse.json
@@ -17,7 +17,7 @@
"onBackorder" : { "type": ["integer", "null"], "format": "int32" },
"reserved" : { "type": "integer" , "format": "int32" }
},
- "required": ["offerId", "currentOnHandQty", "currentAvailableQty", "reserved"]
+ "required": ["offerId", "currentAvailableQty", "reserved"]
}
},
"failureMessages": { "type": "array", "items": {"type": "string"} },
diff --git a/schema/Api/OfferBroker/GetOfferResponse.json b/schema/Api/OfferBroker/GetOfferResponse.json
index 5787a526..ac135341 100644
--- a/schema/Api/OfferBroker/GetOfferResponse.json
+++ b/schema/Api/OfferBroker/GetOfferResponse.json
@@ -74,9 +74,12 @@
"minLength": 1
},
"offerType": {
- "description": "Required. Must be one of: Product List, Drop Ship, Download, VDM, Omnichannel.",
+ "description": "Required. Must be one of: Direct Mail, Download, Drop Ship, Email, Omnichannel, Product List, VDM.",
"type": "string",
- "enum": ["Product List", "Drop Ship", "Download", "VDM", "Omnichannel"],
+ "enum": [
+ "Direct Mail", "Download", "Drop Ship", "Email", "Omnichannel", "Product List",
+ "VDM"
+ ],
"minLength": 1
},
"omniChannel": {
diff --git a/schema/Api/OfferBroker/GetOffersResponse.json b/schema/Api/OfferBroker/GetOffersResponse.json
index 5d52a323..30474b99 100644
--- a/schema/Api/OfferBroker/GetOffersResponse.json
+++ b/schema/Api/OfferBroker/GetOffersResponse.json
@@ -76,9 +76,12 @@
"minLength": 1
},
"offerType": {
- "description": "Required. Must be one of: Product List, Drop Ship, Download, VDM, Omnichannel.",
+ "description": "Required. Must be one of: Direct Mail, Download, Drop Ship, Email, Omnichannel, Product List, VDM.",
"type": "string",
- "enum": ["Product List", "Drop Ship", "Download", "VDM", "Omnichannel"],
+ "enum": [
+ "Direct Mail", "Download", "Drop Ship", "Email", "Omnichannel", "Product List",
+ "VDM"
+ ],
"minLength": 1
},
"omniChannel": {
diff --git a/schema/Api/OfferBroker/InternalCalculateOfferPricingParameters.json b/schema/Api/OfferBroker/InternalCalculateOfferPricingParameters.json
new file mode 100644
index 00000000..1112be99
--- /dev/null
+++ b/schema/Api/OfferBroker/InternalCalculateOfferPricingParameters.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "CorrelationId": {
+ "description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
+ "in": "header",
+ "name": "x-correlation-id",
+ "schema": {"type": "string", "format": "uuid"},
+ "required": false
+ }
+}
diff --git a/schema/Api/OfferBroker/InternalCalculateOfferPricingRequest.json b/schema/Api/OfferBroker/InternalCalculateOfferPricingRequest.json
new file mode 100644
index 00000000..c2aa4efe
--- /dev/null
+++ b/schema/Api/OfferBroker/InternalCalculateOfferPricingRequest.json
@@ -0,0 +1,38 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "InternalCalculateOfferPricingRequest.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "customerId": {"description": "Customer ID for pricing calculation.", "type": "string"},
+ "offers": {
+ "description": "List of offers to calculate pricing for.",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "offerId": {"description": "Offer ID to price.", "type": "string"},
+ "pageCount": {
+ "description": "Page count (used if tiers and page count tiers exist).",
+ "type": ["integer", "null"],
+ "format": "int32"
+ },
+ "productIds": {
+ "description": "Product IDs.",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
+ },
+ "quantity": {"description": "Quantity to price.", "type": "integer", "format": "int32"}
+ },
+ "required": ["offerId", "quantity"]
+ }
+ },
+ "priceClasses": {
+ "description": "Preferred price classes (priority order).",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
+ }
+ },
+ "required": ["customerId", "offers"]
+}
diff --git a/schema/Api/OfferBroker/InternalCalculateOfferPricingResponse.json b/schema/Api/OfferBroker/InternalCalculateOfferPricingResponse.json
new file mode 100644
index 00000000..c6b54959
--- /dev/null
+++ b/schema/Api/OfferBroker/InternalCalculateOfferPricingResponse.json
@@ -0,0 +1,69 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "InternalCalculateOfferPricingResponse.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "description": "Response data containing calculated pricing.",
+ "type": ["object", "null"],
+ "additionalProperties": false,
+ "properties": {
+ "customerId": {"description": "Customer ID used for pricing calculation.", "type": "string"},
+ "offers": {
+ "description": "List of calculated offer pricing details.",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "offerId": {"description": "Offer ID.", "type": "string", "minLength": 1},
+ "extendedPrice": {
+ "description": "Extended price (unit price * quantity + surcharges).",
+ "type": "number",
+ "format": "double",
+ "minimum": 0
+ },
+ "pageCount": {
+ "description": "Page count used for pricing.",
+ "type": ["integer", "null"],
+ "format": "int32",
+ "minimum": 1
+ },
+ "priceClass": { "description": "Price class applied.", "type": ["string", "null"] },
+ "productIds": {
+ "description": "Product IDs included in pricing.",
+ "type": ["array", "null"],
+ "items": {"type": "string"}
+ },
+ "quantity": {
+ "description": "Quantity ordered.",
+ "type": "integer",
+ "format": "int32",
+ "minimum": 1
+ },
+ "unitPrice": {
+ "description": "Unit price per item.",
+ "type": "number",
+ "format": "double",
+ "minimum": 0
+ }
+ },
+ "required": ["offerId", "quantity", "unitPrice", "extendedPrice"]
+ }
+ },
+ "totalExtendedPrice": {
+ "description": "Total extended price for all offers.",
+ "type": "number",
+ "format": "double",
+ "minimum": 0
+ }
+ },
+ "required": ["customerId", "offers", "totalExtendedPrice"]
+ },
+ "failureMessages": { "type": "array", "items": {"type": "string"} },
+ "informationalMessages": { "type": "array", "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean"}
+ },
+ "required": ["failureMessages", "informationalMessages", "operationWasSuccessful", "data"]
+}
diff --git a/schema/Api/OfferBroker/InternalGetOffersResponse.json b/schema/Api/OfferBroker/InternalGetOffersResponse.json
index 3fa7b436..8c00cdfb 100644
--- a/schema/Api/OfferBroker/InternalGetOffersResponse.json
+++ b/schema/Api/OfferBroker/InternalGetOffersResponse.json
@@ -76,9 +76,12 @@
"minLength": 1
},
"offerType": {
- "description": "Required. Must be one of: Product List, Drop Ship, Download, VDM, Omnichannel.",
+ "description": "Required. Must be one of: Direct Mail, Download, Drop Ship, Email, Omnichannel, Product List, VDM.",
"type": "string",
- "enum": ["Product List", "Drop Ship", "Download", "VDM", "Omnichannel"],
+ "enum": [
+ "Direct Mail", "Download", "Drop Ship", "Email", "Omnichannel", "Product List",
+ "VDM"
+ ],
"minLength": 1
},
"omniChannel": {
diff --git a/schema/Api/OfferBroker/UpdateOfferRequest.json b/schema/Api/OfferBroker/UpdateOfferRequest.json
index e5bf2079..ad6b7638 100644
--- a/schema/Api/OfferBroker/UpdateOfferRequest.json
+++ b/schema/Api/OfferBroker/UpdateOfferRequest.json
@@ -15,7 +15,7 @@
"properties": {
"offerId": { "type": ["string", "null"] },
"omsOfferId": {
- "description": "Unique offer identifier. Must not be empty.",
+ "description": "Unique offer identifier as assigned by the Offer Management System; used by the Integration Broker for cross-system reference.",
"type": ["string", "null"]
},
"xmPieTemplateId": { "type": ["string", "null"] },
@@ -79,9 +79,12 @@
"minLength": 1
},
"offerType": {
- "description": "Required. Must be one of: Product List, Drop Ship, Download, VDM, Omnichannel.",
+ "description": "Required. Must be one of: Direct Mail, Download, Drop Ship, Email, Omnichannel, Product List, VDM.",
"type": "string",
- "enum": ["Product List", "Drop Ship", "Download", "VDM", "Omnichannel"],
+ "enum": [
+ "Direct Mail", "Download", "Drop Ship", "Email", "Omnichannel", "Product List",
+ "VDM"
+ ],
"minLength": 1
},
"omniChannel": {
@@ -150,7 +153,7 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "id": {"type": "string"},
+ "id": { "type": ["string", "null"] },
"products": {
"type": ["array", "null"],
"items": {
@@ -165,8 +168,7 @@
},
"minItems": 1
}
- },
- "required": ["id"]
+ }
}
},
"requiresApproval": { "type": ["boolean", "null"] },
@@ -181,5 +183,5 @@
"unitOfMeasure": { "type": ["string", "null"] },
"weightInPounds": { "type": ["number", "null"], "format": "float" }
},
- "required": ["number", "offerType", "schemaVersion"]
+ "required": ["number", "offerType"]
}
diff --git a/schema/Api/OrderBroker/InternalNewOrderRequest.json b/schema/Api/OrderBroker/InternalNewOrderRequest.json
index 68c3a414..f8ff1cea 100644
--- a/schema/Api/OrderBroker/InternalNewOrderRequest.json
+++ b/schema/Api/OrderBroker/InternalNewOrderRequest.json
@@ -204,7 +204,7 @@
"components": {
"type": ["array", "null"],
"items": {
- "description": "Order.LineItems.Products level component details",
+ "description": "Product component details",
"type": "object",
"additionalProperties": false,
"properties": {
diff --git a/schema/Api/OrderBroker/InternalNewOrderResponse.json b/schema/Api/OrderBroker/InternalNewOrderResponse.json
new file mode 100644
index 00000000..caed1c58
--- /dev/null
+++ b/schema/Api/OrderBroker/InternalNewOrderResponse.json
@@ -0,0 +1,18 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "InternalNewOrderResponse.json",
+ "description": "Response returned from the internal new order endpoint",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "type": ["object", "null"],
+ "additionalProperties": false,
+ "properties": { "otpOrderId": {"description": "Order identifier", "type": "string"} }
+ },
+ "failureMessages": { "type": "array", "items": {"type": "string"} },
+ "informationalMessages": { "type": "array", "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean"}
+ },
+ "required": ["failureMessages", "informationalMessages", "operationWasSuccessful", "data"]
+}
diff --git a/schema/Api/OrderBroker/InternalUpdateOrderParameters.json b/schema/Api/OrderBroker/InternalUpdateOrderParameters.json
new file mode 100644
index 00000000..b6c6720b
--- /dev/null
+++ b/schema/Api/OrderBroker/InternalUpdateOrderParameters.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "CorrelationId": {
+ "description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
+ "in": "header",
+ "name": "x-correlation-id",
+ "schema": {"type": "string", "format": "uuid"},
+ "required": false
+ },
+ "UserId": {
+ "description": "User ID of the person making the update request. This header is required for audit and authorization purposes.",
+ "in": "header",
+ "name": "x-user-id",
+ "schema": {"type": "string"},
+ "required": true
+ }
+}
diff --git a/schema/Api/OrderBroker/NewOrderRequest.json b/schema/Api/OrderBroker/NewOrderRequest.json
index 7cca0185..d8a2580b 100644
--- a/schema/Api/OrderBroker/NewOrderRequest.json
+++ b/schema/Api/OrderBroker/NewOrderRequest.json
@@ -3,6 +3,35 @@
"$id": "NewOrderRequest.json",
"description": "Details for Order JSON schema. Conditional constraints (enforced in backend): If defaultBillToKey, defaultOrderedByKey, or defaultShipToKey are null, corresponding keys must be set on each line item. If defaultBillToKey, defaultOrderedByKey, or defaultShipToKey are not null, they must match a key in billTos, orderedBys, or shipTos respectively. OfferLineNumber, productLineNumber, and componentLineNumber values must be unique within their collections if provided.",
"type": "object",
+ "allOf": [
+ {
+ "description": "If defaultShipToKey is null or not provided, each line item must specify a shipToKey.",
+ "if": {
+ "anyOf": [
+ { "properties": { "defaultShipToKey": {"type": "null"} } },
+ { "not": { "required": ["defaultShipToKey"] } }
+ ]
+ },
+ "then": {
+ "properties": {
+ "lineItems": {
+ "items": { "properties": { "shipToKey": {"type": "string"} }, "required": ["shipToKey"] }
+ }
+ }
+ }
+ },
+ {
+ "description": "Each line item must have an offerLineNumber.",
+ "properties": {
+ "lineItems": {
+ "items": {
+ "properties": { "offerLineNumber": {"type": "string", "minLength": 1} },
+ "required": ["offerLineNumber"]
+ }
+ }
+ }
+ }
+ ],
"additionalProperties": false,
"properties": {
"orderId": {
@@ -458,111 +487,6 @@
}
},
"required": ["orderId", "createDateTime", "lineItems", "billTos", "shipTos"],
- "allOf": [
- {
- "description": "Either a defaultBillToKey must be provided, or the billTos array must be populated.",
- "oneOf": [
- {
- "properties": { "defaultBillToKey": {"type": "string"} },
- "required": ["defaultBillToKey"]
- },
- {
- "properties": { "billTos": {"type": "array", "minItems": 1} },
- "required": ["billTos"]
- }
- ]
- },
- {
- "description": "Either a defaultShipToKey must be provided, or the shipTos array must be populated.",
- "oneOf": [
- {
- "properties": { "defaultShipToKey": {"type": "string"} },
- "required": ["defaultShipToKey"]
- },
- {
- "properties": { "shipTos": {"type": "array", "minItems": 1} },
- "required": ["shipTos"]
- }
- ]
- },
- {
- "description": "If a defaultBillToKey is not provided at the root, each line item must specify a billToKey.",
- "oneOf": [
- {
- "properties": { "defaultBillToKey": {"type": "string"} },
- "required": ["defaultBillToKey"]
- },
- {
- "properties": {
- "lineItems": {
- "type": ["array", "null"],
- "items": {
- "type": "object",
- "properties": { "billToKey": {"type": "string"} },
- "required": ["billToKey"]
- }
- }
- }
- }
- ]
- },
- {
- "description": "If a defaultShipToKey is not provided at the root, each line item must specify a shipToKey.",
- "oneOf": [
- {
- "properties": { "defaultShipToKey": {"type": "string"} },
- "required": ["defaultShipToKey"]
- },
- {
- "properties": {
- "lineItems": {
- "type": ["array", "null"],
- "items": { "properties": { "shipToKey": {"type": "string"} }, "required": ["shipToKey"] }
- }
- }
- }
- ]
- },
- {
- "description": "If a defaultOrderedByKey is not provided at the root, each line item must specify an orderedByKey.",
- "oneOf": [
- {
- "properties": { "defaultOrderedByKey": {"type": "string"} },
- "required": ["defaultOrderedByKey"]
- },
- {
- "properties": {
- "lineItems": {
- "type": ["array", "null"],
- "items": {
- "properties": { "orderedByKey": {"type": "string"} },
- "required": ["orderedByKey"]
- }
- }
- }
- },
- {
- "properties": {
- "defaultOrderedByKey": {"type": "null"},
- "orderedBys": { "oneOf": [ {"type": "null"}, {"type": "array", "maxItems": 0} ] }
- },
- "required": ["defaultOrderedByKey", "orderedBys"]
- }
- ]
- },
- {
- "properties": {
- "lineItems": {
- "type": ["array", "null"],
- "items": {
- "type": "object",
- "properties": { "offerLineNumber": {"type": "string", "minLength": 1} },
- "required": ["offerLineNumber"]
- }
- }
- }
- }
- ],
"examples": [
{
"orderId": "7-mkkutsde-3-K-5649-4005-64",
diff --git a/schema/Api/OrderBroker/NewOrderResponse.json b/schema/Api/OrderBroker/NewOrderResponse.json
new file mode 100644
index 00000000..a46f5bba
--- /dev/null
+++ b/schema/Api/OrderBroker/NewOrderResponse.json
@@ -0,0 +1,18 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "NewOrderResponse.json",
+ "description": "Response returned from the new order endpoint",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "type": ["object", "null"],
+ "additionalProperties": false,
+ "properties": { "otpOrderId": {"description": "Order identifier", "type": "string"} }
+ },
+ "failureMessages": { "type": "array", "items": {"type": "string"} },
+ "informationalMessages": { "type": "array", "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean"}
+ },
+ "required": ["failureMessages", "informationalMessages", "operationWasSuccessful", "data"]
+}
diff --git a/schema/Api/OrderBroker/UpdateFulfillmentOrderRequest.json b/schema/Api/OrderBroker/UpdateFulfillmentOrderRequest.json
index e311185c..e8d89f49 100644
--- a/schema/Api/OrderBroker/UpdateFulfillmentOrderRequest.json
+++ b/schema/Api/OrderBroker/UpdateFulfillmentOrderRequest.json
@@ -72,9 +72,9 @@
"items": {
"type": "object",
"properties": {
- "fulfillmentSystemProductId": { "type": ["string", "null"] },
- "productId": {"type": "string"},
- "productLineId": { "type": ["string", "null"] },
+ "fulfillmentSystemProductId": {"type": "string"},
+ "productId": { "type": ["string", "null"] },
+ "productLineId": {"type": "string"},
"associatedFileName": { "type": ["string", "null"] },
"comment": { "type": ["string", "null"] },
"pageCount": { "type": ["integer", "null"], "format": "int32" },
@@ -87,7 +87,7 @@
},
"status": { "type": ["string", "null"] }
},
- "required": ["productId", "productLineId", "fulfillmentSystemProductId"]
+ "required": ["productLineId", "fulfillmentSystemProductId"]
}
},
"rushOrder": { "type": ["boolean", "null"] },
@@ -181,9 +181,10 @@
"items": {
"type": "object",
"properties": {
- "productLineId": { "type": ["string", "null"] },
- "shipQuantity" : { "type": ["number", "null"], "format": "double" }
- }
+ "productLineId": {"type": "string"},
+ "shipQuantity": {"type": "number", "exclusiveMinimum": 0, "format": "double"}
+ },
+ "required": ["productLineId", "shipQuantity"]
}
},
"trackingNumber": {"type": "string"}
diff --git a/schema/Api/OrderBroker/UpdateOrderRequest.json b/schema/Api/OrderBroker/UpdateOrderRequest.json
index 2bfa717e..7a0971d9 100644
--- a/schema/Api/OrderBroker/UpdateOrderRequest.json
+++ b/schema/Api/OrderBroker/UpdateOrderRequest.json
@@ -338,8 +338,5 @@
},
"updateDateTime": { "description": "Update date time", "type": ["string", "null"] }
},
- "required": [
- "sourceSystemCustomerId", "sourceSystemId", "orderId", "shippingHandlingTax",
- "billTos", "shipTos"
- ]
+ "required": ["orderId", "shippingHandlingTax", "billTos", "shipTos"]
}
diff --git a/schema/Api/ProductBroker/GetAllProductsParameters.json b/schema/Api/ProductBroker/GetAllProductsParameters.json
index 6b5e6cbd..f42aadd9 100644
--- a/schema/Api/ProductBroker/GetAllProductsParameters.json
+++ b/schema/Api/ProductBroker/GetAllProductsParameters.json
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
- "CorrelationId": {
+ "correlationId": {
"description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
"in": "header",
"name": "x-correlation-id",
diff --git a/schema/Api/ProductBroker/GetAllProductsResponse.json b/schema/Api/ProductBroker/GetAllProductsResponse.json
index 91bb7a0c..04da531e 100644
--- a/schema/Api/ProductBroker/GetAllProductsResponse.json
+++ b/schema/Api/ProductBroker/GetAllProductsResponse.json
@@ -10,30 +10,32 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "ProductId": {
+ "billingEntityId": {
+ "description": "Billing entity ID associated with the product",
+ "type": ["string", "null"]
+ },
+ "productId": {
"description": "Unique ID for component product within Integration Broker",
"type": "string"
},
- "Color": { "description": "Color of product", "type": ["string", "null"] },
- "LastUpdateDateTimeUtc": {
+ "lastUpdateDateTimeUtc": {
"description": "Date and time product was last updated in product management system (system where ordered line item products will be managed)",
"type": "string"
},
- "ProductDescription": {
+ "productDescription": {
"description": "Description for component product within product management system (system where ordered line item products will be managed)",
"type": ["string", "null"]
},
- "ProductNumber": {
+ "productNumber": {
"description": "Name for component product within product management system (system where ordered line item products will be managed)",
"type": "string"
},
- "ProductOwner": { "description": "Owner of component product", "type": ["string", "null"] },
- "ProductType": {"description": "Type of the product", "type": "string"},
- "Size": { "description": "Size of component product", "type": ["string", "null"] },
- "Status": {"description": "Current status of the product", "type": "string"},
- "UnitOfMeasure": { "description": "Unit of measure for the product", "type": ["string", "null"] }
+ "productOwner": { "description": "Owner of component product", "type": ["string", "null"] },
+ "productType": {"description": "Type of the product", "type": "string"},
+ "status": {"description": "Current status of the product", "type": "string"},
+ "unitOfMeasure": { "description": "Unit of measure for the product", "type": ["string", "null"] }
},
- "required": ["ProductId", "ProductNumber", "ProductType", "Status", "LastUpdateDateTimeUtc"]
+ "required": ["productId", "productNumber", "productType", "status", "lastUpdateDateTimeUtc"]
}
},
"failureMessages": { "type": "array", "items": {"type": "string"} },
diff --git a/schema/Api/ProductBroker/GetProductInventoryParameters.json b/schema/Api/ProductBroker/GetProductInventoryParameters.json
index bcd83fc5..ea7249f1 100644
--- a/schema/Api/ProductBroker/GetProductInventoryParameters.json
+++ b/schema/Api/ProductBroker/GetProductInventoryParameters.json
@@ -1,13 +1,13 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
- "CorrelationId": {
+ "correlationId": {
"description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
"in": "header",
"name": "x-correlation-id",
"schema": {"type": "string"},
"required": false
},
- "ProductId": {
+ "productId": {
"in": "path",
"name": "productId",
"schema": {"type": "string"},
diff --git a/schema/Api/ProductBroker/GetProductInventoryResponse.json b/schema/Api/ProductBroker/GetProductInventoryResponse.json
index 209ca97d..3aefd473 100644
--- a/schema/Api/ProductBroker/GetProductInventoryResponse.json
+++ b/schema/Api/ProductBroker/GetProductInventoryResponse.json
@@ -8,37 +8,44 @@
"type": ["object", "null"],
"additionalProperties": false,
"properties": {
- "ProductId": {
+ "billingEntityId": {
+ "description": "Billing entity ID associated with the product inventory",
+ "type": "string"
+ },
+ "productId": {
"description": "Unique ID for component product within Integration Broker",
"type": "string"
},
- "CurrentAvailableQty": {
+ "currentAvailableQty": {
"description": "Current available quantity for the product",
"type": "integer",
"format": "int32"
},
- "CurrentOnHandQty": {
+ "currentOnHandQty": {
"description": "Current quantity on hand for the product",
"type": "integer",
"format": "int32"
},
- "Expected": {
+ "expected": {
"description": "Expected quantity for the product",
"type": ["integer", "null"],
"format": "int32"
},
- "OnBackorder": {
+ "onBackorder": {
"description": "Quantity on backorder for the product",
"type": ["integer", "null"],
"format": "int32"
},
- "Reserved": {
+ "reserved": {
"description": "Quantity reserved for the product",
"type": "integer",
"format": "int32"
}
},
- "required": ["ProductId", "CurrentOnHandQty", "CurrentAvailableQty", "Reserved"]
+ "required": [
+ "productId", "currentOnHandQty", "currentAvailableQty", "reserved",
+ "billingEntityId"
+ ]
},
"failureMessages": { "type": "array", "items": {"type": "string"} },
"informationalMessages": { "type": "array", "items": {"type": "string"} },
diff --git a/schema/Api/ProductBroker/GetProductsInventoryParameters.json b/schema/Api/ProductBroker/GetProductsInventoryParameters.json
index b5de1105..00b7c44f 100644
--- a/schema/Api/ProductBroker/GetProductsInventoryParameters.json
+++ b/schema/Api/ProductBroker/GetProductsInventoryParameters.json
@@ -1,11 +1,11 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
- "CorrelationId": {
+ "correlationId": {
"description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
"in": "header",
"name": "x-correlation-id",
"schema": {"type": "string"},
"required": false
},
- "ProductIds": { "in": "query", "name": "productIds", "schema": {"type": "string"} }
+ "productIds": { "in": "query", "name": "productIds", "schema": {"type": "string"} }
}
diff --git a/schema/Api/ProductBroker/GetProductsInventoryResponse.json b/schema/Api/ProductBroker/GetProductsInventoryResponse.json
index 5d69b754..e10beeb2 100644
--- a/schema/Api/ProductBroker/GetProductsInventoryResponse.json
+++ b/schema/Api/ProductBroker/GetProductsInventoryResponse.json
@@ -10,37 +10,44 @@
"type": "object",
"additionalProperties": false,
"properties": {
- "ProductId": {
+ "billingEntityId": {
+ "description": "Billing entity ID associated with the product inventory",
+ "type": "string"
+ },
+ "productId": {
"description": "Unique ID for component product within Integration Broker",
"type": "string"
},
- "CurrentAvailableQty": {
+ "currentAvailableQty": {
"description": "Current available quantity for the product",
"type": "integer",
"format": "int32"
},
- "CurrentOnHandQty": {
+ "currentOnHandQty": {
"description": "Current quantity on hand for the product",
"type": "integer",
"format": "int32"
},
- "Expected": {
+ "expected": {
"description": "Expected quantity for the product",
"type": ["integer", "null"],
"format": "int32"
},
- "OnBackorder": {
+ "onBackorder": {
"description": "Quantity on backorder for the product",
"type": ["integer", "null"],
"format": "int32"
},
- "Reserved": {
+ "reserved": {
"description": "Quantity reserved for the product",
"type": "integer",
"format": "int32"
}
},
- "required": ["ProductId", "CurrentOnHandQty", "CurrentAvailableQty", "Reserved"]
+ "required": [
+ "productId", "currentOnHandQty", "currentAvailableQty", "reserved",
+ "billingEntityId"
+ ]
}
},
"failureMessages": { "type": "array", "items": {"type": "string"} },
diff --git a/schema/Api/ProductBroker/GetProductsParameters.json b/schema/Api/ProductBroker/GetProductsParameters.json
new file mode 100644
index 00000000..6bf74981
--- /dev/null
+++ b/schema/Api/ProductBroker/GetProductsParameters.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "correlationId": {
+ "description": "Correlation ID. This is added by the API Management service if not present. Once added, it should be propagated to any downstream services.",
+ "in": "header",
+ "name": "x-correlation-id",
+ "schema": {"type": "string"},
+ "required": false
+ },
+ "productIds": {
+ "description": "Array of product IDs to retrieve. Each ID should be in format {fulfillmentSystemId}-{fulfillmentSystemProductId}.",
+ "in": "query",
+ "name": "productIds",
+ "schema": {"type": "string"},
+ "required": true
+ }
+}
diff --git a/schema/Api/ProductBroker/GetProductsResponse.json b/schema/Api/ProductBroker/GetProductsResponse.json
new file mode 100644
index 00000000..f512f87b
--- /dev/null
+++ b/schema/Api/ProductBroker/GetProductsResponse.json
@@ -0,0 +1,46 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "GetProductsResponse.json",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "data": {
+ "type": ["array", "null"],
+ "items": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "billingEntityId": {
+ "description": "Billing entity ID associated with the product",
+ "type": ["string", "null"]
+ },
+ "productId": {
+ "description": "Unique ID for component product within Integration Broker",
+ "type": "string"
+ },
+ "lastUpdateDateTimeUtc": {
+ "description": "Date and time product was last updated in product management system (system where ordered line item products will be managed)",
+ "type": "string"
+ },
+ "productDescription": {
+ "description": "Description for component product within product management system (system where ordered line item products will be managed)",
+ "type": ["string", "null"]
+ },
+ "productNumber": {
+ "description": "Name for component product within product management system (system where ordered line item products will be managed)",
+ "type": "string"
+ },
+ "productOwner": { "description": "Owner of component product", "type": ["string", "null"] },
+ "productType": {"description": "Type of the product", "type": "string"},
+ "status": {"description": "Current status of the product", "type": "string"},
+ "unitOfMeasure": { "description": "Unit of measure for the product", "type": ["string", "null"] }
+ },
+ "required": ["productId", "productNumber", "productType", "status", "lastUpdateDateTimeUtc"]
+ }
+ },
+ "failureMessages": { "type": "array", "items": {"type": "string"} },
+ "informationalMessages": { "type": "array", "items": {"type": "string"} },
+ "operationWasSuccessful": {"type": "boolean"}
+ },
+ "required": ["failureMessages", "informationalMessages", "operationWasSuccessful", "data"]
+}
diff --git a/schema/Event/Customer/Customer.json b/schema/Event/Customer/Customer.json
index 9fddd7b7..a2e023b0 100644
--- a/schema/Event/Customer/Customer.json
+++ b/schema/Event/Customer/Customer.json
@@ -80,6 +80,7 @@
"required": ["Address1", "City", "Country", "PostalCode", "StateProvince"]
},
"ContactEmailAddress": { "description": "Contact email address", "type": ["string", "null"] },
+ "DirectMailProvider": { "description": "Direct mail provider", "type": ["string", "null"] },
"DoValidateOrderPrice": {"description": "Whether to validate order price", "type": "boolean"},
"EmailNotificationSubscriptions": {
"description": "Email notification subscriptions",
@@ -97,7 +98,10 @@
"required": ["EmailNotificationTemplateId", "EmailAddresses"]
}
},
+ "EmailServiceProvider": { "description": "Email service provider", "type": ["string", "null"] },
+ "InheritParentOffers": {"description": "Whether to inherit parent offers", "type": "boolean"},
"InvoiceEmailAddress": { "description": "Invoice email address", "type": ["string", "null"] },
+ "MailingFileLocation": { "description": "Mailing file location", "type": ["string", "null"] },
"Name": {"description": "Customer name", "type": "string"},
"OfferRevisionDelimiter": { "description": "Offer revision delimiter", "type": ["string", "null"] },
"Parent": {
@@ -154,7 +158,8 @@
}
},
"Subsidiary": { "description": "Subsidiary", "type": ["string", "null"] },
+ "UseDefaultBillingEntity": {"description": "Whether to use default billing entity", "type": "boolean"},
"Website": { "description": "Website", "type": ["string", "null"] }
},
- "required": ["Id", "Name", "BillToCodeRequiredOnOrder", "DoValidateOrderPrice"]
+ "required": ["Id", "Name"]
}