Skip to content

Schema Changes - 2025-06-05

This document contains the changes to the schema files compared to the main branch.

Changes

diff --git a/schema/Api/CustomerBroker/GetCustomerResponse.json b/schema/Api/CustomerBroker/GetCustomerResponse.json
index 539ea54..970fe2c 100644
--- a/schema/Api/CustomerBroker/GetCustomerResponse.json
+++ b/schema/Api/CustomerBroker/GetCustomerResponse.json
@@ -5,7 +5,11 @@
     {"$ref": "../../Common/ApiResponseBase.json"},
     {
       "type": "object",
-      "properties": { "data": { "oneOf": [ {"type": "null"}, {"$ref": "parts/Customer.json"} ] } }
+      "properties": {
+        "data": {
+          "oneOf": [ {"type": "null"}, {"$ref": "parts/CustomerFromGetCustomerResponse.json"} ]
+        }
+      }
     }
   ]
 }
diff --git a/schema/Api/CustomerBroker/parts/Customer.json b/schema/Api/CustomerBroker/parts/Customer.json
index 648f705..392f9e5 100644
--- a/schema/Api/CustomerBroker/parts/Customer.json
+++ b/schema/Api/CustomerBroker/parts/Customer.json
@@ -9,6 +9,7 @@
       "type": ["string", "null"],
       "minLength": 1
     },
+    "brokerScopes": { "type": ["array", "null"], "items": {"type": "string"} },
     "contactEmailAddress": {
       "description": "Optional. Contact email address. Must be a valid email if provided.",
       "type": ["string", "null"],
diff --git a/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json b/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json
index 00ef500..7c0be8f 100644
--- a/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json
+++ b/schema/Api/CustomerBroker/parts/CustomerFromCreateCustomerRequest.json
@@ -25,7 +25,8 @@
           "description": "Optional. Ship method mappings for the customer.",
           "type": ["array", "null"],
           "items": {"$ref": "ShipMethodMapping.json"}
-        }
+        },
+        "sourceSystems": { "type": ["array", "null"], "items": {"$ref": "SourceSystem.json"} }
       }
     }
   ]
diff --git a/schema/Api/CustomerBroker/parts/CustomerFromGetCustomerResponse.json b/schema/Api/CustomerBroker/parts/CustomerFromGetCustomerResponse.json
new file mode 100644
index 0000000..481167a
--- /dev/null
+++ b/schema/Api/CustomerBroker/parts/CustomerFromGetCustomerResponse.json
@@ -0,0 +1,22 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "$id": "CustomerFromGetCustomerResponse.json",
+  "type": "object",
+  "allOf": [
+    {"$ref": "Customer.json"},
+    {
+      "type": "object",
+      "properties": {
+        "clientSecret": { "type": ["string", "null"] },
+        "contactAddress": {"$ref": "ContactAddress.json"},
+        "emailNotificationSubscriptions": {
+          "type": ["array", "null"],
+          "items": {"$ref": "EmailNotificationSubscription.json"}
+        },
+        "parent": {"$ref": "Parent.json"},
+        "shipMethodMappings": { "type": ["array", "null"], "items": {"$ref": "ShipMethodMapping.json"} },
+        "sourceSystems": { "type": ["array", "null"], "items": {"$ref": "SourceSystem.json"} }
+      }
+    }
+  ]
+}
diff --git a/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json b/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json
index 4c93d37..bcffa4d 100644
--- a/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json
+++ b/schema/Api/CustomerBroker/parts/CustomerFromUpdateCustomerRequest.json
@@ -14,6 +14,7 @@
         },
         "parent": {"$ref": "Parent.json"},
         "shipMethodMappings": { "type": ["array", "null"], "items": {"$ref": "ShipMethodMapping.json"} },
+        "sourceSystems": { "type": ["array", "null"], "items": {"$ref": "SourceSystem.json"} },
         "updateDateTimeUtc": { "type": ["string", "null"] }
       }
     }
diff --git a/schema/Api/CustomerBroker/parts/SourceSystem.json b/schema/Api/CustomerBroker/parts/SourceSystem.json
index 0f9b0c1..042a9d9 100644
--- a/schema/Api/CustomerBroker/parts/SourceSystem.json
+++ b/schema/Api/CustomerBroker/parts/SourceSystem.json
@@ -2,7 +2,10 @@
   "$schema": "http://json-schema.org/draft-07/schema#",
   "$id": "SourceSystem.json",
   "type": "object",
