Skip to content

FulfillmentOrder

Details for Fulfillment Order JSON schema

Properties

  • CustomerId (['string', 'null'])Customer ID tied to the fulfillment order.
  • FulfillmentOrderId (['string', 'null'])Unique ID for fulfillment order.
  • FulfillmentSystemCustomerId (['string', 'null'])ID of customer within the fulfillment system.
  • FulfillmentSystemId (['string', 'null'])System used to fulfill the order.
  • FulfillmentSystemLocationId (['string', 'null'])ID of location within the fulfillment system.
  • FulfillmentSystemOrderId (['string', 'null'])Fulfillment order ID within the fulfillment system.
  • ReferenceId (['string', 'null'])Reference ID for the fulfillment order.
  • BillTo (['object', 'null'])Fulfillment order level bill to contact and address details.

    • Address1 (['string', 'null'])Address line 1 for address.
    • Address2 (['string', 'null'])Address line 2 for address.
    • Address3 (['string', 'null'])Address line 3 for address.
    • AddressCode (['string', 'null'])Address code for address.
    • City (['string', 'null'])City name for address.
    • Company (['string', 'null'])Company name for address.
    • Country (['string', 'null'])Country name for address.
    • EmailAddress (['string', 'null'])Contact email address for address.
    • FaxNumber (['string', 'null'])Fax number for address.
    • Name (['string', 'null'])Contact name for this address.
    • PhoneNumber (['string', 'null'])Phone number for address.
    • PostalCode (['string', 'null'])Postal code for address.
    • StateProvince (['string', 'null'])State or province name for address.
  • CreateDateTime (['string', 'null'])Created date time of the fulfillment order.

  • DefaultShipToKey (['string', 'null'])Default key for ShipTo.
  • DueDate (['string', 'null'])Due date of the fulfillment order.
  • OrderIds (['array', 'null'])Order IDs tied to the fulfillment order.

    • Items (string)
  • OrderVariables (['string', 'null'])Order variables tied to the fulfillment order in JSON format.

  • PONumber (['string', 'null'])PO number tied to the fulfillment order.
  • PaymentMethods (['array', 'null'])PaymentMethod details.

    • Items (object)

      • Amount (['number', 'null'])Amount for the payment method.
      • MethodName (['string', 'null'])Name of the payment method.
  • Products (['array', 'null'])Fulfillment order level product details.

    • Items (object)

      • FulfillmentSystemId (['string', 'null'])Fulfillment system ID.
      • FulfillmentSystemProductId (['string', 'null'])Fulfillment system product ID.
      • ProductId (['string', 'null'])Product ID.
      • ProductLineId (['string', 'null'])Product line ID.
      • AssociatedFileName (['string', 'null'])Associated file name.
      • Comment (['string', 'null'])Comment for the product.
      • IsDeleted (['boolean', 'null'])Whether the product is deleted.
      • PageCount (['integer', 'null'])Page count for the product.
      • Price (['number', 'null'])Price of the product.
      • QuantityOrdered (['integer', 'null'])Quantity ordered.
      • ShipToKey (['string', 'null'])Ship to key for the product.
      • Status (['string', 'null'])Status of the product.
  • RushOrder (['boolean', 'null'])Indicator if the order is a rush order.

  • ShipTos (['array', 'null'])Fulfillment order level ship to details.

    • Items (object)

      • FulfillmentSystemShippingMethodId (['string', 'null'])Fulfillment system shipping method ID.
      • ReferenceId (['string', 'null'])Reference ID.
      • Comment (['string', 'null'])Comment.
      • DueDate (['string', 'null'])Due date.
      • IsDeleted (['boolean', 'null'])Whether the ship to is deleted.
      • Key (string, required)Key for the ship to.
      • PONumber (['string', 'null'])PO number.
      • PaymentMethods (['array', 'null'])Payment methods for this ship to.

        • Items (object)

          • Amount (['number', 'null'])Amount for the payment method.
          • MethodName (['string', 'null'])Name of the payment method.
      • RushFee (['number', 'null'])Rush fee.

      • RushOrder (['boolean', 'null'])Whether this is a rush order.
      • ShipToAddress (['object', 'null'])Ship to address.

        • Address1 (['string', 'null'])Address line 1 for address.
        • Address2 (['string', 'null'])Address line 2 for address.
        • Address3 (['string', 'null'])Address line 3 for address.
        • AddressCode (['string', 'null'])Address code for address.
        • City (['string', 'null'])City name for address.
        • Company (['string', 'null'])Company name for address.
        • Country (['string', 'null'])Country name for address.
        • EmailAddress (['string', 'null'])Contact email address for address.
        • FaxNumber (['string', 'null'])Fax number for address.
        • Name (['string', 'null'])Contact name for this address.
        • PhoneNumber (['string', 'null'])Phone number for address.
        • PostalCode (['string', 'null'])Postal code for address.
        • StateProvince (['string', 'null'])State or province name for address.
      • ShippingCarrier (['string', 'null'])Shipping carrier.

      • ShippingCost (['number', 'null'])Shipping cost.
      • ShippingService (['string', 'null'])Shipping service.
      • Status (['string', 'null'])Status.
  • Shipments (['array', 'null'])Shipments tied to the fulfillment order.

    • Items (object)

      • FulfillmentSystemId (['string', 'null'])Fulfillment system ID.
      • FulfillmentSystemLocationId (['string', 'null'])Fulfillment system location ID.
      • ShipmentId (['string', 'null'])Shipment ID.
      • Carrier (['string', 'null'])Carrier.
      • Freight (['number', 'null'])Freight cost.
      • IsDeleted (['boolean', 'null'])Whether the shipment is deleted.
      • MasterTrackingNumber (['string', 'null'])Master tracking number.
      • Packages (['array', 'null'])Packages in the shipment.

        • Items (object)

          • IsDeleted (['boolean', 'null'])Whether the package is deleted.
          • PackageNumber (['string', 'null'])Package number.
          • Products (['array', 'null'])Products in the package.

            • Items (object)

              • ProductLineId (['string', 'null'])Product line ID.
              • ShipQuantity (['number', 'null'])Ship quantity.
          • TrackingNumber (['string', 'null'])Tracking number.

      • PackingSlipNumber (['string', 'null'])Packing slip number.

      • Service (['string', 'null'])Service.
      • ShipDateUtc (['string', 'null'])Ship date in UTC.
      • ShipToAddress (['object', 'null'])Ship to address.

        • Address1 (['string', 'null'])Address line 1 for address.
        • Address2 (['string', 'null'])Address line 2 for address.
        • Address3 (['string', 'null'])Address line 3 for address.
        • AddressCode (['string', 'null'])Address code for address.
        • City (['string', 'null'])City name for address.
        • Company (['string', 'null'])Company name for address.
        • Country (['string', 'null'])Country name for address.
        • EmailAddress (['string', 'null'])Contact email address for address.
        • FaxNumber (['string', 'null'])Fax number for address.
        • Name (['string', 'null'])Contact name for this address.
        • PhoneNumber (['string', 'null'])Phone number for address.
        • PostalCode (['string', 'null'])Postal code for address.
        • StateProvince (['string', 'null'])State or province name for address.
  • Statuses (['array', 'null'])Statuses tied to the fulfillment order.

    • Items (string)

Examples

{
    "CustomerId": "aa6b0d33-ef54-cdd0-497b-e54be56ed661",
    "FulfillmentOrderId": "54caabeb-edb2-4a4f-9d33-fdc1aeb3fcb4",
    "FulfillmentSystemCustomerId": "2519",
    "FulfillmentSystemId": "6",
    "FulfillmentSystemLocationId": "35d5d610-9eab-ad5d-c904-bcaaac711392",
    "FulfillmentSystemOrderId": "eba0871d-8ae7-10ce-029c-48e4d8b20b90",
    "BillTo": {
        "Address1": "854 Destin Summit",
        "Address2": "Apt. 492",
        "Address3": null,
        "City": "West Betty",
        "Company": null,
        "Country": "United States",
        "EmailAddress": "Lisandro53@gmail.com",
        "FaxNumber": "1-253-540-1403",
        "Name": "Hayden Daniel",
        "PhoneNumber": "622-528-4051 x871",
        "PostalCode": "83731",
        "StateProvince": "OK"
    },
    "CreateDateTime": "2025-03-13T22:26:59.3895106Z",
    "DefaultShipToKey": "0",
    "DueDate": "2025-03-14T22:26:59.3895111Z",
    "OrderIds": [
        "88236a77-813d-a65a-3311-e1facde69736"
    ],
    "OrderVariables": "{}",
    "PONumber": "n94ualw05x",
    "PaymentMethods": [
        {
            "Amount": 131.25,
            "MethodName": "Credit Card"
        }
    ],
    "Products": [
        {
            "FulfillmentSystemProductId": "123456",
            "ProductId": "cd3893db-3294-55af-c62d-a53eaf1dc4fa-5d9d746d-e52a-bd9f-ba5a-915619d64707-718a25da-9d81-7ac2-b708-cf464de524d8",
            "ProductLineId": "2a551eb8-e7f9-b66a-adfb-6d996e232265|2890247614|1714493355",
            "AssociatedFileName": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
            "Comment": "This is a comment for 123456",
            "IsDeleted": null,
            "Price": 0.13,
            "QuantityOrdered": 250,
            "ShipToKey": "0",
            "Status": null
        },
        {
            "FulfillmentSystemProductId": "123456_2",
            "ProductId": "963654b0-a14e-650c-d063-bef87afa9fa6-53fa7b3d-596e-8e63-07f0-596aa360b0b7-aba81b6f-703f-8746-98e4-3fba68b26704",
            "ProductLineId": "a563df71-76c6-0b9e-7696-f121e537be31|2829663350|2620274204",
            "AssociatedFileName": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
            "Comment": "This is a comment for 123456_2",
            "IsDeleted": null,
            "Price": 0.13,
            "QuantityOrdered": 375,
            "ShipToKey": "0",
            "Status": null
        }
    ],
    "RushOrder": true,
    "ShipTos": [
        {
            "FulfillmentSystemShippingMethodId": "FedEx Ground",
            "Comment": null,
            "DueDate": null,
            "Key": "0",
            "PONumber": null,
            "PaymentMethods": null,
            "RushOrder": null,
            "ShipToAddress": {
                "Address1": "21133 Mraz Estate",
                "Address2": null,
                "Address3": null,
                "City": "Port Novella",
                "Company": null,
                "Country": "United States",
                "EmailAddress": "Leda.Hudson@yahoo.com",
                "FaxNumber": "(389) 855-1980 x01354",
                "Name": "Gerard Hamill",
                "PhoneNumber": "778-483-8935",
                "PostalCode": "16141-8021",
                "StateProvince": "TX"
            },
            "ShippingCarrier": null,
            "ShippingCost": 10.0,
            "ShippingService": null,
            "Status": null
        }
    ]
}