-  "additionalProperties": false,
-  "properties": { "id": {"type": "integer", "format": "int32"}, "name": {"type": "string"} },
+  "properties": {
+    "id": { "type": ["integer", "null"], "format": "int32" },
+    "sourceSystemCustomerId": { "type": ["string", "null"] },
+    "name": { "type": ["string", "null"] }
+  },
   "required": ["id", "name"]
 }
diff --git a/schema/Api/OfferBroker/CreateOfferRequest.json b/schema/Api/OfferBroker/CreateOfferRequest.json
index d80675c..b6aaef4 100644
--- a/schema/Api/OfferBroker/CreateOfferRequest.json
+++ b/schema/Api/OfferBroker/CreateOfferRequest.json
@@ -1,6 +1,6 @@
 {
   "$schema": "http://json-schema.org/draft-07/schema#",
   "$id": "CreateOfferRequest.json",
-  "$ref": "parts/Offer.json",
+  "$ref": "parts/OfferFromCreateOfferRequest.json",
   "type": "object"
 }
diff --git a/schema/Api/OfferBroker/InternalGetOffersParameters.json b/schema/Api/OfferBroker/InternalGetOffersParameters.json
new file mode 100644
index 0000000..b942284
--- /dev/null
+++ b/schema/Api/OfferBroker/InternalGetOffersParameters.json
@@ -0,0 +1,25 @@
+{
+  "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
+  },
+  "CustomerId": {
+    "in": "path",
+    "name": "customerId",
+    "schema": {"type": "string"},
+    "required": true
+  },
+  "DoIncludeDeletedItems": {
+    "in": "query",
+    "name": "doIncludeDeletedItems",
+    "schema": {"type": "boolean"}
+  },
+  "UpdatedSinceDateTime": {
+    "in": "query",
+    "name": "updatedSinceDateTime",
+    "schema": {"type": "string", "format": "date-time"}
+  }
+}
diff --git a/schema/Api/OfferBroker/InternalGetOffersResponse.json b/schema/Api/OfferBroker/InternalGetOffersResponse.json
new file mode 100644
index 0000000..976dff3
--- /dev/null
+++ b/schema/Api/OfferBroker/InternalGetOffersResponse.json
@@ -0,0 +1,11 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "$id": "InternalGetOffersResponse.json",
+  "allOf": [
+    {"$ref": "../../Common/ApiResponseBase.json"},
+    {
+      "type": "object",
+      "properties": { "data": { "type": ["array", "null"], "items": {"$ref": "parts/Offer.json"} } }
+    }
+  ]
+}
diff --git a/schema/Api/OfferBroker/UpdateOfferRequest.json b/schema/Api/OfferBroker/UpdateOfferRequest.json
index fd5b0da..ceb1f66 100644
--- a/schema/Api/OfferBroker/UpdateOfferRequest.json
+++ b/schema/Api/OfferBroker/UpdateOfferRequest.json
@@ -1,7 +1,7 @@
 {
   "$schema": "http://json-schema.org/draft-07/schema#",
   "$id": "UpdateOfferRequest.json",
-  "$ref": "parts/Offer.json",
+  "$ref": "parts/OfferFromUpdateOfferRequest.json",
   "type": "object",
   "additionalProperties": false
 }