Quicktype Command

quicktype \
    --framework SystemTextJson  \
    --lang cs  \
    --number-type double  \
    --src-lang schema  \
    --no-check-required  \
    --density dense  \
    --features complete  \
    --namespace OtpSchema.Event.FulfillmentOrder.FulfillmentOrder  \
    --src .working/build/internal/json-schema-for-cs/FulfillmentOrder.json -o .working/build/internal/csharp/OtpSchema/Event/FulfillmentOrder/FulfillmentOrder.cs
FulfillmentOrder
// <auto-generated />
//
// To parse this JSON data, add NuGet 'System.Text.Json' then do:
//
//    using OtpSchema.Event.FulfillmentOrder.FulfillmentOrder;
//
//    var fulfillmentOrder = FulfillmentOrder.FromJson(jsonString);
#nullable enable
#pragma warning disable CS8618
#pragma warning disable CS8601
#pragma warning disable CS8603

namespace OtpSchema.Event.FulfillmentOrder.FulfillmentOrder
{
    using System;
    using System.Collections.Generic;

    using System.Text.Json;
    using System.Text.Json.Serialization;
    using System.Globalization;
    using J = System.Text.Json.Serialization.JsonPropertyNameAttribute;
    using N = System.Text.Json.Serialization.JsonIgnoreCondition;

    /// <summary>Details for Fulfillment Order JSON schema</summary>
    public partial class FulfillmentOrder
    {
        [J("BillTo")]                      public BillTo BillTo { get; set; }                                  // Fulfillment order level bill to contact and address details
        [J("CreateDateTime")]              public string CreateDateTime { get; set; }                          // Created date time of the fulfillment order
        [J("CustomerId")]                  public string CustomerId { get; set; }                              // Customer ID tied to the fulfillment order
        [J("DefaultShipToKey")]            public string DefaultShipToKey { get; set; }                        // Default key for ShipTo
        [J("DueDate")]                     public string DueDate { get; set; }                                 // Due date of the fulfillment order
        [J("FulfillmentOrderId")]          public string FulfillmentOrderId { get; set; }                      // Unique ID for fulfillment order
        [J("FulfillmentSystemCustomerId")] public string FulfillmentSystemCustomerId { get; set; }             // ID of customer within the fulfillment system
        [J("FulfillmentSystemId")]         public string FulfillmentSystemId { get; set; }                     // System used to fulfill the order
        [J("FulfillmentSystemLocationId")] public string FulfillmentSystemLocationId { get; set; }             // ID of location within the fulfillment system
        [J("FulfillmentSystemOrderId")]    public string FulfillmentSystemOrderId { get; set; }                // Fulfillment order ID within the fulfillment system
        [J("OrderIds")]                    public string[] OrderIds { get; set; }                              // Order IDs tied to the fulfillment order
        [J("OrderVariables")]              public string OrderVariables { get; set; }                          // Order variables tied to the fulfillment order in JSON format
        [J("PaymentMethods")]              public FulfillmentOrderPaymentMethod[] PaymentMethods { get; set; } // PaymentMethod details
        [J("PONumber")]                    public string PoNumber { get; set; }                                // PO number tied to the fulfillment order
        [J("Products")]                    public FulfillmentOrderProduct[] Products { get; set; }             // Fulfillment order level product details
        [J("ReferenceId")]                 public string ReferenceId { get; set; }                             // Reference ID for the fulfillment order
        [J("RushOrder")]                   public bool? RushOrder { get; set; }                                // Indicator if the order is a rush order
        [J("Shipments")]                   public Shipment[] Shipments { get; set; }                           // Shipments tied to the fulfillment order
        [J("ShipTos")]                     public ShipTo[] ShipTos { get; set; }                               // Fulfillment order level ship to details
        [J("Statuses")]                    public string[] Statuses { get; set; }                              // Statuses tied to the fulfillment order
    }

    public partial class BillTo
    {
        [J("Address1")]      public string Address1 { get; set; }      // Address line 1 for address
        [J("Address2")]      public string Address2 { get; set; }      // Address line 2 for address
        [J("Address3")]      public string Address3 { get; set; }      // Address line 3 for address
        [J("AddressCode")]   public string AddressCode { get; set; }   // Address code for address
        [J("City")]          public string City { get; set; }          // City name for address
        [J("Company")]       public string Company { get; set; }       // Company name for address
        [J("Country")]       public string Country { get; set; }       // Country name for address
        [J("EmailAddress")]  public string EmailAddress { get; set; }  // Contact email address for address
        [J("FaxNumber")]     public string FaxNumber { get; set; }     // Fax number for address
        [J("Name")]          public string Name { get; set; }          // Contact name for this address
        [J("PhoneNumber")]   public string PhoneNumber { get; set; }   // Phone number for address
        [J("PostalCode")]    public string PostalCode { get; set; }    // Postal code for address
        [J("StateProvince")] public string StateProvince { get; set; } // State or province name for address
    }

    public partial class FulfillmentOrderPaymentMethod
    {
        [J("Amount")]     public double? Amount { get; set; }    // Amount for the payment method
        [J("MethodName")] public string MethodName { get; set; } // Name of the payment method
    }