diff --git a/schema/Api/OfferBroker/parts/OfferFromCreateOfferRequest.json b/schema/Api/OfferBroker/parts/OfferFromCreateOfferRequest.json
new file mode 100644
index 0000000..ddfa673
--- /dev/null
+++ b/schema/Api/OfferBroker/parts/OfferFromCreateOfferRequest.json
@@ -0,0 +1,24 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "$id": "OfferFromCreateOfferRequest.json",
+  "type": "object",
+  "allOf": [
+    {"$ref": "Offer.json"},
+    {
+      "type": "object",
+      "properties": {
+        "description": { "type": ["string", "null"] },
+        "additionalPropsRequiredOnOrder": {
+          "type": ["array", "null"],
+          "items": {"$ref": "AdditionalPropsRequiredOnOrderInput.json"}
+        },
+        "priceClasses": { "type": ["array", "null"], "items": {"$ref": "PriceClass.json"} },
+        "productClusters": {
+          "description": "Required if offerType is 'Product List'. Must contain at least one ProductCluster with at least one Product, each with a non-empty productId and pageCount >= 1 if provided.",
+          "type": ["array", "null"],
+          "items": {"$ref": "ProductClusterInput.json"}
+        }
+      }
+    }
+  ]
+}
diff --git a/schema/Api/OfferBroker/parts/OfferFromUpdateOfferRequest.json b/schema/Api/OfferBroker/parts/OfferFromUpdateOfferRequest.json
new file mode 100644
index 0000000..2582c8a
--- /dev/null
+++ b/schema/Api/OfferBroker/parts/OfferFromUpdateOfferRequest.json
@@ -0,0 +1,25 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "$id": "OfferFromUpdateOfferRequest.json",
+  "type": "object",
+  "allOf": [
+    {"$ref": "Offer.json"},
+    {
+      "type": "object",
+      "properties": {
+        "description": { "type": ["string", "null"] },
+        "additionalPropsRequiredOnOrder": {
+          "type": ["array", "null"],
+          "items": {"$ref": "AdditionalPropsRequiredOnOrderInput.json"}
+        },
+        "isDeleted": { "type": ["boolean", "null"] },
+        "priceClasses": { "type": ["array", "null"], "items": {"$ref": "PriceClass.json"} },
+        "productClusters": {
+          "description": "Required if offerType is 'Product List'. Must contain at least one ProductCluster with at least one Product, each with a non-empty productId and pageCount >= 1 if provided.",
+          "type": ["array", "null"],
+          "items": {"$ref": "ProductClusterInput.json"}
+        }
+      }
+    }
+  ]
+}
diff --git a/schema/Api/OrderBroker/InternalNewOrderRequest.json b/schema/Api/OrderBroker/InternalNewOrderRequest.json
index 8fd75a8..e5094ab 100644
--- a/schema/Api/OrderBroker/InternalNewOrderRequest.json
+++ b/schema/Api/OrderBroker/InternalNewOrderRequest.json
@@ -13,11 +13,11 @@
     },
     "referenceId": { "type": ["string", "null"], "maxLength": 255, "examples": ["REF123456"] },
     "sourceSystemCustomerId": { "type": ["string", "null"], "maxLength": 100, "examples": ["CUST123456"] },
-    "sourceSystemId": { "type": "integer", "format": "int32" },
+    "sourceSystemId": {"type": "integer", "format": "int32"},
     "accessGroups": {
       "type": ["array", "null"],
-      "items": { "type": "string", "maxLength": 255 },
-      "examples": [["Group1", "Group2"]]
+      "items": {"type": "string", "maxLength": 255},
+      "examples": [ ["Group1", "Group2"] ]
     },
     "affiliateIdentifier": {
       "description": "Unique ID for affiliate within source system (system where order was originally placed)",
@@ -34,10 +34,10 @@
     "billTos": {
       "description": "Bill to addresses array for Order",
       "oneOf": [
-        { "type": "null" },
+        {"type": "null"},
         {
           "type": "array",
-          "items": { "$ref": "parts/BillToFromNewOrderRequest.json" },
+          "items": {"$ref": "parts/BillToFromNewOrderRequest.json"},
           "minItems": 1,
           "examples": [
             [
@@ -102,7 +102,7 @@
     "lineItems": {
       "description": "Order level line item details",
       "type": "array",
-      "items": { "$ref": "parts/LineItem.json" },
+      "items": {"$ref": "parts/LineItem.json"},
       "minItems": 1,
       "examples": [
         [
@@ -127,12 +127,12 @@
     "orderVariables": {
       "$ref": "parts/OrderVariable.json",
       "description": "Manually entered variables for order within order management system (system where order lifecycle will be managed in)",
-      "examples": [{ "key": "CUSTOM_FIELD", "value": "Custom Value" }]
+      "examples": [ {"key": "CUSTOM_FIELD", "value": "Custom Value"} ]
     },
     "orderedBys": {
       "description": "Order level ordered by contact and address details",
       "type": ["array", "null"],
-      "items": { "$ref": "parts/OrderedBy.json" },
+      "items": {"$ref": "parts/OrderedBy.json"},
       "examples": [
         [
           {
@@ -154,7 +154,7 @@
     "paymentMethods": {
       "description": "Order.ShipTos level payment method details",
       "type": ["array", "null"],
-      "items": { "$ref": "parts/PaymentMethod.json" },
+      "items": {"$ref": "parts/PaymentMethod.json"},
       "examples": [
         [
           {
@@ -188,7 +188,7 @@
     "shipTos": {
       "description": "Order level ship to details",
       "type": "array",
-      "items": { "$ref": "parts/ShipToFromNewOrderRequest.json" },
+      "items": {"$ref": "parts/ShipToFromNewOrderRequest.json"},
       "minItems": 1,
       "examples": [
         [
@@ -230,22 +230,25 @@
       "examples": [10.0]
     }
   },
-  "required": ["orderId", "lineItems", "shippingHandlingTax", "billTos", "sourceSystemCustomerId", "sourceSystemId"],
+  "required": [
+    "orderId", "lineItems", "shippingHandlingTax", "billTos",
+    "sourceSystemCustomerId", "sourceSystemId"
+  ],
   "allOf": [
     {
       "oneOf": [
         {
-          "properties": { "defaultBillToKey": { "type": "integer" } },
+          "properties": { "defaultBillToKey": {"type": "integer"} },
           "required": ["defaultBillToKey"]
         },
         {
           "not": {
-            "properties": { "defaultBillToKey": { "type": "integer" } },
+            "properties": { "defaultBillToKey": {"type": "integer"} },
             "required": ["defaultBillToKey"]
           },
           "properties": {
-            "billTos": { "type": "array", "minItems": 1 },
-            "defaultBillToKey": { "type": ["null", "integer"] }
+            "billTos"         : { "type": "array"            , "minItems": 1 },
+            "defaultBillToKey": { "type": ["null", "integer"]                }
           },
           "required": ["billTos"]
         }
@@ -254,17 +257,17 @@
     {
       "oneOf": [
         {
-          "properties": { "defaultShipToKey": { "type": "integer" } },
+          "properties": { "defaultShipToKey": {"type": "integer"} },
           "required": ["defaultShipToKey"]
         },
         {
           "not": {
-            "properties": { "defaultShipToKey": { "type": "integer" } },
+            "properties": { "defaultShipToKey": {"type": "integer"} },
             "required": ["defaultShipToKey"]
           },
           "properties": {
-            "defaultShipToKey": { "type": ["null", "integer"] },
-            "shipTos": { "type": "array", "minItems": 1 }
+            "defaultShipToKey": { "type": ["null", "integer"]                },
+            "shipTos"         : { "type": "array"            , "minItems": 1 }
           },
           "required": ["shipTos"]
         }
@@ -274,7 +277,7 @@
       "description": "LineItem BillToKey validation - If defaultBillToKey is not provided, all lineItems must specify a billToKey",
       "oneOf": [
         {
-          "properties": { "defaultBillToKey": { "type": "integer" } },
+          "properties": { "defaultBillToKey": {"type": "integer"} },
           "required": ["defaultBillToKey"]
         },
         {
@@ -283,7 +286,7 @@
               "type": "array",
               "items": {
                 "type": "object",
-                "properties": { "billToKey": { "type": "integer", "minimum": 0 } },
+                "properties": { "billToKey": {"type": "integer", "minimum": 0} },
                 "required": ["billToKey"]
               }
             }
@@ -295,7 +298,7 @@
       "description": "LineItem ShipToKey validation - If defaultShipToKey is not provided, all lineItems must specify a shipToKey",
       "oneOf": [
         {
-          "properties": { "defaultShipToKey": { "type": "integer" } },
+          "properties": { "defaultShipToKey": {"type": "integer"} },
           "required": ["defaultShipToKey"]
         },
         {
@@ -304,7 +307,7 @@
               "type": "array",
               "items": {
                 "type": "object",
-                "properties": { "shipToKey": { "type": "integer", "minimum": 0 } },
+                "properties": { "shipToKey": {"type": "integer", "minimum": 0} },
                 "required": ["shipToKey"]
               }
             }
@@ -319,7 +322,7 @@
           "type": "array",
           "items": {
             "type": "object",
-            "properties": { "offerLineNumber": { "type": "string", "minLength": 1 } },
+            "properties": { "offerLineNumber": {"type": "string", "minLength": 1} },
             "required": ["offerLineNumber"]
           }
         }
diff --git a/schema/Api/OrderBroker/NewOrderRequest.json b/schema/Api/OrderBroker/NewOrderRequest.json
index ff83308..3c57025 100644
--- a/schema/Api/OrderBroker/NewOrderRequest.json
+++ b/schema/Api/OrderBroker/NewOrderRequest.json
@@ -21,7 +21,7 @@
       "type": "integer",
       "format": "int32"
     },
-    "accessGroups": { "type": ["array", "null"], "items": { "type": "string" } },
+    "accessGroups": { "type": ["array", "null"], "items": {"type": "string"} },
     "affiliateIdentifier": {
       "description": "Unique ID for affiliate within source system (system where order was originally placed)",
       "type": ["string", "null"]
@@ -33,10 +33,10 @@
     "billTos": {
       "description": "Bill to addresses array for Order. Required, must not be empty. Each item must have required address fields and a non-null key.",
       "oneOf": [
-        { "type": "null" },
+        {"type": "null"},
         {
           "type": "array",
-          "items": { "$ref": "parts/BillToFromNewOrderRequest.json" },
+          "items": {"$ref": "parts/BillToFromNewOrderRequest.json"},
           "minItems": 1
         }
       ],
@@ -90,7 +90,7 @@
     "lineItems": {
       "description": "Order level line item details. Required, must not be empty. Each item must have offerId, quantityOrdered > 0, price >= 0, taxAmount >= 0, lineItemFee >= 0. If defaultBillToKey, defaultOrderedByKey, or defaultShipToKey are null, corresponding keys must be set on each line item.",
       "type": ["array"],
-      "items": { "$ref": "parts/LineItem.json" },
+      "items": {"$ref": "parts/LineItem.json"},
       "minItems": 1,
       "uniqueItems": false
     },
@@ -106,7 +106,10 @@
     "orderedBys": {
       "description": "Order level ordered by contact and address details. Not required, but if present, each item must have required address fields and a non-null key.",
       "type": ["array", "null"],
-      "oneOf": [{ "type": "null" }, { "type": "array", "items": { "$ref": "parts/OrderedBy.json" }, "minItems": 1 }],
+      "oneOf": [
+        {"type": "null"},
+        { "type": "array", "items": {"$ref": "parts/OrderedBy.json"}, "minItems": 1 }
+      ],
       "examples": [
         {
           "address1": "106 Tyler Street Suite 175",
@@ -127,7 +130,7 @@
     "paymentMethods": {
       "description": "Order.ShipTos level payment method details",
       "type": ["array", "null"],
-      "items": { "$ref": "parts/PaymentMethod.json" }
+      "items": {"$ref": "parts/PaymentMethod.json"}
     },
     "pickPackHandlingFee": {
       "description": "Sum of pick & pack handling fees for all Order.ShipTos",
@@ -139,11 +142,11 @@
       "type": ["string", "null"],
       "maxLength": 20
     },
-    "rushOrder": { "description": "True/false indicator if Order is expedited", "type": "boolean" },
+    "rushOrder": {"description": "True/false indicator if Order is expedited", "type": "boolean"},
     "shipTos": {
       "description": "Order level ship to details. Required, must not be empty. Each item must have required address fields and a non-null key.",
       "type": ["array"],
-      "items": { "$ref": "parts/ShipToFromNewOrderRequest.json" },
+      "items": {"$ref": "parts/ShipToFromNewOrderRequest.json"},
       "minItems": 1,
       "uniqueItems": false
     },
@@ -168,17 +171,17 @@
     {
       "oneOf": [
         {
-          "properties": { "defaultBillToKey": { "type": "integer" } },
+          "properties": { "defaultBillToKey": {"type": "integer"} },
           "required": ["defaultBillToKey"]
         },
         {
           "not": {
-            "properties": { "defaultBillToKey": { "type": "integer" } },
+            "properties": { "defaultBillToKey": {"type": "integer"} },
             "required": ["defaultBillToKey"]
           },
           "properties": {
-            "billTos": { "type": "array", "minItems": 1 },
-            "defaultBillToKey": { "type": ["null", "integer"] }
+            "billTos"         : { "type": "array"            , "minItems": 1 },
+            "defaultBillToKey": { "type": ["null", "integer"]                }
           },
           "required": ["billTos"]
         }
@@ -187,17 +190,17 @@
     {
       "oneOf": [
         {
-          "properties": { "defaultShipToKey": { "type": "integer" } },
+          "properties": { "defaultShipToKey": {"type": "integer"} },
           "required": ["defaultShipToKey"]
         },
         {
           "not": {
-            "properties": { "defaultShipToKey": { "type": "integer" } },
+            "properties": { "defaultShipToKey": {"type": "integer"} },
             "required": ["defaultShipToKey"]
           },
           "properties": {
-            "DefaultShipToKey": { "type": ["null", "integer"] },
-            "ShipTos": { "type": "array", "minItems": 1 }
+            "DefaultShipToKey": { "type": ["null", "integer"]                },
+            "ShipTos"         : { "type": "array"            , "minItems": 1 }
           },
           "required": ["shipTos"]
         }
@@ -305,7 +308,7 @@
           "stateProvince": "California"
         }
       ],
-      "paymentMethods": [{ "amount": 35.8, "methodName": "invoice" }],
+      "paymentMethods": [ {"amount": 35.8, "methodName": "invoice"} ],
       "pickPackHandlingFee": 0.75,
       "poNumber": null,
       "rushOrder": false,
@@ -448,7 +451,7 @@
           "stateProvince": "Alaska"
         }
       ],
-      "paymentMethods": [{ "amount": 35.8, "methodName": "invoice" }],
+      "paymentMethods": [ {"amount": 35.8, "methodName": "invoice"} ],
       "pickPackHandlingFee": 0.75,
       "poNumber": null,
       "rushOrder": false,