    public partial class FulfillmentOrderProduct
    {
        [J("AssociatedFileName")]         public string AssociatedFileName { get; set; }         // Associated file name
        [J("Comment")]                    public string Comment { get; set; }                    // Comment for the product
        [J("FulfillmentSystemId")]        public string FulfillmentSystemId { get; set; }        // Fulfillment system ID
        [J("FulfillmentSystemProductId")] public string FulfillmentSystemProductId { get; set; } // Fulfillment system product ID
        [J("IsDeleted")]                  public bool? IsDeleted { get; set; }                   // Whether the product is deleted
        [J("PageCount")]                  public long? PageCount { get; set; }                   // Page count for the product
        [J("Price")]                      public double? Price { get; set; }                     // Price of the product
        [J("ProductId")]                  public string ProductId { get; set; }                  // Product ID
        [J("ProductLineId")]              public string ProductLineId { get; set; }              // Product line ID
        [J("QuantityOrdered")]            public long? QuantityOrdered { get; set; }             // Quantity ordered
        [J("ShipToKey")]                  public string ShipToKey { get; set; }                  // Ship to key for the product
        [J("Status")]                     public string Status { get; set; }                     // Status of the product
    }

    public partial class ShipTo
    {
        [J("Comment")]                           public string Comment { get; set; }                           // Comment
        [J("DueDate")]                           public string DueDate { get; set; }                           // Due date
        [J("FulfillmentSystemShippingMethodId")] public string FulfillmentSystemShippingMethodId { get; set; } // Fulfillment system shipping method ID
        [J("IsDeleted")]                         public bool? IsDeleted { get; set; }                          // Whether the ship to is deleted
        [J("Key")]                               public string Key { get; set; }                               // Key for the ship to
        [J("PaymentMethods")]                    public ShipToPaymentMethod[] PaymentMethods { get; set; }     // Payment methods for this ship to
        [J("PONumber")]                          public string PoNumber { get; set; }                          // PO number
        [J("ReferenceId")]                       public string ReferenceId { get; set; }                       // Reference ID
        [J("RushFee")]                           public double? RushFee { get; set; }                          // Rush fee
        [J("RushOrder")]                         public bool? RushOrder { get; set; }                          // Whether this is a rush order
        [J("ShippingCarrier")]                   public string ShippingCarrier { get; set; }                   // Shipping carrier
        [J("ShippingCost")]                      public double? ShippingCost { get; set; }                     // Shipping cost
        [J("ShippingService")]                   public string ShippingService { get; set; }                   // Shipping service
        [J("ShipToAddress")]                     public ShipToShipToAddress ShipToAddress { get; set; }        // Ship to address
        [J("Status")]                            public string Status { get; set; }                            // Status
    }

    public partial class ShipToPaymentMethod
    {
        [J("Amount")]     public double? Amount { get; set; }    // Amount for the payment method
        [J("MethodName")] public string MethodName { get; set; } // Name of the payment method
    }

    public partial class ShipToShipToAddress
    {
        [J("Address1")]      public string Address1 { get; set; }      // Address line 1 for address
        [J("Address2")]      public string Address2 { get; set; }      // Address line 2 for address
        [J("Address3")]      public string Address3 { get; set; }      // Address line 3 for address
        [J("AddressCode")]   public string AddressCode { get; set; }   // Address code for address
        [J("City")]          public string City { get; set; }          // City name for address
        [J("Company")]       public string Company { get; set; }       // Company name for address
        [J("Country")]       public string Country { get; set; }       // Country name for address
        [J("EmailAddress")]  public string EmailAddress { get; set; }  // Contact email address for address
        [J("FaxNumber")]     public string FaxNumber { get; set; }     // Fax number for address
        [J("Name")]          public string Name { get; set; }          // Contact name for this address
        [J("PhoneNumber")]   public string PhoneNumber { get; set; }   // Phone number for address
        [J("PostalCode")]    public string PostalCode { get; set; }    // Postal code for address
        [J("StateProvince")] public string StateProvince { get; set; } // State or province name for address
    }

    public partial class Shipment
    {
        [J("Carrier")]                     public string Carrier { get; set; }                      // Carrier
        [J("Freight")]                     public double? Freight { get; set; }                     // Freight cost
        [J("FulfillmentSystemId")]         public string FulfillmentSystemId { get; set; }          // Fulfillment system ID
        [J("FulfillmentSystemLocationId")] public string FulfillmentSystemLocationId { get; set; }  // Fulfillment system location ID
        [J("IsDeleted")]                   public bool? IsDeleted { get; set; }                     // Whether the shipment is deleted
        [J("MasterTrackingNumber")]        public string MasterTrackingNumber { get; set; }         // Master tracking number
        [J("Packages")]                    public Package[] Packages { get; set; }                  // Packages in the shipment
        [J("PackingSlipNumber")]           public string PackingSlipNumber { get; set; }            // Packing slip number
        [J("Service")]                     public string Service { get; set; }                      // Service
        [J("ShipDateUtc")]                 public string ShipDateUtc { get; set; }                  // Ship date in UTC
        [J("ShipmentId")]                  public string ShipmentId { get; set; }                   // Shipment ID
        [J("ShipToAddress")]               public ShipmentShipToAddress ShipToAddress { get; set; } // Ship to address
    }

    public partial class Package
    {
        [J("IsDeleted")]      public bool? IsDeleted { get; set; }           // Whether the package is deleted
        [J("PackageNumber")]  public string PackageNumber { get; set; }      // Package number
        [J("Products")]       public PackageProduct[] Products { get; set; } // Products in the package
        [J("TrackingNumber")] public string TrackingNumber { get; set; }     // Tracking number
    }

    public partial class PackageProduct
    {
        [J("ProductLineId")] public string ProductLineId { get; set; } // Product line ID
        [J("ShipQuantity")]  public double? ShipQuantity { get; set; } // Ship quantity
    }

    public partial class ShipmentShipToAddress
    {
        [J("Address1")]      public string Address1 { get; set; }      // Address line 1 for address
        [J("Address2")]      public string Address2 { get; set; }      // Address line 2 for address
        [J("Address3")]      public string Address3 { get; set; }      // Address line 3 for address
        [J("AddressCode")]   public string AddressCode { get; set; }   // Address code for address
        [J("City")]          public string City { get; set; }          // City name for address
        [J("Company")]       public string Company { get; set; }       // Company name for address
        [J("Country")]       public string Country { get; set; }       // Country name for address
        [J("EmailAddress")]  public string EmailAddress { get; set; }  // Contact email address for address
        [J("FaxNumber")]     public string FaxNumber { get; set; }     // Fax number for address
        [J("Name")]          public string Name { get; set; }          // Contact name for this address
        [J("PhoneNumber")]   public string PhoneNumber { get; set; }   // Phone number for address
        [J("PostalCode")]    public string PostalCode { get; set; }    // Postal code for address
        [J("StateProvince")] public string StateProvince { get; set; } // State or province name for address
    }

    public partial class FulfillmentOrder
    {
        public static FulfillmentOrder FromJson(string json) => JsonSerializer.Deserialize<FulfillmentOrder>(json, OtpSchema.Event.FulfillmentOrder.FulfillmentOrder.Converter.Settings);
    }

    public static class Serialize
    {
        public static string ToJson(this FulfillmentOrder self) => JsonSerializer.Serialize(self, OtpSchema.Event.FulfillmentOrder.FulfillmentOrder.Converter.Settings);
    }

    internal static class Converter
    {
        public static readonly JsonSerializerOptions Settings = new(JsonSerializerDefaults.General)
        {
            Converters =
            {
                new DateOnlyConverter(),
                new TimeOnlyConverter(),
                IsoDateTimeOffsetConverter.Singleton
            },
        };
    }

    public class DateOnlyConverter : JsonConverter<DateOnly>
    {
        private readonly string serializationFormat;
        public DateOnlyConverter() : this(null) { }

        public DateOnlyConverter(string? serializationFormat)
        {
                this.serializationFormat = serializationFormat ?? "yyyy-MM-dd";
        }

        public override DateOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
                var value = reader.GetString();
                return DateOnly.Parse(value!);
        }

        public override void Write(Utf8JsonWriter writer, DateOnly value, JsonSerializerOptions options)
                => writer.WriteStringValue(value.ToString(serializationFormat));
    }

    public class TimeOnlyConverter : JsonConverter<TimeOnly>
    {
        private readonly string serializationFormat;

        public TimeOnlyConverter() : this(null) { }

        public TimeOnlyConverter(string? serializationFormat)
        {
                this.serializationFormat = serializationFormat ?? "HH:mm:ss.fff";
        }

        public override TimeOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
                var value = reader.GetString();
                return TimeOnly.Parse(value!);
        }

        public override void Write(Utf8JsonWriter writer, TimeOnly value, JsonSerializerOptions options)
                => writer.WriteStringValue(value.ToString(serializationFormat));
    }

    internal class IsoDateTimeOffsetConverter : JsonConverter<DateTimeOffset>
    {
        public override bool CanConvert(Type t) => t == typeof(DateTimeOffset);

        private const string DefaultDateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK";

        private DateTimeStyles _dateTimeStyles = DateTimeStyles.RoundtripKind;
        private string? _dateTimeFormat;
        private CultureInfo? _culture;

        public DateTimeStyles DateTimeStyles
        {
                get => _dateTimeStyles;
                set => _dateTimeStyles = value;
        }

        public string? DateTimeFormat
        {
                get => _dateTimeFormat ?? string.Empty;
                set => _dateTimeFormat = (string.IsNullOrEmpty(value)) ? null : value;
        }

        public CultureInfo Culture
        {
                get => _culture ?? CultureInfo.CurrentCulture;
                set => _culture = value;
        }

        public override void Write(Utf8JsonWriter writer, DateTimeOffset value, JsonSerializerOptions options)
        {
                string text;


                if ((_dateTimeStyles & DateTimeStyles.AdjustToUniversal) == DateTimeStyles.AdjustToUniversal
                        || (_dateTimeStyles & DateTimeStyles.AssumeUniversal) == DateTimeStyles.AssumeUniversal)
                {
                        value = value.ToUniversalTime();
                }

                text = value.ToString(_dateTimeFormat ?? DefaultDateTimeFormat, Culture);

                writer.WriteStringValue(text);
        }

        public override DateTimeOffset Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
                string? dateText = reader.GetString();

                if (string.IsNullOrEmpty(dateText) == false)
                {
                        if (!string.IsNullOrEmpty(_dateTimeFormat))
                        {
                                return DateTimeOffset.ParseExact(dateText, _dateTimeFormat, Culture, _dateTimeStyles);
                        }
                        else
                        {
                                return DateTimeOffset.Parse(dateText, Culture, _dateTimeStyles);
                        }
                }
                else
                {
                        return default(DateTimeOffset);
                }
        }


        public static readonly IsoDateTimeOffsetConverter Singleton = new IsoDateTimeOffsetConverter();
    }
}
#pragma warning restore CS8618
#pragma warning restore CS8601
#pragma warning restore CS8603

FulfillmentOrder
{
  "$schema": "http://json-schema.org/draft-07/schema#", 
  "$id": "FulfillmentOrder.json", 
  "description": "Details for Fulfillment Order JSON schema", 
  "type": "object", 
  "title": "FulfillmentOrder", 
  "properties": {
    "CustomerId": {
      "description": "Customer ID tied to the fulfillment order", 
      "type": ["string", "null"]
    }, 
    "FulfillmentOrderId": { "description": "Unique ID for fulfillment order", "type": ["string", "null"] }, 
    "FulfillmentSystemCustomerId": {
      "description": "ID of customer within the fulfillment system", 
      "type": ["string", "null"]
    }, 
    "FulfillmentSystemId": {
      "description": "System used to fulfill the order", 
      "type": ["string", "null"]
    }, 
    "FulfillmentSystemLocationId": {
      "description": "ID of location within the fulfillment system", 
      "type": ["string", "null"]
    }, 
    "FulfillmentSystemOrderId": {
      "description": "Fulfillment order ID within the fulfillment system", 
      "type": ["string", "null"]
    }, 
    "ReferenceId": {
      "description": "Reference ID for the fulfillment order", 
      "type": ["string", "null"]
    }, 
    "BillTo": {
      "description": "Fulfillment order level bill to contact and address details", 
      "type": ["object", "null"], 
      "properties": {
        "Address1": { "description": "Address line 1 for address", "type": ["string", "null"] }, 
        "Address2": { "description": "Address line 2 for address", "type": ["string", "null"] }, 
        "Address3": { "description": "Address line 3 for address", "type": ["string", "null"] }, 
        "AddressCode": { "description": "Address code for address", "type": ["string", "null"] }, 
        "City": { "description": "City name for address", "type": ["string", "null"] }, 
        "Company": { "description": "Company name for address", "type": ["string", "null"] }, 
        "Country": { "description": "Country name for address", "type": ["string", "null"] }, 
        "EmailAddress": {
          "description": "Contact email address for address", 
          "type": ["string", "null"]
        }, 
        "FaxNumber": { "description": "Fax number for address", "type": ["string", "null"] }, 
        "Name": { "description": "Contact name for this address", "type": ["string", "null"] }, 
        "PhoneNumber": { "description": "Phone number for address", "type": ["string", "null"] }, 
        "PostalCode": { "description": "Postal code for address", "type": ["string", "null"] }, 
        "StateProvince": {
          "description": "State or province name for address", 
          "type": ["string", "null"]
        }
      }
    }, 
    "CreateDateTime": {
      "description": "Created date time of the fulfillment order", 
      "type": ["string", "null"]
    }, 
    "DefaultShipToKey": { "description": "Default key for ShipTo", "type": ["string", "null"] }, 
    "DueDate": {
      "description": "Due date of the fulfillment order", 
      "type": ["string", "null"]
    }, 
    "OrderIds": {
      "description": "Order IDs tied to the fulfillment order", 
      "type": ["array", "null"], 
      "items": {"type": "string"}
    }, 
    "OrderVariables": {
      "description": "Order variables tied to the fulfillment order in JSON format", 
      "type": ["string", "null"]
    }, 
    "PONumber": {
      "description": "PO number tied to the fulfillment order", 
      "type": ["string", "null"]
    }, 
    "PaymentMethods": {
      "description": "PaymentMethod details", 
      "type": ["array", "null"], 
      "items": {
        "type": "object", 
        "properties": {
          "Amount"    : { "description": "Amount for the payment method", "type": ["number", "null"] }, 
          "MethodName": { "description": "Name of the payment method"   , "type": ["string", "null"] }
        }
      }
    }, 
    "Products": {
      "description": "Fulfillment order level product details", 
      "type": ["array", "null"], 
      "items": {
        "type": "object", 
        "properties": {
          "FulfillmentSystemId"       : { "description": "Fulfillment system ID"         , "type": ["string", "null"]  }, 
          "FulfillmentSystemProductId": { "description": "Fulfillment system product ID" , "type": ["string", "null"]  }, 
          "ProductId"                 : { "description": "Product ID"                    , "type": ["string", "null"]  }, 
          "ProductLineId"             : { "description": "Product line ID"               , "type": ["string", "null"]  }, 
          "AssociatedFileName"        : { "description": "Associated file name"          , "type": ["string", "null"]  }, 
          "Comment"                   : { "description": "Comment for the product"       , "type": ["string", "null"]  }, 
          "IsDeleted"                 : { "description": "Whether the product is deleted", "type": ["boolean", "null"] }, 
          "PageCount"                 : { "description": "Page count for the product"    , "type": ["integer", "null"] }, 
          "Price"                     : { "description": "Price of the product"          , "type": ["number", "null"]  }, 
          "QuantityOrdered"           : { "description": "Quantity ordered"              , "type": ["integer", "null"] }, 
          "ShipToKey"                 : { "description": "Ship to key for the product"   , "type": ["string", "null"]  }, 
          "Status"                    : { "description": "Status of the product"         , "type": ["string", "null"]  }
        }
      }
    }, 
    "RushOrder": {
      "description": "Indicator if the order is a rush order", 
      "type": ["boolean", "null"]
    }, 
    "ShipTos": {
      "description": "Fulfillment order level ship to details", 
      "type": ["array", "null"], 
      "items": {
        "type": "object", 
        "properties": {
          "FulfillmentSystemShippingMethodId": {
            "description": "Fulfillment system shipping method ID", 
            "type": ["string", "null"]
          }, 
          "ReferenceId": { "description": "Reference ID", "type": ["string", "null"] }, 
          "Comment": { "description": "Comment", "type": ["string", "null"] }, 
          "DueDate": { "description": "Due date", "type": ["string", "null"] }, 
          "IsDeleted": { "description": "Whether the ship to is deleted", "type": ["boolean", "null"] }, 
          "Key": {"description": "Key for the ship to", "type": "string"}, 
          "PONumber": { "description": "PO number", "type": ["string", "null"] }, 
          "PaymentMethods": {
            "description": "Payment methods for this ship to", 
            "type": ["array", "null"], 
            "items": {
              "type": "object", 
              "properties": {
                "Amount"    : { "description": "Amount for the payment method", "type": ["number", "null"] }, 
                "MethodName": { "description": "Name of the payment method"   , "type": ["string", "null"] }
              }
            }
          }, 
          "RushFee": { "description": "Rush fee", "type": ["number", "null"] }, 
          "RushOrder": { "description": "Whether this is a rush order", "type": ["boolean", "null"] }, 
          "ShipToAddress": {
            "description": "Ship to address", 
            "type": ["object", "null"], 
            "properties": {
              "Address1": { "description": "Address line 1 for address", "type": ["string", "null"] }, 
              "Address2": { "description": "Address line 2 for address", "type": ["string", "null"] }, 
              "Address3": { "description": "Address line 3 for address", "type": ["string", "null"] }, 
              "AddressCode": { "description": "Address code for address", "type": ["string", "null"] }, 
              "City": { "description": "City name for address", "type": ["string", "null"] }, 
              "Company": { "description": "Company name for address", "type": ["string", "null"] }, 
              "Country": { "description": "Country name for address", "type": ["string", "null"] }, 
              "EmailAddress": {
                "description": "Contact email address for address", 
                "type": ["string", "null"]
              }, 
              "FaxNumber": { "description": "Fax number for address", "type": ["string", "null"] }, 
              "Name": { "description": "Contact name for this address", "type": ["string", "null"] }, 
              "PhoneNumber": { "description": "Phone number for address", "type": ["string", "null"] }, 
              "PostalCode": { "description": "Postal code for address", "type": ["string", "null"] }, 
              "StateProvince": {
                "description": "State or province name for address", 
                "type": ["string", "null"]
              }
            }
          }, 
          "ShippingCarrier": { "description": "Shipping carrier", "type": ["string", "null"] }, 
          "ShippingCost": { "description": "Shipping cost", "type": ["number", "null"] }, 
          "ShippingService": { "description": "Shipping service", "type": ["string", "null"] }, 
          "Status": { "description": "Status", "type": ["string", "null"] }
        }, 
        "required": ["Key"]
      }
    }, 
    "Shipments": {
      "description": "Shipments tied to the fulfillment order", 
      "type": ["array", "null"], 
      "items": {
        "type": "object", 
        "properties": {
          "FulfillmentSystemId": { "description": "Fulfillment system ID", "type": ["string", "null"] }, 
          "FulfillmentSystemLocationId": { "description": "Fulfillment system location ID", "type": ["string", "null"] }, 
          "ShipmentId": { "description": "Shipment ID", "type": ["string", "null"] }, 
          "Carrier": { "description": "Carrier", "type": ["string", "null"] }, 
          "Freight": { "description": "Freight cost", "type": ["number", "null"] }, 
          "IsDeleted": {
            "description": "Whether the shipment is deleted", 
            "type": ["boolean", "null"]
          }, 
          "MasterTrackingNumber": { "description": "Master tracking number", "type": ["string", "null"] }, 
          "Packages": {
            "description": "Packages in the shipment", 
            "type": ["array", "null"], 
            "items": {
              "type": "object", 
              "properties": {
                "IsDeleted": { "description": "Whether the package is deleted", "type": ["boolean", "null"] }, 
                "PackageNumber": { "description": "Package number", "type": ["string", "null"] }, 
                "Products": {
                  "description": "Products in the package", 
                  "type": ["array", "null"], 
                  "items": {
                    "type": "object", 
                    "properties": {
                      "ProductLineId": { "description": "Product line ID", "type": ["string", "null"] }, 
                      "ShipQuantity" : { "description": "Ship quantity"  , "type": ["number", "null"] }
                    }
                  }
                }, 
                "TrackingNumber": { "description": "Tracking number", "type": ["string", "null"] }
              }
            }
          }, 
          "PackingSlipNumber": { "description": "Packing slip number", "type": ["string", "null"] }, 
          "Service": { "description": "Service", "type": ["string", "null"] }, 
          "ShipDateUtc": { "description": "Ship date in UTC", "type": ["string", "null"] }, 
          "ShipToAddress": {
            "description": "Ship to address", 
            "type": ["object", "null"], 
            "properties": {
              "Address1": { "description": "Address line 1 for address", "type": ["string", "null"] }, 
              "Address2": { "description": "Address line 2 for address", "type": ["string", "null"] }, 
              "Address3": { "description": "Address line 3 for address", "type": ["string", "null"] }, 
              "AddressCode": { "description": "Address code for address", "type": ["string", "null"] }, 
              "City": { "description": "City name for address", "type": ["string", "null"] }, 
              "Company": { "description": "Company name for address", "type": ["string", "null"] }, 
              "Country": { "description": "Country name for address", "type": ["string", "null"] }, 
              "EmailAddress": {
                "description": "Contact email address for address", 
                "type": ["string", "null"]
              }, 
              "FaxNumber": { "description": "Fax number for address", "type": ["string", "null"] }, 
              "Name": { "description": "Contact name for this address", "type": ["string", "null"] }, 
              "PhoneNumber": { "description": "Phone number for address", "type": ["string", "null"] }, 
              "PostalCode": { "description": "Postal code for address", "type": ["string", "null"] }, 
              "StateProvince": {
                "description": "State or province name for address", 
                "type": ["string", "null"]
              }
            }
          }
        }
      }
    }, 
    "Statuses": {
      "description": "Statuses tied to the fulfillment order", 
      "type": ["array", "null"], 
      "items": {"type": "string"}
    }
  }, 
  "required": ["FulfillmentOrderId"], 
  "examples": [
    {
      "CustomerId": "aa6b0d33-ef54-cdd0-497b-e54be56ed661", 
      "FulfillmentOrderId": "54caabeb-edb2-4a4f-9d33-fdc1aeb3fcb4", 
      "FulfillmentSystemCustomerId": "2519", 
      "FulfillmentSystemId": "6", 
      "FulfillmentSystemLocationId": "35d5d610-9eab-ad5d-c904-bcaaac711392", 
      "FulfillmentSystemOrderId": "eba0871d-8ae7-10ce-029c-48e4d8b20b90", 
      "BillTo": {
        "Address1": "854 Destin Summit", 
        "Address2": "Apt. 492", 
        "Address3": null, 
        "City": "West Betty", 
        "Company": null, 
        "Country": "United States", 
        "EmailAddress": "Lisandro53@gmail.com", 
        "FaxNumber": "1-253-540-1403", 
        "Name": "Hayden Daniel", 
        "PhoneNumber": "622-528-4051 x871", 
        "PostalCode": "83731", 
        "StateProvince": "OK"
      }, 
      "CreateDateTime": "2025-03-13T22:26:59.3895106Z", 
      "DefaultShipToKey": "0", 
      "DueDate": "2025-03-14T22:26:59.3895111Z", 
      "OrderIds": ["88236a77-813d-a65a-3311-e1facde69736"], 
      "OrderVariables": "{}", 
      "PONumber": "n94ualw05x", 
      "PaymentMethods": [ {"Amount": 131.25, "MethodName": "Credit Card"} ], 
      "Products": [
        {
          "FulfillmentSystemProductId": "123456", 
          "ProductId": "cd3893db-3294-55af-c62d-a53eaf1dc4fa-5d9d746d-e52a-bd9f-ba5a-915619d64707-718a25da-9d81-7ac2-b708-cf464de524d8", 
          "ProductLineId": "2a551eb8-e7f9-b66a-adfb-6d996e232265|2890247614|1714493355", 
          "AssociatedFileName": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", 
          "Comment": "This is a comment for 123456", 
          "IsDeleted": null, 
          "Price": 0.13, 
          "QuantityOrdered": 250, 
          "ShipToKey": "0", 
          "Status": null
        }, 
        {
          "FulfillmentSystemProductId": "123456_2", 
          "ProductId": "963654b0-a14e-650c-d063-bef87afa9fa6-53fa7b3d-596e-8e63-07f0-596aa360b0b7-aba81b6f-703f-8746-98e4-3fba68b26704", 
          "ProductLineId": "a563df71-76c6-0b9e-7696-f121e537be31|2829663350|2620274204", 
          "AssociatedFileName": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", 
          "Comment": "This is a comment for 123456_2", 
          "IsDeleted": null, 
          "Price": 0.13, 
          "QuantityOrdered": 375, 
          "ShipToKey": "0", 
          "Status": null
        }
      ], 
      "RushOrder": true, 
      "ShipTos": [
        {
          "FulfillmentSystemShippingMethodId": "FedEx Ground", 
          "Comment": null, 
          "DueDate": null, 
          "Key": "0", 
          "PONumber": null, 
          "PaymentMethods": null, 
          "RushOrder": null, 
          "ShipToAddress": {
            "Address1": "21133 Mraz Estate", 
            "Address2": null, 
            "Address3": null, 
            "City": "Port Novella", 
            "Company": null, 
            "Country": "United States", 
            "EmailAddress": "Leda.Hudson@yahoo.com", 
            "FaxNumber": "(389) 855-1980 x01354", 
            "Name": "Gerard Hamill", 
            "PhoneNumber": "778-483-8935", 
            "PostalCode": "16141-8021", 
            "StateProvince": "TX"
          }, 
          "ShippingCarrier": null, 
          "ShippingCost": 10.0, 
          "ShippingService": null, 
          "Status": null
        }
      ]
    }
  ]
}