diff --git a/.gitignore b/.gitignore
index 984299ed..85d9afee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,4 +18,5 @@ dockerfile
docker-compose.*
node_modules
-out
\ No newline at end of file
+out
+.claude
diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index f571e18d..18a3ebc4 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -96,10 +96,14 @@ ShipEngineSDK/Model/CreateAndValidateShipment.cs
ShipEngineSDK/Model/CreateBatchRequest.cs
ShipEngineSDK/Model/CreateBatchRequestBody.cs
ShipEngineSDK/Model/CreateBatchResponseBody.cs
+ShipEngineSDK/Model/CreateCombinedLabelDocumentRequestBody.cs
+ShipEngineSDK/Model/CreateCombinedLabelDocumentResponseBodyYaml.cs
ShipEngineSDK/Model/CreateLabelFromRateRequestBody.cs
ShipEngineSDK/Model/CreateLabelFromRateResponseBody.cs
ShipEngineSDK/Model/CreateLabelFromShipmentRequestBody.cs
ShipEngineSDK/Model/CreateLabelFromShipmentResponseBody.cs
+ShipEngineSDK/Model/CreateLabelRateShopperRequestBody.cs
+ShipEngineSDK/Model/CreateLabelRateShopperResponseBody.cs
ShipEngineSDK/Model/CreateLabelRequestBody.cs
ShipEngineSDK/Model/CreateLabelResponseBody.cs
ShipEngineSDK/Model/CreateManifestByObjectRequestBody.cs
@@ -113,6 +117,7 @@ ShipEngineSDK/Model/CreateReturnLabelResponseBody.cs
ShipEngineSDK/Model/CreateShipmentResponseBodyFields.cs
ShipEngineSDK/Model/CreateShipmentsRequestBody.cs
ShipEngineSDK/Model/CreateShipmentsResponseBody.cs
+ShipEngineSDK/Model/CreateTagRequestBody.cs
ShipEngineSDK/Model/CreateTagResponseBody.cs
ShipEngineSDK/Model/CreateWarehouseRequestBody.cs
ShipEngineSDK/Model/CreateWarehouseResponseBody.cs
@@ -138,6 +143,7 @@ ShipEngineSDK/Model/ErrorSource.cs
ShipEngineSDK/Model/ErrorType.cs
ShipEngineSDK/Model/ErrorWithLabelIdResponseBody.cs
ShipEngineSDK/Model/EstimateRatesRequestBody.cs
+ShipEngineSDK/Model/EstimatedImportCharges.cs
ShipEngineSDK/Model/FedexAccountSettings.cs
ShipEngineSDK/Model/FedexAccountSettingsRequestBody.cs
ShipEngineSDK/Model/FedexPickupType.cs
@@ -235,6 +241,7 @@ ShipEngineSDK/Model/ParseShipmentRequestBody.cs
ShipEngineSDK/Model/ParseShipmentResponseBody.cs
ShipEngineSDK/Model/PartialAddress.cs
ShipEngineSDK/Model/PartialShipment.cs
+ShipEngineSDK/Model/PartialShipmentForRateShopper.cs
ShipEngineSDK/Model/PartialShippingAddress.cs
ShipEngineSDK/Model/PartialShippingAddressTo.cs
ShipEngineSDK/Model/PartialShippingAddressToGeolocationInner.cs
@@ -247,6 +254,7 @@ ShipEngineSDK/Model/ProcessBatchRequestBody.cs
ShipEngineSDK/Model/Products.cs
ShipEngineSDK/Model/PurchaseLabelWithoutShipment.cs
ShipEngineSDK/Model/Rate.cs
+ShipEngineSDK/Model/RateAttributes.cs
ShipEngineSDK/Model/RateDetail.cs
ShipEngineSDK/Model/RateDetailAttributes.cs
ShipEngineSDK/Model/RateDetailType.cs
@@ -264,9 +272,11 @@ ShipEngineSDK/Model/RateResponseStatus.cs
ShipEngineSDK/Model/RateShipmentRequest.cs
ShipEngineSDK/Model/RateType.cs
ShipEngineSDK/Model/RatesInformation.cs
+ShipEngineSDK/Model/RatesInformationRatesInner.cs
ShipEngineSDK/Model/ReasonCode.cs
ShipEngineSDK/Model/RecognizedEntity.cs
ShipEngineSDK/Model/Redirect.cs
+ShipEngineSDK/Model/RegulatedContentType.cs
ShipEngineSDK/Model/RegulationLevel.cs
ShipEngineSDK/Model/RemoveFromBatchRequestBody.cs
ShipEngineSDK/Model/ResponseMessage.cs
@@ -424,10 +434,14 @@ docs/models/CreateAndValidateShipment.md
docs/models/CreateBatchRequest.md
docs/models/CreateBatchRequestBody.md
docs/models/CreateBatchResponseBody.md
+docs/models/CreateCombinedLabelDocumentRequestBody.md
+docs/models/CreateCombinedLabelDocumentResponseBodyYaml.md
docs/models/CreateLabelFromRateRequestBody.md
docs/models/CreateLabelFromRateResponseBody.md
docs/models/CreateLabelFromShipmentRequestBody.md
docs/models/CreateLabelFromShipmentResponseBody.md
+docs/models/CreateLabelRateShopperRequestBody.md
+docs/models/CreateLabelRateShopperResponseBody.md
docs/models/CreateLabelRequestBody.md
docs/models/CreateLabelResponseBody.md
docs/models/CreateManifestByObjectRequestBody.md
@@ -441,6 +455,7 @@ docs/models/CreateReturnLabelResponseBody.md
docs/models/CreateShipmentResponseBodyFields.md
docs/models/CreateShipmentsRequestBody.md
docs/models/CreateShipmentsResponseBody.md
+docs/models/CreateTagRequestBody.md
docs/models/CreateTagResponseBody.md
docs/models/CreateWarehouseRequestBody.md
docs/models/CreateWarehouseResponseBody.md
@@ -466,6 +481,7 @@ docs/models/ErrorSource.md
docs/models/ErrorType.md
docs/models/ErrorWithLabelIdResponseBody.md
docs/models/EstimateRatesRequestBody.md
+docs/models/EstimatedImportCharges.md
docs/models/FedexAccountSettings.md
docs/models/FedexAccountSettingsRequestBody.md
docs/models/FedexPickupType.md
@@ -563,6 +579,7 @@ docs/models/ParseShipmentRequestBody.md
docs/models/ParseShipmentResponseBody.md
docs/models/PartialAddress.md
docs/models/PartialShipment.md
+docs/models/PartialShipmentForRateShopper.md
docs/models/PartialShippingAddress.md
docs/models/PartialShippingAddressTo.md
docs/models/PartialShippingAddressToGeolocationInner.md
@@ -575,6 +592,7 @@ docs/models/ProcessBatchRequestBody.md
docs/models/Products.md
docs/models/PurchaseLabelWithoutShipment.md
docs/models/Rate.md
+docs/models/RateAttributes.md
docs/models/RateDetail.md
docs/models/RateDetailAttributes.md
docs/models/RateDetailType.md
@@ -592,9 +610,11 @@ docs/models/RateResponseStatus.md
docs/models/RateShipmentRequest.md
docs/models/RateType.md
docs/models/RatesInformation.md
+docs/models/RatesInformationRatesInner.md
docs/models/ReasonCode.md
docs/models/RecognizedEntity.md
docs/models/Redirect.md
+docs/models/RegulatedContentType.md
docs/models/RegulationLevel.md
docs/models/RemoveFromBatchRequestBody.md
docs/models/ResponseMessage.md
diff --git a/README.md b/README.md
index 05833c50..e8e41a2d 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ var shipengine = new ShipEngine("___YOUR_API_KEY_HERE__");
This C# SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
-- API version: 1.1.202501091801
+- API version: 1.1.202603171403
- SDK version: 3.0.0
- Generator version: 7.7.0
- Build package: org.openapitools.codegen.languages.CSharpClientCodegen
@@ -86,8 +86,10 @@ API | Method | Description
*Insurance* | [**ConnectInsurer**](docs//apis/InsuranceApi.md#connectinsurer) | Connect a Shipsurance Account
*Insurance* | [**DisconnectInsurer**](docs//apis/InsuranceApi.md#disconnectinsurer) | Disconnect a Shipsurance Account
*Insurance* | [**GetInsuranceBalance**](docs//apis/InsuranceApi.md#getinsurancebalance) | Get Insurance Funds Balance
+*Labels* | [**CreateCombinedLabelDocument**](docs//apis/LabelsApi.md#createcombinedlabeldocument) | Created Combined Label Document
*Labels* | [**CreateLabel**](docs//apis/LabelsApi.md#createlabel) | Purchase Label
*Labels* | [**CreateLabelFromRate**](docs//apis/LabelsApi.md#createlabelfromrate) | Purchase Label with Rate ID
+*Labels* | [**CreateLabelFromRateShopper**](docs//apis/LabelsApi.md#createlabelfromrateshopper) | Purchase Label from Rate Shopper
*Labels* | [**CreateLabelFromShipment**](docs//apis/LabelsApi.md#createlabelfromshipment) | Purchase Label with Shipment ID
*Labels* | [**CreateReturnLabel**](docs//apis/LabelsApi.md#createreturnlabel) | Create a return label
*Labels* | [**GetLabelByExternalShipmentId**](docs//apis/LabelsApi.md#getlabelbyexternalshipmentid) | Get Label By External Shipment ID
@@ -127,6 +129,7 @@ API | Method | Description
*Shipments* | [**UntagShipment**](docs//apis/ShipmentsApi.md#untagshipment) | Remove Tag from Shipment
*Shipments* | [**UpdateShipment**](docs//apis/ShipmentsApi.md#updateshipment) | Update Shipment By ID
*Tags* | [**CreateTag**](docs//apis/TagsApi.md#createtag) | Create a New Tag
+*Tags* | [**CreateTag_0**](docs//apis/TagsApi.md#createtag_0) | Create a New Tag
*Tags* | [**DeleteTag**](docs//apis/TagsApi.md#deletetag) | Delete Tag
*Tags* | [**ListTags**](docs//apis/TagsApi.md#listtags) | Get Tags
*Tags* | [**RenameTag**](docs//apis/TagsApi.md#renametag) | Update Tag Name
diff --git a/ShipEngineSDK/Api/BatchesApi.cs b/ShipEngineSDK/Api/BatchesApi.cs
index e388d35a..76bca85d 100644
--- a/ShipEngineSDK/Api/BatchesApi.cs
+++ b/ShipEngineSDK/Api/BatchesApi.cs
@@ -163,13 +163,17 @@ public partial interface IShipEngine
/// Thrown when fails to make API call
/// (optional)
/// (optional)
+ /// Only return batches that were created on or after a specific date/time (optional)
+ /// Only return batches that were created on or before a specific date/time (optional)
+ /// Only return batches that were processed on or after a specific date/time (optional)
+ /// Only return batches that were processed on or before a specific date/time (optional)
/// Controls the sort order of the query. (optional)
/// Batch Number (optional)
/// Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned. (optional, default to 1)
/// The number of results to return per response. (optional, default to 25)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (ListBatchesResponseBody)
- Task ListBatches(BatchStatus? status, BatchesSortBy? sortBy, SortDir? sortDir, string? batchNumber, int? page, int? pageSize, CancellationToken cancellationToken = default);
+ Task ListBatches(BatchStatus? status, BatchesSortBy? sortBy, DateTimeOffset? createdAtStart, DateTimeOffset? createdAtEnd, DateTimeOffset? processedAtStart, DateTimeOffset? processedAtEnd, SortDir? sortDir, string? batchNumber, int? page, int? pageSize, CancellationToken cancellationToken = default);
///
/// List Batches List Batches associated with your Shipengine account
@@ -179,13 +183,17 @@ public partial interface IShipEngine
/// HttpClient to use for the request
/// (optional)
/// (optional)
+ /// Only return batches that were created on or after a specific date/time (optional)
+ /// Only return batches that were created on or before a specific date/time (optional)
+ /// Only return batches that were processed on or after a specific date/time (optional)
+ /// Only return batches that were processed on or before a specific date/time (optional)
/// Controls the sort order of the query. (optional)
/// Batch Number (optional)
/// Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned. (optional, default to 1)
/// The number of results to return per response. (optional, default to 25)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (ListBatchesResponseBody)
- Task ListBatches(HttpClient methodClient, BatchStatus? status, BatchesSortBy? sortBy, SortDir? sortDir, string? batchNumber, int? page, int? pageSize, CancellationToken cancellationToken = default);
+ Task ListBatches(HttpClient methodClient, BatchStatus? status, BatchesSortBy? sortBy, DateTimeOffset? createdAtStart, DateTimeOffset? createdAtEnd, DateTimeOffset? processedAtStart, DateTimeOffset? processedAtEnd, SortDir? sortDir, string? batchNumber, int? page, int? pageSize, CancellationToken cancellationToken = default);
///
/// Process Batch ID Labels Process Batch ID Labels
@@ -541,15 +549,19 @@ public async Task ListBatchErrors(HttpClient method
/// Thrown when fails to make API call
/// (optional)
/// (optional)
+ /// Only return batches that were created on or after a specific date/time (optional)
+ /// Only return batches that were created on or before a specific date/time (optional)
+ /// Only return batches that were processed on or after a specific date/time (optional)
+ /// Only return batches that were processed on or before a specific date/time (optional)
/// Controls the sort order of the query. (optional)
/// Batch Number (optional)
/// Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned. (optional, default to 1)
/// The number of results to return per response. (optional, default to 25)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (ListBatchesResponseBody)
- public Task ListBatches(BatchStatus? status = default, BatchesSortBy? sortBy = default, SortDir? sortDir = default, string? batchNumber = default, int? page = default, int? pageSize = default, CancellationToken cancellationToken = default)
+ public Task ListBatches(BatchStatus? status = default, BatchesSortBy? sortBy = default, DateTimeOffset? createdAtStart = default, DateTimeOffset? createdAtEnd = default, DateTimeOffset? processedAtStart = default, DateTimeOffset? processedAtEnd = default, SortDir? sortDir = default, string? batchNumber = default, int? page = default, int? pageSize = default, CancellationToken cancellationToken = default)
{
- return ListBatches(_client, status, sortBy, sortDir, batchNumber, page, pageSize, cancellationToken);
+ return ListBatches(_client, status, sortBy, createdAtStart, createdAtEnd, processedAtStart, processedAtEnd, sortDir, batchNumber, page, pageSize, cancellationToken);
}
///
@@ -560,13 +572,17 @@ public Task ListBatches(BatchStatus? status = default,
/// HttpClient to use for the request
/// (optional)
/// (optional)
+ /// Only return batches that were created on or after a specific date/time (optional)
+ /// Only return batches that were created on or before a specific date/time (optional)
+ /// Only return batches that were processed on or after a specific date/time (optional)
+ /// Only return batches that were processed on or before a specific date/time (optional)
/// Controls the sort order of the query. (optional)
/// Batch Number (optional)
/// Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned. (optional, default to 1)
/// The number of results to return per response. (optional, default to 25)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (ListBatchesResponseBody)
- public async Task ListBatches(HttpClient methodClient, BatchStatus? status = default, BatchesSortBy? sortBy = default, SortDir? sortDir = default, string? batchNumber = default, int? page = default, int? pageSize = default, CancellationToken cancellationToken = default)
+ public async Task ListBatches(HttpClient methodClient, BatchStatus? status = default, BatchesSortBy? sortBy = default, DateTimeOffset? createdAtStart = default, DateTimeOffset? createdAtEnd = default, DateTimeOffset? processedAtStart = default, DateTimeOffset? processedAtEnd = default, SortDir? sortDir = default, string? batchNumber = default, int? page = default, int? pageSize = default, CancellationToken cancellationToken = default)
{
RequestOptions requestOptions = new("/v1/batches");
@@ -579,6 +595,22 @@ public async Task ListBatches(HttpClient methodClient,
{
requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "sort_by", sortBy));
}
+ if (createdAtStart != null)
+ {
+ requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "created_at_start", createdAtStart));
+ }
+ if (createdAtEnd != null)
+ {
+ requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "created_at_end", createdAtEnd));
+ }
+ if (processedAtStart != null)
+ {
+ requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "processed_at_start", processedAtStart));
+ }
+ if (processedAtEnd != null)
+ {
+ requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "processed_at_end", processedAtEnd));
+ }
if (sortDir != null)
{
requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "sort_dir", sortDir));
diff --git a/ShipEngineSDK/Api/LabelsApi.cs b/ShipEngineSDK/Api/LabelsApi.cs
index 6717e400..a08e1ba8 100644
--- a/ShipEngineSDK/Api/LabelsApi.cs
+++ b/ShipEngineSDK/Api/LabelsApi.cs
@@ -24,6 +24,27 @@ namespace ShipEngineSDK;
///
public partial interface IShipEngine
{
+ ///
+ /// Created Combined Label Document Download a combined label file
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ ///
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateCombinedLabelDocumentResponseBodyYaml)
+ Task CreateCombinedLabelDocument(CreateCombinedLabelDocumentRequestBody createCombinedLabelDocumentRequestBody, CancellationToken cancellationToken = default);
+
+ ///
+ /// Created Combined Label Document Download a combined label file
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ /// HttpClient to use for the request
+ ///
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateCombinedLabelDocumentResponseBodyYaml)
+ Task CreateCombinedLabelDocument(HttpClient methodClient, CreateCombinedLabelDocumentRequestBody createCombinedLabelDocumentRequestBody, CancellationToken cancellationToken = default);
+
///
/// Purchase Label Purchase and print a label for shipment
///
@@ -68,6 +89,29 @@ public partial interface IShipEngine
/// Task of ApiResponse (CreateLabelFromRateResponseBody)
Task CreateLabelFromRate(HttpClient methodClient, CreateLabelFromRateRequestBody createLabelFromRateRequestBody, string rateId, CancellationToken cancellationToken = default);
+ ///
+ /// Purchase Label from Rate Shopper Purchase and print a shipping label using the Rate Shopper. The Rate Shopper automatically selects the optimal carrier and service from your wallet carriers based on your specified rate selection strategy (cheapest, fastest, or best_value). For more information about this in the [rates documentation](https://www.shipengine.com/docs/rates/#about-the-response).
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ /// Label creation details with inline shipment
+ /// The rate selection strategy for the Rate Shopper. This determines which carrier and service will be automatically selected from your wallet carriers based on the rates returned for the shipment.
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateLabelRateShopperResponseBody)
+ Task CreateLabelFromRateShopper(CreateLabelRateShopperRequestBody createLabelRateShopperRequestBody, RateAttributes rateShopperId, CancellationToken cancellationToken = default);
+
+ ///
+ /// Purchase Label from Rate Shopper Purchase and print a shipping label using the Rate Shopper. The Rate Shopper automatically selects the optimal carrier and service from your wallet carriers based on your specified rate selection strategy (cheapest, fastest, or best_value). For more information about this in the [rates documentation](https://www.shipengine.com/docs/rates/#about-the-response).
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ /// HttpClient to use for the request
+ /// Label creation details with inline shipment
+ /// The rate selection strategy for the Rate Shopper. This determines which carrier and service will be automatically selected from your wallet carriers based on the rates returned for the shipment.
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateLabelRateShopperResponseBody)
+ Task CreateLabelFromRateShopper(HttpClient methodClient, CreateLabelRateShopperRequestBody createLabelRateShopperRequestBody, RateAttributes rateShopperId, CancellationToken cancellationToken = default);
+
///
/// Purchase Label with Shipment ID Purchase a label using a shipment ID that has already been created with the desired address and package info.
///
@@ -92,7 +136,7 @@ public partial interface IShipEngine
Task CreateLabelFromShipment(HttpClient methodClient, CreateLabelFromShipmentRequestBody createLabelFromShipmentRequestBody, string shipmentId, CancellationToken cancellationToken = default);
///
- /// Create a return label Create a return label
+ /// Create a return label Create a return label for an existing outbound label. You can optionally specify a custom RMA (Return Merchandise Authorization) number. If no RMA number is provided, the system will auto-generate one.
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
@@ -103,7 +147,7 @@ public partial interface IShipEngine
Task CreateReturnLabel(CreateReturnLabelRequestBody createReturnLabelRequestBody, string labelId, CancellationToken cancellationToken = default);
///
- /// Create a return label Create a return label
+ /// Create a return label Create a return label for an existing outbound label. You can optionally specify a custom RMA (Return Merchandise Authorization) number. If no RMA number is provided, the system will auto-generate one.
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
@@ -256,6 +300,48 @@ public partial interface IShipEngine
///
public partial class ShipEngine
{
+ ///
+ /// Created Combined Label Document Download a combined label file
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ ///
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateCombinedLabelDocumentResponseBodyYaml)
+ public Task CreateCombinedLabelDocument(CreateCombinedLabelDocumentRequestBody createCombinedLabelDocumentRequestBody, CancellationToken cancellationToken = default)
+ {
+ return CreateCombinedLabelDocument(_client, createCombinedLabelDocumentRequestBody, cancellationToken);
+ }
+
+ ///
+ /// Created Combined Label Document Download a combined label file
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ /// HttpClient to use for the request
+ ///
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateCombinedLabelDocumentResponseBodyYaml)
+ public async Task CreateCombinedLabelDocument(HttpClient methodClient, CreateCombinedLabelDocumentRequestBody createCombinedLabelDocumentRequestBody, CancellationToken cancellationToken = default)
+ {
+ // verify the required parameter 'createCombinedLabelDocumentRequestBody' is set
+ if (createCombinedLabelDocumentRequestBody == null)
+ {
+ throw new ArgumentNullException(nameof(createCombinedLabelDocumentRequestBody));
+ }
+
+
+ RequestOptions requestOptions = new("/v1/documents/combined_labels");
+
+ requestOptions.Data = JsonSerializer.Serialize(createCombinedLabelDocumentRequestBody, JsonSerializerOptions);
+
+ requestOptions.Operation = "LabelsApi.CreateCombinedLabelDocument";
+
+ var result = await SendHttpRequestAsync(HttpMethods.Post, requestOptions, methodClient, _config, cancellationToken);
+
+ return result;
+ }
+
///
/// Purchase Label Purchase and print a label for shipment
///
@@ -349,6 +435,57 @@ public async Task CreateLabelFromRate(HttpClien
return result;
}
+ ///
+ /// Purchase Label from Rate Shopper Purchase and print a shipping label using the Rate Shopper. The Rate Shopper automatically selects the optimal carrier and service from your wallet carriers based on your specified rate selection strategy (cheapest, fastest, or best_value). For more information about this in the [rates documentation](https://www.shipengine.com/docs/rates/#about-the-response).
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ /// Label creation details with inline shipment
+ /// The rate selection strategy for the Rate Shopper. This determines which carrier and service will be automatically selected from your wallet carriers based on the rates returned for the shipment.
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateLabelRateShopperResponseBody)
+ public Task CreateLabelFromRateShopper(CreateLabelRateShopperRequestBody createLabelRateShopperRequestBody, RateAttributes rateShopperId, CancellationToken cancellationToken = default)
+ {
+ return CreateLabelFromRateShopper(_client, createLabelRateShopperRequestBody, rateShopperId, cancellationToken);
+ }
+
+ ///
+ /// Purchase Label from Rate Shopper Purchase and print a shipping label using the Rate Shopper. The Rate Shopper automatically selects the optimal carrier and service from your wallet carriers based on your specified rate selection strategy (cheapest, fastest, or best_value). For more information about this in the [rates documentation](https://www.shipengine.com/docs/rates/#about-the-response).
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ /// HttpClient to use for the request
+ /// Label creation details with inline shipment
+ /// The rate selection strategy for the Rate Shopper. This determines which carrier and service will be automatically selected from your wallet carriers based on the rates returned for the shipment.
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateLabelRateShopperResponseBody)
+ public async Task CreateLabelFromRateShopper(HttpClient methodClient, CreateLabelRateShopperRequestBody createLabelRateShopperRequestBody, RateAttributes rateShopperId, CancellationToken cancellationToken = default)
+ {
+ // verify the required parameter 'createLabelRateShopperRequestBody' is set
+ if (createLabelRateShopperRequestBody == null)
+ {
+ throw new ArgumentNullException(nameof(createLabelRateShopperRequestBody));
+ }
+
+ // verify the required parameter 'rateShopperId' is set
+ if (rateShopperId == null)
+ {
+ throw new ArgumentNullException(nameof(rateShopperId));
+ }
+
+
+ RequestOptions requestOptions = new("/v1/labels/rate_shopper_id/{rate_shopper_id}");
+
+ requestOptions.PathParameters.Add("rate_shopper_id", ClientUtils.ParameterToString(rateShopperId)); // path parameter
+ requestOptions.Data = JsonSerializer.Serialize(createLabelRateShopperRequestBody, JsonSerializerOptions);
+
+ requestOptions.Operation = "LabelsApi.CreateLabelFromRateShopper";
+
+ var result = await SendHttpRequestAsync(HttpMethods.Post, requestOptions, methodClient, _config, cancellationToken);
+
+ return result;
+ }
+
///
/// Purchase Label with Shipment ID Purchase a label using a shipment ID that has already been created with the desired address and package info.
///
@@ -401,7 +538,7 @@ public async Task CreateLabelFromShipment(H
}
///
- /// Create a return label Create a return label
+ /// Create a return label Create a return label for an existing outbound label. You can optionally specify a custom RMA (Return Merchandise Authorization) number. If no RMA number is provided, the system will auto-generate one.
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
@@ -415,7 +552,7 @@ public Task CreateReturnLabel(CreateReturnLabelRe
}
///
- /// Create a return label Create a return label
+ /// Create a return label Create a return label for an existing outbound label. You can optionally specify a custom RMA (Return Merchandise Authorization) number. If no RMA number is provided, the system will auto-generate one.
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
diff --git a/ShipEngineSDK/Api/TagsApi.cs b/ShipEngineSDK/Api/TagsApi.cs
index 94031585..b49133a2 100644
--- a/ShipEngineSDK/Api/TagsApi.cs
+++ b/ShipEngineSDK/Api/TagsApi.cs
@@ -25,17 +25,38 @@ namespace ShipEngineSDK;
public partial interface IShipEngine
{
///
- /// Create a New Tag Create a new Tag for customizing how you track your shipments
+ /// Create a New Tag Create a new tag for customizing how you track your shipments.
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ ///
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateTagResponseBody)
+ Task CreateTag(CreateTagRequestBody createTagRequestBody, CancellationToken cancellationToken = default);
+
+ ///
+ /// Create a New Tag Create a new tag for customizing how you track your shipments.
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ /// HttpClient to use for the request
+ ///
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateTagResponseBody)
+ Task CreateTag(HttpClient methodClient, CreateTagRequestBody createTagRequestBody, CancellationToken cancellationToken = default);
+
+ ///
+ /// Create a New Tag Create a new tag for customizing how you track your shipments (deprecated - use POST /v1/tags instead)
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
///
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (CreateTagResponseBody)
- Task CreateTag(string tagName, CancellationToken cancellationToken = default);
+ Task CreateTag_0(string tagName, CancellationToken cancellationToken = default);
///
- /// Create a New Tag Create a new Tag for customizing how you track your shipments
+ /// Create a New Tag Create a new tag for customizing how you track your shipments (deprecated - use POST /v1/tags instead)
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
@@ -43,7 +64,7 @@ public partial interface IShipEngine
///
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (CreateTagResponseBody)
- Task CreateTag(HttpClient methodClient, string tagName, CancellationToken cancellationToken = default);
+ Task CreateTag_0(HttpClient methodClient, string tagName, CancellationToken cancellationToken = default);
///
/// Delete Tag Delete a tag that is no longer needed
@@ -116,20 +137,62 @@ public partial interface IShipEngine
public partial class ShipEngine
{
///
- /// Create a New Tag Create a new Tag for customizing how you track your shipments
+ /// Create a New Tag Create a new tag for customizing how you track your shipments.
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ ///
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateTagResponseBody)
+ public Task CreateTag(CreateTagRequestBody createTagRequestBody, CancellationToken cancellationToken = default)
+ {
+ return CreateTag(_client, createTagRequestBody, cancellationToken);
+ }
+
+ ///
+ /// Create a New Tag Create a new tag for customizing how you track your shipments.
+ ///
+ /// Thrown when required argument is null
+ /// Thrown when fails to make API call
+ /// HttpClient to use for the request
+ ///
+ /// Cancellation Token to cancel the request.
+ /// Task of ApiResponse (CreateTagResponseBody)
+ public async Task CreateTag(HttpClient methodClient, CreateTagRequestBody createTagRequestBody, CancellationToken cancellationToken = default)
+ {
+ // verify the required parameter 'createTagRequestBody' is set
+ if (createTagRequestBody == null)
+ {
+ throw new ArgumentNullException(nameof(createTagRequestBody));
+ }
+
+
+ RequestOptions requestOptions = new("/v1/tags");
+
+ requestOptions.Data = JsonSerializer.Serialize(createTagRequestBody, JsonSerializerOptions);
+
+ requestOptions.Operation = "TagsApi.CreateTag";
+
+ var result = await SendHttpRequestAsync(HttpMethods.Post, requestOptions, methodClient, _config, cancellationToken);
+
+ return result;
+ }
+
+ ///
+ /// Create a New Tag Create a new tag for customizing how you track your shipments (deprecated - use POST /v1/tags instead)
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
///
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (CreateTagResponseBody)
- public Task CreateTag(string tagName, CancellationToken cancellationToken = default)
+ public Task CreateTag_0(string tagName, CancellationToken cancellationToken = default)
{
- return CreateTag(_client, tagName, cancellationToken);
+ return CreateTag_0(_client, tagName, cancellationToken);
}
///
- /// Create a New Tag Create a new Tag for customizing how you track your shipments
+ /// Create a New Tag Create a new tag for customizing how you track your shipments (deprecated - use POST /v1/tags instead)
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
@@ -137,7 +200,7 @@ public Task CreateTag(string tagName, CancellationToken c
///
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (CreateTagResponseBody)
- public async Task CreateTag(HttpClient methodClient, string tagName, CancellationToken cancellationToken = default)
+ public async Task CreateTag_0(HttpClient methodClient, string tagName, CancellationToken cancellationToken = default)
{
// verify the required parameter 'tagName' is set
if (tagName == null)
@@ -150,7 +213,7 @@ public async Task CreateTag(HttpClient methodClient, stri
requestOptions.PathParameters.Add("tag_name", ClientUtils.ParameterToString(tagName)); // path parameter
- requestOptions.Operation = "TagsApi.CreateTag";
+ requestOptions.Operation = "TagsApi.CreateTag_0";
var result = await SendHttpRequestAsync(HttpMethods.Post, requestOptions, methodClient, _config, cancellationToken);
diff --git a/ShipEngineSDK/Api/TrackingApi.cs b/ShipEngineSDK/Api/TrackingApi.cs
index 6e80832f..4bad6075 100644
--- a/ShipEngineSDK/Api/TrackingApi.cs
+++ b/ShipEngineSDK/Api/TrackingApi.cs
@@ -31,9 +31,10 @@ public partial interface IShipEngine
/// Thrown when fails to make API call
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (GetTrackingLogResponseBody)
- Task GetTrackingLog(string? carrierCode, string? trackingNumber, CancellationToken cancellationToken = default);
+ Task GetTrackingLog(string? carrierCode, string? trackingNumber, string? carrierId, CancellationToken cancellationToken = default);
///
/// Get Tracking Information Retrieve package tracking information
@@ -43,9 +44,10 @@ public partial interface IShipEngine
/// HttpClient to use for the request
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (GetTrackingLogResponseBody)
- Task GetTrackingLog(HttpClient methodClient, string? carrierCode, string? trackingNumber, CancellationToken cancellationToken = default);
+ Task GetTrackingLog(HttpClient methodClient, string? carrierCode, string? trackingNumber, string? carrierId, CancellationToken cancellationToken = default);
///
/// Start Tracking a Package Allows you to subscribe to tracking updates for a package. You specify the carrier_code and tracking_number of the package, and receive notifications via webhooks whenever the shipping status changes.
@@ -54,9 +56,10 @@ public partial interface IShipEngine
/// Thrown when fails to make API call
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (string)
- Task StartTracking(string? carrierCode, string? trackingNumber, CancellationToken cancellationToken = default);
+ Task StartTracking(string? carrierCode, string? trackingNumber, string? carrierId, CancellationToken cancellationToken = default);
///
/// Start Tracking a Package Allows you to subscribe to tracking updates for a package. You specify the carrier_code and tracking_number of the package, and receive notifications via webhooks whenever the shipping status changes.
@@ -66,9 +69,10 @@ public partial interface IShipEngine
/// HttpClient to use for the request
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (string)
- Task StartTracking(HttpClient methodClient, string? carrierCode, string? trackingNumber, CancellationToken cancellationToken = default);
+ Task StartTracking(HttpClient methodClient, string? carrierCode, string? trackingNumber, string? carrierId, CancellationToken cancellationToken = default);
///
/// Stop Tracking a Package Unsubscribe from tracking updates for a package.
@@ -77,9 +81,10 @@ public partial interface IShipEngine
/// Thrown when fails to make API call
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (string)
- Task StopTracking(string? carrierCode, string? trackingNumber, CancellationToken cancellationToken = default);
+ Task StopTracking(string? carrierCode, string? trackingNumber, string? carrierId, CancellationToken cancellationToken = default);
///
/// Stop Tracking a Package Unsubscribe from tracking updates for a package.
@@ -89,9 +94,10 @@ public partial interface IShipEngine
/// HttpClient to use for the request
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (string)
- Task StopTracking(HttpClient methodClient, string? carrierCode, string? trackingNumber, CancellationToken cancellationToken = default);
+ Task StopTracking(HttpClient methodClient, string? carrierCode, string? trackingNumber, string? carrierId, CancellationToken cancellationToken = default);
}
@@ -107,11 +113,12 @@ public partial class ShipEngine
/// Thrown when fails to make API call
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (GetTrackingLogResponseBody)
- public Task GetTrackingLog(string? carrierCode = default, string? trackingNumber = default, CancellationToken cancellationToken = default)
+ public Task GetTrackingLog(string? carrierCode = default, string? trackingNumber = default, string? carrierId = default, CancellationToken cancellationToken = default)
{
- return GetTrackingLog(_client, carrierCode, trackingNumber, cancellationToken);
+ return GetTrackingLog(_client, carrierCode, trackingNumber, carrierId, cancellationToken);
}
///
@@ -122,9 +129,10 @@ public Task GetTrackingLog(string? carrierCode = def
/// HttpClient to use for the request
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (GetTrackingLogResponseBody)
- public async Task GetTrackingLog(HttpClient methodClient, string? carrierCode = default, string? trackingNumber = default, CancellationToken cancellationToken = default)
+ public async Task GetTrackingLog(HttpClient methodClient, string? carrierCode = default, string? trackingNumber = default, string? carrierId = default, CancellationToken cancellationToken = default)
{
RequestOptions requestOptions = new("/v1/tracking");
@@ -137,6 +145,10 @@ public async Task GetTrackingLog(HttpClient methodCl
{
requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "tracking_number", trackingNumber));
}
+ if (carrierId != null)
+ {
+ requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "carrier_id", carrierId));
+ }
requestOptions.Operation = "TrackingApi.GetTrackingLog";
@@ -152,11 +164,12 @@ public async Task GetTrackingLog(HttpClient methodCl
/// Thrown when fails to make API call
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (string)
- public Task StartTracking(string? carrierCode = default, string? trackingNumber = default, CancellationToken cancellationToken = default)
+ public Task StartTracking(string? carrierCode = default, string? trackingNumber = default, string? carrierId = default, CancellationToken cancellationToken = default)
{
- return StartTracking(_client, carrierCode, trackingNumber, cancellationToken);
+ return StartTracking(_client, carrierCode, trackingNumber, carrierId, cancellationToken);
}
///
@@ -167,9 +180,10 @@ public Task StartTracking(string? carrierCode = default, string? trackin
/// HttpClient to use for the request
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (string)
- public async Task StartTracking(HttpClient methodClient, string? carrierCode = default, string? trackingNumber = default, CancellationToken cancellationToken = default)
+ public async Task StartTracking(HttpClient methodClient, string? carrierCode = default, string? trackingNumber = default, string? carrierId = default, CancellationToken cancellationToken = default)
{
RequestOptions requestOptions = new("/v1/tracking/start");
@@ -182,6 +196,10 @@ public async Task StartTracking(HttpClient methodClient, string? carrier
{
requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "tracking_number", trackingNumber));
}
+ if (carrierId != null)
+ {
+ requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "carrier_id", carrierId));
+ }
requestOptions.Operation = "TrackingApi.StartTracking";
@@ -197,11 +215,12 @@ public async Task StartTracking(HttpClient methodClient, string? carrier
/// Thrown when fails to make API call
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (string)
- public Task StopTracking(string? carrierCode = default, string? trackingNumber = default, CancellationToken cancellationToken = default)
+ public Task StopTracking(string? carrierCode = default, string? trackingNumber = default, string? carrierId = default, CancellationToken cancellationToken = default)
{
- return StopTracking(_client, carrierCode, trackingNumber, cancellationToken);
+ return StopTracking(_client, carrierCode, trackingNumber, carrierId, cancellationToken);
}
///
@@ -212,9 +231,10 @@ public Task StopTracking(string? carrierCode = default, string? tracking
/// HttpClient to use for the request
/// A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. (optional)
/// The tracking number associated with a shipment (optional)
+ /// Carrier ID (optional)
/// Cancellation Token to cancel the request.
/// Task of ApiResponse (string)
- public async Task StopTracking(HttpClient methodClient, string? carrierCode = default, string? trackingNumber = default, CancellationToken cancellationToken = default)
+ public async Task StopTracking(HttpClient methodClient, string? carrierCode = default, string? trackingNumber = default, string? carrierId = default, CancellationToken cancellationToken = default)
{
RequestOptions requestOptions = new("/v1/tracking/stop");
@@ -227,6 +247,10 @@ public async Task StopTracking(HttpClient methodClient, string? carrierC
{
requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "tracking_number", trackingNumber));
}
+ if (carrierId != null)
+ {
+ requestOptions.QueryParameters.Add(ClientUtils.ParameterToMultiMap("", "carrier_id", carrierId));
+ }
requestOptions.Operation = "TrackingApi.StopTracking";
diff --git a/ShipEngineSDK/Api/WebhooksApi.cs b/ShipEngineSDK/Api/WebhooksApi.cs
index 9c6c951d..71a08a9c 100644
--- a/ShipEngineSDK/Api/WebhooksApi.cs
+++ b/ShipEngineSDK/Api/WebhooksApi.cs
@@ -25,7 +25,7 @@ namespace ShipEngineSDK;
public partial interface IShipEngine
{
///
- /// Create a Webhook Create a webook for specific events in the environment.
+ /// Create a Webhook Create a webhook for specific events in the environment.
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
@@ -35,7 +35,7 @@ public partial interface IShipEngine
Task CreateWebhook(CreateWebhookRequestBody createWebhookRequestBody, CancellationToken cancellationToken = default);
///
- /// Create a Webhook Create a webook for specific events in the environment.
+ /// Create a Webhook Create a webhook for specific events in the environment.
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
@@ -137,7 +137,7 @@ public partial interface IShipEngine
public partial class ShipEngine
{
///
- /// Create a Webhook Create a webook for specific events in the environment.
+ /// Create a Webhook Create a webhook for specific events in the environment.
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
@@ -150,7 +150,7 @@ public Task CreateWebhook(CreateWebhookRequestBody cr
}
///
- /// Create a Webhook Create a webook for specific events in the environment.
+ /// Create a Webhook Create a webhook for specific events in the environment.
///
/// Thrown when required argument is null
/// Thrown when fails to make API call
diff --git a/ShipEngineSDK/Model/AddressValidatingShipment.cs b/ShipEngineSDK/Model/AddressValidatingShipment.cs
index 40831882..694fa987 100644
--- a/ShipEngineSDK/Model/AddressValidatingShipment.cs
+++ b/ShipEngineSDK/Model/AddressValidatingShipment.cs
@@ -264,6 +264,19 @@ public partial class AddressValidatingShipment
[JsonPropertyName("warehouse_id"), JsonPropertyOrder(28)]
public string? WarehouseId { get; set; }
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
///
/// Returns the string presentation of the object
@@ -302,6 +315,7 @@ public override string ToString()
sb.Append(" TotalWeight: ").Append(TotalWeight).Append("\n");
sb.Append(" ValidateAddress: ").Append(ValidateAddress).Append("\n");
sb.Append(" WarehouseId: ").Append(WarehouseId).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/AdvancedShipmentOptions.cs b/ShipEngineSDK/Model/AdvancedShipmentOptions.cs
index 387528a5..a7cae4de 100644
--- a/ShipEngineSDK/Model/AdvancedShipmentOptions.cs
+++ b/ShipEngineSDK/Model/AdvancedShipmentOptions.cs
@@ -65,9 +65,9 @@ public partial class AdvancedShipmentOptions
public string? BillToPostalCode { get; set; }
///
- /// certificate number.
+ /// certificate_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.
///
- /// certificate number.
+ /// certificate_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.
///
/// 784515
///
@@ -128,24 +128,31 @@ public partial class AdvancedShipmentOptions
[JsonPropertyName("delivered_duty_paid"), JsonPropertyOrder(14)]
public bool? DeliveredDutyPaid { get; set; }
+ ///
+ /// Instructs the carrier to deliver the package only to the exact address provided.
+ ///
+ /// Instructs the carrier to deliver the package only to the exact address provided.
+ [JsonPropertyName("delivery-as-addressed"), JsonPropertyOrder(15)]
+ public bool? DeliveryAsAddressed { get; set; }
+
///
/// Indicates if the shipment contain dry ice
///
/// Indicates if the shipment contain dry ice
- [JsonPropertyName("dry_ice"), JsonPropertyOrder(15)]
+ [JsonPropertyName("dry_ice"), JsonPropertyOrder(16)]
public bool? DryIce { get; set; }
///
/// The weight of the dry ice in the shipment
///
/// The weight of the dry ice in the shipment
- [JsonPropertyName("dry_ice_weight"), JsonPropertyOrder(16)]
+ [JsonPropertyName("dry_ice_weight"), JsonPropertyOrder(17)]
public Weight? DryIceWeight { get; set; }
///
/// Gets or Sets FedexFreight
///
- [JsonPropertyName("fedex_freight"), JsonPropertyOrder(17)]
+ [JsonPropertyName("fedex_freight"), JsonPropertyOrder(18)]
public AdvancedShipmentOptionsFedexFreight? FedexFreight { get; set; }
///
@@ -155,73 +162,87 @@ public partial class AdvancedShipmentOptions
///
/// 77.5
///
- [JsonPropertyName("freight_class"), JsonPropertyOrder(18)]
+ [JsonPropertyName("freight_class"), JsonPropertyOrder(19)]
public string? FreightClass { get; set; }
///
- /// invoice number.
+ /// invoice_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.
///
- /// invoice number.
+ /// invoice_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.
///
/// IOC56888
///
- [JsonPropertyName("invoice_number"), JsonPropertyOrder(19)]
+ [JsonPropertyName("invoice_number"), JsonPropertyOrder(20)]
public string? InvoiceNumber { get; set; }
///
- /// license number.
+ /// license_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.
///
- /// license number.
+ /// license_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.
///
/// 514785
///
- [JsonPropertyName("license_number"), JsonPropertyOrder(20)]
+ [JsonPropertyName("license_number"), JsonPropertyOrder(21)]
public string? LicenseNumber { get; set; }
///
/// Indicates that the package cannot be processed automatically because it is too large or irregularly shaped. This is primarily for USPS shipments. See [Section 1.2 of the USPS parcel standards](https://pe.usps.com/text/dmm300/101.htm#ep1047495) for details.
///
/// Indicates that the package cannot be processed automatically because it is too large or irregularly shaped. This is primarily for USPS shipments. See [Section 1.2 of the USPS parcel standards](https://pe.usps.com/text/dmm300/101.htm#ep1047495) for details.
- [JsonPropertyName("non_machinable"), JsonPropertyOrder(21)]
+ [JsonPropertyName("non_machinable"), JsonPropertyOrder(22)]
public bool? NonMachinable { get; set; }
///
/// Gets or Sets OriginType
///
- [JsonPropertyName("origin_type"), JsonPropertyOrder(22)]
+ [JsonPropertyName("origin_type"), JsonPropertyOrder(23)]
public OriginType? OriginType { get; set; }
+ ///
+ /// Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements.
+ ///
+ /// Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements.
+ [JsonPropertyName("regulated_content_type"), JsonPropertyOrder(24)]
+ public RegulatedContentType? RegulatedContentType { get; set; }
+
+ ///
+ /// Ensures the shipment is immediately flagged for return to the sender if the initial delivery attempt fails.
+ ///
+ /// Ensures the shipment is immediately flagged for return to the sender if the initial delivery attempt fails.
+ [JsonPropertyName("return-after-first-attempt"), JsonPropertyOrder(25)]
+ public bool? ReturnAfterFirstAttempt { get; set; }
+
///
/// Enables Saturday delivery, if supported by the carrier.
///
/// Enables Saturday delivery, if supported by the carrier.
- [JsonPropertyName("saturday_delivery"), JsonPropertyOrder(23)]
+ [JsonPropertyName("saturday_delivery"), JsonPropertyOrder(26)]
public bool? SaturdayDelivery { get; set; }
///
/// Gets or Sets ShipperRelease
///
- [JsonPropertyName("shipper_release"), JsonPropertyOrder(24)]
+ [JsonPropertyName("shipper_release"), JsonPropertyOrder(27)]
public bool? ShipperRelease { get; set; }
///
/// Third Party Consignee option is a value-added service that allows the shipper to supply goods without commercial invoices being attached
///
/// Third Party Consignee option is a value-added service that allows the shipper to supply goods without commercial invoices being attached
- [JsonPropertyName("third_party_consignee"), JsonPropertyOrder(25)]
+ [JsonPropertyName("third_party_consignee"), JsonPropertyOrder(28)]
public bool? ThirdPartyConsignee { get; set; }
///
/// Whether to use [UPS Ground Freight pricing](https://www.shipengine.com/docs/shipping/ups-ground-freight/). If enabled, then a `freight_class` must also be specified.
///
/// Whether to use [UPS Ground Freight pricing](https://www.shipengine.com/docs/shipping/ups-ground-freight/). If enabled, then a `freight_class` must also be specified.
- [JsonPropertyName("use_ups_ground_freight_pricing"), JsonPropertyOrder(26)]
+ [JsonPropertyName("use_ups_ground_freight_pricing"), JsonPropertyOrder(29)]
public bool? UseUpsGroundFreightPricing { get; set; }
///
/// Gets or Sets WindsorFrameworkDetails
///
- [JsonPropertyName("windsor_framework_details"), JsonPropertyOrder(27)]
+ [JsonPropertyName("windsor_framework_details"), JsonPropertyOrder(30)]
public AdvancedShipmentOptionsWindsorFrameworkDetails? WindsorFrameworkDetails { get; set; }
///
@@ -254,6 +275,7 @@ public override string ToString()
sb.Append(" DangerousGoods: ").Append(DangerousGoods).Append("\n");
sb.Append(" DangerousGoodsContact: ").Append(DangerousGoodsContact).Append("\n");
sb.Append(" DeliveredDutyPaid: ").Append(DeliveredDutyPaid).Append("\n");
+ sb.Append(" DeliveryAsAddressed: ").Append(DeliveryAsAddressed).Append("\n");
sb.Append(" DryIce: ").Append(DryIce).Append("\n");
sb.Append(" DryIceWeight: ").Append(DryIceWeight).Append("\n");
sb.Append(" FedexFreight: ").Append(FedexFreight).Append("\n");
@@ -262,6 +284,8 @@ public override string ToString()
sb.Append(" LicenseNumber: ").Append(LicenseNumber).Append("\n");
sb.Append(" NonMachinable: ").Append(NonMachinable).Append("\n");
sb.Append(" OriginType: ").Append(OriginType).Append("\n");
+ sb.Append(" RegulatedContentType: ").Append(RegulatedContentType).Append("\n");
+ sb.Append(" ReturnAfterFirstAttempt: ").Append(ReturnAfterFirstAttempt).Append("\n");
sb.Append(" SaturdayDelivery: ").Append(SaturdayDelivery).Append("\n");
sb.Append(" ShipperRelease: ").Append(ShipperRelease).Append("\n");
sb.Append(" ThirdPartyConsignee: ").Append(ThirdPartyConsignee).Append("\n");
diff --git a/ShipEngineSDK/Model/CalculateRatesRequestBody.cs b/ShipEngineSDK/Model/CalculateRatesRequestBody.cs
index 87c19cdb..aceaf6b5 100644
--- a/ShipEngineSDK/Model/CalculateRatesRequestBody.cs
+++ b/ShipEngineSDK/Model/CalculateRatesRequestBody.cs
@@ -36,6 +36,26 @@ public partial class CalculateRatesRequestBody : AbstractOpenAPISchema
[JsonPropertyName("rate_options"), JsonPropertyOrder(1)]
public RateRequestBody? RateOptions { get; set; }
+ ///
+ /// A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address.
+ ///
+ /// A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address.
+ ///
+ /// 614940
+ ///
+ [JsonPropertyName("ship_from_service_point_id"), JsonPropertyOrder(2)]
+ public string? ShipFromServicePointId { get; set; }
+
+ ///
+ /// A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address.
+ ///
+ /// A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address.
+ ///
+ /// 614940
+ ///
+ [JsonPropertyName("ship_to_service_point_id"), JsonPropertyOrder(3)]
+ public string? ShipToServicePointId { get; set; }
+
///
/// Initializes a new instance of the class
@@ -118,6 +138,8 @@ public override string ToString()
sb.Append("class CalculateRatesRequestBody {\n");
sb.Append(" ActualInstance: ").Append(this.ActualInstance).Append("\n");
sb.Append(" RateOptions: ").Append(this.RateOptions).Append("\n");
+ sb.Append(" ShipFromServicePointId: ").Append(this.ShipFromServicePointId).Append("\n");
+ sb.Append(" ShipToServicePointId: ").Append(this.ShipToServicePointId).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
@@ -179,8 +201,21 @@ public override void Write(Utf8JsonWriter writer, CalculateRatesRequestBody valu
{
writer.WriteStartObject();
- writer.WritePropertyName("rate_options");
- JsonSerializer.Serialize(writer, value.RateOptions, options);
+ if (value.RateOptions != null)
+ {
+ writer.WritePropertyName("rate_options");
+ JsonSerializer.Serialize(writer, value.RateOptions, options);
+ }
+ if (value.ShipFromServicePointId != null)
+ {
+ writer.WritePropertyName("ship_from_service_point_id");
+ JsonSerializer.Serialize(writer, value.ShipFromServicePointId, options);
+ }
+ if (value.ShipToServicePointId != null)
+ {
+ writer.WritePropertyName("ship_to_service_point_id");
+ JsonSerializer.Serialize(writer, value.ShipToServicePointId, options);
+ }
var node = JsonSerializer.SerializeToNode(value.ActualInstance, options);
foreach (var prop in node?.AsObject() ?? [])
@@ -213,7 +248,9 @@ public override void Write(Utf8JsonWriter writer, CalculateRatesRequestBody valu
CalculateRatesRequestBody? newCalculateRatesRequestBody = null;
// Deserialize all the common properties of the model so they can be used in object initializers later
- var rateOptions = jsonDoc.RootElement.GetProperty("rate_options").Deserialize(DeserializingOptions)!;
+ var rateOptions = jsonDoc.RootElement.TryGetProperty("rate_options", out var rateOptionsElement) ? rateOptionsElement.Deserialize(DeserializingOptions) : null;
+ var shipFromServicePointId = jsonDoc.RootElement.TryGetProperty("ship_from_service_point_id", out var shipFromServicePointIdElement) ? shipFromServicePointIdElement.Deserialize(DeserializingOptions) : null;
+ var shipToServicePointId = jsonDoc.RootElement.TryGetProperty("ship_to_service_point_id", out var shipToServicePointIdElement) ? shipToServicePointIdElement.Deserialize(DeserializingOptions) : null;
int match = 0;
var matchedTypes = new List();
@@ -223,6 +260,8 @@ public override void Write(Utf8JsonWriter writer, CalculateRatesRequestBody valu
newCalculateRatesRequestBody = new CalculateRatesRequestBody(jsonDoc.Deserialize(DeserializingOptions)!)
{
RateOptions = rateOptions,
+ ShipFromServicePointId = shipFromServicePointId,
+ ShipToServicePointId = shipToServicePointId,
};
matchedTypes.Add("ShipmentIdRequest");
@@ -239,6 +278,8 @@ public override void Write(Utf8JsonWriter writer, CalculateRatesRequestBody valu
newCalculateRatesRequestBody = new CalculateRatesRequestBody(jsonDoc.Deserialize(DeserializingOptions)!)
{
RateOptions = rateOptions,
+ ShipFromServicePointId = shipFromServicePointId,
+ ShipToServicePointId = shipToServicePointId,
};
matchedTypes.Add("RateShipmentRequest");
diff --git a/ShipEngineSDK/Model/CalculateRatesResponseBody.cs b/ShipEngineSDK/Model/CalculateRatesResponseBody.cs
index 6f7e7ff5..db6e317f 100644
--- a/ShipEngineSDK/Model/CalculateRatesResponseBody.cs
+++ b/ShipEngineSDK/Model/CalculateRatesResponseBody.cs
@@ -265,6 +265,19 @@ public partial class CalculateRatesResponseBody
[JsonPropertyName("warehouse_id"), JsonPropertyOrder(28)]
public string? WarehouseId { get; set; }
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
///
/// Returns the string presentation of the object
@@ -303,6 +316,7 @@ public override string ToString()
sb.Append(" ShippingRuleId: ").Append(ShippingRuleId).Append("\n");
sb.Append(" TaxIdentifiers: ").Append(TaxIdentifiers).Append("\n");
sb.Append(" WarehouseId: ").Append(WarehouseId).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/Carrier.cs b/ShipEngineSDK/Model/Carrier.cs
index 612ea9e3..bdfd41b6 100644
--- a/ShipEngineSDK/Model/Carrier.cs
+++ b/ShipEngineSDK/Model/Carrier.cs
@@ -25,6 +25,66 @@ namespace ShipEngineSDK.Model;
///
public partial class Carrier
{
+ ///
+ /// The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use.
+ ///
+ /// The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use.
+ [JsonConverter(typeof(ConnectionStatusEnumJsonConverter))]
+ public class ConnectionStatusEnum
+ {
+ private readonly string _value;
+
+ ///
+ /// Create a new instance of ConnectionStatusEnum with a predefined value.
+ ///
+ internal ConnectionStatusEnum()
+ {
+ _value = "pending_approval";
+ }
+
+ ///
+ /// Create a new instance of ConnectionStatusEnum with a custom value.
+ ///
+ /// The value of the ConnectionStatusEnum
+ ///
+ /// You can send a custom value to the API using this constructor, but the API most likely won't know what to do with it.
+ /// You should use the predefined values returned by the static properties of this class unless you know that the value is value.
+ ///
+ public ConnectionStatusEnum(string value)
+ {
+ _value = value;
+ }
+
+ ///
+ /// Enum PendingApproval for value: pending_approval
+ ///
+ public static ConnectionStatusEnum PendingApproval { get; } = new("pending_approval");
+
+
+ ///
+ /// Enum Approved for value: approved
+ ///
+ public static ConnectionStatusEnum Approved { get; } = new("approved");
+
+
+ ///
+ /// Get a string representation of the current value
+ ///
+ public override string ToString() => _value;
+ }
+
+ internal class ConnectionStatusEnumJsonConverter : JsonConverter
+ {
+ public override ConnectionStatusEnum? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
+ reader.TokenType == JsonTokenType.String ? new ConnectionStatusEnum(reader.GetString()!) : null;
+
+ public override void Write(Utf8JsonWriter writer, ConnectionStatusEnum value, JsonSerializerOptions options) =>
+ writer.WriteStringValue(value.ToString());
+
+ public override bool CanConvert(Type typeToConvert) =>
+ typeToConvert == typeof(ConnectionStatusEnum);
+ }
+
///
/// The account number that the carrier is connected to.
@@ -39,6 +99,16 @@ public partial class Carrier
[JsonPropertyName("account_number"), JsonInclude]
public string? AccountNumber { get; set; }
+ ///
+ /// The carrier has services that support return shipments.
+ ///
+ /// The carrier has services that support return shipments.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("allows_returns"), JsonInclude]
+ public bool? AllowsReturns { get; set; }
+
///
/// Current available balance
///
@@ -78,6 +148,16 @@ public partial class Carrier
[JsonPropertyName("carrier_id"), JsonInclude]
public string? CarrierId { get; set; }
+ ///
+ /// The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use.
+ ///
+ /// The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("connection_status"), JsonInclude]
+ public ConnectionStatusEnum? ConnectionStatus { get; set; }
+
///
/// The carrier is disabled by the current ShipEngine account's billing plan.
///
@@ -177,6 +257,16 @@ public partial class Carrier
[JsonPropertyName("requires_funded_amount"), JsonInclude]
public bool? RequiresFundedAmount { get; set; }
+ ///
+ /// The carrier provides rates for the shipment.
+ ///
+ /// The carrier provides rates for the shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("send_rates"), JsonInclude]
+ public bool? SendRates { get; set; }
+
///
/// A list of services that are offered by the carrier
///
@@ -197,6 +287,16 @@ public partial class Carrier
[JsonPropertyName("supports_label_messages"), JsonInclude]
public bool? SupportsLabelMessages { get; set; }
+ ///
+ /// The carrier supports user-managed rates for shipments.
+ ///
+ /// The carrier supports user-managed rates for shipments.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("supports_user_managed_rates"), JsonInclude]
+ public bool? SupportsUserManagedRates { get; set; }
+
///
/// Returns the string presentation of the object
@@ -208,9 +308,11 @@ public override string ToString()
sb.Append("class Carrier {\n");
#pragma warning disable CS0612 // Type or member is obsolete
sb.Append(" AccountNumber: ").Append(AccountNumber).Append("\n");
+ sb.Append(" AllowsReturns: ").Append(AllowsReturns).Append("\n");
sb.Append(" Balance: ").Append(Balance).Append("\n");
sb.Append(" CarrierCode: ").Append(CarrierCode).Append("\n");
sb.Append(" CarrierId: ").Append(CarrierId).Append("\n");
+ sb.Append(" ConnectionStatus: ").Append(ConnectionStatus).Append("\n");
sb.Append(" DisabledByBillingPlan: ").Append(DisabledByBillingPlan).Append("\n");
sb.Append(" FriendlyName: ").Append(FriendlyName).Append("\n");
sb.Append(" FundingSourceId: ").Append(FundingSourceId).Append("\n");
@@ -220,8 +322,10 @@ public override string ToString()
sb.Append(" Packages: ").Append(Packages).Append("\n");
sb.Append(" Primary: ").Append(Primary).Append("\n");
sb.Append(" RequiresFundedAmount: ").Append(RequiresFundedAmount).Append("\n");
+ sb.Append(" SendRates: ").Append(SendRates).Append("\n");
sb.Append(" Services: ").Append(Services).Append("\n");
sb.Append(" SupportsLabelMessages: ").Append(SupportsLabelMessages).Append("\n");
+ sb.Append(" SupportsUserManagedRates: ").Append(SupportsUserManagedRates).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/CompareBulkRatesRequestBody.cs b/ShipEngineSDK/Model/CompareBulkRatesRequestBody.cs
index a3758451..a5930698 100644
--- a/ShipEngineSDK/Model/CompareBulkRatesRequestBody.cs
+++ b/ShipEngineSDK/Model/CompareBulkRatesRequestBody.cs
@@ -36,6 +36,26 @@ public partial class CompareBulkRatesRequestBody : AbstractOpenAPISchema
[JsonPropertyName("rate_options"), JsonPropertyOrder(1)]
public required RateRequestBody RateOptions { get; set; }
+ ///
+ /// A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address.
+ ///
+ /// A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address.
+ ///
+ /// 614940
+ ///
+ [JsonPropertyName("ship_from_service_point_id"), JsonPropertyOrder(2)]
+ public string? ShipFromServicePointId { get; set; }
+
+ ///
+ /// A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address.
+ ///
+ /// A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address.
+ ///
+ /// 614940
+ ///
+ [JsonPropertyName("ship_to_service_point_id"), JsonPropertyOrder(3)]
+ public string? ShipToServicePointId { get; set; }
+
///
/// Initializes a new instance of the class
@@ -118,6 +138,8 @@ public override string ToString()
sb.Append("class CompareBulkRatesRequestBody {\n");
sb.Append(" ActualInstance: ").Append(this.ActualInstance).Append("\n");
sb.Append(" RateOptions: ").Append(this.RateOptions).Append("\n");
+ sb.Append(" ShipFromServicePointId: ").Append(this.ShipFromServicePointId).Append("\n");
+ sb.Append(" ShipToServicePointId: ").Append(this.ShipToServicePointId).Append("\n");
sb.Append("}\n");
return sb.ToString();
}
@@ -181,6 +203,16 @@ public override void Write(Utf8JsonWriter writer, CompareBulkRatesRequestBody va
writer.WritePropertyName("rate_options");
JsonSerializer.Serialize(writer, value.RateOptions, options);
+ if (value.ShipFromServicePointId != null)
+ {
+ writer.WritePropertyName("ship_from_service_point_id");
+ JsonSerializer.Serialize(writer, value.ShipFromServicePointId, options);
+ }
+ if (value.ShipToServicePointId != null)
+ {
+ writer.WritePropertyName("ship_to_service_point_id");
+ JsonSerializer.Serialize(writer, value.ShipToServicePointId, options);
+ }
var node = JsonSerializer.SerializeToNode(value.ActualInstance, options);
foreach (var prop in node?.AsObject() ?? [])
@@ -214,6 +246,8 @@ public override void Write(Utf8JsonWriter writer, CompareBulkRatesRequestBody va
// Deserialize all the common properties of the model so they can be used in object initializers later
var rateOptions = jsonDoc.RootElement.GetProperty("rate_options").Deserialize(DeserializingOptions)!;
+ var shipFromServicePointId = jsonDoc.RootElement.TryGetProperty("ship_from_service_point_id", out var shipFromServicePointIdElement) ? shipFromServicePointIdElement.Deserialize(DeserializingOptions) : null;
+ var shipToServicePointId = jsonDoc.RootElement.TryGetProperty("ship_to_service_point_id", out var shipToServicePointIdElement) ? shipToServicePointIdElement.Deserialize(DeserializingOptions) : null;
int match = 0;
var matchedTypes = new List();
@@ -223,6 +257,8 @@ public override void Write(Utf8JsonWriter writer, CompareBulkRatesRequestBody va
newCompareBulkRatesRequestBody = new CompareBulkRatesRequestBody(jsonDoc.Deserialize(DeserializingOptions)!)
{
RateOptions = rateOptions,
+ ShipFromServicePointId = shipFromServicePointId,
+ ShipToServicePointId = shipToServicePointId,
};
matchedTypes.Add("RateRequestByShipmentIds");
@@ -239,6 +275,8 @@ public override void Write(Utf8JsonWriter writer, CompareBulkRatesRequestBody va
newCompareBulkRatesRequestBody = new CompareBulkRatesRequestBody(jsonDoc.Deserialize(DeserializingOptions)!)
{
RateOptions = rateOptions,
+ ShipFromServicePointId = shipFromServicePointId,
+ ShipToServicePointId = shipToServicePointId,
};
matchedTypes.Add("RateRequestByShipments");
diff --git a/ShipEngineSDK/Model/CreateAndValidateShipment.cs b/ShipEngineSDK/Model/CreateAndValidateShipment.cs
index 7b55c964..c816589b 100644
--- a/ShipEngineSDK/Model/CreateAndValidateShipment.cs
+++ b/ShipEngineSDK/Model/CreateAndValidateShipment.cs
@@ -275,6 +275,19 @@ public partial class CreateAndValidateShipment
[JsonPropertyName("warehouse_id"), JsonPropertyOrder(29)]
public string? WarehouseId { get; set; }
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
///
/// Returns the string presentation of the object
@@ -314,6 +327,7 @@ public override string ToString()
sb.Append(" TaxIdentifiers: ").Append(TaxIdentifiers).Append("\n");
sb.Append(" TotalWeight: ").Append(TotalWeight).Append("\n");
sb.Append(" WarehouseId: ").Append(WarehouseId).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/CreateCombinedLabelDocumentRequestBody.cs b/ShipEngineSDK/Model/CreateCombinedLabelDocumentRequestBody.cs
new file mode 100644
index 00000000..1df419a7
--- /dev/null
+++ b/ShipEngineSDK/Model/CreateCombinedLabelDocumentRequestBody.cs
@@ -0,0 +1,130 @@
+//
+// DO NOT MODIFY THIS FILE
+
+// Changes can be made in a corresponding partial file, or by changing
+// the template in /generation/templates and generating the class again.
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using System.Text.RegularExpressions;
+
+namespace ShipEngineSDK.Model;
+
+///
+/// A create combined label document request body
+///
+public partial class CreateCombinedLabelDocumentRequestBody
+{
+ ///
+ /// The file format for the combined label document; note that currently only `\"pdf\"` is supported.
+ ///
+ /// The file format for the combined label document; note that currently only `\"pdf\"` is supported.
+ [JsonConverter(typeof(LabelFormatEnumJsonConverter))]
+ public class LabelFormatEnum
+ {
+ private readonly string _value;
+
+ ///
+ /// Create a new instance of LabelFormatEnum with a predefined value.
+ ///
+ internal LabelFormatEnum()
+ {
+ _value = "pdf";
+ }
+
+ ///
+ /// Create a new instance of LabelFormatEnum with a custom value.
+ ///
+ /// The value of the LabelFormatEnum
+ ///
+ /// You can send a custom value to the API using this constructor, but the API most likely won't know what to do with it.
+ /// You should use the predefined values returned by the static properties of this class unless you know that the value is value.
+ ///
+ public LabelFormatEnum(string value)
+ {
+ _value = value;
+ }
+
+ ///
+ /// Enum Pdf for value: pdf
+ ///
+ public static LabelFormatEnum Pdf { get; } = new("pdf");
+
+
+ ///
+ /// Get a string representation of the current value
+ ///
+ public override string ToString() => _value;
+ }
+
+ internal class LabelFormatEnumJsonConverter : JsonConverter
+ {
+ public override LabelFormatEnum? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
+ reader.TokenType == JsonTokenType.String ? new LabelFormatEnum(reader.GetString()!) : null;
+
+ public override void Write(Utf8JsonWriter writer, LabelFormatEnum value, JsonSerializerOptions options) =>
+ writer.WriteStringValue(value.ToString());
+
+ public override bool CanConvert(Type typeToConvert) =>
+ typeToConvert == typeof(LabelFormatEnum);
+ }
+
+
+ ///
+ /// Gets or Sets LabelDownloadType
+ ///
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(1)]
+ public LabelDownloadType? LabelDownloadType { get; set; }
+
+ ///
+ /// The file format for the combined label document; note that currently only `\"pdf\"` is supported.
+ ///
+ /// The file format for the combined label document; note that currently only `\"pdf\"` is supported.
+ [JsonPropertyName("label_format"), JsonPropertyOrder(2)]
+ public LabelFormatEnum? LabelFormat { get; set; }
+
+ ///
+ /// The list of up to 30 label ids to include in the combined label document. Note that to avoid response size limits, you should only expect to be able to combine 30 single page labels similar in size to that of USPS labels.
+ ///
+ /// The list of up to 30 label ids to include in the combined label document. Note that to avoid response size limits, you should only expect to be able to combine 30 single page labels similar in size to that of USPS labels.
+ [JsonPropertyName("label_ids"), JsonPropertyOrder(3)]
+ public List? LabelIds { get; set; }
+
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ var sb = new StringBuilder();
+ sb.Append("class CreateCombinedLabelDocumentRequestBody {\n");
+#pragma warning disable CS0612 // Type or member is obsolete
+ sb.Append(" LabelDownloadType: ").Append(LabelDownloadType).Append("\n");
+ sb.Append(" LabelFormat: ").Append(LabelFormat).Append("\n");
+ sb.Append(" LabelIds: ").Append(LabelIds).Append("\n");
+#pragma warning restore CS0612 // Type or member is obsolete
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson(JsonSerializerOptions options)
+ {
+ return JsonSerializer.Serialize(this, options);
+ }
+
+}
\ No newline at end of file
diff --git a/ShipEngineSDK/Model/CreateCombinedLabelDocumentResponseBodyYaml.cs b/ShipEngineSDK/Model/CreateCombinedLabelDocumentResponseBodyYaml.cs
new file mode 100644
index 00000000..17df97cb
--- /dev/null
+++ b/ShipEngineSDK/Model/CreateCombinedLabelDocumentResponseBodyYaml.cs
@@ -0,0 +1,64 @@
+//
+// DO NOT MODIFY THIS FILE
+
+// Changes can be made in a corresponding partial file, or by changing
+// the template in /generation/templates and generating the class again.
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using System.Text.RegularExpressions;
+
+namespace ShipEngineSDK.Model;
+
+///
+/// A create combined label document response body
+///
+public partial class CreateCombinedLabelDocumentResponseBodyYaml
+{
+
+ ///
+ /// The download for the combined label document
+ ///
+ /// The download for the combined label document
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("label_download"), JsonInclude]
+ public LabelDownload? LabelDownload { get; set; }
+
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ var sb = new StringBuilder();
+ sb.Append("class CreateCombinedLabelDocumentResponseBodyYaml {\n");
+#pragma warning disable CS0612 // Type or member is obsolete
+ sb.Append(" LabelDownload: ").Append(LabelDownload).Append("\n");
+#pragma warning restore CS0612 // Type or member is obsolete
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson(JsonSerializerOptions options)
+ {
+ return JsonSerializer.Serialize(this, options);
+ }
+
+}
\ No newline at end of file
diff --git a/ShipEngineSDK/Model/CreateLabelFromRateResponseBody.cs b/ShipEngineSDK/Model/CreateLabelFromRateResponseBody.cs
index 2aacd939..bf5af650 100644
--- a/ShipEngineSDK/Model/CreateLabelFromRateResponseBody.cs
+++ b/ShipEngineSDK/Model/CreateLabelFromRateResponseBody.cs
@@ -82,6 +82,16 @@ public partial class CreateLabelFromRateResponseBody
[JsonPropertyName("charge_event"), JsonPropertyOrder(5)]
public LabelChargeEvent? ChargeEvent { get; set; }
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("confirmation"), JsonInclude]
+ public DeliveryConfirmation? Confirmation { get; set; }
+
///
/// The date and time that the label was created in ShipEngine.
///
@@ -99,9 +109,29 @@ public partial class CreateLabelFromRateResponseBody
/// The display format that the label should be shown in.
///
/// The display format that the label should be shown in.
- [JsonPropertyName("display_scheme"), JsonPropertyOrder(7)]
+ [JsonPropertyName("display_scheme"), JsonPropertyOrder(8)]
public DisplayScheme? DisplayScheme { get; set; }
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_order_id"), JsonInclude]
+ public string? ExternalOrderId { get; set; }
+
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_shipment_id"), JsonInclude]
+ public string? ExternalShipmentId { get; set; }
+
///
/// The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
///
@@ -146,7 +176,7 @@ public partial class CreateLabelFromRateResponseBody
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
///
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
- [JsonPropertyName("is_return_label"), JsonPropertyOrder(12)]
+ [JsonPropertyName("is_return_label"), JsonPropertyOrder(15)]
public bool? IsReturnLabel { get; set; }
///
@@ -161,14 +191,14 @@ public partial class CreateLabelFromRateResponseBody
///
/// Gets or Sets LabelDownloadType
///
- [JsonPropertyName("label_download_type"), JsonPropertyOrder(14), JsonWriteOnly]
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(17), JsonWriteOnly]
public LabelDownloadType? LabelDownloadType { get; set; }
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
- [JsonPropertyName("label_format"), JsonPropertyOrder(15)]
+ [JsonPropertyName("label_format"), JsonPropertyOrder(18)]
public LabelFormat? LabelFormat { get; set; }
///
@@ -191,14 +221,14 @@ public partial class CreateLabelFromRateResponseBody
///
/// img_DtBXupDBxREpHnwEXhTfgK
///
- [JsonPropertyName("label_image_id"), JsonPropertyOrder(17)]
+ [JsonPropertyName("label_image_id"), JsonPropertyOrder(20)]
public string? LabelImageId { get; set; }
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
- [JsonPropertyName("label_layout"), JsonPropertyOrder(18)]
+ [JsonPropertyName("label_layout"), JsonPropertyOrder(21)]
public LabelLayout? LabelLayout { get; set; }
///
@@ -208,7 +238,7 @@ public partial class CreateLabelFromRateResponseBody
///
/// se-28529731
///
- [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(19), JsonWriteOnly]
+ [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(22), JsonWriteOnly]
public string? OutboundLabelId { get; set; }
///
@@ -244,6 +274,16 @@ public partial class CreateLabelFromRateResponseBody
[JsonPropertyName("paperless_download"), JsonInclude]
public PaperlessDownload? PaperlessDownload { get; set; }
+ ///
+ /// The QR code download for the package
+ ///
+ /// The QR code download for the package
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("qr_code_download"), JsonInclude]
+ public OptionalLink? QrCodeDownload { get; set; }
+
///
/// A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user.
///
@@ -268,7 +308,7 @@ public partial class CreateLabelFromRateResponseBody
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
///
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
- [JsonPropertyName("rma_number"), JsonPropertyOrder(25)]
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(29)]
public string? RmaNumber { get; set; }
///
@@ -297,11 +337,21 @@ public partial class CreateLabelFromRateResponseBody
[JsonPropertyName("ship_date"), JsonInclude]
public DateTimeOffset? ShipDate { get; set; }
+ ///
+ /// The recipient's mailing address
+ ///
+ /// The recipient's mailing address
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("ship_to"), JsonInclude]
+ public ShippingAddressTo? ShipTo { get; set; }
+
///
/// The shipment information used to generate the label
///
/// The shipment information used to generate the label
- [JsonPropertyName("shipment"), JsonPropertyOrder(28), JsonWriteOnly]
+ [JsonPropertyName("shipment"), JsonPropertyOrder(33), JsonWriteOnly]
public Shipment? Shipment { get; set; }
///
@@ -340,7 +390,7 @@ public partial class CreateLabelFromRateResponseBody
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
///
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
- [JsonPropertyName("test_label"), JsonPropertyOrder(32), JsonWriteOnly, Obsolete]
+ [JsonPropertyName("test_label"), JsonPropertyOrder(37), JsonWriteOnly, Obsolete]
public bool? TestLabel { get; set; }
///
@@ -392,7 +442,7 @@ public partial class CreateLabelFromRateResponseBody
///
/// Gets or Sets ValidateAddress
///
- [JsonPropertyName("validate_address"), JsonPropertyOrder(37), JsonWriteOnly]
+ [JsonPropertyName("validate_address"), JsonPropertyOrder(42), JsonWriteOnly]
public ValidateAddress? ValidateAddress { get; set; }
///
@@ -433,8 +483,11 @@ public override string ToString()
sb.Append(" CarrierCode: ").Append(CarrierCode).Append("\n");
sb.Append(" CarrierId: ").Append(CarrierId).Append("\n");
sb.Append(" ChargeEvent: ").Append(ChargeEvent).Append("\n");
+ sb.Append(" Confirmation: ").Append(Confirmation).Append("\n");
sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
sb.Append(" DisplayScheme: ").Append(DisplayScheme).Append("\n");
+ sb.Append(" ExternalOrderId: ").Append(ExternalOrderId).Append("\n");
+ sb.Append(" ExternalShipmentId: ").Append(ExternalShipmentId).Append("\n");
sb.Append(" FormDownload: ").Append(FormDownload).Append("\n");
sb.Append(" InsuranceClaim: ").Append(InsuranceClaim).Append("\n");
sb.Append(" InsuranceCost: ").Append(InsuranceCost).Append("\n");
@@ -450,11 +503,13 @@ public override string ToString()
sb.Append(" PackageCode: ").Append(PackageCode).Append("\n");
sb.Append(" Packages: ").Append(Packages).Append("\n");
sb.Append(" PaperlessDownload: ").Append(PaperlessDownload).Append("\n");
+ sb.Append(" QrCodeDownload: ").Append(QrCodeDownload).Append("\n");
sb.Append(" RateDetails: ").Append(RateDetails).Append("\n");
sb.Append(" RequestedComparisonAmount: ").Append(RequestedComparisonAmount).Append("\n");
sb.Append(" RmaNumber: ").Append(RmaNumber).Append("\n");
sb.Append(" ServiceCode: ").Append(ServiceCode).Append("\n");
sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
+ sb.Append(" ShipTo: ").Append(ShipTo).Append("\n");
sb.Append(" Shipment: ").Append(Shipment).Append("\n");
sb.Append(" ShipmentCost: ").Append(ShipmentCost).Append("\n");
sb.Append(" ShipmentId: ").Append(ShipmentId).Append("\n");
diff --git a/ShipEngineSDK/Model/CreateLabelFromShipmentResponseBody.cs b/ShipEngineSDK/Model/CreateLabelFromShipmentResponseBody.cs
index d4f799f8..3ef5761e 100644
--- a/ShipEngineSDK/Model/CreateLabelFromShipmentResponseBody.cs
+++ b/ShipEngineSDK/Model/CreateLabelFromShipmentResponseBody.cs
@@ -82,6 +82,16 @@ public partial class CreateLabelFromShipmentResponseBody
[JsonPropertyName("charge_event"), JsonPropertyOrder(5)]
public LabelChargeEvent? ChargeEvent { get; set; }
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("confirmation"), JsonInclude]
+ public DeliveryConfirmation? Confirmation { get; set; }
+
///
/// The date and time that the label was created in ShipEngine.
///
@@ -99,9 +109,29 @@ public partial class CreateLabelFromShipmentResponseBody
/// The display format that the label should be shown in.
///
/// The display format that the label should be shown in.
- [JsonPropertyName("display_scheme"), JsonPropertyOrder(7)]
+ [JsonPropertyName("display_scheme"), JsonPropertyOrder(8)]
public DisplayScheme? DisplayScheme { get; set; }
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_order_id"), JsonInclude]
+ public string? ExternalOrderId { get; set; }
+
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_shipment_id"), JsonInclude]
+ public string? ExternalShipmentId { get; set; }
+
///
/// The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
///
@@ -146,7 +176,7 @@ public partial class CreateLabelFromShipmentResponseBody
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
///
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
- [JsonPropertyName("is_return_label"), JsonPropertyOrder(12)]
+ [JsonPropertyName("is_return_label"), JsonPropertyOrder(15)]
public bool? IsReturnLabel { get; set; }
///
@@ -161,14 +191,14 @@ public partial class CreateLabelFromShipmentResponseBody
///
/// Gets or Sets LabelDownloadType
///
- [JsonPropertyName("label_download_type"), JsonPropertyOrder(14), JsonWriteOnly]
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(17), JsonWriteOnly]
public LabelDownloadType? LabelDownloadType { get; set; }
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
- [JsonPropertyName("label_format"), JsonPropertyOrder(15)]
+ [JsonPropertyName("label_format"), JsonPropertyOrder(18)]
public LabelFormat? LabelFormat { get; set; }
///
@@ -191,14 +221,14 @@ public partial class CreateLabelFromShipmentResponseBody
///
/// img_DtBXupDBxREpHnwEXhTfgK
///
- [JsonPropertyName("label_image_id"), JsonPropertyOrder(17)]
+ [JsonPropertyName("label_image_id"), JsonPropertyOrder(20)]
public string? LabelImageId { get; set; }
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
- [JsonPropertyName("label_layout"), JsonPropertyOrder(18)]
+ [JsonPropertyName("label_layout"), JsonPropertyOrder(21)]
public LabelLayout? LabelLayout { get; set; }
///
@@ -208,7 +238,7 @@ public partial class CreateLabelFromShipmentResponseBody
///
/// se-28529731
///
- [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(19), JsonWriteOnly]
+ [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(22), JsonWriteOnly]
public string? OutboundLabelId { get; set; }
///
@@ -244,6 +274,16 @@ public partial class CreateLabelFromShipmentResponseBody
[JsonPropertyName("paperless_download"), JsonInclude]
public PaperlessDownload? PaperlessDownload { get; set; }
+ ///
+ /// The QR code download for the package
+ ///
+ /// The QR code download for the package
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("qr_code_download"), JsonInclude]
+ public OptionalLink? QrCodeDownload { get; set; }
+
///
/// A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user.
///
@@ -268,7 +308,7 @@ public partial class CreateLabelFromShipmentResponseBody
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
///
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
- [JsonPropertyName("rma_number"), JsonPropertyOrder(25)]
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(29)]
public string? RmaNumber { get; set; }
///
@@ -297,11 +337,21 @@ public partial class CreateLabelFromShipmentResponseBody
[JsonPropertyName("ship_date"), JsonInclude]
public DateTimeOffset? ShipDate { get; set; }
+ ///
+ /// The recipient's mailing address
+ ///
+ /// The recipient's mailing address
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("ship_to"), JsonInclude]
+ public ShippingAddressTo? ShipTo { get; set; }
+
///
/// The shipment information used to generate the label
///
/// The shipment information used to generate the label
- [JsonPropertyName("shipment"), JsonPropertyOrder(28), JsonWriteOnly]
+ [JsonPropertyName("shipment"), JsonPropertyOrder(33), JsonWriteOnly]
public Shipment? Shipment { get; set; }
///
@@ -340,7 +390,7 @@ public partial class CreateLabelFromShipmentResponseBody
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
///
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
- [JsonPropertyName("test_label"), JsonPropertyOrder(32), JsonWriteOnly, Obsolete]
+ [JsonPropertyName("test_label"), JsonPropertyOrder(37), JsonWriteOnly, Obsolete]
public bool? TestLabel { get; set; }
///
@@ -392,7 +442,7 @@ public partial class CreateLabelFromShipmentResponseBody
///
/// Gets or Sets ValidateAddress
///
- [JsonPropertyName("validate_address"), JsonPropertyOrder(37), JsonWriteOnly]
+ [JsonPropertyName("validate_address"), JsonPropertyOrder(42), JsonWriteOnly]
public ValidateAddress? ValidateAddress { get; set; }
///
@@ -433,8 +483,11 @@ public override string ToString()
sb.Append(" CarrierCode: ").Append(CarrierCode).Append("\n");
sb.Append(" CarrierId: ").Append(CarrierId).Append("\n");
sb.Append(" ChargeEvent: ").Append(ChargeEvent).Append("\n");
+ sb.Append(" Confirmation: ").Append(Confirmation).Append("\n");
sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
sb.Append(" DisplayScheme: ").Append(DisplayScheme).Append("\n");
+ sb.Append(" ExternalOrderId: ").Append(ExternalOrderId).Append("\n");
+ sb.Append(" ExternalShipmentId: ").Append(ExternalShipmentId).Append("\n");
sb.Append(" FormDownload: ").Append(FormDownload).Append("\n");
sb.Append(" InsuranceClaim: ").Append(InsuranceClaim).Append("\n");
sb.Append(" InsuranceCost: ").Append(InsuranceCost).Append("\n");
@@ -450,11 +503,13 @@ public override string ToString()
sb.Append(" PackageCode: ").Append(PackageCode).Append("\n");
sb.Append(" Packages: ").Append(Packages).Append("\n");
sb.Append(" PaperlessDownload: ").Append(PaperlessDownload).Append("\n");
+ sb.Append(" QrCodeDownload: ").Append(QrCodeDownload).Append("\n");
sb.Append(" RateDetails: ").Append(RateDetails).Append("\n");
sb.Append(" RequestedComparisonAmount: ").Append(RequestedComparisonAmount).Append("\n");
sb.Append(" RmaNumber: ").Append(RmaNumber).Append("\n");
sb.Append(" ServiceCode: ").Append(ServiceCode).Append("\n");
sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
+ sb.Append(" ShipTo: ").Append(ShipTo).Append("\n");
sb.Append(" Shipment: ").Append(Shipment).Append("\n");
sb.Append(" ShipmentCost: ").Append(ShipmentCost).Append("\n");
sb.Append(" ShipmentId: ").Append(ShipmentId).Append("\n");
diff --git a/ShipEngineSDK/Model/CreateLabelRateShopperRequestBody.cs b/ShipEngineSDK/Model/CreateLabelRateShopperRequestBody.cs
new file mode 100644
index 00000000..4224c276
--- /dev/null
+++ b/ShipEngineSDK/Model/CreateLabelRateShopperRequestBody.cs
@@ -0,0 +1,153 @@
+//
+// DO NOT MODIFY THIS FILE
+
+// Changes can be made in a corresponding partial file, or by changing
+// the template in /generation/templates and generating the class again.
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using System.Text.RegularExpressions;
+
+namespace ShipEngineSDK.Model;
+
+///
+/// Request body for creating a label using the Rate Shopper. The Rate Shopper automatically selects the carrier and service based on your specified strategy. **Important Constraints:** - You MUST provide shipment details inline in the `shipment` object - You MUST NOT set `shipment_id` (inline shipment only) - You MUST NOT include `carrier_id`, `service_code`, or `shipping_rule_id` in the shipment (Rate Shopper selects these automatically) - Only carriers configured in your wallet will be considered - This endpoint is not available in sandbox mode
+///
+public partial class CreateLabelRateShopperRequestBody
+{
+
+ ///
+ /// The shipment details for which to create a label. Must be provided inline. The carrier_id, service_code, and shipping_rule_id are not included as these will be automatically determined by the Rate Shopper based on your strategy.
+ ///
+ /// The shipment details for which to create a label. Must be provided inline. The carrier_id, service_code, and shipping_rule_id are not included as these will be automatically determined by the Rate Shopper based on your strategy.
+ [JsonPropertyName("shipment"), JsonPropertyOrder(1)]
+ public required PartialShipmentForRateShopper Shipment { get; set; }
+
+ ///
+ /// The label charge event.
+ ///
+ /// The label charge event.
+ [JsonPropertyName("charge_event"), JsonPropertyOrder(2)]
+ public LabelChargeEvent? ChargeEvent { get; set; }
+
+ ///
+ /// The display format that the label should be shown in.
+ ///
+ /// The display format that the label should be shown in.
+ [JsonPropertyName("display_scheme"), JsonPropertyOrder(3)]
+ public DisplayScheme? DisplayScheme { get; set; }
+
+ ///
+ /// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
+ ///
+ /// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
+ [JsonPropertyName("is_return_label"), JsonPropertyOrder(4)]
+ public bool? IsReturnLabel { get; set; }
+
+ ///
+ /// Gets or Sets LabelDownloadType
+ ///
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(5), JsonWriteOnly]
+ public LabelDownloadType? LabelDownloadType { get; set; }
+
+ ///
+ /// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
+ ///
+ /// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
+ [JsonPropertyName("label_format"), JsonPropertyOrder(6)]
+ public LabelFormat? LabelFormat { get; set; }
+
+ ///
+ /// The label image resource that was used to create a custom label image.
+ ///
+ /// The label image resource that was used to create a custom label image.
+ ///
+ /// img_DtBXupDBxREpHnwEXhTfgK
+ ///
+ [JsonPropertyName("label_image_id"), JsonPropertyOrder(7)]
+ public string? LabelImageId { get; set; }
+
+ ///
+ /// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
+ ///
+ /// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
+ [JsonPropertyName("label_layout"), JsonPropertyOrder(8)]
+ public LabelLayout? LabelLayout { get; set; }
+
+ ///
+ /// The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is required by some carriers.
+ ///
+ /// The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is required by some carriers.
+ ///
+ /// se-28529731
+ ///
+ [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(9), JsonWriteOnly]
+ public string? OutboundLabelId { get; set; }
+
+ ///
+ /// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
+ ///
+ /// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(10)]
+ public string? RmaNumber { get; set; }
+
+ ///
+ /// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
+ ///
+ /// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
+ [JsonPropertyName("test_label"), JsonPropertyOrder(11), JsonWriteOnly, Obsolete]
+ public bool? TestLabel { get; set; }
+
+ ///
+ /// Gets or Sets ValidateAddress
+ ///
+ [JsonPropertyName("validate_address"), JsonPropertyOrder(12), JsonWriteOnly]
+ public ValidateAddress? ValidateAddress { get; set; }
+
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ var sb = new StringBuilder();
+ sb.Append("class CreateLabelRateShopperRequestBody {\n");
+#pragma warning disable CS0612 // Type or member is obsolete
+ sb.Append(" Shipment: ").Append(Shipment).Append("\n");
+ sb.Append(" ChargeEvent: ").Append(ChargeEvent).Append("\n");
+ sb.Append(" DisplayScheme: ").Append(DisplayScheme).Append("\n");
+ sb.Append(" IsReturnLabel: ").Append(IsReturnLabel).Append("\n");
+ sb.Append(" LabelDownloadType: ").Append(LabelDownloadType).Append("\n");
+ sb.Append(" LabelFormat: ").Append(LabelFormat).Append("\n");
+ sb.Append(" LabelImageId: ").Append(LabelImageId).Append("\n");
+ sb.Append(" LabelLayout: ").Append(LabelLayout).Append("\n");
+ sb.Append(" OutboundLabelId: ").Append(OutboundLabelId).Append("\n");
+ sb.Append(" RmaNumber: ").Append(RmaNumber).Append("\n");
+ sb.Append(" TestLabel: ").Append(TestLabel).Append("\n");
+ sb.Append(" ValidateAddress: ").Append(ValidateAddress).Append("\n");
+#pragma warning restore CS0612 // Type or member is obsolete
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson(JsonSerializerOptions options)
+ {
+ return JsonSerializer.Serialize(this, options);
+ }
+
+}
\ No newline at end of file
diff --git a/ShipEngineSDK/Model/CreateLabelRateShopperResponseBody.cs b/ShipEngineSDK/Model/CreateLabelRateShopperResponseBody.cs
new file mode 100644
index 00000000..42907fbe
--- /dev/null
+++ b/ShipEngineSDK/Model/CreateLabelRateShopperResponseBody.cs
@@ -0,0 +1,616 @@
+//
+// DO NOT MODIFY THIS FILE
+
+// Changes can be made in a corresponding partial file, or by changing
+// the template in /generation/templates and generating the class again.
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using System.Text.RegularExpressions;
+
+namespace ShipEngineSDK.Model;
+
+///
+/// The response from creating a label using the Rate Shopper. Includes all standard label information plus the rate_shopper_id indicating which strategy was used.
+///
+public partial class CreateLabelRateShopperResponseBody
+{
+ ///
+ /// The rate selection strategy that was used to create this label. This will match the rate_shopper_id provided in the request path.
+ ///
+ /// The rate selection strategy that was used to create this label. This will match the rate_shopper_id provided in the request path.
+ [JsonConverter(typeof(RateShopperIdEnumJsonConverter))]
+ public class RateShopperIdEnum
+ {
+ private readonly string _value;
+
+ ///
+ /// Create a new instance of RateShopperIdEnum with a predefined value.
+ ///
+ internal RateShopperIdEnum()
+ {
+ _value = "best_value";
+ }
+
+ ///
+ /// Create a new instance of RateShopperIdEnum with a custom value.
+ ///
+ /// The value of the RateShopperIdEnum
+ ///
+ /// You can send a custom value to the API using this constructor, but the API most likely won't know what to do with it.
+ /// You should use the predefined values returned by the static properties of this class unless you know that the value is value.
+ ///
+ public RateShopperIdEnum(string value)
+ {
+ _value = value;
+ }
+
+ ///
+ /// Enum BestValue for value: best_value
+ ///
+ public static RateShopperIdEnum BestValue { get; } = new("best_value");
+
+
+ ///
+ /// Enum Cheapest for value: cheapest
+ ///
+ public static RateShopperIdEnum Cheapest { get; } = new("cheapest");
+
+
+ ///
+ /// Enum Fastest for value: fastest
+ ///
+ public static RateShopperIdEnum Fastest { get; } = new("fastest");
+
+
+ ///
+ /// Get a string representation of the current value
+ ///
+ public override string ToString() => _value;
+ }
+
+ internal class RateShopperIdEnumJsonConverter : JsonConverter
+ {
+ public override RateShopperIdEnum? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
+ reader.TokenType == JsonTokenType.String ? new RateShopperIdEnum(reader.GetString()!) : null;
+
+ public override void Write(Utf8JsonWriter writer, RateShopperIdEnum value, JsonSerializerOptions options) =>
+ writer.WriteStringValue(value.ToString());
+
+ public override bool CanConvert(Type typeToConvert) =>
+ typeToConvert == typeof(RateShopperIdEnum);
+ }
+
+
+ ///
+ /// Additional information some carriers may provide by which to identify a given label in their system.
+ ///
+ /// Additional information some carriers may provide by which to identify a given label in their system.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("alternative_identifiers"), JsonInclude]
+ public List? AlternativeIdentifiers { get; set; }
+
+ ///
+ /// If this label was created as part of a [batch](https://www.shipengine.com/docs/labels/bulk/), then this is the unique ID of that batch.
+ ///
+ /// If this label was created as part of a [batch](https://www.shipengine.com/docs/labels/bulk/), then this is the unique ID of that batch.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// se-28529731
+ ///
+ [JsonPropertyName("batch_id"), JsonInclude]
+ public string? BatchId { get; set; }
+
+ ///
+ /// The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc.
+ ///
+ /// The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// dhl_express
+ ///
+ [JsonPropertyName("carrier_code"), JsonInclude]
+ public string? CarrierCode { get; set; }
+
+ ///
+ /// The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label
+ ///
+ /// The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// se-28529731
+ ///
+ [JsonPropertyName("carrier_id"), JsonInclude]
+ public string? CarrierId { get; set; }
+
+ ///
+ /// The label charge event.
+ ///
+ /// The label charge event.
+ [JsonPropertyName("charge_event"), JsonPropertyOrder(5)]
+ public LabelChargeEvent? ChargeEvent { get; set; }
+
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("confirmation"), JsonInclude]
+ public DeliveryConfirmation? Confirmation { get; set; }
+
+ ///
+ /// The date and time that the label was created in ShipEngine.
+ ///
+ /// The date and time that the label was created in ShipEngine.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 2018-09-23T15:00Z
+ ///
+ [JsonPropertyName("created_at"), JsonInclude]
+ public DateTimeOffset? CreatedAt { get; set; }
+
+ ///
+ /// The display format that the label should be shown in.
+ ///
+ /// The display format that the label should be shown in.
+ [JsonPropertyName("display_scheme"), JsonPropertyOrder(8)]
+ public DisplayScheme? DisplayScheme { get; set; }
+
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_order_id"), JsonInclude]
+ public string? ExternalOrderId { get; set; }
+
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_shipment_id"), JsonInclude]
+ public string? ExternalShipmentId { get; set; }
+
+ ///
+ /// The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
+ ///
+ /// The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("form_download"), JsonInclude]
+ public Link? FormDownload { get; set; }
+
+ ///
+ /// The link to submit an insurance claim for the shipment. This field is null if the shipment is not insured or if the insurance provider does not support online claim submission.
+ ///
+ /// The link to submit an insurance claim for the shipment. This field is null if the shipment is not insured or if the insurance provider does not support online claim submission.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("insurance_claim"), JsonInclude]
+ public Link? InsuranceClaim { get; set; }
+
+ ///
+ /// The insurance cost for this package. Add this to the `shipment_cost` field to get the total cost.
+ ///
+ /// The insurance cost for this package. Add this to the `shipment_cost` field to get the total cost.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("insurance_cost"), JsonInclude]
+ public MonetaryValue? InsuranceCost { get; set; }
+
+ ///
+ /// Indicates whether this is an international shipment. That is, the originating country and destination country are different.
+ ///
+ /// Indicates whether this is an international shipment. That is, the originating country and destination country are different.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("is_international"), JsonInclude]
+ public bool? IsInternational { get; set; }
+
+ ///
+ /// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
+ ///
+ /// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
+ [JsonPropertyName("is_return_label"), JsonPropertyOrder(15)]
+ public bool? IsReturnLabel { get; set; }
+
+ ///
+ /// Gets or Sets LabelDownload
+ ///
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("label_download"), JsonInclude]
+ public LabelDownload? LabelDownload { get; set; }
+
+ ///
+ /// Gets or Sets LabelDownloadType
+ ///
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(17), JsonWriteOnly]
+ public LabelDownloadType? LabelDownloadType { get; set; }
+
+ ///
+ /// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
+ ///
+ /// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
+ [JsonPropertyName("label_format"), JsonPropertyOrder(18)]
+ public LabelFormat? LabelFormat { get; set; }
+
+ ///
+ /// A string that uniquely identifies the label. This ID is generated by ShipEngine when the label is created.
+ ///
+ /// A string that uniquely identifies the label. This ID is generated by ShipEngine when the label is created.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// se-28529731
+ ///
+ [JsonPropertyName("label_id"), JsonInclude]
+ public string? LabelId { get; set; }
+
+ ///
+ /// The label image resource that was used to create a custom label image.
+ ///
+ /// The label image resource that was used to create a custom label image.
+ ///
+ /// img_DtBXupDBxREpHnwEXhTfgK
+ ///
+ [JsonPropertyName("label_image_id"), JsonPropertyOrder(20)]
+ public string? LabelImageId { get; set; }
+
+ ///
+ /// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
+ ///
+ /// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
+ [JsonPropertyName("label_layout"), JsonPropertyOrder(21)]
+ public LabelLayout? LabelLayout { get; set; }
+
+ ///
+ /// The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is required by some carriers.
+ ///
+ /// The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is required by some carriers.
+ ///
+ /// se-28529731
+ ///
+ [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(22), JsonWriteOnly]
+ public string? OutboundLabelId { get; set; }
+
+ ///
+ /// The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc. The code `package` indicates a custom or unknown package type.
+ ///
+ /// The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc. The code `package` indicates a custom or unknown package type.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// small_flat_rate_box
+ ///
+ [JsonPropertyName("package_code"), JsonInclude]
+ public string? PackageCode { get; set; }
+
+ ///
+ /// The label's package(s). > **Note:** Some carriers only allow one package per label. If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned.
+ ///
+ /// The label's package(s). > **Note:** Some carriers only allow one package per label. If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("packages"), JsonInclude]
+ public List? Packages { get; set; }
+
+ ///
+ /// The paperless details which may contain elements like `href`, `instructions` and `handoff_code`.
+ ///
+ /// The paperless details which may contain elements like `href`, `instructions` and `handoff_code`.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("paperless_download"), JsonInclude]
+ public PaperlessDownload? PaperlessDownload { get; set; }
+
+ ///
+ /// The QR code download for the package
+ ///
+ /// The QR code download for the package
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("qr_code_download"), JsonInclude]
+ public OptionalLink? QrCodeDownload { get; set; }
+
+ ///
+ /// A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user.
+ ///
+ /// A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("rate_details"), JsonInclude]
+ public List? RateDetails { get; set; }
+
+ ///
+ /// The rate selection strategy that was used to create this label. This will match the rate_shopper_id provided in the request path.
+ ///
+ /// The rate selection strategy that was used to create this label. This will match the rate_shopper_id provided in the request path.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("rate_shopper_id"), JsonInclude]
+ public RateShopperIdEnum? RateShopperId { get; set; }
+
+ ///
+ /// The total shipping cost for the specified comparison_rate_type.
+ ///
+ /// The total shipping cost for the specified comparison_rate_type.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("requested_comparison_amount"), JsonInclude]
+ public MonetaryValue? RequestedComparisonAmount { get; set; }
+
+ ///
+ /// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
+ ///
+ /// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(30)]
+ public string? RmaNumber { get; set; }
+
+ ///
+ /// The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc.
+ ///
+ /// The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// usps_first_class_mail
+ ///
+ [JsonPropertyName("service_code"), JsonInclude]
+ public string? ServiceCode { get; set; }
+
+ ///
+ /// The date that the package was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead.
+ ///
+ /// The date that the package was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 2018-09-23T00:00Z
+ ///
+ [JsonPropertyName("ship_date"), JsonInclude]
+ public DateTimeOffset? ShipDate { get; set; }
+
+ ///
+ /// The recipient's mailing address
+ ///
+ /// The recipient's mailing address
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("ship_to"), JsonInclude]
+ public ShippingAddressTo? ShipTo { get; set; }
+
+ ///
+ /// The shipment information used to generate the label
+ ///
+ /// The shipment information used to generate the label
+ [JsonPropertyName("shipment"), JsonPropertyOrder(34), JsonWriteOnly]
+ public Shipment? Shipment { get; set; }
+
+ ///
+ /// The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs.
+ ///
+ /// The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("shipment_cost"), JsonInclude]
+ public MonetaryValue? ShipmentCost { get; set; }
+
+ ///
+ /// The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/)
+ ///
+ /// The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/)
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// se-28529731
+ ///
+ [JsonPropertyName("shipment_id"), JsonInclude]
+ public string? ShipmentId { get; set; }
+
+ ///
+ /// Gets or Sets Status
+ ///
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("status"), JsonInclude]
+ public LabelStatus? Status { get; set; }
+
+ ///
+ /// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
+ ///
+ /// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
+ [JsonPropertyName("test_label"), JsonPropertyOrder(38), JsonWriteOnly, Obsolete]
+ public bool? TestLabel { get; set; }
+
+ ///
+ /// Indicates whether the shipment is trackable, in which case the `tracking_status` field will reflect the current status and each package will have a `tracking_number`.
+ ///
+ /// Indicates whether the shipment is trackable, in which case the `tracking_status` field will reflect the current status and each package will have a `tracking_number`.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("trackable"), JsonInclude]
+ public bool? Trackable { get; set; }
+
+ ///
+ /// The tracking number for the package. Tracking number formats vary across carriers.
+ ///
+ /// The tracking number for the package. Tracking number formats vary across carriers.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 782758401696
+ ///
+ [JsonPropertyName("tracking_number"), JsonInclude]
+ public string? TrackingNumber { get; set; }
+
+ ///
+ /// The current status of the package, such as `in_transit` or `delivered`
+ ///
+ /// The current status of the package, such as `in_transit` or `delivered`
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("tracking_status"), JsonInclude]
+ public TrackingStatus? TrackingStatus { get; set; }
+
+ ///
+ /// The URL to track the package. This URL is provided by the carrier and is unique to the tracking number.
+ ///
+ /// The URL to track the package. This URL is provided by the carrier and is unique to the tracking number.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// https://www.fedex.com/fedextrack/?action=track&trackingnumber=1234
+ ///
+ [JsonPropertyName("tracking_url"), JsonInclude]
+ public string? TrackingUrl { get; set; }
+
+ ///
+ /// Gets or Sets ValidateAddress
+ ///
+ [JsonPropertyName("validate_address"), JsonPropertyOrder(43), JsonWriteOnly]
+ public ValidateAddress? ValidateAddress { get; set; }
+
+ ///
+ /// Indicates whether the label has been [voided](https://www.shipengine.com/docs/labels/voiding/)
+ ///
+ /// Indicates whether the label has been [voided](https://www.shipengine.com/docs/labels/voiding/)
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("voided"), JsonInclude]
+ public bool? Voided { get; set; }
+
+ ///
+ /// The date and time that the label was [voided](https://www.shipengine.com/docs/labels/voiding/), or `null` if the label has not been voided
+ ///
+ /// The date and time that the label was [voided](https://www.shipengine.com/docs/labels/voiding/), or `null` if the label has not been voided
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 2018-09-23T15:00Z
+ ///
+ [JsonPropertyName("voided_at"), JsonInclude]
+ public DateTimeOffset? VoidedAt { get; set; }
+
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ var sb = new StringBuilder();
+ sb.Append("class CreateLabelRateShopperResponseBody {\n");
+#pragma warning disable CS0612 // Type or member is obsolete
+ sb.Append(" AlternativeIdentifiers: ").Append(AlternativeIdentifiers).Append("\n");
+ sb.Append(" BatchId: ").Append(BatchId).Append("\n");
+ sb.Append(" CarrierCode: ").Append(CarrierCode).Append("\n");
+ sb.Append(" CarrierId: ").Append(CarrierId).Append("\n");
+ sb.Append(" ChargeEvent: ").Append(ChargeEvent).Append("\n");
+ sb.Append(" Confirmation: ").Append(Confirmation).Append("\n");
+ sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
+ sb.Append(" DisplayScheme: ").Append(DisplayScheme).Append("\n");
+ sb.Append(" ExternalOrderId: ").Append(ExternalOrderId).Append("\n");
+ sb.Append(" ExternalShipmentId: ").Append(ExternalShipmentId).Append("\n");
+ sb.Append(" FormDownload: ").Append(FormDownload).Append("\n");
+ sb.Append(" InsuranceClaim: ").Append(InsuranceClaim).Append("\n");
+ sb.Append(" InsuranceCost: ").Append(InsuranceCost).Append("\n");
+ sb.Append(" IsInternational: ").Append(IsInternational).Append("\n");
+ sb.Append(" IsReturnLabel: ").Append(IsReturnLabel).Append("\n");
+ sb.Append(" LabelDownload: ").Append(LabelDownload).Append("\n");
+ sb.Append(" LabelDownloadType: ").Append(LabelDownloadType).Append("\n");
+ sb.Append(" LabelFormat: ").Append(LabelFormat).Append("\n");
+ sb.Append(" LabelId: ").Append(LabelId).Append("\n");
+ sb.Append(" LabelImageId: ").Append(LabelImageId).Append("\n");
+ sb.Append(" LabelLayout: ").Append(LabelLayout).Append("\n");
+ sb.Append(" OutboundLabelId: ").Append(OutboundLabelId).Append("\n");
+ sb.Append(" PackageCode: ").Append(PackageCode).Append("\n");
+ sb.Append(" Packages: ").Append(Packages).Append("\n");
+ sb.Append(" PaperlessDownload: ").Append(PaperlessDownload).Append("\n");
+ sb.Append(" QrCodeDownload: ").Append(QrCodeDownload).Append("\n");
+ sb.Append(" RateDetails: ").Append(RateDetails).Append("\n");
+ sb.Append(" RateShopperId: ").Append(RateShopperId).Append("\n");
+ sb.Append(" RequestedComparisonAmount: ").Append(RequestedComparisonAmount).Append("\n");
+ sb.Append(" RmaNumber: ").Append(RmaNumber).Append("\n");
+ sb.Append(" ServiceCode: ").Append(ServiceCode).Append("\n");
+ sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
+ sb.Append(" ShipTo: ").Append(ShipTo).Append("\n");
+ sb.Append(" Shipment: ").Append(Shipment).Append("\n");
+ sb.Append(" ShipmentCost: ").Append(ShipmentCost).Append("\n");
+ sb.Append(" ShipmentId: ").Append(ShipmentId).Append("\n");
+ sb.Append(" Status: ").Append(Status).Append("\n");
+ sb.Append(" TestLabel: ").Append(TestLabel).Append("\n");
+ sb.Append(" Trackable: ").Append(Trackable).Append("\n");
+ sb.Append(" TrackingNumber: ").Append(TrackingNumber).Append("\n");
+ sb.Append(" TrackingStatus: ").Append(TrackingStatus).Append("\n");
+ sb.Append(" TrackingUrl: ").Append(TrackingUrl).Append("\n");
+ sb.Append(" ValidateAddress: ").Append(ValidateAddress).Append("\n");
+ sb.Append(" Voided: ").Append(Voided).Append("\n");
+ sb.Append(" VoidedAt: ").Append(VoidedAt).Append("\n");
+#pragma warning restore CS0612 // Type or member is obsolete
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson(JsonSerializerOptions options)
+ {
+ return JsonSerializer.Serialize(this, options);
+ }
+
+}
\ No newline at end of file
diff --git a/ShipEngineSDK/Model/CreateLabelResponseBody.cs b/ShipEngineSDK/Model/CreateLabelResponseBody.cs
index b55e0f65..320b4e61 100644
--- a/ShipEngineSDK/Model/CreateLabelResponseBody.cs
+++ b/ShipEngineSDK/Model/CreateLabelResponseBody.cs
@@ -204,6 +204,16 @@ public partial class CreateLabelResponseBody
[JsonPropertyName("ship_date"), JsonInclude]
public DateTimeOffset? ShipDate { get; set; }
+ ///
+ /// The recipient's mailing address
+ ///
+ /// The recipient's mailing address
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("ship_to"), JsonInclude]
+ public ShippingAddressTo? ShipTo { get; set; }
+
///
/// The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs.
///
@@ -289,6 +299,36 @@ public partial class CreateLabelResponseBody
[JsonPropertyName("alternative_identifiers"), JsonInclude]
public List? AlternativeIdentifiers { get; set; }
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("confirmation"), JsonInclude]
+ public DeliveryConfirmation? Confirmation { get; set; }
+
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_order_id"), JsonInclude]
+ public string? ExternalOrderId { get; set; }
+
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_shipment_id"), JsonInclude]
+ public string? ExternalShipmentId { get; set; }
+
///
/// The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
///
@@ -312,7 +352,7 @@ public partial class CreateLabelResponseBody
///
/// Gets or Sets LabelDownloadType
///
- [JsonPropertyName("label_download_type"), JsonPropertyOrder(28), JsonWriteOnly]
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(32), JsonWriteOnly]
public LabelDownloadType? LabelDownloadType { get; set; }
///
@@ -322,7 +362,7 @@ public partial class CreateLabelResponseBody
///
/// img_DtBXupDBxREpHnwEXhTfgK
///
- [JsonPropertyName("label_image_id"), JsonPropertyOrder(29)]
+ [JsonPropertyName("label_image_id"), JsonPropertyOrder(33)]
public required string LabelImageId { get; set; }
///
@@ -332,7 +372,7 @@ public partial class CreateLabelResponseBody
///
/// se-28529731
///
- [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(30), JsonWriteOnly]
+ [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(34), JsonWriteOnly]
public string? OutboundLabelId { get; set; }
///
@@ -345,6 +385,16 @@ public partial class CreateLabelResponseBody
[JsonPropertyName("paperless_download"), JsonInclude]
public PaperlessDownload? PaperlessDownload { get; set; }
+ ///
+ /// The QR code download for the package
+ ///
+ /// The QR code download for the package
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("qr_code_download"), JsonInclude]
+ public OptionalLink? QrCodeDownload { get; set; }
+
///
/// A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user.
///
@@ -369,21 +419,21 @@ public partial class CreateLabelResponseBody
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
///
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
- [JsonPropertyName("rma_number"), JsonPropertyOrder(34)]
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(39)]
public required string RmaNumber { get; set; }
///
/// The shipment information used to generate the label
///
/// The shipment information used to generate the label
- [JsonPropertyName("shipment"), JsonPropertyOrder(35), JsonWriteOnly]
+ [JsonPropertyName("shipment"), JsonPropertyOrder(40), JsonWriteOnly]
public Shipment? Shipment { get; set; }
///
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
///
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
- [JsonPropertyName("test_label"), JsonPropertyOrder(36), JsonWriteOnly, Obsolete]
+ [JsonPropertyName("test_label"), JsonPropertyOrder(41), JsonWriteOnly, Obsolete]
public bool? TestLabel { get; set; }
///
@@ -402,7 +452,7 @@ public partial class CreateLabelResponseBody
///
/// Gets or Sets ValidateAddress
///
- [JsonPropertyName("validate_address"), JsonPropertyOrder(38), JsonWriteOnly]
+ [JsonPropertyName("validate_address"), JsonPropertyOrder(43), JsonWriteOnly]
public ValidateAddress? ValidateAddress { get; set; }
///
@@ -445,6 +495,7 @@ public override string ToString()
sb.Append(" Packages: ").Append(Packages).Append("\n");
sb.Append(" ServiceCode: ").Append(ServiceCode).Append("\n");
sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
+ sb.Append(" ShipTo: ").Append(ShipTo).Append("\n");
sb.Append(" ShipmentCost: ").Append(ShipmentCost).Append("\n");
sb.Append(" ShipmentId: ").Append(ShipmentId).Append("\n");
sb.Append(" Status: ").Append(Status).Append("\n");
@@ -453,12 +504,16 @@ public override string ToString()
sb.Append(" TrackingStatus: ").Append(TrackingStatus).Append("\n");
sb.Append(" Voided: ").Append(Voided).Append("\n");
sb.Append(" AlternativeIdentifiers: ").Append(AlternativeIdentifiers).Append("\n");
+ sb.Append(" Confirmation: ").Append(Confirmation).Append("\n");
+ sb.Append(" ExternalOrderId: ").Append(ExternalOrderId).Append("\n");
+ sb.Append(" ExternalShipmentId: ").Append(ExternalShipmentId).Append("\n");
sb.Append(" FormDownload: ").Append(FormDownload).Append("\n");
sb.Append(" InsuranceClaim: ").Append(InsuranceClaim).Append("\n");
sb.Append(" LabelDownloadType: ").Append(LabelDownloadType).Append("\n");
sb.Append(" LabelImageId: ").Append(LabelImageId).Append("\n");
sb.Append(" OutboundLabelId: ").Append(OutboundLabelId).Append("\n");
sb.Append(" PaperlessDownload: ").Append(PaperlessDownload).Append("\n");
+ sb.Append(" QrCodeDownload: ").Append(QrCodeDownload).Append("\n");
sb.Append(" RateDetails: ").Append(RateDetails).Append("\n");
sb.Append(" RequestedComparisonAmount: ").Append(RequestedComparisonAmount).Append("\n");
sb.Append(" RmaNumber: ").Append(RmaNumber).Append("\n");
diff --git a/ShipEngineSDK/Model/CreateReturnLabelRequestBody.cs b/ShipEngineSDK/Model/CreateReturnLabelRequestBody.cs
index 76c78891..827043c2 100644
--- a/ShipEngineSDK/Model/CreateReturnLabelRequestBody.cs
+++ b/ShipEngineSDK/Model/CreateReturnLabelRequestBody.cs
@@ -70,6 +70,13 @@ public partial class CreateReturnLabelRequestBody
[JsonPropertyName("label_layout"), JsonPropertyOrder(6)]
public LabelLayout? LabelLayout { get; set; }
+ ///
+ /// An optional Return Merchandise Authorization number. If provided, this value will be used as the return label's RMA number. If omitted, the system will auto-generate an RMA number (current default behavior). You can set it to any string value.
+ ///
+ /// An optional Return Merchandise Authorization number. If provided, this value will be used as the return label's RMA number. If omitted, the system will auto-generate an RMA number (current default behavior). You can set it to any string value.
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(7)]
+ public string? RmaNumber { get; set; }
+
///
/// Returns the string presentation of the object
@@ -86,6 +93,7 @@ public override string ToString()
sb.Append(" LabelFormat: ").Append(LabelFormat).Append("\n");
sb.Append(" LabelImageId: ").Append(LabelImageId).Append("\n");
sb.Append(" LabelLayout: ").Append(LabelLayout).Append("\n");
+ sb.Append(" RmaNumber: ").Append(RmaNumber).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/CreateReturnLabelResponseBody.cs b/ShipEngineSDK/Model/CreateReturnLabelResponseBody.cs
index c9691217..95b52514 100644
--- a/ShipEngineSDK/Model/CreateReturnLabelResponseBody.cs
+++ b/ShipEngineSDK/Model/CreateReturnLabelResponseBody.cs
@@ -82,6 +82,16 @@ public partial class CreateReturnLabelResponseBody
[JsonPropertyName("charge_event"), JsonPropertyOrder(5)]
public LabelChargeEvent? ChargeEvent { get; set; }
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("confirmation"), JsonInclude]
+ public DeliveryConfirmation? Confirmation { get; set; }
+
///
/// The date and time that the label was created in ShipEngine.
///
@@ -99,9 +109,29 @@ public partial class CreateReturnLabelResponseBody
/// The display format that the label should be shown in.
///
/// The display format that the label should be shown in.
- [JsonPropertyName("display_scheme"), JsonPropertyOrder(7)]
+ [JsonPropertyName("display_scheme"), JsonPropertyOrder(8)]
public DisplayScheme? DisplayScheme { get; set; }
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_order_id"), JsonInclude]
+ public string? ExternalOrderId { get; set; }
+
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_shipment_id"), JsonInclude]
+ public string? ExternalShipmentId { get; set; }
+
///
/// The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
///
@@ -146,7 +176,7 @@ public partial class CreateReturnLabelResponseBody
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
///
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
- [JsonPropertyName("is_return_label"), JsonPropertyOrder(12)]
+ [JsonPropertyName("is_return_label"), JsonPropertyOrder(15)]
public bool? IsReturnLabel { get; set; }
///
@@ -161,14 +191,14 @@ public partial class CreateReturnLabelResponseBody
///
/// Gets or Sets LabelDownloadType
///
- [JsonPropertyName("label_download_type"), JsonPropertyOrder(14), JsonWriteOnly]
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(17), JsonWriteOnly]
public LabelDownloadType? LabelDownloadType { get; set; }
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
- [JsonPropertyName("label_format"), JsonPropertyOrder(15)]
+ [JsonPropertyName("label_format"), JsonPropertyOrder(18)]
public LabelFormat? LabelFormat { get; set; }
///
@@ -191,14 +221,14 @@ public partial class CreateReturnLabelResponseBody
///
/// img_DtBXupDBxREpHnwEXhTfgK
///
- [JsonPropertyName("label_image_id"), JsonPropertyOrder(17)]
+ [JsonPropertyName("label_image_id"), JsonPropertyOrder(20)]
public string? LabelImageId { get; set; }
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
- [JsonPropertyName("label_layout"), JsonPropertyOrder(18)]
+ [JsonPropertyName("label_layout"), JsonPropertyOrder(21)]
public LabelLayout? LabelLayout { get; set; }
///
@@ -208,7 +238,7 @@ public partial class CreateReturnLabelResponseBody
///
/// se-28529731
///
- [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(19), JsonWriteOnly]
+ [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(22), JsonWriteOnly]
public string? OutboundLabelId { get; set; }
///
@@ -244,6 +274,16 @@ public partial class CreateReturnLabelResponseBody
[JsonPropertyName("paperless_download"), JsonInclude]
public PaperlessDownload? PaperlessDownload { get; set; }
+ ///
+ /// The QR code download for the package
+ ///
+ /// The QR code download for the package
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("qr_code_download"), JsonInclude]
+ public OptionalLink? QrCodeDownload { get; set; }
+
///
/// A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user.
///
@@ -268,7 +308,7 @@ public partial class CreateReturnLabelResponseBody
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
///
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
- [JsonPropertyName("rma_number"), JsonPropertyOrder(25)]
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(29)]
public string? RmaNumber { get; set; }
///
@@ -297,11 +337,21 @@ public partial class CreateReturnLabelResponseBody
[JsonPropertyName("ship_date"), JsonInclude]
public DateTimeOffset? ShipDate { get; set; }
+ ///
+ /// The recipient's mailing address
+ ///
+ /// The recipient's mailing address
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("ship_to"), JsonInclude]
+ public ShippingAddressTo? ShipTo { get; set; }
+
///
/// The shipment information used to generate the label
///
/// The shipment information used to generate the label
- [JsonPropertyName("shipment"), JsonPropertyOrder(28), JsonWriteOnly]
+ [JsonPropertyName("shipment"), JsonPropertyOrder(33), JsonWriteOnly]
public Shipment? Shipment { get; set; }
///
@@ -340,7 +390,7 @@ public partial class CreateReturnLabelResponseBody
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
///
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
- [JsonPropertyName("test_label"), JsonPropertyOrder(32), JsonWriteOnly, Obsolete]
+ [JsonPropertyName("test_label"), JsonPropertyOrder(37), JsonWriteOnly, Obsolete]
public bool? TestLabel { get; set; }
///
@@ -392,7 +442,7 @@ public partial class CreateReturnLabelResponseBody
///
/// Gets or Sets ValidateAddress
///
- [JsonPropertyName("validate_address"), JsonPropertyOrder(37), JsonWriteOnly]
+ [JsonPropertyName("validate_address"), JsonPropertyOrder(42), JsonWriteOnly]
public ValidateAddress? ValidateAddress { get; set; }
///
@@ -433,8 +483,11 @@ public override string ToString()
sb.Append(" CarrierCode: ").Append(CarrierCode).Append("\n");
sb.Append(" CarrierId: ").Append(CarrierId).Append("\n");
sb.Append(" ChargeEvent: ").Append(ChargeEvent).Append("\n");
+ sb.Append(" Confirmation: ").Append(Confirmation).Append("\n");
sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
sb.Append(" DisplayScheme: ").Append(DisplayScheme).Append("\n");
+ sb.Append(" ExternalOrderId: ").Append(ExternalOrderId).Append("\n");
+ sb.Append(" ExternalShipmentId: ").Append(ExternalShipmentId).Append("\n");
sb.Append(" FormDownload: ").Append(FormDownload).Append("\n");
sb.Append(" InsuranceClaim: ").Append(InsuranceClaim).Append("\n");
sb.Append(" InsuranceCost: ").Append(InsuranceCost).Append("\n");
@@ -450,11 +503,13 @@ public override string ToString()
sb.Append(" PackageCode: ").Append(PackageCode).Append("\n");
sb.Append(" Packages: ").Append(Packages).Append("\n");
sb.Append(" PaperlessDownload: ").Append(PaperlessDownload).Append("\n");
+ sb.Append(" QrCodeDownload: ").Append(QrCodeDownload).Append("\n");
sb.Append(" RateDetails: ").Append(RateDetails).Append("\n");
sb.Append(" RequestedComparisonAmount: ").Append(RequestedComparisonAmount).Append("\n");
sb.Append(" RmaNumber: ").Append(RmaNumber).Append("\n");
sb.Append(" ServiceCode: ").Append(ServiceCode).Append("\n");
sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
+ sb.Append(" ShipTo: ").Append(ShipTo).Append("\n");
sb.Append(" Shipment: ").Append(Shipment).Append("\n");
sb.Append(" ShipmentCost: ").Append(ShipmentCost).Append("\n");
sb.Append(" ShipmentId: ").Append(ShipmentId).Append("\n");
diff --git a/ShipEngineSDK/Model/CreateTagRequestBody.cs b/ShipEngineSDK/Model/CreateTagRequestBody.cs
new file mode 100644
index 00000000..e50152ad
--- /dev/null
+++ b/ShipEngineSDK/Model/CreateTagRequestBody.cs
@@ -0,0 +1,75 @@
+//
+// DO NOT MODIFY THIS FILE
+
+// Changes can be made in a corresponding partial file, or by changing
+// the template in /generation/templates and generating the class again.
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using System.Text.RegularExpressions;
+
+namespace ShipEngineSDK.Model;
+
+///
+/// A create tag request body
+///
+public partial class CreateTagRequestBody
+{
+
+ ///
+ /// The tag name.
+ ///
+ /// The tag name.
+ ///
+ /// Fragile
+ ///
+ [JsonPropertyName("name"), JsonPropertyOrder(1)]
+ public required string Name { get; set; }
+
+ ///
+ /// A hex-coded string identifying the color of the tag.
+ ///
+ /// A hex-coded string identifying the color of the tag.
+ ///
+ /// #FF0000
+ ///
+ [JsonPropertyName("color"), JsonPropertyOrder(2)]
+ public string? Color { get; set; }
+
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ var sb = new StringBuilder();
+ sb.Append("class CreateTagRequestBody {\n");
+#pragma warning disable CS0612 // Type or member is obsolete
+ sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" Color: ").Append(Color).Append("\n");
+#pragma warning restore CS0612 // Type or member is obsolete
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson(JsonSerializerOptions options)
+ {
+ return JsonSerializer.Serialize(this, options);
+ }
+
+}
\ No newline at end of file
diff --git a/ShipEngineSDK/Model/CreateTagResponseBody.cs b/ShipEngineSDK/Model/CreateTagResponseBody.cs
index be7e513b..683ae8a3 100644
--- a/ShipEngineSDK/Model/CreateTagResponseBody.cs
+++ b/ShipEngineSDK/Model/CreateTagResponseBody.cs
@@ -36,6 +36,29 @@ public partial class CreateTagResponseBody
[JsonPropertyName("name"), JsonPropertyOrder(1)]
public required string Name { get; set; }
+ ///
+ /// A hex-coded string identifying the color of the tag.
+ ///
+ /// A hex-coded string identifying the color of the tag.
+ ///
+ /// #FF0000
+ ///
+ [JsonPropertyName("color"), JsonPropertyOrder(2)]
+ public string? Color { get; set; }
+
+ ///
+ /// An integer uniquely identifying a tag.
+ ///
+ /// An integer uniquely identifying a tag.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 8712
+ ///
+ [JsonPropertyName("tag_id"), JsonInclude]
+ public int? TagId { get; set; }
+
///
/// Returns the string presentation of the object
@@ -47,6 +70,8 @@ public override string ToString()
sb.Append("class CreateTagResponseBody {\n");
#pragma warning disable CS0612 // Type or member is obsolete
sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" Color: ").Append(Color).Append("\n");
+ sb.Append(" TagId: ").Append(TagId).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/CreateWebhookRequestBody.cs b/ShipEngineSDK/Model/CreateWebhookRequestBody.cs
index e3ecbce4..2e4fa5c9 100644
--- a/ShipEngineSDK/Model/CreateWebhookRequestBody.cs
+++ b/ShipEngineSDK/Model/CreateWebhookRequestBody.cs
@@ -49,6 +49,26 @@ public partial class CreateWebhookRequestBody
[JsonPropertyName("headers"), JsonPropertyOrder(3)]
public List? Headers { get; set; }
+ ///
+ /// The name of the webhook
+ ///
+ /// The name of the webhook
+ ///
+ /// My New Webhook
+ ///
+ [JsonPropertyName("name"), JsonPropertyOrder(4)]
+ public string? Name { get; set; }
+
+ ///
+ /// Store ID
+ ///
+ /// Store ID
+ ///
+ /// 123456
+ ///
+ [JsonPropertyName("store_id"), JsonPropertyOrder(5)]
+ public int? StoreId { get; set; }
+
///
/// Returns the string presentation of the object
@@ -62,6 +82,8 @@ public override string ToString()
sb.Append(" Event: ").Append(Event).Append("\n");
sb.Append(" Url: ").Append(Url).Append("\n");
sb.Append(" Headers: ").Append(Headers).Append("\n");
+ sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" StoreId: ").Append(StoreId).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/CreateWebhookResponseBody.cs b/ShipEngineSDK/Model/CreateWebhookResponseBody.cs
index 61e4343b..6840c4b5 100644
--- a/ShipEngineSDK/Model/CreateWebhookResponseBody.cs
+++ b/ShipEngineSDK/Model/CreateWebhookResponseBody.cs
@@ -62,6 +62,26 @@ public partial class CreateWebhookResponseBody
[JsonPropertyName("headers"), JsonPropertyOrder(4)]
public List? Headers { get; set; }
+ ///
+ /// The name of the webhook
+ ///
+ /// The name of the webhook
+ ///
+ /// My Webhook
+ ///
+ [JsonPropertyName("name"), JsonPropertyOrder(5)]
+ public string? Name { get; set; }
+
+ ///
+ /// Store ID
+ ///
+ /// Store ID
+ ///
+ /// 123456
+ ///
+ [JsonPropertyName("store_id"), JsonPropertyOrder(6)]
+ public int? StoreId { get; set; }
+
///
/// Returns the string presentation of the object
@@ -76,6 +96,8 @@ public override string ToString()
sb.Append(" Url: ").Append(Url).Append("\n");
sb.Append(" WebhookId: ").Append(WebhookId).Append("\n");
sb.Append(" Headers: ").Append(Headers).Append("\n");
+ sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" StoreId: ").Append(StoreId).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/DeliveryConfirmation.cs b/ShipEngineSDK/Model/DeliveryConfirmation.cs
index 6bb36134..2e571e8b 100644
--- a/ShipEngineSDK/Model/DeliveryConfirmation.cs
+++ b/ShipEngineSDK/Model/DeliveryConfirmation.cs
@@ -92,6 +92,18 @@ public DeliveryConfirmation(string value)
public static DeliveryConfirmation VerbalConfirmation { get; } = new("verbal_confirmation");
+ ///
+ /// Enum DeliveryCode for value: delivery_code
+ ///
+ public static DeliveryConfirmation DeliveryCode { get; } = new("delivery_code");
+
+
+ ///
+ /// Enum AgeVerification16Plus for value: age_verification_16_plus
+ ///
+ public static DeliveryConfirmation AgeVerification16Plus { get; } = new("age_verification_16_plus");
+
+
///
/// Get a string representation of the current value
///
diff --git a/ShipEngineSDK/Model/ErrorType.cs b/ShipEngineSDK/Model/ErrorType.cs
index 07ea4e80..2c2b630d 100644
--- a/ShipEngineSDK/Model/ErrorType.cs
+++ b/ShipEngineSDK/Model/ErrorType.cs
@@ -86,18 +86,6 @@ public ErrorType(string value)
public static ErrorType Integrations { get; } = new("integrations");
- ///
- /// Enum Wallet for value: wallet
- ///
- public static ErrorType Wallet { get; } = new("wallet");
-
-
- ///
- /// Enum FundingSources for value: funding_sources
- ///
- public static ErrorType FundingSources { get; } = new("funding_sources");
-
-
///
/// Get a string representation of the current value
///
diff --git a/ShipEngineSDK/Model/EstimateRatesRequestBody.cs b/ShipEngineSDK/Model/EstimateRatesRequestBody.cs
index dbcfa134..d32037f6 100644
--- a/ShipEngineSDK/Model/EstimateRatesRequestBody.cs
+++ b/ShipEngineSDK/Model/EstimateRatesRequestBody.cs
@@ -316,12 +316,21 @@ public override void Write(Utf8JsonWriter writer, EstimateRatesRequestBody value
JsonSerializer.Serialize(writer, value.ToStateProvince, options);
writer.WritePropertyName("weight");
JsonSerializer.Serialize(writer, value.Weight, options);
- writer.WritePropertyName("address_residential_indicator");
- JsonSerializer.Serialize(writer, value.AddressResidentialIndicator, options);
- writer.WritePropertyName("confirmation");
- JsonSerializer.Serialize(writer, value.Confirmation, options);
- writer.WritePropertyName("dimensions");
- JsonSerializer.Serialize(writer, value.Dimensions, options);
+ if (value.AddressResidentialIndicator != null)
+ {
+ writer.WritePropertyName("address_residential_indicator");
+ JsonSerializer.Serialize(writer, value.AddressResidentialIndicator, options);
+ }
+ if (value.Confirmation != null)
+ {
+ writer.WritePropertyName("confirmation");
+ JsonSerializer.Serialize(writer, value.Confirmation, options);
+ }
+ if (value.Dimensions != null)
+ {
+ writer.WritePropertyName("dimensions");
+ JsonSerializer.Serialize(writer, value.Dimensions, options);
+ }
var node = JsonSerializer.SerializeToNode(value.ActualInstance, options);
foreach (var prop in node?.AsObject() ?? [])
@@ -364,9 +373,9 @@ public override void Write(Utf8JsonWriter writer, EstimateRatesRequestBody value
var toPostalCode = jsonDoc.RootElement.GetProperty("to_postal_code").Deserialize(DeserializingOptions)!;
var toStateProvince = jsonDoc.RootElement.GetProperty("to_state_province").Deserialize(DeserializingOptions)!;
var weight = jsonDoc.RootElement.GetProperty("weight").Deserialize(DeserializingOptions)!;
- var addressResidentialIndicator = jsonDoc.RootElement.GetProperty("address_residential_indicator").Deserialize(DeserializingOptions)!;
- var confirmation = jsonDoc.RootElement.GetProperty("confirmation").Deserialize(DeserializingOptions)!;
- var dimensions = jsonDoc.RootElement.GetProperty("dimensions").Deserialize(DeserializingOptions)!;
+ var addressResidentialIndicator = jsonDoc.RootElement.TryGetProperty("address_residential_indicator", out var addressResidentialIndicatorElement) ? addressResidentialIndicatorElement.Deserialize(DeserializingOptions) : null;
+ var confirmation = jsonDoc.RootElement.TryGetProperty("confirmation", out var confirmationElement) ? confirmationElement.Deserialize(DeserializingOptions) : null;
+ var dimensions = jsonDoc.RootElement.TryGetProperty("dimensions", out var dimensionsElement) ? dimensionsElement.Deserialize(DeserializingOptions) : null;
int match = 0;
var matchedTypes = new List();
diff --git a/ShipEngineSDK/Model/EstimatedImportCharges.cs b/ShipEngineSDK/Model/EstimatedImportCharges.cs
new file mode 100644
index 00000000..50cd2b6b
--- /dev/null
+++ b/ShipEngineSDK/Model/EstimatedImportCharges.cs
@@ -0,0 +1,69 @@
+//
+// DO NOT MODIFY THIS FILE
+
+// Changes can be made in a corresponding partial file, or by changing
+// the template in /generation/templates and generating the class again.
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using System.Text.RegularExpressions;
+
+namespace ShipEngineSDK.Model;
+
+///
+/// Estimated import charges for commercial invoices for international shipments.
+///
+public partial class EstimatedImportCharges
+{
+
+ ///
+ /// Estimated import duties.
+ ///
+ /// Estimated import duties.
+ [JsonPropertyName("duties"), JsonPropertyOrder(1)]
+ public MonetaryValue? Duties { get; set; }
+
+ ///
+ /// Estimated import taxes.
+ ///
+ /// Estimated import taxes.
+ [JsonPropertyName("taxes"), JsonPropertyOrder(2)]
+ public MonetaryValue? Taxes { get; set; }
+
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ var sb = new StringBuilder();
+ sb.Append("class EstimatedImportCharges {\n");
+#pragma warning disable CS0612 // Type or member is obsolete
+ sb.Append(" Duties: ").Append(Duties).Append("\n");
+ sb.Append(" Taxes: ").Append(Taxes).Append("\n");
+#pragma warning restore CS0612 // Type or member is obsolete
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson(JsonSerializerOptions options)
+ {
+ return JsonSerializer.Serialize(this, options);
+ }
+
+}
\ No newline at end of file
diff --git a/ShipEngineSDK/Model/GetCarrierByIdResponseBody.cs b/ShipEngineSDK/Model/GetCarrierByIdResponseBody.cs
index f8fc36b3..a921f962 100644
--- a/ShipEngineSDK/Model/GetCarrierByIdResponseBody.cs
+++ b/ShipEngineSDK/Model/GetCarrierByIdResponseBody.cs
@@ -25,6 +25,66 @@ namespace ShipEngineSDK.Model;
///
public partial class GetCarrierByIdResponseBody
{
+ ///
+ /// The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use.
+ ///
+ /// The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use.
+ [JsonConverter(typeof(ConnectionStatusEnumJsonConverter))]
+ public class ConnectionStatusEnum
+ {
+ private readonly string _value;
+
+ ///
+ /// Create a new instance of ConnectionStatusEnum with a predefined value.
+ ///
+ internal ConnectionStatusEnum()
+ {
+ _value = "pending_approval";
+ }
+
+ ///
+ /// Create a new instance of ConnectionStatusEnum with a custom value.
+ ///
+ /// The value of the ConnectionStatusEnum
+ ///
+ /// You can send a custom value to the API using this constructor, but the API most likely won't know what to do with it.
+ /// You should use the predefined values returned by the static properties of this class unless you know that the value is value.
+ ///
+ public ConnectionStatusEnum(string value)
+ {
+ _value = value;
+ }
+
+ ///
+ /// Enum PendingApproval for value: pending_approval
+ ///
+ public static ConnectionStatusEnum PendingApproval { get; } = new("pending_approval");
+
+
+ ///
+ /// Enum Approved for value: approved
+ ///
+ public static ConnectionStatusEnum Approved { get; } = new("approved");
+
+
+ ///
+ /// Get a string representation of the current value
+ ///
+ public override string ToString() => _value;
+ }
+
+ internal class ConnectionStatusEnumJsonConverter : JsonConverter
+ {
+ public override ConnectionStatusEnum? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
+ reader.TokenType == JsonTokenType.String ? new ConnectionStatusEnum(reader.GetString()!) : null;
+
+ public override void Write(Utf8JsonWriter writer, ConnectionStatusEnum value, JsonSerializerOptions options) =>
+ writer.WriteStringValue(value.ToString());
+
+ public override bool CanConvert(Type typeToConvert) =>
+ typeToConvert == typeof(ConnectionStatusEnum);
+ }
+
///
/// The account number that the carrier is connected to.
@@ -39,6 +99,16 @@ public partial class GetCarrierByIdResponseBody
[JsonPropertyName("account_number"), JsonInclude]
public string? AccountNumber { get; set; }
+ ///
+ /// The carrier has services that support return shipments.
+ ///
+ /// The carrier has services that support return shipments.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("allows_returns"), JsonInclude]
+ public bool? AllowsReturns { get; set; }
+
///
/// Current available balance
///
@@ -78,6 +148,16 @@ public partial class GetCarrierByIdResponseBody
[JsonPropertyName("carrier_id"), JsonInclude]
public string? CarrierId { get; set; }
+ ///
+ /// The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use.
+ ///
+ /// The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("connection_status"), JsonInclude]
+ public ConnectionStatusEnum? ConnectionStatus { get; set; }
+
///
/// The carrier is disabled by the current ShipEngine account's billing plan.
///
@@ -177,6 +257,16 @@ public partial class GetCarrierByIdResponseBody
[JsonPropertyName("requires_funded_amount"), JsonInclude]
public bool? RequiresFundedAmount { get; set; }
+ ///
+ /// The carrier provides rates for the shipment.
+ ///
+ /// The carrier provides rates for the shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("send_rates"), JsonInclude]
+ public bool? SendRates { get; set; }
+
///
/// A list of services that are offered by the carrier
///
@@ -197,6 +287,16 @@ public partial class GetCarrierByIdResponseBody
[JsonPropertyName("supports_label_messages"), JsonInclude]
public bool? SupportsLabelMessages { get; set; }
+ ///
+ /// The carrier supports user-managed rates for shipments.
+ ///
+ /// The carrier supports user-managed rates for shipments.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("supports_user_managed_rates"), JsonInclude]
+ public bool? SupportsUserManagedRates { get; set; }
+
///
/// Returns the string presentation of the object
@@ -208,9 +308,11 @@ public override string ToString()
sb.Append("class GetCarrierByIdResponseBody {\n");
#pragma warning disable CS0612 // Type or member is obsolete
sb.Append(" AccountNumber: ").Append(AccountNumber).Append("\n");
+ sb.Append(" AllowsReturns: ").Append(AllowsReturns).Append("\n");
sb.Append(" Balance: ").Append(Balance).Append("\n");
sb.Append(" CarrierCode: ").Append(CarrierCode).Append("\n");
sb.Append(" CarrierId: ").Append(CarrierId).Append("\n");
+ sb.Append(" ConnectionStatus: ").Append(ConnectionStatus).Append("\n");
sb.Append(" DisabledByBillingPlan: ").Append(DisabledByBillingPlan).Append("\n");
sb.Append(" FriendlyName: ").Append(FriendlyName).Append("\n");
sb.Append(" FundingSourceId: ").Append(FundingSourceId).Append("\n");
@@ -220,8 +322,10 @@ public override string ToString()
sb.Append(" Packages: ").Append(Packages).Append("\n");
sb.Append(" Primary: ").Append(Primary).Append("\n");
sb.Append(" RequiresFundedAmount: ").Append(RequiresFundedAmount).Append("\n");
+ sb.Append(" SendRates: ").Append(SendRates).Append("\n");
sb.Append(" Services: ").Append(Services).Append("\n");
sb.Append(" SupportsLabelMessages: ").Append(SupportsLabelMessages).Append("\n");
+ sb.Append(" SupportsUserManagedRates: ").Append(SupportsUserManagedRates).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/GetLabelByExternalShipmentIdResponseBody.cs b/ShipEngineSDK/Model/GetLabelByExternalShipmentIdResponseBody.cs
index 452ec019..fd6842ed 100644
--- a/ShipEngineSDK/Model/GetLabelByExternalShipmentIdResponseBody.cs
+++ b/ShipEngineSDK/Model/GetLabelByExternalShipmentIdResponseBody.cs
@@ -82,6 +82,16 @@ public partial class GetLabelByExternalShipmentIdResponseBody
[JsonPropertyName("charge_event"), JsonPropertyOrder(5)]
public LabelChargeEvent? ChargeEvent { get; set; }
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("confirmation"), JsonInclude]
+ public DeliveryConfirmation? Confirmation { get; set; }
+
///
/// The date and time that the label was created in ShipEngine.
///
@@ -99,9 +109,29 @@ public partial class GetLabelByExternalShipmentIdResponseBody
/// The display format that the label should be shown in.
///
/// The display format that the label should be shown in.
- [JsonPropertyName("display_scheme"), JsonPropertyOrder(7)]
+ [JsonPropertyName("display_scheme"), JsonPropertyOrder(8)]
public DisplayScheme? DisplayScheme { get; set; }
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_order_id"), JsonInclude]
+ public string? ExternalOrderId { get; set; }
+
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_shipment_id"), JsonInclude]
+ public string? ExternalShipmentId { get; set; }
+
///
/// The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
///
@@ -146,7 +176,7 @@ public partial class GetLabelByExternalShipmentIdResponseBody
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
///
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
- [JsonPropertyName("is_return_label"), JsonPropertyOrder(12)]
+ [JsonPropertyName("is_return_label"), JsonPropertyOrder(15)]
public bool? IsReturnLabel { get; set; }
///
@@ -161,14 +191,14 @@ public partial class GetLabelByExternalShipmentIdResponseBody
///
/// Gets or Sets LabelDownloadType
///
- [JsonPropertyName("label_download_type"), JsonPropertyOrder(14), JsonWriteOnly]
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(17), JsonWriteOnly]
public LabelDownloadType? LabelDownloadType { get; set; }
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
- [JsonPropertyName("label_format"), JsonPropertyOrder(15)]
+ [JsonPropertyName("label_format"), JsonPropertyOrder(18)]
public LabelFormat? LabelFormat { get; set; }
///
@@ -191,14 +221,14 @@ public partial class GetLabelByExternalShipmentIdResponseBody
///
/// img_DtBXupDBxREpHnwEXhTfgK
///
- [JsonPropertyName("label_image_id"), JsonPropertyOrder(17)]
+ [JsonPropertyName("label_image_id"), JsonPropertyOrder(20)]
public string? LabelImageId { get; set; }
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
- [JsonPropertyName("label_layout"), JsonPropertyOrder(18)]
+ [JsonPropertyName("label_layout"), JsonPropertyOrder(21)]
public LabelLayout? LabelLayout { get; set; }
///
@@ -208,7 +238,7 @@ public partial class GetLabelByExternalShipmentIdResponseBody
///
/// se-28529731
///
- [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(19), JsonWriteOnly]
+ [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(22), JsonWriteOnly]
public string? OutboundLabelId { get; set; }
///
@@ -244,6 +274,16 @@ public partial class GetLabelByExternalShipmentIdResponseBody
[JsonPropertyName("paperless_download"), JsonInclude]
public PaperlessDownload? PaperlessDownload { get; set; }
+ ///
+ /// The QR code download for the package
+ ///
+ /// The QR code download for the package
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("qr_code_download"), JsonInclude]
+ public OptionalLink? QrCodeDownload { get; set; }
+
///
/// A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user.
///
@@ -268,7 +308,7 @@ public partial class GetLabelByExternalShipmentIdResponseBody
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
///
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
- [JsonPropertyName("rma_number"), JsonPropertyOrder(25)]
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(29)]
public string? RmaNumber { get; set; }
///
@@ -297,11 +337,21 @@ public partial class GetLabelByExternalShipmentIdResponseBody
[JsonPropertyName("ship_date"), JsonInclude]
public DateTimeOffset? ShipDate { get; set; }
+ ///
+ /// The recipient's mailing address
+ ///
+ /// The recipient's mailing address
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("ship_to"), JsonInclude]
+ public ShippingAddressTo? ShipTo { get; set; }
+
///
/// The shipment information used to generate the label
///
/// The shipment information used to generate the label
- [JsonPropertyName("shipment"), JsonPropertyOrder(28), JsonWriteOnly]
+ [JsonPropertyName("shipment"), JsonPropertyOrder(33), JsonWriteOnly]
public Shipment? Shipment { get; set; }
///
@@ -340,7 +390,7 @@ public partial class GetLabelByExternalShipmentIdResponseBody
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
///
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
- [JsonPropertyName("test_label"), JsonPropertyOrder(32), JsonWriteOnly, Obsolete]
+ [JsonPropertyName("test_label"), JsonPropertyOrder(37), JsonWriteOnly, Obsolete]
public bool? TestLabel { get; set; }
///
@@ -392,7 +442,7 @@ public partial class GetLabelByExternalShipmentIdResponseBody
///
/// Gets or Sets ValidateAddress
///
- [JsonPropertyName("validate_address"), JsonPropertyOrder(37), JsonWriteOnly]
+ [JsonPropertyName("validate_address"), JsonPropertyOrder(42), JsonWriteOnly]
public ValidateAddress? ValidateAddress { get; set; }
///
@@ -433,8 +483,11 @@ public override string ToString()
sb.Append(" CarrierCode: ").Append(CarrierCode).Append("\n");
sb.Append(" CarrierId: ").Append(CarrierId).Append("\n");
sb.Append(" ChargeEvent: ").Append(ChargeEvent).Append("\n");
+ sb.Append(" Confirmation: ").Append(Confirmation).Append("\n");
sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
sb.Append(" DisplayScheme: ").Append(DisplayScheme).Append("\n");
+ sb.Append(" ExternalOrderId: ").Append(ExternalOrderId).Append("\n");
+ sb.Append(" ExternalShipmentId: ").Append(ExternalShipmentId).Append("\n");
sb.Append(" FormDownload: ").Append(FormDownload).Append("\n");
sb.Append(" InsuranceClaim: ").Append(InsuranceClaim).Append("\n");
sb.Append(" InsuranceCost: ").Append(InsuranceCost).Append("\n");
@@ -450,11 +503,13 @@ public override string ToString()
sb.Append(" PackageCode: ").Append(PackageCode).Append("\n");
sb.Append(" Packages: ").Append(Packages).Append("\n");
sb.Append(" PaperlessDownload: ").Append(PaperlessDownload).Append("\n");
+ sb.Append(" QrCodeDownload: ").Append(QrCodeDownload).Append("\n");
sb.Append(" RateDetails: ").Append(RateDetails).Append("\n");
sb.Append(" RequestedComparisonAmount: ").Append(RequestedComparisonAmount).Append("\n");
sb.Append(" RmaNumber: ").Append(RmaNumber).Append("\n");
sb.Append(" ServiceCode: ").Append(ServiceCode).Append("\n");
sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
+ sb.Append(" ShipTo: ").Append(ShipTo).Append("\n");
sb.Append(" Shipment: ").Append(Shipment).Append("\n");
sb.Append(" ShipmentCost: ").Append(ShipmentCost).Append("\n");
sb.Append(" ShipmentId: ").Append(ShipmentId).Append("\n");
diff --git a/ShipEngineSDK/Model/GetLabelByIdResponseBody.cs b/ShipEngineSDK/Model/GetLabelByIdResponseBody.cs
index e5b14f32..d14bc01f 100644
--- a/ShipEngineSDK/Model/GetLabelByIdResponseBody.cs
+++ b/ShipEngineSDK/Model/GetLabelByIdResponseBody.cs
@@ -82,6 +82,16 @@ public partial class GetLabelByIdResponseBody
[JsonPropertyName("charge_event"), JsonPropertyOrder(5)]
public LabelChargeEvent? ChargeEvent { get; set; }
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("confirmation"), JsonInclude]
+ public DeliveryConfirmation? Confirmation { get; set; }
+
///
/// The date and time that the label was created in ShipEngine.
///
@@ -99,9 +109,29 @@ public partial class GetLabelByIdResponseBody
/// The display format that the label should be shown in.
///
/// The display format that the label should be shown in.
- [JsonPropertyName("display_scheme"), JsonPropertyOrder(7)]
+ [JsonPropertyName("display_scheme"), JsonPropertyOrder(8)]
public DisplayScheme? DisplayScheme { get; set; }
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_order_id"), JsonInclude]
+ public string? ExternalOrderId { get; set; }
+
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_shipment_id"), JsonInclude]
+ public string? ExternalShipmentId { get; set; }
+
///
/// The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
///
@@ -146,7 +176,7 @@ public partial class GetLabelByIdResponseBody
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
///
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
- [JsonPropertyName("is_return_label"), JsonPropertyOrder(12)]
+ [JsonPropertyName("is_return_label"), JsonPropertyOrder(15)]
public bool? IsReturnLabel { get; set; }
///
@@ -161,14 +191,14 @@ public partial class GetLabelByIdResponseBody
///
/// Gets or Sets LabelDownloadType
///
- [JsonPropertyName("label_download_type"), JsonPropertyOrder(14), JsonWriteOnly]
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(17), JsonWriteOnly]
public LabelDownloadType? LabelDownloadType { get; set; }
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
- [JsonPropertyName("label_format"), JsonPropertyOrder(15)]
+ [JsonPropertyName("label_format"), JsonPropertyOrder(18)]
public LabelFormat? LabelFormat { get; set; }
///
@@ -191,14 +221,14 @@ public partial class GetLabelByIdResponseBody
///
/// img_DtBXupDBxREpHnwEXhTfgK
///
- [JsonPropertyName("label_image_id"), JsonPropertyOrder(17)]
+ [JsonPropertyName("label_image_id"), JsonPropertyOrder(20)]
public string? LabelImageId { get; set; }
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
- [JsonPropertyName("label_layout"), JsonPropertyOrder(18)]
+ [JsonPropertyName("label_layout"), JsonPropertyOrder(21)]
public LabelLayout? LabelLayout { get; set; }
///
@@ -208,7 +238,7 @@ public partial class GetLabelByIdResponseBody
///
/// se-28529731
///
- [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(19), JsonWriteOnly]
+ [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(22), JsonWriteOnly]
public string? OutboundLabelId { get; set; }
///
@@ -244,6 +274,16 @@ public partial class GetLabelByIdResponseBody
[JsonPropertyName("paperless_download"), JsonInclude]
public PaperlessDownload? PaperlessDownload { get; set; }
+ ///
+ /// The QR code download for the package
+ ///
+ /// The QR code download for the package
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("qr_code_download"), JsonInclude]
+ public OptionalLink? QrCodeDownload { get; set; }
+
///
/// A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user.
///
@@ -268,7 +308,7 @@ public partial class GetLabelByIdResponseBody
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
///
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
- [JsonPropertyName("rma_number"), JsonPropertyOrder(25)]
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(29)]
public string? RmaNumber { get; set; }
///
@@ -297,11 +337,21 @@ public partial class GetLabelByIdResponseBody
[JsonPropertyName("ship_date"), JsonInclude]
public DateTimeOffset? ShipDate { get; set; }
+ ///
+ /// The recipient's mailing address
+ ///
+ /// The recipient's mailing address
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("ship_to"), JsonInclude]
+ public ShippingAddressTo? ShipTo { get; set; }
+
///
/// The shipment information used to generate the label
///
/// The shipment information used to generate the label
- [JsonPropertyName("shipment"), JsonPropertyOrder(28), JsonWriteOnly]
+ [JsonPropertyName("shipment"), JsonPropertyOrder(33), JsonWriteOnly]
public Shipment? Shipment { get; set; }
///
@@ -340,7 +390,7 @@ public partial class GetLabelByIdResponseBody
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
///
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
- [JsonPropertyName("test_label"), JsonPropertyOrder(32), JsonWriteOnly, Obsolete]
+ [JsonPropertyName("test_label"), JsonPropertyOrder(37), JsonWriteOnly, Obsolete]
public bool? TestLabel { get; set; }
///
@@ -392,7 +442,7 @@ public partial class GetLabelByIdResponseBody
///
/// Gets or Sets ValidateAddress
///
- [JsonPropertyName("validate_address"), JsonPropertyOrder(37), JsonWriteOnly]
+ [JsonPropertyName("validate_address"), JsonPropertyOrder(42), JsonWriteOnly]
public ValidateAddress? ValidateAddress { get; set; }
///
@@ -433,8 +483,11 @@ public override string ToString()
sb.Append(" CarrierCode: ").Append(CarrierCode).Append("\n");
sb.Append(" CarrierId: ").Append(CarrierId).Append("\n");
sb.Append(" ChargeEvent: ").Append(ChargeEvent).Append("\n");
+ sb.Append(" Confirmation: ").Append(Confirmation).Append("\n");
sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
sb.Append(" DisplayScheme: ").Append(DisplayScheme).Append("\n");
+ sb.Append(" ExternalOrderId: ").Append(ExternalOrderId).Append("\n");
+ sb.Append(" ExternalShipmentId: ").Append(ExternalShipmentId).Append("\n");
sb.Append(" FormDownload: ").Append(FormDownload).Append("\n");
sb.Append(" InsuranceClaim: ").Append(InsuranceClaim).Append("\n");
sb.Append(" InsuranceCost: ").Append(InsuranceCost).Append("\n");
@@ -450,11 +503,13 @@ public override string ToString()
sb.Append(" PackageCode: ").Append(PackageCode).Append("\n");
sb.Append(" Packages: ").Append(Packages).Append("\n");
sb.Append(" PaperlessDownload: ").Append(PaperlessDownload).Append("\n");
+ sb.Append(" QrCodeDownload: ").Append(QrCodeDownload).Append("\n");
sb.Append(" RateDetails: ").Append(RateDetails).Append("\n");
sb.Append(" RequestedComparisonAmount: ").Append(RequestedComparisonAmount).Append("\n");
sb.Append(" RmaNumber: ").Append(RmaNumber).Append("\n");
sb.Append(" ServiceCode: ").Append(ServiceCode).Append("\n");
sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
+ sb.Append(" ShipTo: ").Append(ShipTo).Append("\n");
sb.Append(" Shipment: ").Append(Shipment).Append("\n");
sb.Append(" ShipmentCost: ").Append(ShipmentCost).Append("\n");
sb.Append(" ShipmentId: ").Append(ShipmentId).Append("\n");
diff --git a/ShipEngineSDK/Model/GetShipmentByExternalIdResponseBody.cs b/ShipEngineSDK/Model/GetShipmentByExternalIdResponseBody.cs
index c7fc1c0e..b4c76420 100644
--- a/ShipEngineSDK/Model/GetShipmentByExternalIdResponseBody.cs
+++ b/ShipEngineSDK/Model/GetShipmentByExternalIdResponseBody.cs
@@ -258,6 +258,19 @@ public partial class GetShipmentByExternalIdResponseBody
[JsonPropertyName("warehouse_id"), JsonPropertyOrder(27)]
public required string WarehouseId { get; set; }
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
///
/// Returns the string presentation of the object
@@ -295,6 +308,7 @@ public override string ToString()
sb.Append(" ShippingRuleId: ").Append(ShippingRuleId).Append("\n");
sb.Append(" TaxIdentifiers: ").Append(TaxIdentifiers).Append("\n");
sb.Append(" WarehouseId: ").Append(WarehouseId).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/GetShipmentByIdResponseBody.cs b/ShipEngineSDK/Model/GetShipmentByIdResponseBody.cs
index 85cdc152..9d875c89 100644
--- a/ShipEngineSDK/Model/GetShipmentByIdResponseBody.cs
+++ b/ShipEngineSDK/Model/GetShipmentByIdResponseBody.cs
@@ -258,6 +258,19 @@ public partial class GetShipmentByIdResponseBody
[JsonPropertyName("warehouse_id"), JsonPropertyOrder(27)]
public required string WarehouseId { get; set; }
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
///
/// Returns the string presentation of the object
@@ -295,6 +308,7 @@ public override string ToString()
sb.Append(" ShippingRuleId: ").Append(ShippingRuleId).Append("\n");
sb.Append(" TaxIdentifiers: ").Append(TaxIdentifiers).Append("\n");
sb.Append(" WarehouseId: ").Append(WarehouseId).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/GetWebhookByIdResponseBody.cs b/ShipEngineSDK/Model/GetWebhookByIdResponseBody.cs
index c9b1c7f7..1160c611 100644
--- a/ShipEngineSDK/Model/GetWebhookByIdResponseBody.cs
+++ b/ShipEngineSDK/Model/GetWebhookByIdResponseBody.cs
@@ -62,6 +62,26 @@ public partial class GetWebhookByIdResponseBody
[JsonPropertyName("headers"), JsonPropertyOrder(4)]
public List? Headers { get; set; }
+ ///
+ /// The name of the webhook
+ ///
+ /// The name of the webhook
+ ///
+ /// My Webhook
+ ///
+ [JsonPropertyName("name"), JsonPropertyOrder(5)]
+ public string? Name { get; set; }
+
+ ///
+ /// Store ID
+ ///
+ /// Store ID
+ ///
+ /// 123456
+ ///
+ [JsonPropertyName("store_id"), JsonPropertyOrder(6)]
+ public int? StoreId { get; set; }
+
///
/// Returns the string presentation of the object
@@ -76,6 +96,8 @@ public override string ToString()
sb.Append(" Url: ").Append(Url).Append("\n");
sb.Append(" WebhookId: ").Append(WebhookId).Append("\n");
sb.Append(" Headers: ").Append(Headers).Append("\n");
+ sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" StoreId: ").Append(StoreId).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/InternationalShipmentOptions.cs b/ShipEngineSDK/Model/InternationalShipmentOptions.cs
index a468bf7f..181be293 100644
--- a/ShipEngineSDK/Model/InternationalShipmentOptions.cs
+++ b/ShipEngineSDK/Model/InternationalShipmentOptions.cs
@@ -40,44 +40,58 @@ public partial class InternationalShipmentOptions
[JsonPropertyName("non_delivery"), JsonPropertyOrder(2)]
public required NonDelivery NonDelivery { get; set; }
+ ///
+ /// The certificate number to be used in the customs.
+ ///
+ /// The certificate number to be used in the customs.
+ [JsonPropertyName("certificate_number"), JsonPropertyOrder(3)]
+ public string? CertificateNumber { get; set; }
+
///
/// Explanation for contents (required if the `contents` is provided as `other`)
///
/// Explanation for contents (required if the `contents` is provided as `other`)
- [JsonPropertyName("contents_explanation"), JsonPropertyOrder(3)]
+ [JsonPropertyName("contents_explanation"), JsonPropertyOrder(4)]
public string? ContentsExplanation { get; set; }
///
/// Customs declarations for each item in the shipment. (Please provide this information under `products` inside `packages`)
///
/// Customs declarations for each item in the shipment. (Please provide this information under `products` inside `packages`)
- [JsonPropertyName("customs_items"), JsonPropertyOrder(4), Obsolete]
+ [JsonPropertyName("customs_items"), JsonPropertyOrder(5), Obsolete]
public List? CustomsItems { get; set; }
///
/// Declaration statement to be placed on the commercial invoice
///
/// Declaration statement to be placed on the commercial invoice
- [JsonPropertyName("declaration"), JsonPropertyOrder(5)]
+ [JsonPropertyName("declaration"), JsonPropertyOrder(6)]
public string? Declaration { get; set; }
///
/// Gets or Sets ImporterOfRecord
///
- [JsonPropertyName("importer_of_record"), JsonPropertyOrder(6)]
+ [JsonPropertyName("importer_of_record"), JsonPropertyOrder(7)]
public ImporterOfRecords? ImporterOfRecord { get; set; }
///
/// Gets or Sets InvoiceAdditionalDetails
///
- [JsonPropertyName("invoice_additional_details"), JsonPropertyOrder(7)]
+ [JsonPropertyName("invoice_additional_details"), JsonPropertyOrder(8)]
public InvoiceAdditionalDetails? InvoiceAdditionalDetails { get; set; }
+ ///
+ /// The license number to be used in the customs.
+ ///
+ /// The license number to be used in the customs.
+ [JsonPropertyName("license_number"), JsonPropertyOrder(9)]
+ public string? LicenseNumber { get; set; }
+
///
/// Specifies the supported terms of trade code (incoterms)
///
/// Specifies the supported terms of trade code (incoterms)
- [JsonPropertyName("terms_of_trade_code"), JsonPropertyOrder(8)]
+ [JsonPropertyName("terms_of_trade_code"), JsonPropertyOrder(10)]
public AllowedIncoterms? TermsOfTradeCode { get; set; }
@@ -92,11 +106,13 @@ public override string ToString()
#pragma warning disable CS0612 // Type or member is obsolete
sb.Append(" Contents: ").Append(Contents).Append("\n");
sb.Append(" NonDelivery: ").Append(NonDelivery).Append("\n");
+ sb.Append(" CertificateNumber: ").Append(CertificateNumber).Append("\n");
sb.Append(" ContentsExplanation: ").Append(ContentsExplanation).Append("\n");
sb.Append(" CustomsItems: ").Append(CustomsItems).Append("\n");
sb.Append(" Declaration: ").Append(Declaration).Append("\n");
sb.Append(" ImporterOfRecord: ").Append(ImporterOfRecord).Append("\n");
sb.Append(" InvoiceAdditionalDetails: ").Append(InvoiceAdditionalDetails).Append("\n");
+ sb.Append(" LicenseNumber: ").Append(LicenseNumber).Append("\n");
sb.Append(" TermsOfTradeCode: ").Append(TermsOfTradeCode).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
diff --git a/ShipEngineSDK/Model/InvoiceAdditionalDetails.cs b/ShipEngineSDK/Model/InvoiceAdditionalDetails.cs
index 30c94227..84a6e617 100644
--- a/ShipEngineSDK/Model/InvoiceAdditionalDetails.cs
+++ b/ShipEngineSDK/Model/InvoiceAdditionalDetails.cs
@@ -33,32 +33,46 @@ public partial class InvoiceAdditionalDetails
[JsonPropertyName("discount"), JsonPropertyOrder(1)]
public MonetaryValue? Discount { get; set; }
+ ///
+ /// Estimated import charges for commercial invoices for international shipments.
+ ///
+ /// Estimated import charges for commercial invoices for international shipments.
+ [JsonPropertyName("estimated_import_charges"), JsonPropertyOrder(2)]
+ public EstimatedImportCharges? EstimatedImportCharges { get; set; }
+
///
/// Freight Charge for shipment.
///
/// Freight Charge for shipment.
- [JsonPropertyName("freight_charge"), JsonPropertyOrder(2)]
+ [JsonPropertyName("freight_charge"), JsonPropertyOrder(3)]
public MonetaryValue? FreightCharge { get; set; }
///
/// Insurance Charge for shipment.
///
/// Insurance Charge for shipment.
- [JsonPropertyName("insurance_charge"), JsonPropertyOrder(3)]
+ [JsonPropertyName("insurance_charge"), JsonPropertyOrder(4)]
public MonetaryValue? InsuranceCharge { get; set; }
+ ///
+ /// The invoice number to be used in the customs.
+ ///
+ /// The invoice number to be used in the customs.
+ [JsonPropertyName("invoice_number"), JsonPropertyOrder(5)]
+ public string? InvoiceNumber { get; set; }
+
///
/// Other charge for shipment.
///
/// Other charge for shipment.
- [JsonPropertyName("other_charge"), JsonPropertyOrder(4)]
+ [JsonPropertyName("other_charge"), JsonPropertyOrder(6)]
public MonetaryValue? OtherCharge { get; set; }
///
/// Description for the other charge (if provided).
///
/// Description for the other charge (if provided).
- [JsonPropertyName("other_charge_description"), JsonPropertyOrder(5)]
+ [JsonPropertyName("other_charge_description"), JsonPropertyOrder(7)]
public string? OtherChargeDescription { get; set; }
@@ -72,8 +86,10 @@ public override string ToString()
sb.Append("class InvoiceAdditionalDetails {\n");
#pragma warning disable CS0612 // Type or member is obsolete
sb.Append(" Discount: ").Append(Discount).Append("\n");
+ sb.Append(" EstimatedImportCharges: ").Append(EstimatedImportCharges).Append("\n");
sb.Append(" FreightCharge: ").Append(FreightCharge).Append("\n");
sb.Append(" InsuranceCharge: ").Append(InsuranceCharge).Append("\n");
+ sb.Append(" InvoiceNumber: ").Append(InvoiceNumber).Append("\n");
sb.Append(" OtherCharge: ").Append(OtherCharge).Append("\n");
sb.Append(" OtherChargeDescription: ").Append(OtherChargeDescription).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
diff --git a/ShipEngineSDK/Model/Label.cs b/ShipEngineSDK/Model/Label.cs
index 5e37ea93..561e7ab5 100644
--- a/ShipEngineSDK/Model/Label.cs
+++ b/ShipEngineSDK/Model/Label.cs
@@ -82,6 +82,16 @@ public partial class Label
[JsonPropertyName("charge_event"), JsonPropertyOrder(5)]
public LabelChargeEvent? ChargeEvent { get; set; }
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("confirmation"), JsonInclude]
+ public DeliveryConfirmation? Confirmation { get; set; }
+
///
/// The date and time that the label was created in ShipEngine.
///
@@ -99,9 +109,29 @@ public partial class Label
/// The display format that the label should be shown in.
///
/// The display format that the label should be shown in.
- [JsonPropertyName("display_scheme"), JsonPropertyOrder(7)]
+ [JsonPropertyName("display_scheme"), JsonPropertyOrder(8)]
public DisplayScheme? DisplayScheme { get; set; }
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_order_id"), JsonInclude]
+ public string? ExternalOrderId { get; set; }
+
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("external_shipment_id"), JsonInclude]
+ public string? ExternalShipmentId { get; set; }
+
///
/// The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
///
@@ -146,7 +176,7 @@ public partial class Label
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
///
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
- [JsonPropertyName("is_return_label"), JsonPropertyOrder(12)]
+ [JsonPropertyName("is_return_label"), JsonPropertyOrder(15)]
public bool? IsReturnLabel { get; set; }
///
@@ -161,14 +191,14 @@ public partial class Label
///
/// Gets or Sets LabelDownloadType
///
- [JsonPropertyName("label_download_type"), JsonPropertyOrder(14), JsonWriteOnly]
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(17), JsonWriteOnly]
public LabelDownloadType? LabelDownloadType { get; set; }
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
- [JsonPropertyName("label_format"), JsonPropertyOrder(15)]
+ [JsonPropertyName("label_format"), JsonPropertyOrder(18)]
public LabelFormat? LabelFormat { get; set; }
///
@@ -191,14 +221,14 @@ public partial class Label
///
/// img_DtBXupDBxREpHnwEXhTfgK
///
- [JsonPropertyName("label_image_id"), JsonPropertyOrder(17)]
+ [JsonPropertyName("label_image_id"), JsonPropertyOrder(20)]
public string? LabelImageId { get; set; }
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
- [JsonPropertyName("label_layout"), JsonPropertyOrder(18)]
+ [JsonPropertyName("label_layout"), JsonPropertyOrder(21)]
public LabelLayout? LabelLayout { get; set; }
///
@@ -208,7 +238,7 @@ public partial class Label
///
/// se-28529731
///
- [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(19), JsonWriteOnly]
+ [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(22), JsonWriteOnly]
public string? OutboundLabelId { get; set; }
///
@@ -244,6 +274,16 @@ public partial class Label
[JsonPropertyName("paperless_download"), JsonInclude]
public PaperlessDownload? PaperlessDownload { get; set; }
+ ///
+ /// The QR code download for the package
+ ///
+ /// The QR code download for the package
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("qr_code_download"), JsonInclude]
+ public OptionalLink? QrCodeDownload { get; set; }
+
///
/// A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user.
///
@@ -268,7 +308,7 @@ public partial class Label
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
///
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
- [JsonPropertyName("rma_number"), JsonPropertyOrder(25)]
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(29)]
public string? RmaNumber { get; set; }
///
@@ -297,11 +337,21 @@ public partial class Label
[JsonPropertyName("ship_date"), JsonInclude]
public DateTimeOffset? ShipDate { get; set; }
+ ///
+ /// The recipient's mailing address
+ ///
+ /// The recipient's mailing address
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("ship_to"), JsonInclude]
+ public ShippingAddressTo? ShipTo { get; set; }
+
///
/// The shipment information used to generate the label
///
/// The shipment information used to generate the label
- [JsonPropertyName("shipment"), JsonPropertyOrder(28), JsonWriteOnly]
+ [JsonPropertyName("shipment"), JsonPropertyOrder(33), JsonWriteOnly]
public Shipment? Shipment { get; set; }
///
@@ -340,7 +390,7 @@ public partial class Label
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
///
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
- [JsonPropertyName("test_label"), JsonPropertyOrder(32), JsonWriteOnly, Obsolete]
+ [JsonPropertyName("test_label"), JsonPropertyOrder(37), JsonWriteOnly, Obsolete]
public bool? TestLabel { get; set; }
///
@@ -392,7 +442,7 @@ public partial class Label
///
/// Gets or Sets ValidateAddress
///
- [JsonPropertyName("validate_address"), JsonPropertyOrder(37), JsonWriteOnly]
+ [JsonPropertyName("validate_address"), JsonPropertyOrder(42), JsonWriteOnly]
public ValidateAddress? ValidateAddress { get; set; }
///
@@ -433,8 +483,11 @@ public override string ToString()
sb.Append(" CarrierCode: ").Append(CarrierCode).Append("\n");
sb.Append(" CarrierId: ").Append(CarrierId).Append("\n");
sb.Append(" ChargeEvent: ").Append(ChargeEvent).Append("\n");
+ sb.Append(" Confirmation: ").Append(Confirmation).Append("\n");
sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
sb.Append(" DisplayScheme: ").Append(DisplayScheme).Append("\n");
+ sb.Append(" ExternalOrderId: ").Append(ExternalOrderId).Append("\n");
+ sb.Append(" ExternalShipmentId: ").Append(ExternalShipmentId).Append("\n");
sb.Append(" FormDownload: ").Append(FormDownload).Append("\n");
sb.Append(" InsuranceClaim: ").Append(InsuranceClaim).Append("\n");
sb.Append(" InsuranceCost: ").Append(InsuranceCost).Append("\n");
@@ -450,11 +503,13 @@ public override string ToString()
sb.Append(" PackageCode: ").Append(PackageCode).Append("\n");
sb.Append(" Packages: ").Append(Packages).Append("\n");
sb.Append(" PaperlessDownload: ").Append(PaperlessDownload).Append("\n");
+ sb.Append(" QrCodeDownload: ").Append(QrCodeDownload).Append("\n");
sb.Append(" RateDetails: ").Append(RateDetails).Append("\n");
sb.Append(" RequestedComparisonAmount: ").Append(RequestedComparisonAmount).Append("\n");
sb.Append(" RmaNumber: ").Append(RmaNumber).Append("\n");
sb.Append(" ServiceCode: ").Append(ServiceCode).Append("\n");
sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
+ sb.Append(" ShipTo: ").Append(ShipTo).Append("\n");
sb.Append(" Shipment: ").Append(Shipment).Append("\n");
sb.Append(" ShipmentCost: ").Append(ShipmentCost).Append("\n");
sb.Append(" ShipmentId: ").Append(ShipmentId).Append("\n");
diff --git a/ShipEngineSDK/Model/LabelDownloadType.cs b/ShipEngineSDK/Model/LabelDownloadType.cs
index 9a641f54..f0a6ca85 100644
--- a/ShipEngineSDK/Model/LabelDownloadType.cs
+++ b/ShipEngineSDK/Model/LabelDownloadType.cs
@@ -21,9 +21,9 @@
namespace ShipEngineSDK.Model;
///
-/// There are two different ways to [download a label](https://www.shipengine.com/docs/labels/downloading/): |Label Download Type | Description |- -- -- -- -- -- -- -- -- -- -|- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - |`url` |You will receive a URL, which you can use to download the label in a separate request. The URL will remain valid for 90 days.<br><br>This is the default if `label_download_type` is unspecified. |`inline` |You will receive the Base64-encoded label as part of the response. No need for a second request to download the label.
+/// There are two different ways to [download a label](https://www.shipengine.com/docs/labels/downloading/): |Label Download Type | Description |- -- -- -- -- -- -- -- -- -- -|- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - |`url` |You will receive a URL, which you can use to download the label in a separate request. The URL will remain valid for 90 days. |`inline` |You will receive the Base64-encoded label as part of the response. No need for a second request to download the label.
///
-/// There are two different ways to [download a label](https://www.shipengine.com/docs/labels/downloading/): |Label Download Type | Description |- -- -- -- -- -- -- -- -- -- -|- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - |`url` |You will receive a URL, which you can use to download the label in a separate request. The URL will remain valid for 90 days.<br><br>This is the default if `label_download_type` is unspecified. |`inline` |You will receive the Base64-encoded label as part of the response. No need for a second request to download the label.
+/// There are two different ways to [download a label](https://www.shipengine.com/docs/labels/downloading/): |Label Download Type | Description |- -- -- -- -- -- -- -- -- -- -|- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - |`url` |You will receive a URL, which you can use to download the label in a separate request. The URL will remain valid for 90 days. |`inline` |You will receive the Base64-encoded label as part of the response. No need for a second request to download the label.
[JsonConverter(typeof(LabelDownloadTypeJsonConverter))]
public class LabelDownloadType
{
diff --git a/ShipEngineSDK/Model/ListLabelsResponseBody.cs b/ShipEngineSDK/Model/ListLabelsResponseBody.cs
index b9c28854..08d03568 100644
--- a/ShipEngineSDK/Model/ListLabelsResponseBody.cs
+++ b/ShipEngineSDK/Model/ListLabelsResponseBody.cs
@@ -57,11 +57,25 @@ public class ListLabelsResponseBodyItem
[JsonPropertyName("shipment_id"), JsonInclude]
public string? ShipmentId { get; set; }
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.
+ [JsonPropertyName("external_shipment_id"), JsonInclude]
+ public string? ExternalShipmentId { get; set; }
+
+ ///
+ /// ID that the Order Source assigne
+ ///
+ /// ID that the Order Source assigne
+ [JsonPropertyName("external_order_id"), JsonInclude]
+ public string? ExternalOrderId { get; set; }
+
///
/// The shipment information used to generate the label
///
/// The shipment information used to generate the label
- [JsonPropertyName("shipment"), JsonPropertyOrder(4), JsonWriteOnly]
+ [JsonPropertyName("shipment"), JsonPropertyOrder(6), JsonWriteOnly]
public Shipment? Shipment { get; set; }
///
@@ -126,14 +140,14 @@ public class ListLabelsResponseBodyItem
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
///
/// Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.
- [JsonPropertyName("is_return_label"), JsonPropertyOrder(12)]
+ [JsonPropertyName("is_return_label"), JsonPropertyOrder(14)]
public bool? IsReturnLabel { get; set; }
///
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
///
/// An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.
- [JsonPropertyName("rma_number"), JsonPropertyOrder(13)]
+ [JsonPropertyName("rma_number"), JsonPropertyOrder(15)]
public string? RmaNumber { get; set; }
///
@@ -167,7 +181,7 @@ public class ListLabelsResponseBodyItem
/// The label charge event.
///
/// The label charge event.
- [JsonPropertyName("charge_event"), JsonPropertyOrder(17)]
+ [JsonPropertyName("charge_event"), JsonPropertyOrder(19)]
public LabelChargeEvent? ChargeEvent { get; set; }
///
@@ -177,7 +191,7 @@ public class ListLabelsResponseBodyItem
///
/// se-28529731
///
- [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(18), JsonWriteOnly]
+ [JsonPropertyName("outbound_label_id"), JsonPropertyOrder(20), JsonWriteOnly]
public string? OutboundLabelId { get; set; }
///
@@ -194,7 +208,7 @@ public class ListLabelsResponseBodyItem
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
///
/// Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
- [JsonPropertyName("test_label"), JsonPropertyOrder(20), JsonWriteOnly, Obsolete]
+ [JsonPropertyName("test_label"), JsonPropertyOrder(22), JsonWriteOnly, Obsolete]
public bool? TestLabel { get; set; }
///
@@ -210,7 +224,7 @@ public class ListLabelsResponseBodyItem
///
/// Gets or Sets ValidateAddress
///
- [JsonPropertyName("validate_address"), JsonPropertyOrder(22), JsonWriteOnly]
+ [JsonPropertyName("validate_address"), JsonPropertyOrder(24), JsonWriteOnly]
public ValidateAddress? ValidateAddress { get; set; }
///
@@ -233,28 +247,28 @@ public class ListLabelsResponseBodyItem
///
/// Gets or Sets LabelDownloadType
///
- [JsonPropertyName("label_download_type"), JsonPropertyOrder(25), JsonWriteOnly]
+ [JsonPropertyName("label_download_type"), JsonPropertyOrder(27), JsonWriteOnly]
public LabelDownloadType? LabelDownloadType { get; set; }
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
///
/// The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
- [JsonPropertyName("label_format"), JsonPropertyOrder(26)]
+ [JsonPropertyName("label_format"), JsonPropertyOrder(28)]
public LabelFormat? LabelFormat { get; set; }
///
/// The display format that the label should be shown in.
///
/// The display format that the label should be shown in.
- [JsonPropertyName("display_scheme"), JsonPropertyOrder(27)]
+ [JsonPropertyName("display_scheme"), JsonPropertyOrder(29)]
public DisplayScheme? DisplayScheme { get; set; }
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
///
/// The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.
- [JsonPropertyName("label_layout"), JsonPropertyOrder(28)]
+ [JsonPropertyName("label_layout"), JsonPropertyOrder(30)]
public LabelLayout? LabelLayout { get; set; }
///
@@ -271,7 +285,7 @@ public class ListLabelsResponseBodyItem
///
/// img_DtBXupDBxREpHnwEXhTfgK
///
- [JsonPropertyName("label_image_id"), JsonPropertyOrder(30)]
+ [JsonPropertyName("label_image_id"), JsonPropertyOrder(32)]
public string? LabelImageId { get; set; }
///
@@ -291,6 +305,13 @@ public class ListLabelsResponseBodyItem
[JsonPropertyName("tracking_status"), JsonInclude]
public TrackingStatus? TrackingStatus { get; set; }
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ [JsonPropertyName("confirmation"), JsonInclude]
+ public DeliveryConfirmation? Confirmation { get; set; }
+
///
/// Gets or Sets LabelDownload
///
@@ -304,6 +325,13 @@ public class ListLabelsResponseBodyItem
[JsonPropertyName("form_download"), JsonInclude]
public Link? FormDownload { get; set; }
+ ///
+ /// The QR code download for the package
+ ///
+ /// The QR code download for the package
+ [JsonPropertyName("qr_code_download"), JsonInclude]
+ public OptionalLink? QrCodeDownload { get; set; }
+
///
/// The paperless details which may contain elements like `href`, `instructions` and `handoff_code`.
///
@@ -342,6 +370,13 @@ public class ListLabelsResponseBodyItem
[JsonPropertyName("tracking_url"), JsonInclude]
public string? TrackingUrl { get; set; }
+ ///
+ /// The recipient's mailing address
+ ///
+ /// The recipient's mailing address
+ [JsonPropertyName("ship_to"), JsonInclude]
+ public ShippingAddressTo? ShipTo { get; set; }
+
}
///
/// The labels that matched the query criteria. If no matching labels were found, then this array is empty; otherwise, it contains one page of results. The last page of results may have fewer labels than the `page_size`.
diff --git a/ShipEngineSDK/Model/ListShipmentRatesResponseBody.cs b/ShipEngineSDK/Model/ListShipmentRatesResponseBody.cs
index 4a9f4bd1..07e55184 100644
--- a/ShipEngineSDK/Model/ListShipmentRatesResponseBody.cs
+++ b/ShipEngineSDK/Model/ListShipmentRatesResponseBody.cs
@@ -73,7 +73,7 @@ public partial class ListShipmentRatesResponseBody
/// This should not be used for input as it will be ignored on serialization.
///
[JsonPropertyName("rates"), JsonInclude]
- public List? Rates { get; set; }
+ public List? Rates { get; set; }
///
/// A string that uniquely identifies the shipment
diff --git a/ShipEngineSDK/Model/PartialShipment.cs b/ShipEngineSDK/Model/PartialShipment.cs
index 94c00b57..143f918d 100644
--- a/ShipEngineSDK/Model/PartialShipment.cs
+++ b/ShipEngineSDK/Model/PartialShipment.cs
@@ -258,6 +258,19 @@ public partial class PartialShipment
[JsonPropertyName("warehouse_id"), JsonPropertyOrder(27)]
public string? WarehouseId { get; set; }
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
///
/// Returns the string presentation of the object
@@ -295,6 +308,7 @@ public override string ToString()
sb.Append(" TaxIdentifiers: ").Append(TaxIdentifiers).Append("\n");
sb.Append(" TotalWeight: ").Append(TotalWeight).Append("\n");
sb.Append(" WarehouseId: ").Append(WarehouseId).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/PartialShipmentForRateShopper.cs b/ShipEngineSDK/Model/PartialShipmentForRateShopper.cs
new file mode 100644
index 00000000..78ab4a68
--- /dev/null
+++ b/ShipEngineSDK/Model/PartialShipmentForRateShopper.cs
@@ -0,0 +1,293 @@
+//
+// DO NOT MODIFY THIS FILE
+
+// Changes can be made in a corresponding partial file, or by changing
+// the template in /generation/templates and generating the class again.
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using System.Text.RegularExpressions;
+
+namespace ShipEngineSDK.Model;
+
+///
+/// The information necessary to ship a package for Rate Shopper, such as the origin, the destination, and the package dimensions and weight. **Note:** This schema excludes carrier_id, service_code, and shipping_rule_id as these are automatically selected by the Rate Shopper based on your chosen strategy.
+///
+public partial class PartialShipmentForRateShopper
+{
+
+ ///
+ /// Advanced shipment options. These are entirely optional.
+ ///
+ /// Advanced shipment options. These are entirely optional.
+ [JsonPropertyName("advanced_options"), JsonPropertyOrder(1)]
+ public AdvancedShipmentOptions? AdvancedOptions { get; set; }
+
+ ///
+ /// Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.
+ ///
+ /// Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.
+ ///
+ /// retail
+ ///
+ [JsonPropertyName("comparison_rate_type"), JsonPropertyOrder(2)]
+ public string? ComparisonRateType { get; set; }
+
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ ///
+ /// The type of delivery confirmation that is required for this shipment.
+ [JsonPropertyName("confirmation"), JsonPropertyOrder(3)]
+ public DeliveryConfirmation? Confirmation { get; set; }
+
+ ///
+ /// The date and time that the shipment was created in ShipEngine.
+ ///
+ /// The date and time that the shipment was created in ShipEngine.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 2018-09-23T15:00Z
+ ///
+ [JsonPropertyName("created_at"), JsonInclude]
+ public DateTimeOffset? CreatedAt { get; set; }
+
+ ///
+ /// Customs information. This is usually only needed for international shipments.
+ ///
+ /// Customs information. This is usually only needed for international shipments.
+ [JsonPropertyName("customs"), JsonPropertyOrder(5)]
+ public InternationalShipmentOptions? Customs { get; set; }
+
+ ///
+ /// ID that the Order Source assigned
+ ///
+ /// ID that the Order Source assigned
+ [JsonPropertyName("external_order_id"), JsonPropertyOrder(6)]
+ public string? ExternalOrderId { get; set; }
+
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. > **Warning:** The `external_shipment_id` is limited to 50 characters. Any additional characters will be truncated.
+ ///
+ /// A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. > **Warning:** The `external_shipment_id` is limited to 50 characters. Any additional characters will be truncated.
+ [JsonPropertyName("external_shipment_id"), JsonPropertyOrder(7)]
+ public string? ExternalShipmentId { get; set; }
+
+ ///
+ /// The insurance provider to use for any insured packages in the shipment.
+ ///
+ /// The insurance provider to use for any insured packages in the shipment.
+ [JsonPropertyName("insurance_provider"), JsonPropertyOrder(8)]
+ public InsuranceProvider? InsuranceProvider { get; set; }
+
+ ///
+ /// An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.
+ ///
+ /// An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.
+ [JsonPropertyName("is_return"), JsonPropertyOrder(9)]
+ public bool? IsReturn { get; set; }
+
+ ///
+ /// Describe the packages included in this shipment as related to potential metadata that was imported from external order sources
+ ///
+ /// Describe the packages included in this shipment as related to potential metadata that was imported from external order sources
+ [JsonPropertyName("items"), JsonPropertyOrder(10)]
+ public List? Items { get; set; }
+
+ ///
+ /// The date and time that the shipment was created or last modified.
+ ///
+ /// The date and time that the shipment was created or last modified.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 2018-09-23T15:00Z
+ ///
+ [JsonPropertyName("modified_at"), JsonInclude]
+ public DateTimeOffset? ModifiedAt { get; set; }
+
+ ///
+ /// Gets or Sets OrderSourceCode
+ ///
+ [JsonPropertyName("order_source_code"), JsonPropertyOrder(12)]
+ public OrderSourceName? OrderSourceCode { get; set; }
+
+ ///
+ /// The packages in the shipment. > **Note:** Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.
+ ///
+ /// The packages in the shipment. > **Note:** Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.
+ [JsonPropertyName("packages"), JsonPropertyOrder(13)]
+ public List? Packages { get; set; }
+
+ ///
+ /// The return address for this shipment. Defaults to the `ship_from` address.
+ ///
+ /// The return address for this shipment. Defaults to the `ship_from` address.
+ [JsonPropertyName("return_to"), JsonPropertyOrder(14)]
+ public ShippingAddress? ReturnTo { get; set; }
+
+ ///
+ /// The date that the shipment was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead.
+ ///
+ /// The date that the shipment was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead.
+ ///
+ /// 2018-09-23T00:00Z
+ ///
+ [JsonPropertyName("ship_date"), JsonPropertyOrder(15)]
+ public DateTimeOffset? ShipDate { get; set; }
+
+ ///
+ /// The shipment's origin address. If you frequently ship from the same location, consider [creating a warehouse](https://www.shipengine.com/docs/reference/create-warehouse/). Then you can simply specify the `warehouse_id` rather than the complete address each time.
+ ///
+ /// The shipment's origin address. If you frequently ship from the same location, consider [creating a warehouse](https://www.shipengine.com/docs/reference/create-warehouse/). Then you can simply specify the `warehouse_id` rather than the complete address each time.
+ [JsonPropertyName("ship_from"), JsonPropertyOrder(16)]
+ public ShippingAddress? ShipFrom { get; set; }
+
+ ///
+ /// The recipient's mailing address
+ ///
+ /// The recipient's mailing address
+ [JsonPropertyName("ship_to"), JsonPropertyOrder(17)]
+ public ShippingAddressTo? ShipTo { get; set; }
+
+ ///
+ /// A string that uniquely identifies the shipment
+ ///
+ /// A string that uniquely identifies the shipment
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// se-28529731
+ ///
+ [JsonPropertyName("shipment_id"), JsonInclude]
+ public string? ShipmentId { get; set; }
+
+ ///
+ /// A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment. > **Warning:** The `shipment_number` is limited to 50 characters. Any additional characters will be truncated.
+ ///
+ /// A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment. > **Warning:** The `shipment_number` is limited to 50 characters. Any additional characters will be truncated.
+ [JsonPropertyName("shipment_number"), JsonPropertyOrder(19)]
+ public string? ShipmentNumber { get; set; }
+
+ ///
+ /// The current status of the shipment
+ ///
+ /// The current status of the shipment
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("shipment_status"), JsonInclude]
+ public ShipmentStatus? ShipmentStatus { get; set; }
+
+ ///
+ /// Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags.
+ ///
+ /// Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("tags"), JsonInclude]
+ public List? Tags { get; set; }
+
+ ///
+ /// Gets or Sets TaxIdentifiers
+ ///
+ [JsonPropertyName("tax_identifiers"), JsonPropertyOrder(22)]
+ public List? TaxIdentifiers { get; set; }
+
+ ///
+ /// The combined weight of all packages in the shipment
+ ///
+ /// The combined weight of all packages in the shipment
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("total_weight"), JsonInclude]
+ public Weight? TotalWeight { get; set; }
+
+ ///
+ /// The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified.
+ ///
+ /// The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified.
+ ///
+ /// se-28529731
+ ///
+ [JsonPropertyName("warehouse_id"), JsonPropertyOrder(24)]
+ public string? WarehouseId { get; set; }
+
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ var sb = new StringBuilder();
+ sb.Append("class PartialShipmentForRateShopper {\n");
+#pragma warning disable CS0612 // Type or member is obsolete
+ sb.Append(" AdvancedOptions: ").Append(AdvancedOptions).Append("\n");
+ sb.Append(" ComparisonRateType: ").Append(ComparisonRateType).Append("\n");
+ sb.Append(" Confirmation: ").Append(Confirmation).Append("\n");
+ sb.Append(" CreatedAt: ").Append(CreatedAt).Append("\n");
+ sb.Append(" Customs: ").Append(Customs).Append("\n");
+ sb.Append(" ExternalOrderId: ").Append(ExternalOrderId).Append("\n");
+ sb.Append(" ExternalShipmentId: ").Append(ExternalShipmentId).Append("\n");
+ sb.Append(" InsuranceProvider: ").Append(InsuranceProvider).Append("\n");
+ sb.Append(" IsReturn: ").Append(IsReturn).Append("\n");
+ sb.Append(" Items: ").Append(Items).Append("\n");
+ sb.Append(" ModifiedAt: ").Append(ModifiedAt).Append("\n");
+ sb.Append(" OrderSourceCode: ").Append(OrderSourceCode).Append("\n");
+ sb.Append(" Packages: ").Append(Packages).Append("\n");
+ sb.Append(" ReturnTo: ").Append(ReturnTo).Append("\n");
+ sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
+ sb.Append(" ShipFrom: ").Append(ShipFrom).Append("\n");
+ sb.Append(" ShipTo: ").Append(ShipTo).Append("\n");
+ sb.Append(" ShipmentId: ").Append(ShipmentId).Append("\n");
+ sb.Append(" ShipmentNumber: ").Append(ShipmentNumber).Append("\n");
+ sb.Append(" ShipmentStatus: ").Append(ShipmentStatus).Append("\n");
+ sb.Append(" Tags: ").Append(Tags).Append("\n");
+ sb.Append(" TaxIdentifiers: ").Append(TaxIdentifiers).Append("\n");
+ sb.Append(" TotalWeight: ").Append(TotalWeight).Append("\n");
+ sb.Append(" WarehouseId: ").Append(WarehouseId).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
+#pragma warning restore CS0612 // Type or member is obsolete
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson(JsonSerializerOptions options)
+ {
+ return JsonSerializer.Serialize(this, options);
+ }
+
+}
\ No newline at end of file
diff --git a/ShipEngineSDK/Model/RateAttributes.cs b/ShipEngineSDK/Model/RateAttributes.cs
new file mode 100644
index 00000000..3a2a6557
--- /dev/null
+++ b/ShipEngineSDK/Model/RateAttributes.cs
@@ -0,0 +1,98 @@
+//
+// DO NOT MODIFY THIS FILE
+
+// Changes can be made in a corresponding partial file, or by changing
+// the template in /generation/templates and generating the class again.
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using System.Text.RegularExpressions;
+
+namespace ShipEngineSDK.Model;
+
+///
+/// Optional attributes that indicate the most profitable rates
+///
+/// Optional attributes that indicate the most profitable rates
+[JsonConverter(typeof(RateAttributesJsonConverter))]
+public class RateAttributes
+{
+ private readonly string _value;
+
+ ///
+ /// Create a new instance of RateAttributes with a predefined value.
+ ///
+ internal RateAttributes()
+ {
+ _value = "best_value";
+ }
+
+ ///
+ /// Create a new instance of RateAttributes with a custom value.
+ ///
+ /// The value of the RateAttributes
+ ///
+ /// You can send a custom value to the API using this constructor, but the API most likely won't know what to do with it.
+ /// You should use the predefined values returned by the static properties of this class unless you know that the value is value.
+ ///
+ public RateAttributes(string value)
+ {
+ _value = value;
+ }
+
+ ///
+ /// Enum BestValue for value: best_value
+ ///
+ public static RateAttributes BestValue { get; } = new("best_value");
+
+
+ ///
+ /// Enum Cheapest for value: cheapest
+ ///
+ public static RateAttributes Cheapest { get; } = new("cheapest");
+
+
+ ///
+ /// Enum Fastest for value: fastest
+ ///
+ public static RateAttributes Fastest { get; } = new("fastest");
+
+
+ ///
+ /// Get a string representation of the current value
+ ///
+ public override string ToString() => _value;
+
+ ///
+ /// Get whether this instance is equal to another instance
+ ///
+ public override bool Equals(object? obj) =>
+ obj is RateAttributes other && _value == other._value;
+
+ ///
+ /// Get the hash code of the object
+ ///
+ public override int GetHashCode() => _value.GetHashCode();
+}
+
+internal class RateAttributesJsonConverter : JsonConverter
+{
+ public override RateAttributes? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
+ reader.TokenType == JsonTokenType.String ? new RateAttributes(reader.GetString()!) : null;
+
+ public override void Write(Utf8JsonWriter writer, RateAttributes value, JsonSerializerOptions options) =>
+ writer.WriteStringValue(value.ToString());
+
+ public override bool CanConvert(Type typeToConvert) =>
+ typeToConvert == typeof(RateAttributes);
+}
\ No newline at end of file
diff --git a/ShipEngineSDK/Model/RateDetailAttributes.cs b/ShipEngineSDK/Model/RateDetailAttributes.cs
index c5e860c6..1a5d68fa 100644
--- a/ShipEngineSDK/Model/RateDetailAttributes.cs
+++ b/ShipEngineSDK/Model/RateDetailAttributes.cs
@@ -26,24 +26,17 @@ namespace ShipEngineSDK.Model;
public partial class RateDetailAttributes
{
- ///
- /// Code for a specific tax type
- ///
- /// Code for a specific tax type
- [JsonPropertyName("tax_code"), JsonPropertyOrder(1)]
- public string? TaxCode { get; set; }
-
///
/// Tax percentage, e.g. 20 for 20%, added to the shipping cost
///
/// Tax percentage, e.g. 20 for 20%, added to the shipping cost
- [JsonPropertyName("tax_percentage"), JsonPropertyOrder(2)]
+ [JsonPropertyName("tax_percentage"), JsonPropertyOrder(1)]
public decimal? TaxPercentage { get; set; }
///
/// Gets or Sets TaxType
///
- [JsonPropertyName("tax_type"), JsonPropertyOrder(3)]
+ [JsonPropertyName("tax_type"), JsonPropertyOrder(2)]
public TaxType? TaxType { get; set; }
@@ -56,7 +49,6 @@ public override string ToString()
var sb = new StringBuilder();
sb.Append("class RateDetailAttributes {\n");
#pragma warning disable CS0612 // Type or member is obsolete
- sb.Append(" TaxCode: ").Append(TaxCode).Append("\n");
sb.Append(" TaxPercentage: ").Append(TaxPercentage).Append("\n");
sb.Append(" TaxType: ").Append(TaxType).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
diff --git a/ShipEngineSDK/Model/RateEstimate.cs b/ShipEngineSDK/Model/RateEstimate.cs
index 8b87ef1f..cdef3462 100644
--- a/ShipEngineSDK/Model/RateEstimate.cs
+++ b/ShipEngineSDK/Model/RateEstimate.cs
@@ -246,6 +246,13 @@ public partial class RateEstimate
[JsonPropertyName("package_type"), JsonInclude]
public string? PackageType { get; set; }
+ ///
+ /// Optional attributes that indicate the most profitable rates
+ ///
+ /// Optional attributes that indicate the most profitable rates
+ [JsonPropertyName("rate_attributes"), JsonPropertyOrder(22)]
+ public List? RateAttributes { get; set; }
+
///
/// ship date
///
@@ -310,6 +317,7 @@ public override string ToString()
sb.Append(" DeliveryDays: ").Append(DeliveryDays).Append("\n");
sb.Append(" EstimatedDeliveryDate: ").Append(EstimatedDeliveryDate).Append("\n");
sb.Append(" PackageType: ").Append(PackageType).Append("\n");
+ sb.Append(" RateAttributes: ").Append(RateAttributes).Append("\n");
sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
sb.Append(" TaxAmount: ").Append(TaxAmount).Append("\n");
sb.Append(" Zone: ").Append(Zone).Append("\n");
diff --git a/ShipEngineSDK/Model/RateRequestBody.cs b/ShipEngineSDK/Model/RateRequestBody.cs
index 64142bed..c2dc3f5d 100644
--- a/ShipEngineSDK/Model/RateRequestBody.cs
+++ b/ShipEngineSDK/Model/RateRequestBody.cs
@@ -25,6 +25,72 @@ namespace ShipEngineSDK.Model;
///
public partial class RateRequestBody
{
+ ///
+ /// Indicates what type of rating to perform
+ ///
+ /// Indicates what type of rating to perform
+ [JsonConverter(typeof(RateTypeEnumJsonConverter))]
+ public class RateTypeEnum
+ {
+ private readonly string _value;
+
+ ///
+ /// Create a new instance of RateTypeEnum with a predefined value.
+ ///
+ internal RateTypeEnum()
+ {
+ _value = "check";
+ }
+
+ ///
+ /// Create a new instance of RateTypeEnum with a custom value.
+ ///
+ /// The value of the RateTypeEnum
+ ///
+ /// You can send a custom value to the API using this constructor, but the API most likely won't know what to do with it.
+ /// You should use the predefined values returned by the static properties of this class unless you know that the value is value.
+ ///
+ public RateTypeEnum(string value)
+ {
+ _value = value;
+ }
+
+ ///
+ /// Enum Check for value: check
+ ///
+ public static RateTypeEnum Check { get; } = new("check");
+
+
+ ///
+ /// Enum Shipment for value: shipment
+ ///
+ public static RateTypeEnum Shipment { get; } = new("shipment");
+
+
+ ///
+ /// Enum Quick for value: quick
+ ///
+ public static RateTypeEnum Quick { get; } = new("quick");
+
+
+ ///
+ /// Get a string representation of the current value
+ ///
+ public override string ToString() => _value;
+ }
+
+ internal class RateTypeEnumJsonConverter : JsonConverter
+ {
+ public override RateTypeEnum? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
+ reader.TokenType == JsonTokenType.String ? new RateTypeEnum(reader.GetString()!) : null;
+
+ public override void Write(Utf8JsonWriter writer, RateTypeEnum value, JsonSerializerOptions options) =>
+ writer.WriteStringValue(value.ToString());
+
+ public override bool CanConvert(Type typeToConvert) =>
+ typeToConvert == typeof(RateTypeEnum);
+ }
+
///
/// Array of carrier ids to get rates for
@@ -60,10 +126,17 @@ public partial class RateRequestBody
[JsonPropertyName("preferred_currency"), JsonPropertyOrder(5)]
public string? PreferredCurrency { get; set; }
+ ///
+ /// Indicates what type of rating to perform
+ ///
+ /// Indicates what type of rating to perform
+ [JsonPropertyName("rate_type"), JsonPropertyOrder(6)]
+ public RateTypeEnum? RateType { get; set; }
+
///
/// Gets or Sets ServiceCodes
///
- [JsonPropertyName("service_codes"), JsonPropertyOrder(6)]
+ [JsonPropertyName("service_codes"), JsonPropertyOrder(7)]
public List? ServiceCodes { get; set; }
@@ -81,6 +154,7 @@ public override string ToString()
sb.Append(" IsReturn: ").Append(IsReturn).Append("\n");
sb.Append(" PackageTypes: ").Append(PackageTypes).Append("\n");
sb.Append(" PreferredCurrency: ").Append(PreferredCurrency).Append("\n");
+ sb.Append(" RateType: ").Append(RateType).Append("\n");
sb.Append(" ServiceCodes: ").Append(ServiceCodes).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
diff --git a/ShipEngineSDK/Model/RatesInformation.cs b/ShipEngineSDK/Model/RatesInformation.cs
index b805e02c..a8a81fb5 100644
--- a/ShipEngineSDK/Model/RatesInformation.cs
+++ b/ShipEngineSDK/Model/RatesInformation.cs
@@ -73,7 +73,7 @@ public partial class RatesInformation
/// This should not be used for input as it will be ignored on serialization.
///
[JsonPropertyName("rates"), JsonInclude]
- public List? Rates { get; set; }
+ public List? Rates { get; set; }
///
/// A string that uniquely identifies the shipment
diff --git a/ShipEngineSDK/Model/RatesInformationRatesInner.cs b/ShipEngineSDK/Model/RatesInformationRatesInner.cs
new file mode 100644
index 00000000..f3325893
--- /dev/null
+++ b/ShipEngineSDK/Model/RatesInformationRatesInner.cs
@@ -0,0 +1,374 @@
+//
+// DO NOT MODIFY THIS FILE
+
+// Changes can be made in a corresponding partial file, or by changing
+// the template in /generation/templates and generating the class again.
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using System.Text.RegularExpressions;
+
+namespace ShipEngineSDK.Model;
+
+///
+/// Shipment Rates
+///
+public partial class RatesInformationRatesInner
+{
+
+ ///
+ /// carrier code
+ ///
+ /// carrier code
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("carrier_code"), JsonInclude]
+ public string? CarrierCode { get; set; }
+
+ ///
+ /// carrier friendly name
+ ///
+ /// carrier friendly name
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("carrier_friendly_name"), JsonInclude]
+ public string? CarrierFriendlyName { get; set; }
+
+ ///
+ /// A string that uniquely identifies the carrier
+ ///
+ /// A string that uniquely identifies the carrier
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// se-28529731
+ ///
+ [JsonPropertyName("carrier_id"), JsonInclude]
+ public string? CarrierId { get; set; }
+
+ ///
+ /// carrier nickname
+ ///
+ /// carrier nickname
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("carrier_nickname"), JsonInclude]
+ public string? CarrierNickname { get; set; }
+
+ ///
+ /// The confirmation amount. Should be added with shipping_amount, insurance_amount and other_amount to calculate the total purchase price.
+ ///
+ /// The confirmation amount. Should be added with shipping_amount, insurance_amount and other_amount to calculate the total purchase price.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("confirmation_amount"), JsonInclude]
+ public MonetaryValue? ConfirmationAmount { get; set; }
+
+ ///
+ /// The error messages
+ ///
+ /// The error messages
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("error_messages"), JsonInclude]
+ public List? ErrorMessages { get; set; }
+
+ ///
+ /// Indicates if the rate is guaranteed.
+ ///
+ /// Indicates if the rate is guaranteed.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("guaranteed_service"), JsonInclude]
+ public bool? GuaranteedService { get; set; }
+
+ ///
+ /// The insurance amount. Should be added with shipping_amount, confirmation_amount and other_amount to calculate the total purchase price.
+ ///
+ /// The insurance amount. Should be added with shipping_amount, confirmation_amount and other_amount to calculate the total purchase price.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("insurance_amount"), JsonInclude]
+ public MonetaryValue? InsuranceAmount { get; set; }
+
+ ///
+ /// Indicates if the rates been negotiated
+ ///
+ /// Indicates if the rates been negotiated
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("negotiated_rate"), JsonInclude]
+ public bool? NegotiatedRate { get; set; }
+
+ ///
+ /// Any other charges associated with this rate. Should be added with shipping_amount, insurance_amount and confirmation_amount to calculate the total purchase price.
+ ///
+ /// Any other charges associated with this rate. Should be added with shipping_amount, insurance_amount and confirmation_amount to calculate the total purchase price.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("other_amount"), JsonInclude]
+ public MonetaryValue? OtherAmount { get; set; }
+
+ ///
+ /// A string that uniquely identifies the rate
+ ///
+ /// A string that uniquely identifies the rate
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// se-28529731
+ ///
+ [JsonPropertyName("rate_id"), JsonInclude]
+ public string? RateId { get; set; }
+
+ ///
+ /// Gets or Sets RateType
+ ///
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("rate_type"), JsonInclude]
+ public RateType? RateType { get; set; }
+
+ ///
+ /// service code for the rate
+ ///
+ /// service code for the rate
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("service_code"), JsonInclude]
+ public string? ServiceCode { get; set; }
+
+ ///
+ /// service type
+ ///
+ /// service type
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("service_type"), JsonInclude]
+ public string? ServiceType { get; set; }
+
+ ///
+ /// The shipping amount. Should be added with confirmation_amount, insurance_amount and other_amount to calculate the total purchase price.
+ ///
+ /// The shipping amount. Should be added with confirmation_amount, insurance_amount and other_amount to calculate the total purchase price.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("shipping_amount"), JsonInclude]
+ public MonetaryValue? ShippingAmount { get; set; }
+
+ ///
+ /// Indicates if rate is trackable
+ ///
+ /// Indicates if rate is trackable
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("trackable"), JsonInclude]
+ public bool? Trackable { get; set; }
+
+ ///
+ /// Gets or Sets ValidationStatus
+ ///
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("validation_status"), JsonInclude]
+ public ValidationStatus? ValidationStatus { get; set; }
+
+ ///
+ /// The warning messages
+ ///
+ /// The warning messages
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("warning_messages"), JsonInclude]
+ public List? WarningMessages { get; set; }
+
+ ///
+ /// The carrier delivery days
+ ///
+ /// The carrier delivery days
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("carrier_delivery_days"), JsonInclude]
+ public string? CarrierDeliveryDays { get; set; }
+
+ ///
+ /// The number of days estimated for delivery, this will show the _actual_ delivery time if for example, the package gets shipped on a Friday
+ ///
+ /// The number of days estimated for delivery, this will show the _actual_ delivery time if for example, the package gets shipped on a Friday
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 5
+ ///
+ [JsonPropertyName("delivery_days"), JsonInclude]
+ public int? DeliveryDays { get; set; }
+
+ ///
+ /// An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string that represents a date, but not a specific time. The value _may_ contain a time component, but it will be set to `00:00:00` UTC by ShipEngine.
+ ///
+ /// An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string that represents a date, but not a specific time. The value _may_ contain a time component, but it will be set to `00:00:00` UTC by ShipEngine.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 2018-09-23T00:00Z
+ ///
+ [JsonPropertyName("estimated_delivery_date"), JsonInclude]
+ public DateTimeOffset? EstimatedDeliveryDate { get; set; }
+
+ ///
+ /// package type that this rate was estimated for
+ ///
+ /// package type that this rate was estimated for
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// package
+ ///
+ [JsonPropertyName("package_type"), JsonInclude]
+ public string? PackageType { get; set; }
+
+ ///
+ /// Optional attributes that indicate the most profitable rates
+ ///
+ /// Optional attributes that indicate the most profitable rates
+ [JsonPropertyName("rate_attributes"), JsonPropertyOrder(23)]
+ public List? RateAttributes { get; set; }
+
+ ///
+ /// A list of rate details that are associated with this rate. This is useful for displaying a breakdown of the rate to the user.
+ ///
+ /// A list of rate details that are associated with this rate. This is useful for displaying a breakdown of the rate to the user.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("rate_details"), JsonInclude]
+ public List? RateDetails { get; set; }
+
+ ///
+ /// The total shipping cost for the specified comparison_rate_type.
+ ///
+ /// The total shipping cost for the specified comparison_rate_type.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("requested_comparison_amount"), JsonInclude]
+ public MonetaryValue? RequestedComparisonAmount { get; set; }
+
+ ///
+ /// ship date
+ ///
+ /// ship date
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("ship_date"), JsonInclude]
+ public DateTimeOffset? ShipDate { get; set; }
+
+ ///
+ /// Tariff and additional taxes associated with an international shipment.
+ ///
+ /// Tariff and additional taxes associated with an international shipment.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("tax_amount"), JsonInclude]
+ public MonetaryValue? TaxAmount { get; set; }
+
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
+
+ ///
+ /// Returns the string presentation of the object
+ ///
+ /// String presentation of the object
+ public override string ToString()
+ {
+ var sb = new StringBuilder();
+ sb.Append("class RatesInformationRatesInner {\n");
+#pragma warning disable CS0612 // Type or member is obsolete
+ sb.Append(" CarrierCode: ").Append(CarrierCode).Append("\n");
+ sb.Append(" CarrierFriendlyName: ").Append(CarrierFriendlyName).Append("\n");
+ sb.Append(" CarrierId: ").Append(CarrierId).Append("\n");
+ sb.Append(" CarrierNickname: ").Append(CarrierNickname).Append("\n");
+ sb.Append(" ConfirmationAmount: ").Append(ConfirmationAmount).Append("\n");
+ sb.Append(" ErrorMessages: ").Append(ErrorMessages).Append("\n");
+ sb.Append(" GuaranteedService: ").Append(GuaranteedService).Append("\n");
+ sb.Append(" InsuranceAmount: ").Append(InsuranceAmount).Append("\n");
+ sb.Append(" NegotiatedRate: ").Append(NegotiatedRate).Append("\n");
+ sb.Append(" OtherAmount: ").Append(OtherAmount).Append("\n");
+ sb.Append(" RateId: ").Append(RateId).Append("\n");
+ sb.Append(" RateType: ").Append(RateType).Append("\n");
+ sb.Append(" ServiceCode: ").Append(ServiceCode).Append("\n");
+ sb.Append(" ServiceType: ").Append(ServiceType).Append("\n");
+ sb.Append(" ShippingAmount: ").Append(ShippingAmount).Append("\n");
+ sb.Append(" Trackable: ").Append(Trackable).Append("\n");
+ sb.Append(" ValidationStatus: ").Append(ValidationStatus).Append("\n");
+ sb.Append(" WarningMessages: ").Append(WarningMessages).Append("\n");
+ sb.Append(" CarrierDeliveryDays: ").Append(CarrierDeliveryDays).Append("\n");
+ sb.Append(" DeliveryDays: ").Append(DeliveryDays).Append("\n");
+ sb.Append(" EstimatedDeliveryDate: ").Append(EstimatedDeliveryDate).Append("\n");
+ sb.Append(" PackageType: ").Append(PackageType).Append("\n");
+ sb.Append(" RateAttributes: ").Append(RateAttributes).Append("\n");
+ sb.Append(" RateDetails: ").Append(RateDetails).Append("\n");
+ sb.Append(" RequestedComparisonAmount: ").Append(RequestedComparisonAmount).Append("\n");
+ sb.Append(" ShipDate: ").Append(ShipDate).Append("\n");
+ sb.Append(" TaxAmount: ").Append(TaxAmount).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
+#pragma warning restore CS0612 // Type or member is obsolete
+ sb.Append("}\n");
+ return sb.ToString();
+ }
+
+ ///
+ /// Returns the JSON string presentation of the object
+ ///
+ /// JSON string presentation of the object
+ public virtual string ToJson(JsonSerializerOptions options)
+ {
+ return JsonSerializer.Serialize(this, options);
+ }
+
+}
\ No newline at end of file
diff --git a/ShipEngineSDK/Model/RegulatedContentType.cs b/ShipEngineSDK/Model/RegulatedContentType.cs
new file mode 100644
index 00000000..24a24a0f
--- /dev/null
+++ b/ShipEngineSDK/Model/RegulatedContentType.cs
@@ -0,0 +1,92 @@
+//
+// DO NOT MODIFY THIS FILE
+
+// Changes can be made in a corresponding partial file, or by changing
+// the template in /generation/templates and generating the class again.
+
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.Json.Serialization.Metadata;
+using System.Text.RegularExpressions;
+
+namespace ShipEngineSDK.Model;
+
+///
+/// Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements.
+///
+/// Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements.
+[JsonConverter(typeof(RegulatedContentTypeJsonConverter))]
+public class RegulatedContentType
+{
+ private readonly string _value;
+
+ ///
+ /// Create a new instance of RegulatedContentType with a predefined value.
+ ///
+ internal RegulatedContentType()
+ {
+ _value = "day_old_poultry";
+ }
+
+ ///
+ /// Create a new instance of RegulatedContentType with a custom value.
+ ///
+ /// The value of the RegulatedContentType
+ ///
+ /// You can send a custom value to the API using this constructor, but the API most likely won't know what to do with it.
+ /// You should use the predefined values returned by the static properties of this class unless you know that the value is value.
+ ///
+ public RegulatedContentType(string value)
+ {
+ _value = value;
+ }
+
+ ///
+ /// Enum DayOldPoultry for value: day_old_poultry
+ ///
+ public static RegulatedContentType DayOldPoultry { get; } = new("day_old_poultry");
+
+
+ ///
+ /// Enum OtherLiveAnimal for value: other_live_animal
+ ///
+ public static RegulatedContentType OtherLiveAnimal { get; } = new("other_live_animal");
+
+
+ ///
+ /// Get a string representation of the current value
+ ///
+ public override string ToString() => _value;
+
+ ///
+ /// Get whether this instance is equal to another instance
+ ///
+ public override bool Equals(object? obj) =>
+ obj is RegulatedContentType other && _value == other._value;
+
+ ///
+ /// Get the hash code of the object
+ ///
+ public override int GetHashCode() => _value.GetHashCode();
+}
+
+internal class RegulatedContentTypeJsonConverter : JsonConverter
+{
+ public override RegulatedContentType? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
+ reader.TokenType == JsonTokenType.String ? new RegulatedContentType(reader.GetString()!) : null;
+
+ public override void Write(Utf8JsonWriter writer, RegulatedContentType value, JsonSerializerOptions options) =>
+ writer.WriteStringValue(value.ToString());
+
+ public override bool CanConvert(Type typeToConvert) =>
+ typeToConvert == typeof(RegulatedContentType);
+}
\ No newline at end of file
diff --git a/ShipEngineSDK/Model/Service.cs b/ShipEngineSDK/Model/Service.cs
index 51826222..05ccbf1a 100644
--- a/ShipEngineSDK/Model/Service.cs
+++ b/ShipEngineSDK/Model/Service.cs
@@ -79,6 +79,16 @@ public partial class Service
[JsonPropertyName("is_multi_package_supported"), JsonInclude]
public bool? IsMultiPackageSupported { get; set; }
+ ///
+ /// This service supports return shipments.
+ ///
+ /// This service supports return shipments.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("is_return_supported"), JsonInclude]
+ public bool? IsReturnSupported { get; set; }
+
///
/// User friendly service name
///
@@ -120,6 +130,7 @@ public override string ToString()
sb.Append(" Domestic: ").Append(Domestic).Append("\n");
sb.Append(" International: ").Append(International).Append("\n");
sb.Append(" IsMultiPackageSupported: ").Append(IsMultiPackageSupported).Append("\n");
+ sb.Append(" IsReturnSupported: ").Append(IsReturnSupported).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n");
sb.Append(" ServiceCode: ").Append(ServiceCode).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
diff --git a/ShipEngineSDK/Model/Shipment.cs b/ShipEngineSDK/Model/Shipment.cs
index 1357c0f7..0840ba5a 100644
--- a/ShipEngineSDK/Model/Shipment.cs
+++ b/ShipEngineSDK/Model/Shipment.cs
@@ -258,6 +258,19 @@ public partial class Shipment
[JsonPropertyName("warehouse_id"), JsonPropertyOrder(27)]
public required string WarehouseId { get; set; }
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
///
/// Returns the string presentation of the object
@@ -295,6 +308,7 @@ public override string ToString()
sb.Append(" ShippingRuleId: ").Append(ShippingRuleId).Append("\n");
sb.Append(" TaxIdentifiers: ").Append(TaxIdentifiers).Append("\n");
sb.Append(" WarehouseId: ").Append(WarehouseId).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/ShipmentItem.cs b/ShipEngineSDK/Model/ShipmentItem.cs
index e91a0a23..01912c2d 100644
--- a/ShipEngineSDK/Model/ShipmentItem.cs
+++ b/ShipEngineSDK/Model/ShipmentItem.cs
@@ -36,59 +36,69 @@ public partial class ShipmentItem
[JsonPropertyName("asin"), JsonPropertyOrder(1)]
public string? Asin { get; set; }
+ ///
+ /// Item Stock Keeping Unit of the product bundle
+ ///
+ /// Item Stock Keeping Unit of the product bundle
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ [JsonPropertyName("bundle_sku"), JsonInclude]
+ public string? BundleSku { get; set; }
+
///
/// external order id
///
/// external order id
- [JsonPropertyName("external_order_id"), JsonPropertyOrder(2)]
+ [JsonPropertyName("external_order_id"), JsonPropertyOrder(3)]
public string? ExternalOrderId { get; set; }
///
/// external order item id
///
/// external order item id
- [JsonPropertyName("external_order_item_id"), JsonPropertyOrder(3)]
+ [JsonPropertyName("external_order_item_id"), JsonPropertyOrder(4)]
public string? ExternalOrderItemId { get; set; }
///
/// item name
///
/// item name
- [JsonPropertyName("name"), JsonPropertyOrder(4)]
+ [JsonPropertyName("name"), JsonPropertyOrder(5)]
public string? Name { get; set; }
///
/// Gets or Sets OrderSourceCode
///
- [JsonPropertyName("order_source_code"), JsonPropertyOrder(5)]
+ [JsonPropertyName("order_source_code"), JsonPropertyOrder(6)]
public OrderSourceName? OrderSourceCode { get; set; }
///
/// The quantity of this item included in the shipment
///
/// The quantity of this item included in the shipment
- [JsonPropertyName("quantity"), JsonPropertyOrder(6)]
+ [JsonPropertyName("quantity"), JsonPropertyOrder(7)]
public int? Quantity { get; set; }
///
/// sales order id
///
/// sales order id
- [JsonPropertyName("sales_order_id"), JsonPropertyOrder(7)]
+ [JsonPropertyName("sales_order_id"), JsonPropertyOrder(8)]
public string? SalesOrderId { get; set; }
///
/// sales order item id
///
/// sales order item id
- [JsonPropertyName("sales_order_item_id"), JsonPropertyOrder(8)]
+ [JsonPropertyName("sales_order_item_id"), JsonPropertyOrder(9)]
public string? SalesOrderItemId { get; set; }
///
/// Item Stock Keeping Unit
///
/// Item Stock Keeping Unit
- [JsonPropertyName("sku"), JsonPropertyOrder(9)]
+ [JsonPropertyName("sku"), JsonPropertyOrder(10)]
public string? Sku { get; set; }
@@ -102,6 +112,7 @@ public override string ToString()
sb.Append("class ShipmentItem {\n");
#pragma warning disable CS0612 // Type or member is obsolete
sb.Append(" Asin: ").Append(Asin).Append("\n");
+ sb.Append(" BundleSku: ").Append(BundleSku).Append("\n");
sb.Append(" ExternalOrderId: ").Append(ExternalOrderId).Append("\n");
sb.Append(" ExternalOrderItemId: ").Append(ExternalOrderItemId).Append("\n");
sb.Append(" Name: ").Append(Name).Append("\n");
diff --git a/ShipEngineSDK/Model/StatusDetailCode.cs b/ShipEngineSDK/Model/StatusDetailCode.cs
index 145820e4..5d761bc1 100644
--- a/ShipEngineSDK/Model/StatusDetailCode.cs
+++ b/ShipEngineSDK/Model/StatusDetailCode.cs
@@ -21,9 +21,9 @@
namespace ShipEngineSDK.Model;
///
-/// The tracking status detail codes |Value |Description |:- -- -- -- -- |:- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | `CARRIER_STATUS_NOT_MAPPED` | Status not mapped. Please check the carrier's website for updates. | `SHIPMENT_CREATED` | Your tracking number is ready. Your parcel is waiting to be registered in the carrier system and scheduled for pickup. | `AWAITING_PICKUP_DROP_OFF` | Your parcel is waiting to be handed over to the carrier. | `DROPPED_OFF` | Your parcel has been dropped off and is ready for carrier processing. | `ELEC_ADVICE_RECD_BY_CARRIER` | Your shipment is now in the carrier's system. | `PICKED_UP` | Your parcel has been picked up by the carrier. | `CUSTOMS_CLEARED` | Your parcel has cleared customs and is continuing its journey. | `CUSTOMS_PROCESSING` | Your parcel is currently being processed by customs. | `DELIVERY_ARRANGED_WITH_RECIPIENT` | Your parcel's delivery has been arranged with the carrier. | `HUB_SCAN_OUT` | Your parcel has left the carrier's hub. | `HUB_SCAN_IN` | Your parcel has arrived at the carrier's hub for processing. | `IN_TRANSIT` | Your shipment is on its way between the carrier hubs. | `INFORMATION` | The carrier has shared additional information about your parcel. | `PARCEL_OVER_LABELLED` | Your parcel's label has been updated by the carrier, which may affect tracking visibility. | `PARCEL_UPDATE_NOTIFICATION` | The carrier has sent you an update on your parcel status via SMS or email. | `RECEIVED_BY_CARRIER` | Your parcel has been received by the carrier and is beginning its journey. | `RECEIVED_LOCAL_DELIVERY_DEPOT` | Your parcel has arrived at the local delivery depot and is almost ready for delivery. | `SUB_CONTRACTOR_EVENT` | The carrier has shared additional information about your parcel's handling by a delivery partner. | `SUB_CONTRACTOR_RECEIVED` | Your parcel has been received by the carrier's local delivery partner. | `PARCEL_REDIRECTED` | Your parcel has been redirected to a new delivery address per your request. | `DELIVERY_SCHEDULED` | Your parcel's delivery has been scheduled and will soon be out for delivery. | `HUB_PROCESSING` | Your parcel is being processed at a carrier hub. | `DELIVERY_RESCHEDULED` | Your parcel's delivery has been rescheduled due to operational issues. | `ATTEMPTED_DELIVERY` | The carrier attempted to deliver your parcel but was unable to complete delivery. | `ATTEMPTED_DELIVERY_FINAL` | The carrier made a final attempt to deliver your parcel but was unable to complete delivery. Please check the carrier's instructions for next steps. | `COD_AMOUNT_PAID` | Cash on delivery payment received. | `CUSTOMER_CARDED` | Delivery attempt failed. Please follow delivery instructions left by the carrier. | `OUT_FOR_DELIVERY` | Your parcel is on its way and will be delivered today. | `AWAITING_COLLECTION_FROM_PICKUP_POINT` | Your parcel is ready for collection at the selected pickup point. | `COLLECT_AT_LOCAL_PO` | Your parcel is ready for collection at your local post office. | `CUSTOMER_TO_COLLECT_FROM_CARRIER` | Your parcel is available for collection from the carrier's local delivery unit. | `DELIVERED_TO_RECEPTION` | Your parcel has been delivered to your building's reception or designated mail area. | `DELIVERED` | Your parcel has been successfully delivered. | `DELIVERED_DAMAGED` | Your parcel was delivered but arrived with visible damage. | `DELIVERED_IN_PART` | Part of your shipment has been delivered. Check for updates on the rest. | `DELIVERED_SPECIFIED_SAFE_PLACE` | Your parcel has been delivered to your specified safe place. | `DELIVERED_TO_ALTERNATIVE_DELIVERY_LOCATION` | Your parcel was delivered to an alternative location due to the delivery company being unable to deliver it to the specified address. Check carrier instructions for pickup details. | `DELIVERED_TO_NEIGHBOUR` | Your parcel was delivered to your neighbor. | `DELIVERED_TO_PO_BOX` | Your parcel has been delivered to your specified PO Box. | `PARCEL_COLLECTED_FROM_PICKUP_POINT` | Your package has been picked up from the pick up point. | `POST_TRANSIT_STATUS` | The carrier has added more information about your delivery. | `PROOF_OF_DELIVERY` | The carrier has confirmed delivery with proof, such as a signature or photo. | `PICKUP_FAILED` | Parcel pickup failed. The delivery company will try again soon. | `NOT_YET_RECEIVED_BY_CARRIER` | The carrier has not yet received your parcel, which may cause a delay. | `PARCEL_DAMAGED` | Your parcel was damaged in transit but will still be delivered. | `ADDRESS_QUERY` | There is an issue with the delivery address, which may delay your parcel. | `CARRIER_DELAYS` | Your parcel is delayed due to issues within the carrier network. | `DELAYED_NOT_CARRIER` | Your parcel is delayed due to circumstances beyond the carrier's control. | `HELD_BY_CARRIER` | Your parcel is being held due to an operational issue. Contact with the carrier for more information. | `HELD_BY_CARRIER_FOR_CLEARANCE_PRE_PROCESSING` | Your parcel is being held by the carrier for customs documentation checks. This may occur when the carrier must confirm documentation before the parcel can continue its journey. | `HELD_BY_CUSTOMS` | Your parcel is being held at customs, which may delay delivery. | `HELD_BY_EXPORT_CUSTOMS` | Your parcel is held at export customs, which may delay delivery. | `HELD_BY_IMPORT_CUSTOMS` | Your parcel is held at import customs and may require action to proceed. | `INCORRECT_DECLARATION` | Your parcel has been incorrectly declared but is still moving forward for delivery. | `MISROUTED` | Your parcel was sent to the wrong place due to a routing error but is being redirected. | `PARCEL_REPACKED` | Your parcel was repackaged by the carrier due to damage and will still be delivered. | `RECD_BY_CARRIER_NO_ELEC_ADVICE` | Your parcel has been received by the carrier but may experience delays due to missing pre-advice. | `COD_AMOUNT_NOT_PAID` | Delivery failed due to unpaid cash on delivery. Please follow carrier instructions. | `CUSTOMER_IDENTIFICATION_FAILED` | Delivery couldn't be completed as identification requirements were not met. | `NO_ACCESS_TO_RECIPIENTS_ADDRESS` | The carrier couldn't access the delivery location due to restricted entry. | `CANCELLED` | Your parcel has been cancelled. | `CUSTOMER_MOVED` | Delivery failed as the recipient is no longer at the specified address. Your parcel is being returned. | `HAZARDOUS_PROHIBITED` | Your parcel contains restricted items and will not be delivered. | `NOT_COLLECTED_FROM_PICKUP_POINT` | Your parcel was not collected from the pickup point within the designated time and will be returned. | `NOT_DELIVERED` | All delivery attempts failed. Your parcel is being returned to the sender. | `NOT_DELIVERED_ADDRESSEE_DECEASED` | The parcel could not be delivered as the addressee is reported deceased. | `PARCEL_DISPOSED` | Your parcel has been disposed of due to its contents or condition and will not be delivered. | `PARCEL_LOST` | The carrier has reported that your parcel is lost and will not be delivered. | `PARCEL_OUTSIDE_OF_SERVICE_CAPABILITY` | The parcel cannot be delivered as it exceeds the carrier's service limits. | `REFUSED_BY_CUSTOMER` | You have refused the parcel, and it will be returned to the sender. | `RETURN_TO_SENDER` | Your parcel is being returned to the sender due to delivery issues. | `UNSPECIFIED_EXCEPTION` | The carrier has reported an issue with your parcel, but details are unavailable.
+/// The tracking status detail codes |Value |Description |:- -- -- -- -- |:- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | `CARRIER_STATUS_NOT_MAPPED` | Status not mapped. Please check the carrier's website for updates. | `SHIPMENT_CREATED` | Your tracking number is ready. Your parcel is waiting to be registered in the carrier system and scheduled for pickup. | `AWAITING_PICKUP_DROP_OFF` | Your parcel is waiting to be handed over to the carrier. | `DROPPED_OFF` | Your parcel has been dropped off and is ready for carrier processing. | `ELEC_ADVICE_RECD_BY_CARRIER` | Your shipment is now in the carrier's system. | `PICKED_UP` | Your parcel has been picked up by the carrier. | `CUSTOMS_CLEARED` | Your parcel has cleared customs and is continuing its journey. | `CUSTOMS_PROCESSING` | Your parcel is currently being processed by customs. | `DELIVERY_ARRANGED_WITH_RECIPIENT` | Your parcel's delivery has been arranged with the carrier. | `HUB_SCAN_OUT` | Your parcel has left the carrier's hub. | `HUB_SCAN_IN` | Your parcel has arrived at the carrier's hub for processing. | `IN_TRANSIT` | Your shipment is on its way between the carrier hubs. | `INFORMATION` | The carrier has shared additional information about your parcel. | `PARCEL_OVER_LABELLED` | Your parcel's label has been updated by the carrier, which may affect tracking visibility. | `PARCEL_UPDATE_NOTIFICATION` | The carrier has sent you an update on your parcel status via SMS or email. | `RECEIVED_BY_CARRIER` | Your parcel has been received by the carrier and is beginning its journey. | `RECEIVED_LOCAL_DELIVERY_DEPOT` | Your parcel has arrived at the local delivery depot and is almost ready for delivery. | `SUB_CONTRACTOR_EVENT` | The carrier has shared additional information about your parcel's handling by a delivery partner. | `SUB_CONTRACTOR_RECEIVED` | Your parcel has been received by the carrier's local delivery partner. | `PARCEL_REDIRECTED` | Your parcel has been redirected to a new delivery address per your request. | `DELIVERY_SCHEDULED` | Your parcel's delivery has been scheduled and will soon be out for delivery. | `HUB_PROCESSING` | Your parcel is being processed at a carrier hub. | `DELIVERY_RESCHEDULED` | Your parcel's delivery has been rescheduled due to operational issues. | `ATTEMPTED_DELIVERY` | The carrier attempted to deliver your parcel but was unable to complete delivery. | `ATTEMPTED_DELIVERY_FINAL` | The carrier made a final attempt to deliver your parcel but was unable to complete delivery. Please check the carrier's instructions for next steps. | `COD_AMOUNT_PAID` | Cash on delivery payment received. | `CUSTOMER_CARDED` | Delivery attempt failed. Please follow delivery instructions left by the carrier. | `OUT_FOR_DELIVERY` | Your parcel is on its way and will be delivered today. | `AWAITING_COLLECTION_FROM_PICKUP_POINT` | Your parcel is ready for collection at the selected pickup point. | `COLLECT_AT_LOCAL_PO` | Your parcel is ready for collection at your local post office. | `CUSTOMER_TO_COLLECT_FROM_CARRIER` | Your parcel is available for collection from the carrier's local delivery unit. | `DELIVERED_TO_RECEPTION` | Your parcel has been delivered to your building's reception or designated mail area. | `DELIVERED` | Your parcel has been successfully delivered. | `DELIVERED_DAMAGED` | Your parcel was delivered but arrived with visible damage. | `DELIVERED_IN_PART` | Part of your shipment has been delivered. Check for updates on the rest. | `DELIVERED_SPECIFIED_SAFE_PLACE` | Your parcel has been delivered to your specified safe place. | `DELIVERED_TO_ALTERNATIVE_DELIVERY_LOCATION` | Your parcel was delivered to an alternative location due to the delivery company being unable to deliver it to the specified address. Check carrier instructions for pickup details. | `DELIVERED_TO_NEIGHBOUR` | Your parcel was delivered to your neighbor. | `DELIVERED_TO_PO_BOX` | Your parcel has been delivered to your specified PO Box. | `PARCEL_COLLECTED_FROM_PICKUP_POINT` | Your package has been picked up from the pick up point. | `POST_TRANSIT_STATUS` | The carrier has added more information about your delivery. | `PROOF_OF_DELIVERY` | The carrier has confirmed delivery with proof, such as a signature or photo. | `PICKUP_FAILED` | Parcel pickup failed. The delivery company will try again soon. | `NOT_YET_RECEIVED_BY_CARRIER` | The carrier has not yet received your parcel, which may cause a delay. | `PARCEL_DAMAGED` | Your parcel was damaged in transit but will still be delivered. | `ADDRESS_QUERY` | There is an issue with the delivery address, which may delay your parcel. | `CARRIER_DELAYS` | Your parcel is delayed due to issues within the carrier network. | `DELAYED_NOT_CARRIER` | Your parcel is delayed due to circumstances beyond the carrier's control. | `HELD_BY_CARRIER` | Your parcel is being held due to an operational issue. Contact with the carrier for more information. | `HELD_BY_CARRIER_FOR_CLEARANCE_PRE_PROCESSING` | Your parcel is being held by the carrier for customs documentation checks. This may occur when the carrier must confirm documentation before the parcel can continue its journey. | `HELD_BY_CUSTOMS` | Your parcel is being held at customs, which may delay delivery. | `INCORRECT_DECLARATION` | Your parcel has been incorrectly declared but is still moving forward for delivery. | `MISROUTED` | Your parcel was sent to the wrong place due to a routing error but is being redirected. | `PARCEL_REPACKED` | Your parcel was repackaged by the carrier due to damage and will still be delivered. | `RECD_BY_CARRIER_NO_ELEC_ADVICE` | Your parcel has been received by the carrier but may experience delays due to missing pre-advice. | `COD_AMOUNT_NOT_PAID` | Delivery failed due to unpaid cash on delivery. Please follow carrier instructions. | `CUSTOMER_IDENTIFICATION_FAILED` | Delivery couldn't be completed as identification requirements were not met. | `NO_ACCESS_TO_RECIPIENTS_ADDRESS` | The carrier couldn't access the delivery location due to restricted entry. | `CANCELLED` | Your parcel has been cancelled. | `CUSTOMER_MOVED` | Delivery failed as the recipient is no longer at the specified address. Your parcel is being returned. | `HAZARDOUS_PROHIBITED` | Your parcel contains restricted items and will not be delivered. | `NOT_COLLECTED_FROM_PICKUP_POINT` | Your parcel was not collected from the pickup point within the designated time and will be returned. | `NOT_DELIVERED` | All delivery attempts failed. Your parcel is being returned to the sender. | `NOT_DELIVERED_ADDRESSEE_DECEASED` | The parcel could not be delivered as the addressee is reported deceased. | `PARCEL_DISPOSED` | Your parcel has been disposed of due to its contents or condition and will not be delivered. | `PARCEL_LOST` | The carrier has reported that your parcel is lost and will not be delivered. | `PARCEL_OUTSIDE_OF_SERVICE_CAPABILITY` | The parcel cannot be delivered as it exceeds the carrier's service limits. | `REFUSED_BY_CUSTOMER` | You have refused the parcel, and it will be returned to the sender. | `RETURN_TO_SENDER` | Your parcel is being returned to the sender due to delivery issues. | `UNSPECIFIED_EXCEPTION` | The carrier has reported an issue with your parcel, but details are unavailable. | `TRACKING_EXPIRED` | Tracking for this parcel has expired. If you are still expecting this delivery, please contact the carrier for assistance. | `DUTY_NOT_PAID` | The import taxes or duties for this package havent been paid and it may be subject to disposal by customs authorities if payment is not made. | `PARCEL_REDIRECTED_BY_CARRIER` | The carrier has redirected your parcel due to an operational issue. The package is likely being rerouted to a nearby pickup point. You may contact the carrier for more details about the new delivery location. | `DELIVERED_TO_PICKUP_POINT` | Your package has been delivered to the pickup point. You will be notified when its ready for collection. | `UNDELIVERABLE_RETURNED_TO_SENDER` | The shipment has been returned to the sender. Please contact the sender for further information.
///
-/// The tracking status detail codes |Value |Description |:- -- -- -- -- |:- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | `CARRIER_STATUS_NOT_MAPPED` | Status not mapped. Please check the carrier's website for updates. | `SHIPMENT_CREATED` | Your tracking number is ready. Your parcel is waiting to be registered in the carrier system and scheduled for pickup. | `AWAITING_PICKUP_DROP_OFF` | Your parcel is waiting to be handed over to the carrier. | `DROPPED_OFF` | Your parcel has been dropped off and is ready for carrier processing. | `ELEC_ADVICE_RECD_BY_CARRIER` | Your shipment is now in the carrier's system. | `PICKED_UP` | Your parcel has been picked up by the carrier. | `CUSTOMS_CLEARED` | Your parcel has cleared customs and is continuing its journey. | `CUSTOMS_PROCESSING` | Your parcel is currently being processed by customs. | `DELIVERY_ARRANGED_WITH_RECIPIENT` | Your parcel's delivery has been arranged with the carrier. | `HUB_SCAN_OUT` | Your parcel has left the carrier's hub. | `HUB_SCAN_IN` | Your parcel has arrived at the carrier's hub for processing. | `IN_TRANSIT` | Your shipment is on its way between the carrier hubs. | `INFORMATION` | The carrier has shared additional information about your parcel. | `PARCEL_OVER_LABELLED` | Your parcel's label has been updated by the carrier, which may affect tracking visibility. | `PARCEL_UPDATE_NOTIFICATION` | The carrier has sent you an update on your parcel status via SMS or email. | `RECEIVED_BY_CARRIER` | Your parcel has been received by the carrier and is beginning its journey. | `RECEIVED_LOCAL_DELIVERY_DEPOT` | Your parcel has arrived at the local delivery depot and is almost ready for delivery. | `SUB_CONTRACTOR_EVENT` | The carrier has shared additional information about your parcel's handling by a delivery partner. | `SUB_CONTRACTOR_RECEIVED` | Your parcel has been received by the carrier's local delivery partner. | `PARCEL_REDIRECTED` | Your parcel has been redirected to a new delivery address per your request. | `DELIVERY_SCHEDULED` | Your parcel's delivery has been scheduled and will soon be out for delivery. | `HUB_PROCESSING` | Your parcel is being processed at a carrier hub. | `DELIVERY_RESCHEDULED` | Your parcel's delivery has been rescheduled due to operational issues. | `ATTEMPTED_DELIVERY` | The carrier attempted to deliver your parcel but was unable to complete delivery. | `ATTEMPTED_DELIVERY_FINAL` | The carrier made a final attempt to deliver your parcel but was unable to complete delivery. Please check the carrier's instructions for next steps. | `COD_AMOUNT_PAID` | Cash on delivery payment received. | `CUSTOMER_CARDED` | Delivery attempt failed. Please follow delivery instructions left by the carrier. | `OUT_FOR_DELIVERY` | Your parcel is on its way and will be delivered today. | `AWAITING_COLLECTION_FROM_PICKUP_POINT` | Your parcel is ready for collection at the selected pickup point. | `COLLECT_AT_LOCAL_PO` | Your parcel is ready for collection at your local post office. | `CUSTOMER_TO_COLLECT_FROM_CARRIER` | Your parcel is available for collection from the carrier's local delivery unit. | `DELIVERED_TO_RECEPTION` | Your parcel has been delivered to your building's reception or designated mail area. | `DELIVERED` | Your parcel has been successfully delivered. | `DELIVERED_DAMAGED` | Your parcel was delivered but arrived with visible damage. | `DELIVERED_IN_PART` | Part of your shipment has been delivered. Check for updates on the rest. | `DELIVERED_SPECIFIED_SAFE_PLACE` | Your parcel has been delivered to your specified safe place. | `DELIVERED_TO_ALTERNATIVE_DELIVERY_LOCATION` | Your parcel was delivered to an alternative location due to the delivery company being unable to deliver it to the specified address. Check carrier instructions for pickup details. | `DELIVERED_TO_NEIGHBOUR` | Your parcel was delivered to your neighbor. | `DELIVERED_TO_PO_BOX` | Your parcel has been delivered to your specified PO Box. | `PARCEL_COLLECTED_FROM_PICKUP_POINT` | Your package has been picked up from the pick up point. | `POST_TRANSIT_STATUS` | The carrier has added more information about your delivery. | `PROOF_OF_DELIVERY` | The carrier has confirmed delivery with proof, such as a signature or photo. | `PICKUP_FAILED` | Parcel pickup failed. The delivery company will try again soon. | `NOT_YET_RECEIVED_BY_CARRIER` | The carrier has not yet received your parcel, which may cause a delay. | `PARCEL_DAMAGED` | Your parcel was damaged in transit but will still be delivered. | `ADDRESS_QUERY` | There is an issue with the delivery address, which may delay your parcel. | `CARRIER_DELAYS` | Your parcel is delayed due to issues within the carrier network. | `DELAYED_NOT_CARRIER` | Your parcel is delayed due to circumstances beyond the carrier's control. | `HELD_BY_CARRIER` | Your parcel is being held due to an operational issue. Contact with the carrier for more information. | `HELD_BY_CARRIER_FOR_CLEARANCE_PRE_PROCESSING` | Your parcel is being held by the carrier for customs documentation checks. This may occur when the carrier must confirm documentation before the parcel can continue its journey. | `HELD_BY_CUSTOMS` | Your parcel is being held at customs, which may delay delivery. | `HELD_BY_EXPORT_CUSTOMS` | Your parcel is held at export customs, which may delay delivery. | `HELD_BY_IMPORT_CUSTOMS` | Your parcel is held at import customs and may require action to proceed. | `INCORRECT_DECLARATION` | Your parcel has been incorrectly declared but is still moving forward for delivery. | `MISROUTED` | Your parcel was sent to the wrong place due to a routing error but is being redirected. | `PARCEL_REPACKED` | Your parcel was repackaged by the carrier due to damage and will still be delivered. | `RECD_BY_CARRIER_NO_ELEC_ADVICE` | Your parcel has been received by the carrier but may experience delays due to missing pre-advice. | `COD_AMOUNT_NOT_PAID` | Delivery failed due to unpaid cash on delivery. Please follow carrier instructions. | `CUSTOMER_IDENTIFICATION_FAILED` | Delivery couldn't be completed as identification requirements were not met. | `NO_ACCESS_TO_RECIPIENTS_ADDRESS` | The carrier couldn't access the delivery location due to restricted entry. | `CANCELLED` | Your parcel has been cancelled. | `CUSTOMER_MOVED` | Delivery failed as the recipient is no longer at the specified address. Your parcel is being returned. | `HAZARDOUS_PROHIBITED` | Your parcel contains restricted items and will not be delivered. | `NOT_COLLECTED_FROM_PICKUP_POINT` | Your parcel was not collected from the pickup point within the designated time and will be returned. | `NOT_DELIVERED` | All delivery attempts failed. Your parcel is being returned to the sender. | `NOT_DELIVERED_ADDRESSEE_DECEASED` | The parcel could not be delivered as the addressee is reported deceased. | `PARCEL_DISPOSED` | Your parcel has been disposed of due to its contents or condition and will not be delivered. | `PARCEL_LOST` | The carrier has reported that your parcel is lost and will not be delivered. | `PARCEL_OUTSIDE_OF_SERVICE_CAPABILITY` | The parcel cannot be delivered as it exceeds the carrier's service limits. | `REFUSED_BY_CUSTOMER` | You have refused the parcel, and it will be returned to the sender. | `RETURN_TO_SENDER` | Your parcel is being returned to the sender due to delivery issues. | `UNSPECIFIED_EXCEPTION` | The carrier has reported an issue with your parcel, but details are unavailable.
+/// The tracking status detail codes |Value |Description |:- -- -- -- -- |:- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | `CARRIER_STATUS_NOT_MAPPED` | Status not mapped. Please check the carrier's website for updates. | `SHIPMENT_CREATED` | Your tracking number is ready. Your parcel is waiting to be registered in the carrier system and scheduled for pickup. | `AWAITING_PICKUP_DROP_OFF` | Your parcel is waiting to be handed over to the carrier. | `DROPPED_OFF` | Your parcel has been dropped off and is ready for carrier processing. | `ELEC_ADVICE_RECD_BY_CARRIER` | Your shipment is now in the carrier's system. | `PICKED_UP` | Your parcel has been picked up by the carrier. | `CUSTOMS_CLEARED` | Your parcel has cleared customs and is continuing its journey. | `CUSTOMS_PROCESSING` | Your parcel is currently being processed by customs. | `DELIVERY_ARRANGED_WITH_RECIPIENT` | Your parcel's delivery has been arranged with the carrier. | `HUB_SCAN_OUT` | Your parcel has left the carrier's hub. | `HUB_SCAN_IN` | Your parcel has arrived at the carrier's hub for processing. | `IN_TRANSIT` | Your shipment is on its way between the carrier hubs. | `INFORMATION` | The carrier has shared additional information about your parcel. | `PARCEL_OVER_LABELLED` | Your parcel's label has been updated by the carrier, which may affect tracking visibility. | `PARCEL_UPDATE_NOTIFICATION` | The carrier has sent you an update on your parcel status via SMS or email. | `RECEIVED_BY_CARRIER` | Your parcel has been received by the carrier and is beginning its journey. | `RECEIVED_LOCAL_DELIVERY_DEPOT` | Your parcel has arrived at the local delivery depot and is almost ready for delivery. | `SUB_CONTRACTOR_EVENT` | The carrier has shared additional information about your parcel's handling by a delivery partner. | `SUB_CONTRACTOR_RECEIVED` | Your parcel has been received by the carrier's local delivery partner. | `PARCEL_REDIRECTED` | Your parcel has been redirected to a new delivery address per your request. | `DELIVERY_SCHEDULED` | Your parcel's delivery has been scheduled and will soon be out for delivery. | `HUB_PROCESSING` | Your parcel is being processed at a carrier hub. | `DELIVERY_RESCHEDULED` | Your parcel's delivery has been rescheduled due to operational issues. | `ATTEMPTED_DELIVERY` | The carrier attempted to deliver your parcel but was unable to complete delivery. | `ATTEMPTED_DELIVERY_FINAL` | The carrier made a final attempt to deliver your parcel but was unable to complete delivery. Please check the carrier's instructions for next steps. | `COD_AMOUNT_PAID` | Cash on delivery payment received. | `CUSTOMER_CARDED` | Delivery attempt failed. Please follow delivery instructions left by the carrier. | `OUT_FOR_DELIVERY` | Your parcel is on its way and will be delivered today. | `AWAITING_COLLECTION_FROM_PICKUP_POINT` | Your parcel is ready for collection at the selected pickup point. | `COLLECT_AT_LOCAL_PO` | Your parcel is ready for collection at your local post office. | `CUSTOMER_TO_COLLECT_FROM_CARRIER` | Your parcel is available for collection from the carrier's local delivery unit. | `DELIVERED_TO_RECEPTION` | Your parcel has been delivered to your building's reception or designated mail area. | `DELIVERED` | Your parcel has been successfully delivered. | `DELIVERED_DAMAGED` | Your parcel was delivered but arrived with visible damage. | `DELIVERED_IN_PART` | Part of your shipment has been delivered. Check for updates on the rest. | `DELIVERED_SPECIFIED_SAFE_PLACE` | Your parcel has been delivered to your specified safe place. | `DELIVERED_TO_ALTERNATIVE_DELIVERY_LOCATION` | Your parcel was delivered to an alternative location due to the delivery company being unable to deliver it to the specified address. Check carrier instructions for pickup details. | `DELIVERED_TO_NEIGHBOUR` | Your parcel was delivered to your neighbor. | `DELIVERED_TO_PO_BOX` | Your parcel has been delivered to your specified PO Box. | `PARCEL_COLLECTED_FROM_PICKUP_POINT` | Your package has been picked up from the pick up point. | `POST_TRANSIT_STATUS` | The carrier has added more information about your delivery. | `PROOF_OF_DELIVERY` | The carrier has confirmed delivery with proof, such as a signature or photo. | `PICKUP_FAILED` | Parcel pickup failed. The delivery company will try again soon. | `NOT_YET_RECEIVED_BY_CARRIER` | The carrier has not yet received your parcel, which may cause a delay. | `PARCEL_DAMAGED` | Your parcel was damaged in transit but will still be delivered. | `ADDRESS_QUERY` | There is an issue with the delivery address, which may delay your parcel. | `CARRIER_DELAYS` | Your parcel is delayed due to issues within the carrier network. | `DELAYED_NOT_CARRIER` | Your parcel is delayed due to circumstances beyond the carrier's control. | `HELD_BY_CARRIER` | Your parcel is being held due to an operational issue. Contact with the carrier for more information. | `HELD_BY_CARRIER_FOR_CLEARANCE_PRE_PROCESSING` | Your parcel is being held by the carrier for customs documentation checks. This may occur when the carrier must confirm documentation before the parcel can continue its journey. | `HELD_BY_CUSTOMS` | Your parcel is being held at customs, which may delay delivery. | `INCORRECT_DECLARATION` | Your parcel has been incorrectly declared but is still moving forward for delivery. | `MISROUTED` | Your parcel was sent to the wrong place due to a routing error but is being redirected. | `PARCEL_REPACKED` | Your parcel was repackaged by the carrier due to damage and will still be delivered. | `RECD_BY_CARRIER_NO_ELEC_ADVICE` | Your parcel has been received by the carrier but may experience delays due to missing pre-advice. | `COD_AMOUNT_NOT_PAID` | Delivery failed due to unpaid cash on delivery. Please follow carrier instructions. | `CUSTOMER_IDENTIFICATION_FAILED` | Delivery couldn't be completed as identification requirements were not met. | `NO_ACCESS_TO_RECIPIENTS_ADDRESS` | The carrier couldn't access the delivery location due to restricted entry. | `CANCELLED` | Your parcel has been cancelled. | `CUSTOMER_MOVED` | Delivery failed as the recipient is no longer at the specified address. Your parcel is being returned. | `HAZARDOUS_PROHIBITED` | Your parcel contains restricted items and will not be delivered. | `NOT_COLLECTED_FROM_PICKUP_POINT` | Your parcel was not collected from the pickup point within the designated time and will be returned. | `NOT_DELIVERED` | All delivery attempts failed. Your parcel is being returned to the sender. | `NOT_DELIVERED_ADDRESSEE_DECEASED` | The parcel could not be delivered as the addressee is reported deceased. | `PARCEL_DISPOSED` | Your parcel has been disposed of due to its contents or condition and will not be delivered. | `PARCEL_LOST` | The carrier has reported that your parcel is lost and will not be delivered. | `PARCEL_OUTSIDE_OF_SERVICE_CAPABILITY` | The parcel cannot be delivered as it exceeds the carrier's service limits. | `REFUSED_BY_CUSTOMER` | You have refused the parcel, and it will be returned to the sender. | `RETURN_TO_SENDER` | Your parcel is being returned to the sender due to delivery issues. | `UNSPECIFIED_EXCEPTION` | The carrier has reported an issue with your parcel, but details are unavailable. | `TRACKING_EXPIRED` | Tracking for this parcel has expired. If you are still expecting this delivery, please contact the carrier for assistance. | `DUTY_NOT_PAID` | The import taxes or duties for this package havent been paid and it may be subject to disposal by customs authorities if payment is not made. | `PARCEL_REDIRECTED_BY_CARRIER` | The carrier has redirected your parcel due to an operational issue. The package is likely being rerouted to a nearby pickup point. You may contact the carrier for more details about the new delivery location. | `DELIVERED_TO_PICKUP_POINT` | Your package has been delivered to the pickup point. You will be notified when its ready for collection. | `UNDELIVERABLE_RETURNED_TO_SENDER` | The shipment has been returned to the sender. Please contact the sender for further information.
[JsonConverter(typeof(StatusDetailCodeJsonConverter))]
public class StatusDetailCode
{
@@ -356,18 +356,6 @@ public StatusDetailCode(string value)
public static StatusDetailCode HELDBYCUSTOMS { get; } = new("HELD_BY_CUSTOMS");
- ///
- /// Enum HELDBYEXPORTCUSTOMS for value: HELD_BY_EXPORT_CUSTOMS
- ///
- public static StatusDetailCode HELDBYEXPORTCUSTOMS { get; } = new("HELD_BY_EXPORT_CUSTOMS");
-
-
- ///
- /// Enum HELDBYIMPORTCUSTOMS for value: HELD_BY_IMPORT_CUSTOMS
- ///
- public static StatusDetailCode HELDBYIMPORTCUSTOMS { get; } = new("HELD_BY_IMPORT_CUSTOMS");
-
-
///
/// Enum INCORRECTDECLARATION for value: INCORRECT_DECLARATION
///
@@ -482,6 +470,36 @@ public StatusDetailCode(string value)
public static StatusDetailCode UNSPECIFIEDEXCEPTION { get; } = new("UNSPECIFIED_EXCEPTION");
+ ///
+ /// Enum TRACKINGEXPIRED for value: TRACKING_EXPIRED
+ ///
+ public static StatusDetailCode TRACKINGEXPIRED { get; } = new("TRACKING_EXPIRED");
+
+
+ ///
+ /// Enum DUTYNOTPAID for value: DUTY_NOT_PAID
+ ///
+ public static StatusDetailCode DUTYNOTPAID { get; } = new("DUTY_NOT_PAID");
+
+
+ ///
+ /// Enum PARCELREDIRECTEDBYCARRIER for value: PARCEL_REDIRECTED_BY_CARRIER
+ ///
+ public static StatusDetailCode PARCELREDIRECTEDBYCARRIER { get; } = new("PARCEL_REDIRECTED_BY_CARRIER");
+
+
+ ///
+ /// Enum DELIVEREDTOPICKUPPOINT for value: DELIVERED_TO_PICKUP_POINT
+ ///
+ public static StatusDetailCode DELIVEREDTOPICKUPPOINT { get; } = new("DELIVERED_TO_PICKUP_POINT");
+
+
+ ///
+ /// Enum UNDELIVERABLERETURNEDTOSENDER for value: UNDELIVERABLE_RETURNED_TO_SENDER
+ ///
+ public static StatusDetailCode UNDELIVERABLERETURNEDTOSENDER { get; } = new("UNDELIVERABLE_RETURNED_TO_SENDER");
+
+
///
/// Get a string representation of the current value
///
diff --git a/ShipEngineSDK/Model/Tag.cs b/ShipEngineSDK/Model/Tag.cs
index 2a551bd2..88a2958c 100644
--- a/ShipEngineSDK/Model/Tag.cs
+++ b/ShipEngineSDK/Model/Tag.cs
@@ -36,6 +36,29 @@ public partial class Tag
[JsonPropertyName("name"), JsonPropertyOrder(1)]
public required string Name { get; set; }
+ ///
+ /// A hex-coded string identifying the color of the tag.
+ ///
+ /// A hex-coded string identifying the color of the tag.
+ ///
+ /// #FF0000
+ ///
+ [JsonPropertyName("color"), JsonPropertyOrder(2)]
+ public string? Color { get; set; }
+
+ ///
+ /// An integer uniquely identifying a tag.
+ ///
+ /// An integer uniquely identifying a tag.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 8712
+ ///
+ [JsonPropertyName("tag_id"), JsonInclude]
+ public int? TagId { get; set; }
+
///
/// Returns the string presentation of the object
@@ -47,6 +70,8 @@ public override string ToString()
sb.Append("class Tag {\n");
#pragma warning disable CS0612 // Type or member is obsolete
sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" Color: ").Append(Color).Append("\n");
+ sb.Append(" TagId: ").Append(TagId).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/TrackEvent.cs b/ShipEngineSDK/Model/TrackEvent.cs
index 8d6b32b4..91256968 100644
--- a/ShipEngineSDK/Model/TrackEvent.cs
+++ b/ShipEngineSDK/Model/TrackEvent.cs
@@ -200,6 +200,19 @@ public partial class TrackEvent
[JsonPropertyName("longitude"), JsonPropertyOrder(16)]
public double? Longitude { get; set; }
+ ///
+ /// A URL to an image captured at the time of delivery, serving as evidence that the shipment was successfully delivered to the recipient. It can be used to capture things like recipient's signature, location of delivery, condition of the package upon delivery, etc.
+ ///
+ /// A URL to an image captured at the time of delivery, serving as evidence that the shipment was successfully delivered to the recipient. It can be used to capture things like recipient's signature, location of delivery, condition of the package upon delivery, etc.
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// https://tracking-service-prod.s3.amazonaws.com/proof-of-delivery/dummy_module/0000000001/bc6dd17969bd97f24262ca73ac6ff36062aafecba25ef16d4178264bf7c0e72c.png
+ ///
+ [JsonPropertyName("proof_of_delivery_url"), JsonInclude]
+ public string? ProofOfDeliveryUrl { get; set; }
+
///
/// Signer information
///
@@ -213,7 +226,7 @@ public partial class TrackEvent
///
/// Gets or Sets StatusDetailCode
///
- [JsonPropertyName("status_detail_code"), JsonPropertyOrder(18)]
+ [JsonPropertyName("status_detail_code"), JsonPropertyOrder(19)]
public StatusDetailCode? StatusDetailCode { get; set; }
///
@@ -255,6 +268,7 @@ public override string ToString()
sb.Append(" EventCode: ").Append(EventCode).Append("\n");
sb.Append(" Latitude: ").Append(Latitude).Append("\n");
sb.Append(" Longitude: ").Append(Longitude).Append("\n");
+ sb.Append(" ProofOfDeliveryUrl: ").Append(ProofOfDeliveryUrl).Append("\n");
sb.Append(" Signer: ").Append(Signer).Append("\n");
sb.Append(" StatusDetailCode: ").Append(StatusDetailCode).Append("\n");
sb.Append(" StatusDetailDescription: ").Append(StatusDetailDescription).Append("\n");
diff --git a/ShipEngineSDK/Model/UpdateShipmentRequestBody.cs b/ShipEngineSDK/Model/UpdateShipmentRequestBody.cs
index e1800690..447b3211 100644
--- a/ShipEngineSDK/Model/UpdateShipmentRequestBody.cs
+++ b/ShipEngineSDK/Model/UpdateShipmentRequestBody.cs
@@ -264,6 +264,19 @@ public partial class UpdateShipmentRequestBody
[JsonPropertyName("warehouse_id"), JsonPropertyOrder(28)]
public string? WarehouseId { get; set; }
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
///
/// Returns the string presentation of the object
@@ -302,6 +315,7 @@ public override string ToString()
sb.Append(" TotalWeight: ").Append(TotalWeight).Append("\n");
sb.Append(" ValidateAddress: ").Append(ValidateAddress).Append("\n");
sb.Append(" WarehouseId: ").Append(WarehouseId).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/UpdateShipmentResponseBody.cs b/ShipEngineSDK/Model/UpdateShipmentResponseBody.cs
index c531141f..b38a2a06 100644
--- a/ShipEngineSDK/Model/UpdateShipmentResponseBody.cs
+++ b/ShipEngineSDK/Model/UpdateShipmentResponseBody.cs
@@ -275,6 +275,19 @@ public partial class UpdateShipmentResponseBody
[JsonPropertyName("warehouse_id"), JsonPropertyOrder(29)]
public string? WarehouseId { get; set; }
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location
+ ///
+ /// This should not be used for input as it will be ignored on serialization.
+ ///
+ ///
+ /// 6
+ ///
+ [JsonPropertyName("zone"), JsonInclude]
+ public int? Zone { get; set; }
+
///
/// Returns the string presentation of the object
@@ -314,6 +327,7 @@ public override string ToString()
sb.Append(" ShippingRuleId: ").Append(ShippingRuleId).Append("\n");
sb.Append(" TaxIdentifiers: ").Append(TaxIdentifiers).Append("\n");
sb.Append(" WarehouseId: ").Append(WarehouseId).Append("\n");
+ sb.Append(" Zone: ").Append(Zone).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
return sb.ToString();
diff --git a/ShipEngineSDK/Model/UpdateWebhookRequestBody.cs b/ShipEngineSDK/Model/UpdateWebhookRequestBody.cs
index 3989d3c8..fd3e30a2 100644
--- a/ShipEngineSDK/Model/UpdateWebhookRequestBody.cs
+++ b/ShipEngineSDK/Model/UpdateWebhookRequestBody.cs
@@ -33,6 +33,26 @@ public partial class UpdateWebhookRequestBody
[JsonPropertyName("headers"), JsonPropertyOrder(1)]
public List? Headers { get; set; }
+ ///
+ /// The name of the webhook
+ ///
+ /// The name of the webhook
+ ///
+ /// My Updated Webhook
+ ///
+ [JsonPropertyName("name"), JsonPropertyOrder(2)]
+ public string? Name { get; set; }
+
+ ///
+ /// Store ID
+ ///
+ /// Store ID
+ ///
+ /// 123456
+ ///
+ [JsonPropertyName("store_id"), JsonPropertyOrder(3)]
+ public int? StoreId { get; set; }
+
///
/// The url that the wehbook sends the request
///
@@ -40,7 +60,7 @@ public partial class UpdateWebhookRequestBody
///
/// http://api.shipengine.com/v1/labels/se-28529731
///
- [JsonPropertyName("url"), JsonPropertyOrder(2)]
+ [JsonPropertyName("url"), JsonPropertyOrder(4)]
public string? Url { get; set; }
@@ -54,6 +74,8 @@ public override string ToString()
sb.Append("class UpdateWebhookRequestBody {\n");
#pragma warning disable CS0612 // Type or member is obsolete
sb.Append(" Headers: ").Append(Headers).Append("\n");
+ sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" StoreId: ").Append(StoreId).Append("\n");
sb.Append(" Url: ").Append(Url).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
sb.Append("}\n");
diff --git a/ShipEngineSDK/Model/Webhook.cs b/ShipEngineSDK/Model/Webhook.cs
index 2978bd1b..5102ad1e 100644
--- a/ShipEngineSDK/Model/Webhook.cs
+++ b/ShipEngineSDK/Model/Webhook.cs
@@ -39,6 +39,26 @@ public partial class Webhook
[JsonPropertyName("headers"), JsonPropertyOrder(2)]
public List? Headers { get; set; }
+ ///
+ /// The name of the webhook
+ ///
+ /// The name of the webhook
+ ///
+ /// My Webhook
+ ///
+ [JsonPropertyName("name"), JsonPropertyOrder(3)]
+ public string? Name { get; set; }
+
+ ///
+ /// Store ID
+ ///
+ /// Store ID
+ ///
+ /// 123456
+ ///
+ [JsonPropertyName("store_id"), JsonPropertyOrder(4)]
+ public int? StoreId { get; set; }
+
///
/// The url that the webhook sends the request to
///
@@ -46,7 +66,7 @@ public partial class Webhook
///
/// http://api.shipengine.com/v1/labels/se-28529731
///
- [JsonPropertyName("url"), JsonPropertyOrder(3)]
+ [JsonPropertyName("url"), JsonPropertyOrder(5)]
public string? Url { get; set; }
///
@@ -74,6 +94,8 @@ public override string ToString()
#pragma warning disable CS0612 // Type or member is obsolete
sb.Append(" Event: ").Append(Event).Append("\n");
sb.Append(" Headers: ").Append(Headers).Append("\n");
+ sb.Append(" Name: ").Append(Name).Append("\n");
+ sb.Append(" StoreId: ").Append(StoreId).Append("\n");
sb.Append(" Url: ").Append(Url).Append("\n");
sb.Append(" WebhookId: ").Append(WebhookId).Append("\n");
#pragma warning restore CS0612 // Type or member is obsolete
diff --git a/ShipEngineSDK/Model/WebhookEvent.cs b/ShipEngineSDK/Model/WebhookEvent.cs
index d57c9bac..378d0905 100644
--- a/ShipEngineSDK/Model/WebhookEvent.cs
+++ b/ShipEngineSDK/Model/WebhookEvent.cs
@@ -21,9 +21,9 @@
namespace ShipEngineSDK.Model;
///
-/// The possible webook event values
+/// The possible webhook event values
///
-/// The possible webook event values
+/// The possible webhook event values
[JsonConverter(typeof(WebhookEventJsonConverter))]
public class WebhookEvent
{
diff --git a/ShipEngineSDK/ShipEngineSDK.csproj b/ShipEngineSDK/ShipEngineSDK.csproj
index bd9a837b..6171931b 100644
--- a/ShipEngineSDK/ShipEngineSDK.csproj
+++ b/ShipEngineSDK/ShipEngineSDK.csproj
@@ -4,7 +4,7 @@
ShipEngine
sdk;rest;api;shipping;rates;label;tracking;cost;address;validation;normalization;fedex;ups;usps;
- 3.0.0
+ 3.1.0
ShipEngine
ShipEngine
The official ShipEngine C# SDK for .NET
diff --git a/docs/apis/BatchesApi.md b/docs/apis/BatchesApi.md
index 25232c33..1b85747d 100644
--- a/docs/apis/BatchesApi.md
+++ b/docs/apis/BatchesApi.md
@@ -358,9 +358,9 @@ namespace Example
# **ListBatches**
```csharp
-ListBatchesResponseBody ListBatches (BatchStatus status = null, BatchesSortBy sortBy = null, SortDir sortDir = null, string batchNumber = null, int page = null, int pageSize = null, CancellationToken cancellationToken = default)
+ListBatchesResponseBody ListBatches (BatchStatus status = null, BatchesSortBy sortBy = null, DateTimeOffset createdAtStart = null, DateTimeOffset createdAtEnd = null, DateTimeOffset processedAtStart = null, DateTimeOffset processedAtEnd = null, SortDir sortDir = null, string batchNumber = null, int page = null, int pageSize = null, CancellationToken cancellationToken = default)
-ListBatchesResponseBody ListBatches (HttpClient methodClient, BatchStatus status = null, BatchesSortBy sortBy = null, SortDir sortDir = null, string batchNumber = null, int page = null, int pageSize = null, CancellationToken cancellationToken = default)
+ListBatchesResponseBody ListBatches (HttpClient methodClient, BatchStatus status = null, BatchesSortBy sortBy = null, DateTimeOffset createdAtStart = null, DateTimeOffset createdAtEnd = null, DateTimeOffset processedAtStart = null, DateTimeOffset processedAtEnd = null, SortDir sortDir = null, string batchNumber = null, int page = null, int pageSize = null, CancellationToken cancellationToken = default)
```
List Batches
@@ -383,6 +383,10 @@ namespace Example
var shipEngine = new ShipEngine("api_key");
var status = (BatchStatus) "open";
var sortBy = (BatchesSortBy) "ship_date";
+ var createdAtStart = 2019-03-12T19:24:13.657Z;
+ var createdAtEnd = 2019-03-12T19:24:13.657Z;
+ var processedAtStart = 2019-03-12T19:24:13.657Z;
+ var processedAtEnd = 2019-03-12T19:24:13.657Z;
var sortDir = (SortDir) "asc";
var batchNumber = "batchNumber_example";
var page = 2;
@@ -391,7 +395,7 @@ namespace Example
try
{
// List Batches
- ListBatchesResponseBody result = await shipEngine.ListBatches(status, sortBy, sortDir, batchNumber, page, pageSize);
+ ListBatchesResponseBody result = await shipEngine.ListBatches(status, sortBy, createdAtStart, createdAtEnd, processedAtStart, processedAtEnd, sortDir, batchNumber, page, pageSize);
Debug.WriteLine(result);
}
catch (ShipEngineException e)
@@ -411,6 +415,10 @@ namespace Example
| **methodClient** | [**HttpClient**](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netstandard-2.0) | The HttpClient instance to use for the request. | |
| **status** | **BatchStatus** | | [optional] |
| **sortBy** | **BatchesSortBy** | | [optional] |
+| **createdAtStart** | **DateTimeOffset** | Only return batches that were created on or after a specific date/time | [optional] |
+| **createdAtEnd** | **DateTimeOffset** | Only return batches that were created on or before a specific date/time | [optional] |
+| **processedAtStart** | **DateTimeOffset** | Only return batches that were processed on or after a specific date/time | [optional] |
+| **processedAtEnd** | **DateTimeOffset** | Only return batches that were processed on or before a specific date/time | [optional] |
| **sortDir** | **SortDir** | Controls the sort order of the query. | [optional] |
| **batchNumber** | **string** | Batch Number | [optional] |
| **page** | **int** | Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned. | [optional] [default to 1] |
diff --git a/docs/apis/LabelsApi.md b/docs/apis/LabelsApi.md
index c5c302fa..99b25345 100644
--- a/docs/apis/LabelsApi.md
+++ b/docs/apis/LabelsApi.md
@@ -2,8 +2,10 @@
| Method | Description |
|--------|-------------|
+| [**CreateCombinedLabelDocument**](LabelsApi.md#createcombinedlabeldocument) | Created Combined Label Document |
| [**CreateLabel**](LabelsApi.md#createlabel) | Purchase Label |
| [**CreateLabelFromRate**](LabelsApi.md#createlabelfromrate) | Purchase Label with Rate ID |
+| [**CreateLabelFromRateShopper**](LabelsApi.md#createlabelfromrateshopper) | Purchase Label from Rate Shopper |
| [**CreateLabelFromShipment**](LabelsApi.md#createlabelfromshipment) | Purchase Label with Shipment ID |
| [**CreateReturnLabel**](LabelsApi.md#createreturnlabel) | Create a return label |
| [**GetLabelByExternalShipmentId**](LabelsApi.md#getlabelbyexternalshipmentid) | Get Label By External Shipment ID |
@@ -12,6 +14,62 @@
| [**ListLabels**](LabelsApi.md#listlabels) | List labels |
| [**VoidLabel**](LabelsApi.md#voidlabel) | Void a Label By ID |
+
+# **CreateCombinedLabelDocument**
+```csharp
+CreateCombinedLabelDocumentResponseBodyYaml CreateCombinedLabelDocument (CreateCombinedLabelDocumentRequestBody createCombinedLabelDocumentRequestBody, CancellationToken cancellationToken = default)
+
+CreateCombinedLabelDocumentResponseBodyYaml CreateCombinedLabelDocument (HttpClient methodClient, CreateCombinedLabelDocumentRequestBody createCombinedLabelDocumentRequestBody, CancellationToken cancellationToken = default)
+```
+
+Created Combined Label Document
+
+Download a combined label file
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using ShipEngineSDK;
+using ShipEngineSDK.Model;
+
+namespace Example
+{
+ public class CreateCombinedLabelDocumentExample
+ {
+ public static async Task Main()
+ {
+ var shipEngine = new ShipEngine("api_key");
+ var createCombinedLabelDocumentRequestBody = new CreateCombinedLabelDocumentRequestBody();
+
+ try
+ {
+ // Created Combined Label Document
+ CreateCombinedLabelDocumentResponseBodyYaml result = await shipEngine.CreateCombinedLabelDocument(createCombinedLabelDocumentRequestBody);
+ Debug.WriteLine(result);
+ }
+ catch (ShipEngineException e)
+ {
+ Debug.Print("Exception when calling LabelsApi.CreateCombinedLabelDocument: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+### Parameters
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **methodClient** | [**HttpClient**](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netstandard-2.0) | The HttpClient instance to use for the request. | |
+| **createCombinedLabelDocumentRequestBody** | [**CreateCombinedLabelDocumentRequestBody**](../../docs//models/CreateCombinedLabelDocumentRequestBody.md) | | |
+| **cancellationToken** | [**CancellationToken**](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken?view=netstandard-2.0) | The cancellation token to use for the request. | |
+
+### Return type
+
+[**CreateCombinedLabelDocumentResponseBodyYaml**](../models/CreateCombinedLabelDocumentResponseBodyYaml.md)
+
# **CreateLabel**
```csharp
@@ -126,6 +184,64 @@ namespace Example
[**CreateLabelFromRateResponseBody**](../models/CreateLabelFromRateResponseBody.md)
+
+# **CreateLabelFromRateShopper**
+```csharp
+CreateLabelRateShopperResponseBody CreateLabelFromRateShopper (CreateLabelRateShopperRequestBody createLabelRateShopperRequestBody, RateAttributes rateShopperId, CancellationToken cancellationToken = default)
+
+CreateLabelRateShopperResponseBody CreateLabelFromRateShopper (HttpClient methodClient, CreateLabelRateShopperRequestBody createLabelRateShopperRequestBody, RateAttributes rateShopperId, CancellationToken cancellationToken = default)
+```
+
+Purchase Label from Rate Shopper
+
+Purchase and print a shipping label using the Rate Shopper. The Rate Shopper automatically selects the optimal carrier and service from your wallet carriers based on your specified rate selection strategy (cheapest, fastest, or best_value). For more information about this in the [rates documentation](https://www.shipengine.com/docs/rates/#about-the-response).
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using ShipEngineSDK;
+using ShipEngineSDK.Model;
+
+namespace Example
+{
+ public class CreateLabelFromRateShopperExample
+ {
+ public static async Task Main()
+ {
+ var shipEngine = new ShipEngine("api_key");
+ var createLabelRateShopperRequestBody = new CreateLabelRateShopperRequestBody();
+ var rateShopperId = (RateAttributes) "best_value";
+
+ try
+ {
+ // Purchase Label from Rate Shopper
+ CreateLabelRateShopperResponseBody result = await shipEngine.CreateLabelFromRateShopper(createLabelRateShopperRequestBody, rateShopperId);
+ Debug.WriteLine(result);
+ }
+ catch (ShipEngineException e)
+ {
+ Debug.Print("Exception when calling LabelsApi.CreateLabelFromRateShopper: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
+### Parameters
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **methodClient** | [**HttpClient**](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netstandard-2.0) | The HttpClient instance to use for the request. | |
+| **createLabelRateShopperRequestBody** | [**CreateLabelRateShopperRequestBody**](../../docs//models/CreateLabelRateShopperRequestBody.md) | Label creation details with inline shipment | |
+| **rateShopperId** | **RateAttributes** | The rate selection strategy for the Rate Shopper. This determines which carrier and service will be automatically selected from your wallet carriers based on the rates returned for the shipment. | |
+| **cancellationToken** | [**CancellationToken**](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken?view=netstandard-2.0) | The cancellation token to use for the request. | |
+
+### Return type
+
+[**CreateLabelRateShopperResponseBody**](../models/CreateLabelRateShopperResponseBody.md)
+
# **CreateLabelFromShipment**
```csharp
@@ -194,7 +310,7 @@ CreateReturnLabelResponseBody CreateReturnLabel (HttpClient methodClient, Create
Create a return label
-Create a return label
+Create a return label for an existing outbound label. You can optionally specify a custom RMA (Return Merchandise Authorization) number. If no RMA number is provided, the system will auto-generate one.
### Example
```csharp
diff --git a/docs/apis/TagsApi.md b/docs/apis/TagsApi.md
index 5e9041e0..77122d57 100644
--- a/docs/apis/TagsApi.md
+++ b/docs/apis/TagsApi.md
@@ -3,6 +3,7 @@
| Method | Description |
|--------|-------------|
| [**CreateTag**](TagsApi.md#createtag) | Create a New Tag |
+| [**CreateTag_0**](TagsApi.md#createtag_0) | Create a New Tag |
| [**DeleteTag**](TagsApi.md#deletetag) | Delete Tag |
| [**ListTags**](TagsApi.md#listtags) | Get Tags |
| [**RenameTag**](TagsApi.md#renametag) | Update Tag Name |
@@ -10,14 +11,14 @@
# **CreateTag**
```csharp
-CreateTagResponseBody CreateTag (string tagName, CancellationToken cancellationToken = default)
+CreateTagResponseBody CreateTag (CreateTagRequestBody createTagRequestBody, CancellationToken cancellationToken = default)
-CreateTagResponseBody CreateTag (HttpClient methodClient, string tagName, CancellationToken cancellationToken = default)
+CreateTagResponseBody CreateTag (HttpClient methodClient, CreateTagRequestBody createTagRequestBody, CancellationToken cancellationToken = default)
```
Create a New Tag
-Create a new Tag for customizing how you track your shipments
+Create a new tag for customizing how you track your shipments.
### Example
```csharp
@@ -33,12 +34,12 @@ namespace Example
public static async Task Main()
{
var shipEngine = new ShipEngine("api_key");
- var tagName = "tagName_example";
+ var createTagRequestBody = new CreateTagRequestBody();
try
{
// Create a New Tag
- CreateTagResponseBody result = await shipEngine.CreateTag(tagName);
+ CreateTagResponseBody result = await shipEngine.CreateTag(createTagRequestBody);
Debug.WriteLine(result);
}
catch (ShipEngineException e)
@@ -52,6 +53,62 @@ namespace Example
}
```
+### Parameters
+| Name | Type | Description | Notes |
+|------|------|-------------|-------|
+| **methodClient** | [**HttpClient**](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netstandard-2.0) | The HttpClient instance to use for the request. | |
+| **createTagRequestBody** | [**CreateTagRequestBody**](../../docs//models/CreateTagRequestBody.md) | | |
+| **cancellationToken** | [**CancellationToken**](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken?view=netstandard-2.0) | The cancellation token to use for the request. | |
+
+### Return type
+
+[**CreateTagResponseBody**](../models/CreateTagResponseBody.md)
+
+
+# **CreateTag_0**
+```csharp
+CreateTagResponseBody CreateTag_0 (string tagName, CancellationToken cancellationToken = default)
+
+CreateTagResponseBody CreateTag_0 (HttpClient methodClient, string tagName, CancellationToken cancellationToken = default)
+```
+
+Create a New Tag
+
+Create a new tag for customizing how you track your shipments (deprecated - use POST /v1/tags instead)
+
+### Example
+```csharp
+using System.Collections.Generic;
+using System.Diagnostics;
+using ShipEngineSDK;
+using ShipEngineSDK.Model;
+
+namespace Example
+{
+ public class CreateTag_0Example
+ {
+ public static async Task Main()
+ {
+ var shipEngine = new ShipEngine("api_key");
+ var tagName = "tagName_example";
+
+ try
+ {
+ // Create a New Tag
+ CreateTagResponseBody result = await shipEngine.CreateTag_0(tagName);
+ Debug.WriteLine(result);
+ }
+ catch (ShipEngineException e)
+ {
+ Debug.Print("Exception when calling TagsApi.CreateTag_0: " + e.Message);
+ Debug.Print("Status Code: " + e.ErrorCode);
+ Debug.Print(e.StackTrace);
+ }
+ }
+ }
+}
+```
+
### Parameters
| Name | Type | Description | Notes |
|------|------|-------------|-------|
diff --git a/docs/apis/TrackingApi.md b/docs/apis/TrackingApi.md
index 68421037..76179611 100644
--- a/docs/apis/TrackingApi.md
+++ b/docs/apis/TrackingApi.md
@@ -9,9 +9,9 @@
# **GetTrackingLog**
```csharp
-GetTrackingLogResponseBody GetTrackingLog (string carrierCode = null, string trackingNumber = null, CancellationToken cancellationToken = default)
+GetTrackingLogResponseBody GetTrackingLog (string carrierCode = null, string trackingNumber = null, string carrierId = null, CancellationToken cancellationToken = default)
-GetTrackingLogResponseBody GetTrackingLog (HttpClient methodClient, string carrierCode = null, string trackingNumber = null, CancellationToken cancellationToken = default)
+GetTrackingLogResponseBody GetTrackingLog (HttpClient methodClient, string carrierCode = null, string trackingNumber = null, string carrierId = null, CancellationToken cancellationToken = default)
```
Get Tracking Information
@@ -34,11 +34,12 @@ namespace Example
var shipEngine = new ShipEngine("api_key");
var carrierCode = stamps_com;
var trackingNumber = 9405511899223197428490;
+ var carrierId = "carrierId_example";
try
{
// Get Tracking Information
- GetTrackingLogResponseBody result = await shipEngine.GetTrackingLog(carrierCode, trackingNumber);
+ GetTrackingLogResponseBody result = await shipEngine.GetTrackingLog(carrierCode, trackingNumber, carrierId);
Debug.WriteLine(result);
}
catch (ShipEngineException e)
@@ -58,6 +59,7 @@ namespace Example
| **methodClient** | [**HttpClient**](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netstandard-2.0) | The HttpClient instance to use for the request. | |
| **carrierCode** | **string** | A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] |
| **trackingNumber** | **string** | The tracking number associated with a shipment | [optional] |
+| **carrierId** | **string** | Carrier ID | [optional] |
| **cancellationToken** | [**CancellationToken**](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken?view=netstandard-2.0) | The cancellation token to use for the request. | |
### Return type
@@ -67,9 +69,9 @@ namespace Example
# **StartTracking**
```csharp
-string StartTracking (string carrierCode = null, string trackingNumber = null, CancellationToken cancellationToken = default)
+string StartTracking (string carrierCode = null, string trackingNumber = null, string carrierId = null, CancellationToken cancellationToken = default)
-string StartTracking (HttpClient methodClient, string carrierCode = null, string trackingNumber = null, CancellationToken cancellationToken = default)
+string StartTracking (HttpClient methodClient, string carrierCode = null, string trackingNumber = null, string carrierId = null, CancellationToken cancellationToken = default)
```
Start Tracking a Package
@@ -92,11 +94,12 @@ namespace Example
var shipEngine = new ShipEngine("api_key");
var carrierCode = stamps_com;
var trackingNumber = 9405511899223197428490;
+ var carrierId = "carrierId_example";
try
{
// Start Tracking a Package
- string result = await shipEngine.StartTracking(carrierCode, trackingNumber);
+ string result = await shipEngine.StartTracking(carrierCode, trackingNumber, carrierId);
Debug.WriteLine(result);
}
catch (ShipEngineException e)
@@ -116,6 +119,7 @@ namespace Example
| **methodClient** | [**HttpClient**](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netstandard-2.0) | The HttpClient instance to use for the request. | |
| **carrierCode** | **string** | A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] |
| **trackingNumber** | **string** | The tracking number associated with a shipment | [optional] |
+| **carrierId** | **string** | Carrier ID | [optional] |
| **cancellationToken** | [**CancellationToken**](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken?view=netstandard-2.0) | The cancellation token to use for the request. | |
### Return type
@@ -125,9 +129,9 @@ namespace Example
# **StopTracking**
```csharp
-string StopTracking (string carrierCode = null, string trackingNumber = null, CancellationToken cancellationToken = default)
+string StopTracking (string carrierCode = null, string trackingNumber = null, string carrierId = null, CancellationToken cancellationToken = default)
-string StopTracking (HttpClient methodClient, string carrierCode = null, string trackingNumber = null, CancellationToken cancellationToken = default)
+string StopTracking (HttpClient methodClient, string carrierCode = null, string trackingNumber = null, string carrierId = null, CancellationToken cancellationToken = default)
```
Stop Tracking a Package
@@ -150,11 +154,12 @@ namespace Example
var shipEngine = new ShipEngine("api_key");
var carrierCode = stamps_com;
var trackingNumber = 9405511899223197428490;
+ var carrierId = "carrierId_example";
try
{
// Stop Tracking a Package
- string result = await shipEngine.StopTracking(carrierCode, trackingNumber);
+ string result = await shipEngine.StopTracking(carrierCode, trackingNumber, carrierId);
Debug.WriteLine(result);
}
catch (ShipEngineException e)
@@ -174,6 +179,7 @@ namespace Example
| **methodClient** | [**HttpClient**](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netstandard-2.0) | The HttpClient instance to use for the request. | |
| **carrierCode** | **string** | A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] |
| **trackingNumber** | **string** | The tracking number associated with a shipment | [optional] |
+| **carrierId** | **string** | Carrier ID | [optional] |
| **cancellationToken** | [**CancellationToken**](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken?view=netstandard-2.0) | The cancellation token to use for the request. | |
### Return type
diff --git a/docs/apis/WebhooksApi.md b/docs/apis/WebhooksApi.md
index 8638f7b8..17fdb7ce 100644
--- a/docs/apis/WebhooksApi.md
+++ b/docs/apis/WebhooksApi.md
@@ -18,7 +18,7 @@ CreateWebhookResponseBody CreateWebhook (HttpClient methodClient, CreateWebhookR
Create a Webhook
-Create a webook for specific events in the environment.
+Create a webhook for specific events in the environment.
### Example
```csharp
diff --git a/docs/models/AddressValidatingShipment.md b/docs/models/AddressValidatingShipment.md
index 997446a7..45972981 100644
--- a/docs/models/AddressValidatingShipment.md
+++ b/docs/models/AddressValidatingShipment.md
@@ -33,4 +33,5 @@ Name | Type | Description | Notes
**TotalWeight** | [**Weight**](Weight.md) | The combined weight of all packages in the shipment | [optional] [readonly]
**ValidateAddress** | **ValidateAddress** | | [optional]
**WarehouseId** | **string** | The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified. | [optional]
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [optional] [readonly]
diff --git a/docs/models/AdvancedShipmentOptions.md b/docs/models/AdvancedShipmentOptions.md
index bd0c4db8..0081e781 100644
--- a/docs/models/AdvancedShipmentOptions.md
+++ b/docs/models/AdvancedShipmentOptions.md
@@ -10,7 +10,7 @@ Name | Type | Description | Notes
**BillToCountryCode** | **string** | The two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the third-party that is responsible for shipping costs. | [optional]
**BillToParty** | **BillToParty** | Indicates whether to bill shipping costs to the recipient or to a third-party. When billing to a third-party, the `bill_to_account`, `bill_to_country_code`, and `bill_to_postal_code` fields must also be set. | [optional]
**BillToPostalCode** | **string** | The postal code of the third-party that is responsible for shipping costs. | [optional]
-**CertificateNumber** | **string** | certificate number. | [optional]
+**CertificateNumber** | **string** | certificate_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object. | [optional]
**CollectOnDelivery** | [**CollectOnDelivery**](CollectOnDelivery.md) | | [optional]
**ContainsAlcohol** | **bool** | Indicates that the shipment contains alcohol. | [optional] [default to false]
**CustomField1** | **string** | An arbitrary field that can be used to store information about the shipment. | [optional]
@@ -19,14 +19,17 @@ Name | Type | Description | Notes
**DangerousGoods** | **bool** | Indicates if the Dangerous goods are present in the shipment | [optional] [default to false]
**DangerousGoodsContact** | [**AdvancedShipmentOptionsDangerousGoodsContact**](AdvancedShipmentOptionsDangerousGoodsContact.md) | | [optional]
**DeliveredDutyPaid** | **bool** | Indicates that the shipper is paying the international delivery duties for this shipment. This option is supported by UPS, FedEx, and DHL Express. | [optional] [default to false]
+**DeliveryAsAddressed** | **bool** | Instructs the carrier to deliver the package only to the exact address provided. | [optional] [default to false]
**DryIce** | **bool** | Indicates if the shipment contain dry ice | [optional] [default to false]
**DryIceWeight** | [**Weight**](Weight.md) | The weight of the dry ice in the shipment | [optional]
**FedexFreight** | [**AdvancedShipmentOptionsFedexFreight**](AdvancedShipmentOptionsFedexFreight.md) | | [optional]
**FreightClass** | **string** | The National Motor Freight Traffic Association [freight class](http://www.nmfta.org/pages/nmfc?AspxAutoDetectCookieSupport=1), such as \"77.5\", \"110\", or \"250\". | [optional]
-**InvoiceNumber** | **string** | invoice number. | [optional]
-**LicenseNumber** | **string** | license number. | [optional]
+**InvoiceNumber** | **string** | invoice_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object. | [optional]
+**LicenseNumber** | **string** | license_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object. | [optional]
**NonMachinable** | **bool** | Indicates that the package cannot be processed automatically because it is too large or irregularly shaped. This is primarily for USPS shipments. See [Section 1.2 of the USPS parcel standards](https://pe.usps.com/text/dmm300/101.htm#ep1047495) for details. | [optional] [default to false]
**OriginType** | **OriginType** | | [optional]
+**RegulatedContentType** | **RegulatedContentType** | Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements. | [optional]
+**ReturnAfterFirstAttempt** | **bool** | Ensures the shipment is immediately flagged for return to the sender if the initial delivery attempt fails. | [optional] [default to false]
**SaturdayDelivery** | **bool** | Enables Saturday delivery, if supported by the carrier. | [optional] [default to false]
**ShipperRelease** | **bool** | | [optional]
**ThirdPartyConsignee** | **bool** | Third Party Consignee option is a value-added service that allows the shipper to supply goods without commercial invoices being attached | [optional] [default to false]
diff --git a/docs/models/CalculateRatesRequestBody.md b/docs/models/CalculateRatesRequestBody.md
index f6bf988d..ff67c5aa 100644
--- a/docs/models/CalculateRatesRequestBody.md
+++ b/docs/models/CalculateRatesRequestBody.md
@@ -6,4 +6,6 @@ A rate shipment request body
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**RateOptions** | [**RateRequestBody**](RateRequestBody.md) | The rate options | [optional]
+**ShipFromServicePointId** | **string** | A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address. | [optional]
+**ShipToServicePointId** | **string** | A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address. | [optional]
diff --git a/docs/models/CalculateRatesResponseBody.md b/docs/models/CalculateRatesResponseBody.md
index fabd9823..cfbb9e1d 100644
--- a/docs/models/CalculateRatesResponseBody.md
+++ b/docs/models/CalculateRatesResponseBody.md
@@ -33,4 +33,5 @@ Name | Type | Description | Notes
**ShippingRuleId** | **string** | ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment | [optional]
**TaxIdentifiers** | [**List<TaxIdentifier>**](TaxIdentifier.md) | | [optional]
**WarehouseId** | **string** | The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified. | [optional]
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [optional] [readonly]
diff --git a/docs/models/Carrier.md b/docs/models/Carrier.md
index c2f9cc0d..568fd325 100644
--- a/docs/models/Carrier.md
+++ b/docs/models/Carrier.md
@@ -6,9 +6,11 @@ A carrier object that represents a provider such as UPS, USPS, DHL, etc that has
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**AccountNumber** | **string** | The account number that the carrier is connected to. | [optional] [readonly]
+**AllowsReturns** | **bool** | The carrier has services that support return shipments. | [optional] [readonly]
**Balance** | **decimal** | Current available balance | [optional] [readonly]
**CarrierCode** | **string** | The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] [readonly]
**CarrierId** | **string** | A string that uniquely identifies the carrier. | [optional] [readonly]
+**ConnectionStatus** | **string** | The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use. | [optional] [readonly]
**DisabledByBillingPlan** | **bool** | The carrier is disabled by the current ShipEngine account's billing plan. | [optional] [readonly]
**FriendlyName** | **string** | Screen readable name | [optional] [readonly]
**FundingSourceId** | **string** | Funding source ID for the carrier | [optional] [readonly]
@@ -18,6 +20,8 @@ Name | Type | Description | Notes
**Packages** | [**List<PackageType>**](PackageType.md) | A list of package types that are supported by the carrier | [optional] [readonly]
**Primary** | **bool** | Is this the primary carrier that is used by default when no carrier is specified in label/shipment creation | [optional] [readonly]
**RequiresFundedAmount** | **bool** | Indicates whether the carrier requires funding to use its services | [optional] [readonly]
+**SendRates** | **bool** | The carrier provides rates for the shipment. | [optional] [readonly]
**Services** | [**List<Service>**](Service.md) | A list of services that are offered by the carrier | [optional] [readonly]
**SupportsLabelMessages** | **bool** | The carrier supports adding custom label messages to an order. | [optional] [readonly]
+**SupportsUserManagedRates** | **bool** | The carrier supports user-managed rates for shipments. | [optional] [readonly]
diff --git a/docs/models/CompareBulkRatesRequestBody.md b/docs/models/CompareBulkRatesRequestBody.md
index a3fd9334..279bc1ac 100644
--- a/docs/models/CompareBulkRatesRequestBody.md
+++ b/docs/models/CompareBulkRatesRequestBody.md
@@ -6,4 +6,6 @@ A rate shipments request body
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**RateOptions** | [**RateRequestBody**](RateRequestBody.md) | The rate options |
+**ShipFromServicePointId** | **string** | A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address. | [optional]
+**ShipToServicePointId** | **string** | A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address. | [optional]
diff --git a/docs/models/CreateAndValidateShipment.md b/docs/models/CreateAndValidateShipment.md
index 64ae8fde..2bf4baf2 100644
--- a/docs/models/CreateAndValidateShipment.md
+++ b/docs/models/CreateAndValidateShipment.md
@@ -34,4 +34,5 @@ Name | Type | Description | Notes
**TaxIdentifiers** | [**List<TaxIdentifier>**](TaxIdentifier.md) | | [optional]
**TotalWeight** | [**Weight**](Weight.md) | The combined weight of all packages in the shipment | [optional] [readonly]
**WarehouseId** | **string** | The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified. | [optional]
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [optional] [readonly]
diff --git a/docs/models/CreateCombinedLabelDocumentRequestBody.md b/docs/models/CreateCombinedLabelDocumentRequestBody.md
new file mode 100644
index 00000000..9261e618
--- /dev/null
+++ b/docs/models/CreateCombinedLabelDocumentRequestBody.md
@@ -0,0 +1,11 @@
+# ShipEngineSDK.Model.CreateCombinedLabelDocumentRequestBody
+A create combined label document request body
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**LabelDownloadType** | **LabelDownloadType** | | [optional]
+**LabelFormat** | **string** | The file format for the combined label document; note that currently only `\"pdf\"` is supported. | [optional]
+**LabelIds** | **List<string>** | The list of up to 30 label ids to include in the combined label document. Note that to avoid response size limits, you should only expect to be able to combine 30 single page labels similar in size to that of USPS labels. | [optional]
+
diff --git a/docs/models/CreateCombinedLabelDocumentResponseBodyYaml.md b/docs/models/CreateCombinedLabelDocumentResponseBodyYaml.md
new file mode 100644
index 00000000..7bdac139
--- /dev/null
+++ b/docs/models/CreateCombinedLabelDocumentResponseBodyYaml.md
@@ -0,0 +1,9 @@
+# ShipEngineSDK.Model.CreateCombinedLabelDocumentResponseBodyYaml
+A create combined label document response body
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**LabelDownload** | [**LabelDownload**](LabelDownload.md) | The download for the combined label document | [optional] [readonly]
+
diff --git a/docs/models/CreateLabelFromRateResponseBody.md b/docs/models/CreateLabelFromRateResponseBody.md
index 809cb55d..7f4756f1 100644
--- a/docs/models/CreateLabelFromRateResponseBody.md
+++ b/docs/models/CreateLabelFromRateResponseBody.md
@@ -10,8 +10,11 @@ Name | Type | Description | Notes
**CarrierCode** | **string** | The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] [readonly]
**CarrierId** | **string** | The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label | [optional] [readonly]
**ChargeEvent** | **LabelChargeEvent** | The label charge event. | [optional]
+**Confirmation** | **DeliveryConfirmation** | The type of delivery confirmation that is required for this shipment. | [optional] [readonly]
**CreatedAt** | **DateTimeOffset** | The date and time that the label was created in ShipEngine. | [optional] [readonly]
**DisplayScheme** | **DisplayScheme** | The display format that the label should be shown in. | [optional]
+**ExternalOrderId** | **string** | ID that the Order Source assigne | [optional] [readonly]
+**ExternalShipmentId** | **string** | A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. | [optional] [readonly]
**FormDownload** | [**Link**](Link.md) | The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it. | [optional] [readonly]
**InsuranceClaim** | [**Link**](Link.md) | The link to submit an insurance claim for the shipment. This field is null if the shipment is not insured or if the insurance provider does not support online claim submission. | [optional] [readonly]
**InsuranceCost** | [**MonetaryValue**](MonetaryValue.md) | The insurance cost for this package. Add this to the `shipment_cost` field to get the total cost. | [optional] [readonly]
@@ -27,11 +30,13 @@ Name | Type | Description | Notes
**PackageCode** | **string** | The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc. The code `package` indicates a custom or unknown package type. | [optional] [readonly]
**Packages** | [**List<LabelPackagesInner>**](LabelPackagesInner.md) | The label's package(s). > **Note:** Some carriers only allow one package per label. If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned. | [optional] [readonly]
**PaperlessDownload** | [**PaperlessDownload**](PaperlessDownload.md) | The paperless details which may contain elements like `href`, `instructions` and `handoff_code`. | [optional] [readonly]
+**QrCodeDownload** | [**OptionalLink**](OptionalLink.md) | The QR code download for the package | [optional] [readonly]
**RateDetails** | [**List<RateDetail>**](RateDetail.md) | A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user. | [optional] [readonly]
**RequestedComparisonAmount** | [**MonetaryValue**](MonetaryValue.md) | The total shipping cost for the specified comparison_rate_type. | [optional] [readonly]
**RmaNumber** | **string** | An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value. | [optional]
**ServiceCode** | **string** | The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc. | [optional] [readonly]
**ShipDate** | **DateTimeOffset** | The date that the package was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead. | [optional] [readonly]
+**ShipTo** | [**ShippingAddressTo**](ShippingAddressTo.md) | The recipient's mailing address | [optional] [readonly]
**Shipment** | [**Shipment**](Shipment.md) | The shipment information used to generate the label | [optional]
**ShipmentCost** | [**MonetaryValue**](MonetaryValue.md) | The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs. | [optional] [readonly]
**ShipmentId** | **string** | The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/) | [optional] [readonly]
diff --git a/docs/models/CreateLabelFromShipmentResponseBody.md b/docs/models/CreateLabelFromShipmentResponseBody.md
index 1d4ec3d2..8479491e 100644
--- a/docs/models/CreateLabelFromShipmentResponseBody.md
+++ b/docs/models/CreateLabelFromShipmentResponseBody.md
@@ -10,8 +10,11 @@ Name | Type | Description | Notes
**CarrierCode** | **string** | The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] [readonly]
**CarrierId** | **string** | The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label | [optional] [readonly]
**ChargeEvent** | **LabelChargeEvent** | The label charge event. | [optional]
+**Confirmation** | **DeliveryConfirmation** | The type of delivery confirmation that is required for this shipment. | [optional] [readonly]
**CreatedAt** | **DateTimeOffset** | The date and time that the label was created in ShipEngine. | [optional] [readonly]
**DisplayScheme** | **DisplayScheme** | The display format that the label should be shown in. | [optional]
+**ExternalOrderId** | **string** | ID that the Order Source assigne | [optional] [readonly]
+**ExternalShipmentId** | **string** | A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. | [optional] [readonly]
**FormDownload** | [**Link**](Link.md) | The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it. | [optional] [readonly]
**InsuranceClaim** | [**Link**](Link.md) | The link to submit an insurance claim for the shipment. This field is null if the shipment is not insured or if the insurance provider does not support online claim submission. | [optional] [readonly]
**InsuranceCost** | [**MonetaryValue**](MonetaryValue.md) | The insurance cost for this package. Add this to the `shipment_cost` field to get the total cost. | [optional] [readonly]
@@ -27,11 +30,13 @@ Name | Type | Description | Notes
**PackageCode** | **string** | The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc. The code `package` indicates a custom or unknown package type. | [optional] [readonly]
**Packages** | [**List<LabelPackagesInner>**](LabelPackagesInner.md) | The label's package(s). > **Note:** Some carriers only allow one package per label. If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned. | [optional] [readonly]
**PaperlessDownload** | [**PaperlessDownload**](PaperlessDownload.md) | The paperless details which may contain elements like `href`, `instructions` and `handoff_code`. | [optional] [readonly]
+**QrCodeDownload** | [**OptionalLink**](OptionalLink.md) | The QR code download for the package | [optional] [readonly]
**RateDetails** | [**List<RateDetail>**](RateDetail.md) | A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user. | [optional] [readonly]
**RequestedComparisonAmount** | [**MonetaryValue**](MonetaryValue.md) | The total shipping cost for the specified comparison_rate_type. | [optional] [readonly]
**RmaNumber** | **string** | An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value. | [optional]
**ServiceCode** | **string** | The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc. | [optional] [readonly]
**ShipDate** | **DateTimeOffset** | The date that the package was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead. | [optional] [readonly]
+**ShipTo** | [**ShippingAddressTo**](ShippingAddressTo.md) | The recipient's mailing address | [optional] [readonly]
**Shipment** | [**Shipment**](Shipment.md) | The shipment information used to generate the label | [optional]
**ShipmentCost** | [**MonetaryValue**](MonetaryValue.md) | The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs. | [optional] [readonly]
**ShipmentId** | **string** | The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/) | [optional] [readonly]
diff --git a/docs/models/CreateLabelRateShopperRequestBody.md b/docs/models/CreateLabelRateShopperRequestBody.md
new file mode 100644
index 00000000..596e2538
--- /dev/null
+++ b/docs/models/CreateLabelRateShopperRequestBody.md
@@ -0,0 +1,20 @@
+# ShipEngineSDK.Model.CreateLabelRateShopperRequestBody
+Request body for creating a label using the Rate Shopper. The Rate Shopper automatically selects the carrier and service based on your specified strategy. **Important Constraints:** - You MUST provide shipment details inline in the `shipment` object - You MUST NOT set `shipment_id` (inline shipment only) - You MUST NOT include `carrier_id`, `service_code`, or `shipping_rule_id` in the shipment (Rate Shopper selects these automatically) - Only carriers configured in your wallet will be considered - This endpoint is not available in sandbox mode
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Shipment** | [**PartialShipmentForRateShopper**](PartialShipmentForRateShopper.md) | The shipment details for which to create a label. Must be provided inline. The carrier_id, service_code, and shipping_rule_id are not included as these will be automatically determined by the Rate Shopper based on your strategy. |
+**ChargeEvent** | **LabelChargeEvent** | The label charge event. | [optional]
+**DisplayScheme** | **DisplayScheme** | The display format that the label should be shown in. | [optional]
+**IsReturnLabel** | **bool** | Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned. | [optional]
+**LabelDownloadType** | **LabelDownloadType** | | [optional]
+**LabelFormat** | **LabelFormat** | The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats. | [optional]
+**LabelImageId** | **string** | The label image resource that was used to create a custom label image. | [optional]
+**LabelLayout** | **LabelLayout** | The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format. | [optional]
+**OutboundLabelId** | **string** | The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is required by some carriers. | [optional]
+**RmaNumber** | **string** | An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value. | [optional]
+**TestLabel** | **bool** | Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account. | [optional] [default to false]
+**ValidateAddress** | **ValidateAddress** | | [optional]
+
diff --git a/docs/models/CreateLabelRateShopperResponseBody.md b/docs/models/CreateLabelRateShopperResponseBody.md
new file mode 100644
index 00000000..ffc39c27
--- /dev/null
+++ b/docs/models/CreateLabelRateShopperResponseBody.md
@@ -0,0 +1,53 @@
+# ShipEngineSDK.Model.CreateLabelRateShopperResponseBody
+The response from creating a label using the Rate Shopper. Includes all standard label information plus the rate_shopper_id indicating which strategy was used.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**AlternativeIdentifiers** | [**List<AlternativeIdentifier>**](AlternativeIdentifier.md) | Additional information some carriers may provide by which to identify a given label in their system. | [optional] [readonly]
+**BatchId** | **string** | If this label was created as part of a [batch](https://www.shipengine.com/docs/labels/bulk/), then this is the unique ID of that batch. | [optional] [readonly]
+**CarrierCode** | **string** | The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] [readonly]
+**CarrierId** | **string** | The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label | [optional] [readonly]
+**ChargeEvent** | **LabelChargeEvent** | The label charge event. | [optional]
+**Confirmation** | **DeliveryConfirmation** | The type of delivery confirmation that is required for this shipment. | [optional] [readonly]
+**CreatedAt** | **DateTimeOffset** | The date and time that the label was created in ShipEngine. | [optional] [readonly]
+**DisplayScheme** | **DisplayScheme** | The display format that the label should be shown in. | [optional]
+**ExternalOrderId** | **string** | ID that the Order Source assigne | [optional] [readonly]
+**ExternalShipmentId** | **string** | A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. | [optional] [readonly]
+**FormDownload** | [**Link**](Link.md) | The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it. | [optional] [readonly]
+**InsuranceClaim** | [**Link**](Link.md) | The link to submit an insurance claim for the shipment. This field is null if the shipment is not insured or if the insurance provider does not support online claim submission. | [optional] [readonly]
+**InsuranceCost** | [**MonetaryValue**](MonetaryValue.md) | The insurance cost for this package. Add this to the `shipment_cost` field to get the total cost. | [optional] [readonly]
+**IsInternational** | **bool** | Indicates whether this is an international shipment. That is, the originating country and destination country are different. | [optional] [readonly]
+**IsReturnLabel** | **bool** | Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned. | [optional]
+**LabelDownload** | [**LabelDownload**](LabelDownload.md) | | [optional] [readonly]
+**LabelDownloadType** | **LabelDownloadType** | | [optional]
+**LabelFormat** | **LabelFormat** | The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats. | [optional]
+**LabelId** | **string** | A string that uniquely identifies the label. This ID is generated by ShipEngine when the label is created. | [optional] [readonly]
+**LabelImageId** | **string** | The label image resource that was used to create a custom label image. | [optional]
+**LabelLayout** | **LabelLayout** | The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format. | [optional]
+**OutboundLabelId** | **string** | The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is required by some carriers. | [optional]
+**PackageCode** | **string** | The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc. The code `package` indicates a custom or unknown package type. | [optional] [readonly]
+**Packages** | [**List<LabelPackagesInner>**](LabelPackagesInner.md) | The label's package(s). > **Note:** Some carriers only allow one package per label. If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned. | [optional] [readonly]
+**PaperlessDownload** | [**PaperlessDownload**](PaperlessDownload.md) | The paperless details which may contain elements like `href`, `instructions` and `handoff_code`. | [optional] [readonly]
+**QrCodeDownload** | [**OptionalLink**](OptionalLink.md) | The QR code download for the package | [optional] [readonly]
+**RateDetails** | [**List<RateDetail>**](RateDetail.md) | A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user. | [optional] [readonly]
+**RateShopperId** | **string** | The rate selection strategy that was used to create this label. This will match the rate_shopper_id provided in the request path. | [optional] [readonly]
+**RequestedComparisonAmount** | [**MonetaryValue**](MonetaryValue.md) | The total shipping cost for the specified comparison_rate_type. | [optional] [readonly]
+**RmaNumber** | **string** | An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value. | [optional]
+**ServiceCode** | **string** | The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc. | [optional] [readonly]
+**ShipDate** | **DateTimeOffset** | The date that the package was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead. | [optional] [readonly]
+**ShipTo** | [**ShippingAddressTo**](ShippingAddressTo.md) | The recipient's mailing address | [optional] [readonly]
+**Shipment** | [**Shipment**](Shipment.md) | The shipment information used to generate the label | [optional]
+**ShipmentCost** | [**MonetaryValue**](MonetaryValue.md) | The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs. | [optional] [readonly]
+**ShipmentId** | **string** | The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/) | [optional] [readonly]
+**Status** | **LabelStatus** | | [optional] [readonly]
+**TestLabel** | **bool** | Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account. | [optional] [default to false]
+**Trackable** | **bool** | Indicates whether the shipment is trackable, in which case the `tracking_status` field will reflect the current status and each package will have a `tracking_number`. | [optional] [readonly]
+**TrackingNumber** | **string** | The tracking number for the package. Tracking number formats vary across carriers. | [optional] [readonly]
+**TrackingStatus** | **TrackingStatus** | The current status of the package, such as `in_transit` or `delivered` | [optional] [readonly]
+**TrackingUrl** | **string** | The URL to track the package. This URL is provided by the carrier and is unique to the tracking number. | [optional] [readonly]
+**ValidateAddress** | **ValidateAddress** | | [optional]
+**Voided** | **bool** | Indicates whether the label has been [voided](https://www.shipengine.com/docs/labels/voiding/) | [optional] [readonly]
+**VoidedAt** | **DateTimeOffset** | The date and time that the label was [voided](https://www.shipengine.com/docs/labels/voiding/), or `null` if the label has not been voided | [optional] [readonly]
+
diff --git a/docs/models/CreateLabelResponseBody.md b/docs/models/CreateLabelResponseBody.md
index 1e5f4ff6..63b421ac 100644
--- a/docs/models/CreateLabelResponseBody.md
+++ b/docs/models/CreateLabelResponseBody.md
@@ -22,6 +22,7 @@ Name | Type | Description | Notes
**Packages** | [**List<LabelPackagesInner>**](LabelPackagesInner.md) | The label's package(s). > **Note:** Some carriers only allow one package per label. If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned. | [readonly]
**ServiceCode** | **string** | The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc. | [readonly]
**ShipDate** | **DateTimeOffset** | The date that the package was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead. | [readonly]
+**ShipTo** | [**ShippingAddressTo**](ShippingAddressTo.md) | The recipient's mailing address | [readonly]
**ShipmentCost** | [**MonetaryValue**](MonetaryValue.md) | The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs. | [readonly]
**ShipmentId** | **string** | The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/) | [readonly]
**Status** | **LabelStatus** | | [readonly]
@@ -30,12 +31,16 @@ Name | Type | Description | Notes
**TrackingStatus** | **TrackingStatus** | The current status of the package, such as `in_transit` or `delivered` | [readonly]
**Voided** | **bool** | Indicates whether the label has been [voided](https://www.shipengine.com/docs/labels/voiding/) | [readonly]
**AlternativeIdentifiers** | [**List<AlternativeIdentifier>**](AlternativeIdentifier.md) | Additional information some carriers may provide by which to identify a given label in their system. | [optional] [readonly]
+**Confirmation** | **DeliveryConfirmation** | The type of delivery confirmation that is required for this shipment. | [optional] [readonly]
+**ExternalOrderId** | **string** | ID that the Order Source assigne | [readonly]
+**ExternalShipmentId** | **string** | A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. | [readonly]
**FormDownload** | [**Link**](Link.md) | The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it. | [readonly]
**InsuranceClaim** | [**Link**](Link.md) | The link to submit an insurance claim for the shipment. This field is null if the shipment is not insured or if the insurance provider does not support online claim submission. | [readonly]
**LabelDownloadType** | **LabelDownloadType** | | [optional]
**LabelImageId** | **string** | The label image resource that was used to create a custom label image. |
**OutboundLabelId** | **string** | The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is required by some carriers. | [optional]
**PaperlessDownload** | [**PaperlessDownload**](PaperlessDownload.md) | The paperless details which may contain elements like `href`, `instructions` and `handoff_code`. | [readonly]
+**QrCodeDownload** | [**OptionalLink**](OptionalLink.md) | The QR code download for the package | [readonly]
**RateDetails** | [**List<RateDetail>**](RateDetail.md) | A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user. | [optional] [readonly]
**RequestedComparisonAmount** | [**MonetaryValue**](MonetaryValue.md) | The total shipping cost for the specified comparison_rate_type. | [optional] [readonly]
**RmaNumber** | **string** | An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value. |
diff --git a/docs/models/CreateReturnLabelRequestBody.md b/docs/models/CreateReturnLabelRequestBody.md
index 50d5c946..543fcec3 100644
--- a/docs/models/CreateReturnLabelRequestBody.md
+++ b/docs/models/CreateReturnLabelRequestBody.md
@@ -11,4 +11,5 @@ Name | Type | Description | Notes
**LabelFormat** | **LabelFormat** | The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats. | [optional]
**LabelImageId** | **string** | The label image resource that was used to create a custom label image. | [optional]
**LabelLayout** | **LabelLayout** | The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format. | [optional]
+**RmaNumber** | **string** | An optional Return Merchandise Authorization number. If provided, this value will be used as the return label's RMA number. If omitted, the system will auto-generate an RMA number (current default behavior). You can set it to any string value. | [optional]
diff --git a/docs/models/CreateReturnLabelResponseBody.md b/docs/models/CreateReturnLabelResponseBody.md
index 59cadf6a..4c750620 100644
--- a/docs/models/CreateReturnLabelResponseBody.md
+++ b/docs/models/CreateReturnLabelResponseBody.md
@@ -10,8 +10,11 @@ Name | Type | Description | Notes
**CarrierCode** | **string** | The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] [readonly]
**CarrierId** | **string** | The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label | [optional] [readonly]
**ChargeEvent** | **LabelChargeEvent** | The label charge event. | [optional]
+**Confirmation** | **DeliveryConfirmation** | The type of delivery confirmation that is required for this shipment. | [optional] [readonly]
**CreatedAt** | **DateTimeOffset** | The date and time that the label was created in ShipEngine. | [optional] [readonly]
**DisplayScheme** | **DisplayScheme** | The display format that the label should be shown in. | [optional]
+**ExternalOrderId** | **string** | ID that the Order Source assigne | [optional] [readonly]
+**ExternalShipmentId** | **string** | A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. | [optional] [readonly]
**FormDownload** | [**Link**](Link.md) | The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it. | [optional] [readonly]
**InsuranceClaim** | [**Link**](Link.md) | The link to submit an insurance claim for the shipment. This field is null if the shipment is not insured or if the insurance provider does not support online claim submission. | [optional] [readonly]
**InsuranceCost** | [**MonetaryValue**](MonetaryValue.md) | The insurance cost for this package. Add this to the `shipment_cost` field to get the total cost. | [optional] [readonly]
@@ -27,11 +30,13 @@ Name | Type | Description | Notes
**PackageCode** | **string** | The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc. The code `package` indicates a custom or unknown package type. | [optional] [readonly]
**Packages** | [**List<LabelPackagesInner>**](LabelPackagesInner.md) | The label's package(s). > **Note:** Some carriers only allow one package per label. If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned. | [optional] [readonly]
**PaperlessDownload** | [**PaperlessDownload**](PaperlessDownload.md) | The paperless details which may contain elements like `href`, `instructions` and `handoff_code`. | [optional] [readonly]
+**QrCodeDownload** | [**OptionalLink**](OptionalLink.md) | The QR code download for the package | [optional] [readonly]
**RateDetails** | [**List<RateDetail>**](RateDetail.md) | A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user. | [optional] [readonly]
**RequestedComparisonAmount** | [**MonetaryValue**](MonetaryValue.md) | The total shipping cost for the specified comparison_rate_type. | [optional] [readonly]
**RmaNumber** | **string** | An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value. | [optional]
**ServiceCode** | **string** | The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc. | [optional] [readonly]
**ShipDate** | **DateTimeOffset** | The date that the package was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead. | [optional] [readonly]
+**ShipTo** | [**ShippingAddressTo**](ShippingAddressTo.md) | The recipient's mailing address | [optional] [readonly]
**Shipment** | [**Shipment**](Shipment.md) | The shipment information used to generate the label | [optional]
**ShipmentCost** | [**MonetaryValue**](MonetaryValue.md) | The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs. | [optional] [readonly]
**ShipmentId** | **string** | The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/) | [optional] [readonly]
diff --git a/docs/models/CreateTagRequestBody.md b/docs/models/CreateTagRequestBody.md
new file mode 100644
index 00000000..e548f238
--- /dev/null
+++ b/docs/models/CreateTagRequestBody.md
@@ -0,0 +1,10 @@
+# ShipEngineSDK.Model.CreateTagRequestBody
+A create tag request body
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Name** | **string** | The tag name. |
+**Color** | **string** | A hex-coded string identifying the color of the tag. | [optional]
+
diff --git a/docs/models/CreateTagResponseBody.md b/docs/models/CreateTagResponseBody.md
index 7f7990a3..db1bd963 100644
--- a/docs/models/CreateTagResponseBody.md
+++ b/docs/models/CreateTagResponseBody.md
@@ -6,4 +6,6 @@ Response body for creating tags
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Name** | **string** | The tag name. |
+**Color** | **string** | A hex-coded string identifying the color of the tag. | [optional]
+**TagId** | **int** | An integer uniquely identifying a tag. | [optional] [readonly]
diff --git a/docs/models/CreateWebhookRequestBody.md b/docs/models/CreateWebhookRequestBody.md
index 223fb53e..1cf5747d 100644
--- a/docs/models/CreateWebhookRequestBody.md
+++ b/docs/models/CreateWebhookRequestBody.md
@@ -8,4 +8,6 @@ Name | Type | Description | Notes
**Event** | **WebhookEvent** | |
**Url** | **string** | The url that the webhook sends the request to |
**Headers** | [**List<WebhookHeader>**](WebhookHeader.md) | Array of custom webhook headers | [optional]
+**Name** | **string** | The name of the webhook | [optional]
+**StoreId** | **int** | Store ID | [optional]
diff --git a/docs/models/CreateWebhookResponseBody.md b/docs/models/CreateWebhookResponseBody.md
index dbf1bce5..91c597d3 100644
--- a/docs/models/CreateWebhookResponseBody.md
+++ b/docs/models/CreateWebhookResponseBody.md
@@ -9,4 +9,6 @@ Name | Type | Description | Notes
**Url** | **string** | The url that the webhook sends the request to |
**WebhookId** | **string** | A string that uniquely identifies the webhook | [readonly]
**Headers** | [**List<WebhookHeader>**](WebhookHeader.md) | Array of custom webhook headers | [optional]
+**Name** | **string** | The name of the webhook | [optional]
+**StoreId** | **int** | Store ID | [optional]
diff --git a/docs/models/EstimatedImportCharges.md b/docs/models/EstimatedImportCharges.md
new file mode 100644
index 00000000..9e6fc79a
--- /dev/null
+++ b/docs/models/EstimatedImportCharges.md
@@ -0,0 +1,10 @@
+# ShipEngineSDK.Model.EstimatedImportCharges
+Estimated import charges for commercial invoices for international shipments.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**Duties** | [**MonetaryValue**](MonetaryValue.md) | Estimated import duties. | [optional]
+**Taxes** | [**MonetaryValue**](MonetaryValue.md) | Estimated import taxes. | [optional]
+
diff --git a/docs/models/GetCarrierByIdResponseBody.md b/docs/models/GetCarrierByIdResponseBody.md
index 077f31cf..3da7994b 100644
--- a/docs/models/GetCarrierByIdResponseBody.md
+++ b/docs/models/GetCarrierByIdResponseBody.md
@@ -6,9 +6,11 @@ A get carrier by id response body
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**AccountNumber** | **string** | The account number that the carrier is connected to. | [optional] [readonly]
+**AllowsReturns** | **bool** | The carrier has services that support return shipments. | [optional] [readonly]
**Balance** | **decimal** | Current available balance | [optional] [readonly]
**CarrierCode** | **string** | The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] [readonly]
**CarrierId** | **string** | A string that uniquely identifies the carrier. | [optional] [readonly]
+**ConnectionStatus** | **string** | The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use. | [optional] [readonly]
**DisabledByBillingPlan** | **bool** | The carrier is disabled by the current ShipEngine account's billing plan. | [optional] [readonly]
**FriendlyName** | **string** | Screen readable name | [optional] [readonly]
**FundingSourceId** | **string** | Funding source ID for the carrier | [optional] [readonly]
@@ -18,6 +20,8 @@ Name | Type | Description | Notes
**Packages** | [**List<PackageType>**](PackageType.md) | A list of package types that are supported by the carrier | [optional] [readonly]
**Primary** | **bool** | Is this the primary carrier that is used by default when no carrier is specified in label/shipment creation | [optional] [readonly]
**RequiresFundedAmount** | **bool** | Indicates whether the carrier requires funding to use its services | [optional] [readonly]
+**SendRates** | **bool** | The carrier provides rates for the shipment. | [optional] [readonly]
**Services** | [**List<Service>**](Service.md) | A list of services that are offered by the carrier | [optional] [readonly]
**SupportsLabelMessages** | **bool** | The carrier supports adding custom label messages to an order. | [optional] [readonly]
+**SupportsUserManagedRates** | **bool** | The carrier supports user-managed rates for shipments. | [optional] [readonly]
diff --git a/docs/models/GetLabelByExternalShipmentIdResponseBody.md b/docs/models/GetLabelByExternalShipmentIdResponseBody.md
index 71950a4b..90d96de2 100644
--- a/docs/models/GetLabelByExternalShipmentIdResponseBody.md
+++ b/docs/models/GetLabelByExternalShipmentIdResponseBody.md
@@ -10,8 +10,11 @@ Name | Type | Description | Notes
**CarrierCode** | **string** | The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] [readonly]
**CarrierId** | **string** | The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label | [optional] [readonly]
**ChargeEvent** | **LabelChargeEvent** | The label charge event. | [optional]
+**Confirmation** | **DeliveryConfirmation** | The type of delivery confirmation that is required for this shipment. | [optional] [readonly]
**CreatedAt** | **DateTimeOffset** | The date and time that the label was created in ShipEngine. | [optional] [readonly]
**DisplayScheme** | **DisplayScheme** | The display format that the label should be shown in. | [optional]
+**ExternalOrderId** | **string** | ID that the Order Source assigne | [optional] [readonly]
+**ExternalShipmentId** | **string** | A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. | [optional] [readonly]
**FormDownload** | [**Link**](Link.md) | The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it. | [optional] [readonly]
**InsuranceClaim** | [**Link**](Link.md) | The link to submit an insurance claim for the shipment. This field is null if the shipment is not insured or if the insurance provider does not support online claim submission. | [optional] [readonly]
**InsuranceCost** | [**MonetaryValue**](MonetaryValue.md) | The insurance cost for this package. Add this to the `shipment_cost` field to get the total cost. | [optional] [readonly]
@@ -27,11 +30,13 @@ Name | Type | Description | Notes
**PackageCode** | **string** | The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc. The code `package` indicates a custom or unknown package type. | [optional] [readonly]
**Packages** | [**List<LabelPackagesInner>**](LabelPackagesInner.md) | The label's package(s). > **Note:** Some carriers only allow one package per label. If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned. | [optional] [readonly]
**PaperlessDownload** | [**PaperlessDownload**](PaperlessDownload.md) | The paperless details which may contain elements like `href`, `instructions` and `handoff_code`. | [optional] [readonly]
+**QrCodeDownload** | [**OptionalLink**](OptionalLink.md) | The QR code download for the package | [optional] [readonly]
**RateDetails** | [**List<RateDetail>**](RateDetail.md) | A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user. | [optional] [readonly]
**RequestedComparisonAmount** | [**MonetaryValue**](MonetaryValue.md) | The total shipping cost for the specified comparison_rate_type. | [optional] [readonly]
**RmaNumber** | **string** | An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value. | [optional]
**ServiceCode** | **string** | The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc. | [optional] [readonly]
**ShipDate** | **DateTimeOffset** | The date that the package was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead. | [optional] [readonly]
+**ShipTo** | [**ShippingAddressTo**](ShippingAddressTo.md) | The recipient's mailing address | [optional] [readonly]
**Shipment** | [**Shipment**](Shipment.md) | The shipment information used to generate the label | [optional]
**ShipmentCost** | [**MonetaryValue**](MonetaryValue.md) | The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs. | [optional] [readonly]
**ShipmentId** | **string** | The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/) | [optional] [readonly]
diff --git a/docs/models/GetLabelByIdResponseBody.md b/docs/models/GetLabelByIdResponseBody.md
index 4b4fb7ed..94f91f4f 100644
--- a/docs/models/GetLabelByIdResponseBody.md
+++ b/docs/models/GetLabelByIdResponseBody.md
@@ -10,8 +10,11 @@ Name | Type | Description | Notes
**CarrierCode** | **string** | The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] [readonly]
**CarrierId** | **string** | The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label | [optional] [readonly]
**ChargeEvent** | **LabelChargeEvent** | The label charge event. | [optional]
+**Confirmation** | **DeliveryConfirmation** | The type of delivery confirmation that is required for this shipment. | [optional] [readonly]
**CreatedAt** | **DateTimeOffset** | The date and time that the label was created in ShipEngine. | [optional] [readonly]
**DisplayScheme** | **DisplayScheme** | The display format that the label should be shown in. | [optional]
+**ExternalOrderId** | **string** | ID that the Order Source assigne | [optional] [readonly]
+**ExternalShipmentId** | **string** | A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. | [optional] [readonly]
**FormDownload** | [**Link**](Link.md) | The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it. | [optional] [readonly]
**InsuranceClaim** | [**Link**](Link.md) | The link to submit an insurance claim for the shipment. This field is null if the shipment is not insured or if the insurance provider does not support online claim submission. | [optional] [readonly]
**InsuranceCost** | [**MonetaryValue**](MonetaryValue.md) | The insurance cost for this package. Add this to the `shipment_cost` field to get the total cost. | [optional] [readonly]
@@ -27,11 +30,13 @@ Name | Type | Description | Notes
**PackageCode** | **string** | The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc. The code `package` indicates a custom or unknown package type. | [optional] [readonly]
**Packages** | [**List<LabelPackagesInner>**](LabelPackagesInner.md) | The label's package(s). > **Note:** Some carriers only allow one package per label. If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned. | [optional] [readonly]
**PaperlessDownload** | [**PaperlessDownload**](PaperlessDownload.md) | The paperless details which may contain elements like `href`, `instructions` and `handoff_code`. | [optional] [readonly]
+**QrCodeDownload** | [**OptionalLink**](OptionalLink.md) | The QR code download for the package | [optional] [readonly]
**RateDetails** | [**List<RateDetail>**](RateDetail.md) | A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user. | [optional] [readonly]
**RequestedComparisonAmount** | [**MonetaryValue**](MonetaryValue.md) | The total shipping cost for the specified comparison_rate_type. | [optional] [readonly]
**RmaNumber** | **string** | An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value. | [optional]
**ServiceCode** | **string** | The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc. | [optional] [readonly]
**ShipDate** | **DateTimeOffset** | The date that the package was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead. | [optional] [readonly]
+**ShipTo** | [**ShippingAddressTo**](ShippingAddressTo.md) | The recipient's mailing address | [optional] [readonly]
**Shipment** | [**Shipment**](Shipment.md) | The shipment information used to generate the label | [optional]
**ShipmentCost** | [**MonetaryValue**](MonetaryValue.md) | The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs. | [optional] [readonly]
**ShipmentId** | **string** | The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/) | [optional] [readonly]
diff --git a/docs/models/GetShipmentByExternalIdResponseBody.md b/docs/models/GetShipmentByExternalIdResponseBody.md
index 5bd48b6c..2e1c468e 100644
--- a/docs/models/GetShipmentByExternalIdResponseBody.md
+++ b/docs/models/GetShipmentByExternalIdResponseBody.md
@@ -32,4 +32,5 @@ Name | Type | Description | Notes
**ShippingRuleId** | **string** | ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment | [optional]
**TaxIdentifiers** | [**List<TaxIdentifier>**](TaxIdentifier.md) | | [optional]
**WarehouseId** | **string** | The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified. |
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [optional] [readonly]
diff --git a/docs/models/GetShipmentByIdResponseBody.md b/docs/models/GetShipmentByIdResponseBody.md
index fc9a9720..a416617e 100644
--- a/docs/models/GetShipmentByIdResponseBody.md
+++ b/docs/models/GetShipmentByIdResponseBody.md
@@ -32,4 +32,5 @@ Name | Type | Description | Notes
**ShippingRuleId** | **string** | ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment | [optional]
**TaxIdentifiers** | [**List<TaxIdentifier>**](TaxIdentifier.md) | | [optional]
**WarehouseId** | **string** | The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified. |
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [optional] [readonly]
diff --git a/docs/models/GetWebhookByIdResponseBody.md b/docs/models/GetWebhookByIdResponseBody.md
index 3d868e26..77ff6bf6 100644
--- a/docs/models/GetWebhookByIdResponseBody.md
+++ b/docs/models/GetWebhookByIdResponseBody.md
@@ -9,4 +9,6 @@ Name | Type | Description | Notes
**Url** | **string** | The url that the webhook sends the request to |
**WebhookId** | **string** | A string that uniquely identifies the webhook | [readonly]
**Headers** | [**List<WebhookHeader>**](WebhookHeader.md) | Array of custom webhook headers | [optional]
+**Name** | **string** | The name of the webhook | [optional]
+**StoreId** | **int** | Store ID | [optional]
diff --git a/docs/models/InternationalShipmentOptions.md b/docs/models/InternationalShipmentOptions.md
index dead2ff2..5bcd25f6 100644
--- a/docs/models/InternationalShipmentOptions.md
+++ b/docs/models/InternationalShipmentOptions.md
@@ -7,10 +7,12 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Contents** | **PackageContents** | The type of contents in this shipment. This may impact import duties or customs treatment. |
**NonDelivery** | **NonDelivery** | Indicates what to do if a package is unable to be delivered. |
+**CertificateNumber** | **string** | The certificate number to be used in the customs. | [optional]
**ContentsExplanation** | **string** | Explanation for contents (required if the `contents` is provided as `other`) | [optional]
**CustomsItems** | [**List<CustomsItem>**](CustomsItem.md) | Customs declarations for each item in the shipment. (Please provide this information under `products` inside `packages`) | [optional]
**Declaration** | **string** | Declaration statement to be placed on the commercial invoice | [optional]
**ImporterOfRecord** | [**ImporterOfRecords**](ImporterOfRecords.md) | | [optional]
**InvoiceAdditionalDetails** | [**InvoiceAdditionalDetails**](InvoiceAdditionalDetails.md) | | [optional]
+**LicenseNumber** | **string** | The license number to be used in the customs. | [optional]
**TermsOfTradeCode** | **AllowedIncoterms** | Specifies the supported terms of trade code (incoterms) | [optional]
diff --git a/docs/models/InvoiceAdditionalDetails.md b/docs/models/InvoiceAdditionalDetails.md
index 7a3bdb99..87d2d960 100644
--- a/docs/models/InvoiceAdditionalDetails.md
+++ b/docs/models/InvoiceAdditionalDetails.md
@@ -6,8 +6,10 @@ The additional information to put on commercial invoice
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Discount** | [**MonetaryValue**](MonetaryValue.md) | Discount for shipment. | [optional]
+**EstimatedImportCharges** | [**EstimatedImportCharges**](EstimatedImportCharges.md) | Estimated import charges for commercial invoices for international shipments. | [optional]
**FreightCharge** | [**MonetaryValue**](MonetaryValue.md) | Freight Charge for shipment. | [optional]
**InsuranceCharge** | [**MonetaryValue**](MonetaryValue.md) | Insurance Charge for shipment. | [optional]
+**InvoiceNumber** | **string** | The invoice number to be used in the customs. | [optional]
**OtherCharge** | [**MonetaryValue**](MonetaryValue.md) | Other charge for shipment. | [optional]
**OtherChargeDescription** | **string** | Description for the other charge (if provided). | [optional]
diff --git a/docs/models/Label.md b/docs/models/Label.md
index 6d99d562..ff331685 100644
--- a/docs/models/Label.md
+++ b/docs/models/Label.md
@@ -10,8 +10,11 @@ Name | Type | Description | Notes
**CarrierCode** | **string** | The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc. | [optional] [readonly]
**CarrierId** | **string** | The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label | [optional] [readonly]
**ChargeEvent** | **LabelChargeEvent** | The label charge event. | [optional]
+**Confirmation** | **DeliveryConfirmation** | The type of delivery confirmation that is required for this shipment. | [optional] [readonly]
**CreatedAt** | **DateTimeOffset** | The date and time that the label was created in ShipEngine. | [optional] [readonly]
**DisplayScheme** | **DisplayScheme** | The display format that the label should be shown in. | [optional]
+**ExternalOrderId** | **string** | ID that the Order Source assigne | [optional] [readonly]
+**ExternalShipmentId** | **string** | A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. | [optional] [readonly]
**FormDownload** | [**Link**](Link.md) | The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it. | [optional] [readonly]
**InsuranceClaim** | [**Link**](Link.md) | The link to submit an insurance claim for the shipment. This field is null if the shipment is not insured or if the insurance provider does not support online claim submission. | [optional] [readonly]
**InsuranceCost** | [**MonetaryValue**](MonetaryValue.md) | The insurance cost for this package. Add this to the `shipment_cost` field to get the total cost. | [optional] [readonly]
@@ -27,11 +30,13 @@ Name | Type | Description | Notes
**PackageCode** | **string** | The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc. The code `package` indicates a custom or unknown package type. | [optional] [readonly]
**Packages** | [**List<LabelPackagesInner>**](LabelPackagesInner.md) | The label's package(s). > **Note:** Some carriers only allow one package per label. If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned. | [optional] [readonly]
**PaperlessDownload** | [**PaperlessDownload**](PaperlessDownload.md) | The paperless details which may contain elements like `href`, `instructions` and `handoff_code`. | [optional] [readonly]
+**QrCodeDownload** | [**OptionalLink**](OptionalLink.md) | The QR code download for the package | [optional] [readonly]
**RateDetails** | [**List<RateDetail>**](RateDetail.md) | A list of rate details that are associated with shipping cost. This is useful for displaying a breakdown of the rate to the user. | [optional] [readonly]
**RequestedComparisonAmount** | [**MonetaryValue**](MonetaryValue.md) | The total shipping cost for the specified comparison_rate_type. | [optional] [readonly]
**RmaNumber** | **string** | An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value. | [optional]
**ServiceCode** | **string** | The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc. | [optional] [readonly]
**ShipDate** | **DateTimeOffset** | The date that the package was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead. | [optional] [readonly]
+**ShipTo** | [**ShippingAddressTo**](ShippingAddressTo.md) | The recipient's mailing address | [optional] [readonly]
**Shipment** | [**Shipment**](Shipment.md) | The shipment information used to generate the label | [optional]
**ShipmentCost** | [**MonetaryValue**](MonetaryValue.md) | The cost of shipping, delivery confirmation, and other carrier charges. This amount **does not** include insurance costs. | [optional] [readonly]
**ShipmentId** | **string** | The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/) | [optional] [readonly]
diff --git a/docs/models/LabelDownloadType.md b/docs/models/LabelDownloadType.md
index 857bc454..4554cd77 100644
--- a/docs/models/LabelDownloadType.md
+++ b/docs/models/LabelDownloadType.md
@@ -1,5 +1,5 @@
# ShipEngineSDK.Model.LabelDownloadType
-There are two different ways to [download a label](https://www.shipengine.com/docs/labels/downloading/): |Label Download Type | Description |- -- -- -- -- -- -- -- -- -- -|- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - |`url` |You will receive a URL, which you can use to download the label in a separate request. The URL will remain valid for 90 days.
This is the default if `label_download_type` is unspecified. |`inline` |You will receive the Base64-encoded label as part of the response. No need for a second request to download the label.
+There are two different ways to [download a label](https://www.shipengine.com/docs/labels/downloading/): |Label Download Type | Description |- -- -- -- -- -- -- -- -- -- -|- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - |`url` |You will receive a URL, which you can use to download the label in a separate request. The URL will remain valid for 90 days. |`inline` |You will receive the Base64-encoded label as part of the response. No need for a second request to download the label.
## Properties
diff --git a/docs/models/ListShipmentRatesResponseBody.md b/docs/models/ListShipmentRatesResponseBody.md
index 7ee4eb57..5c5cb377 100644
--- a/docs/models/ListShipmentRatesResponseBody.md
+++ b/docs/models/ListShipmentRatesResponseBody.md
@@ -9,7 +9,7 @@ Name | Type | Description | Notes
**Errors** | [**List<Error>**](Error.md) | |
**InvalidRates** | [**List<Rate>**](Rate.md) | An array of invalid shipment rates | [readonly]
**RateRequestId** | **string** | A string that uniquely identifies the rate request | [readonly]
-**Rates** | [**List<Rate>**](Rate.md) | An array of shipment rates | [readonly]
+**Rates** | [**List<RatesInformationRatesInner>**](RatesInformationRatesInner.md) | An array of shipment rates | [readonly]
**ShipmentId** | **string** | A string that uniquely identifies the shipment | [readonly]
**Status** | **RateResponseStatus** | | [readonly]
diff --git a/docs/models/PartialShipment.md b/docs/models/PartialShipment.md
index 8b9ead28..b1d35fc3 100644
--- a/docs/models/PartialShipment.md
+++ b/docs/models/PartialShipment.md
@@ -32,4 +32,5 @@ Name | Type | Description | Notes
**TaxIdentifiers** | [**List<TaxIdentifier>**](TaxIdentifier.md) | | [optional]
**TotalWeight** | [**Weight**](Weight.md) | The combined weight of all packages in the shipment | [optional] [readonly]
**WarehouseId** | **string** | The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified. | [optional]
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [optional] [readonly]
diff --git a/docs/models/PartialShipmentForRateShopper.md b/docs/models/PartialShipmentForRateShopper.md
new file mode 100644
index 00000000..8d186cf1
--- /dev/null
+++ b/docs/models/PartialShipmentForRateShopper.md
@@ -0,0 +1,33 @@
+# ShipEngineSDK.Model.PartialShipmentForRateShopper
+The information necessary to ship a package for Rate Shopper, such as the origin, the destination, and the package dimensions and weight. **Note:** This schema excludes carrier_id, service_code, and shipping_rule_id as these are automatically selected by the Rate Shopper based on your chosen strategy.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**AdvancedOptions** | [**AdvancedShipmentOptions**](AdvancedShipmentOptions.md) | Advanced shipment options. These are entirely optional. | [optional]
+**ComparisonRateType** | **string** | Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS. | [optional]
+**Confirmation** | **DeliveryConfirmation** | The type of delivery confirmation that is required for this shipment. | [optional]
+**CreatedAt** | **DateTimeOffset** | The date and time that the shipment was created in ShipEngine. | [optional] [readonly]
+**Customs** | [**InternationalShipmentOptions**](InternationalShipmentOptions.md) | Customs information. This is usually only needed for international shipments. | [optional]
+**ExternalOrderId** | **string** | ID that the Order Source assigned | [optional]
+**ExternalShipmentId** | **string** | A unique user-defined key to identify a shipment. This can be used to retrieve the shipment. > **Warning:** The `external_shipment_id` is limited to 50 characters. Any additional characters will be truncated. | [optional]
+**InsuranceProvider** | **InsuranceProvider** | The insurance provider to use for any insured packages in the shipment. | [optional]
+**IsReturn** | **bool** | An optional indicator if the shipment is intended to be a return. Defaults to false if not provided. | [optional] [default to false]
+**Items** | [**List<ShipmentItem>**](ShipmentItem.md) | Describe the packages included in this shipment as related to potential metadata that was imported from external order sources | [optional]
+**ModifiedAt** | **DateTimeOffset** | The date and time that the shipment was created or last modified. | [optional] [readonly]
+**OrderSourceCode** | **OrderSourceName** | | [optional]
+**Packages** | [**List<Package>**](Package.md) | The packages in the shipment. > **Note:** Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned. | [optional]
+**ReturnTo** | [**ShippingAddress**](ShippingAddress.md) | The return address for this shipment. Defaults to the `ship_from` address. | [optional]
+**ShipDate** | **DateTimeOffset** | The date that the shipment was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead. | [optional]
+**ShipFrom** | [**ShippingAddress**](ShippingAddress.md) | The shipment's origin address. If you frequently ship from the same location, consider [creating a warehouse](https://www.shipengine.com/docs/reference/create-warehouse/). Then you can simply specify the `warehouse_id` rather than the complete address each time. | [optional]
+**ShipTo** | [**ShippingAddressTo**](ShippingAddressTo.md) | The recipient's mailing address | [optional]
+**ShipmentId** | **string** | A string that uniquely identifies the shipment | [optional] [readonly]
+**ShipmentNumber** | **string** | A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment. > **Warning:** The `shipment_number` is limited to 50 characters. Any additional characters will be truncated. | [optional]
+**ShipmentStatus** | **ShipmentStatus** | The current status of the shipment | [optional] [readonly]
+**Tags** | [**List<Tag>**](Tag.md) | Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags. | [optional] [readonly]
+**TaxIdentifiers** | [**List<TaxIdentifier>**](TaxIdentifier.md) | | [optional]
+**TotalWeight** | [**Weight**](Weight.md) | The combined weight of all packages in the shipment | [optional] [readonly]
+**WarehouseId** | **string** | The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified. | [optional]
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [optional] [readonly]
+
diff --git a/docs/models/RateAttributes.md b/docs/models/RateAttributes.md
new file mode 100644
index 00000000..aa9db550
--- /dev/null
+++ b/docs/models/RateAttributes.md
@@ -0,0 +1,8 @@
+# ShipEngineSDK.Model.RateAttributes
+Optional attributes that indicate the most profitable rates
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
diff --git a/docs/models/RateDetailAttributes.md b/docs/models/RateDetailAttributes.md
index 74cfe9ab..c529dbd6 100644
--- a/docs/models/RateDetailAttributes.md
+++ b/docs/models/RateDetailAttributes.md
@@ -5,7 +5,6 @@ Represents detailed information about a tax (e.g. VAT) contained in a shipping c
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**TaxCode** | **string** | Code for a specific tax type | [optional]
**TaxPercentage** | **decimal** | Tax percentage, e.g. 20 for 20%, added to the shipping cost | [optional]
**TaxType** | **TaxType** | | [optional]
diff --git a/docs/models/RateEstimate.md b/docs/models/RateEstimate.md
index 158f3f38..0633610f 100644
--- a/docs/models/RateEstimate.md
+++ b/docs/models/RateEstimate.md
@@ -26,6 +26,7 @@ Name | Type | Description | Notes
**DeliveryDays** | **int** | The number of days estimated for delivery, this will show the _actual_ delivery time if for example, the package gets shipped on a Friday | [optional] [readonly]
**EstimatedDeliveryDate** | **DateTimeOffset** | An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string that represents a date, but not a specific time. The value _may_ contain a time component, but it will be set to `00:00:00` UTC by ShipEngine. | [optional] [readonly]
**PackageType** | **string** | package type that this rate was estimated for | [readonly]
+**RateAttributes** | [**List<RateAttributes>**](RateAttributes.md) | Optional attributes that indicate the most profitable rates | [optional]
**ShipDate** | **DateTimeOffset** | ship date | [optional] [readonly]
**TaxAmount** | [**MonetaryValue**](MonetaryValue.md) | Tariff and additional taxes associated with an international shipment. | [optional] [readonly]
**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [readonly]
diff --git a/docs/models/RateRequestBody.md b/docs/models/RateRequestBody.md
index 0bc7eb3e..5bad92a5 100644
--- a/docs/models/RateRequestBody.md
+++ b/docs/models/RateRequestBody.md
@@ -10,5 +10,6 @@ Name | Type | Description | Notes
**IsReturn** | **bool** | Indicate if it's a return shipment | [optional]
**PackageTypes** | **List<string>** | | [optional]
**PreferredCurrency** | **string** | The currencies that are supported by ShipEngine are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html | [optional]
+**RateType** | **string** | Indicates what type of rating to perform | [optional]
**ServiceCodes** | **List<string>** | | [optional]
diff --git a/docs/models/RatesInformation.md b/docs/models/RatesInformation.md
index 5765c0ae..fb374a2f 100644
--- a/docs/models/RatesInformation.md
+++ b/docs/models/RatesInformation.md
@@ -9,7 +9,7 @@ Name | Type | Description | Notes
**Errors** | [**List<Error>**](Error.md) | | [optional]
**InvalidRates** | [**List<Rate>**](Rate.md) | An array of invalid shipment rates | [optional] [readonly]
**RateRequestId** | **string** | A string that uniquely identifies the rate request | [optional] [readonly]
-**Rates** | [**List<Rate>**](Rate.md) | An array of shipment rates | [optional] [readonly]
+**Rates** | [**List<RatesInformationRatesInner>**](RatesInformationRatesInner.md) | An array of shipment rates | [optional] [readonly]
**ShipmentId** | **string** | A string that uniquely identifies the shipment | [optional] [readonly]
**Status** | **RateResponseStatus** | | [optional] [readonly]
diff --git a/docs/models/RatesInformationRatesInner.md b/docs/models/RatesInformationRatesInner.md
new file mode 100644
index 00000000..fc6cbe77
--- /dev/null
+++ b/docs/models/RatesInformationRatesInner.md
@@ -0,0 +1,36 @@
+# ShipEngineSDK.Model.RatesInformationRatesInner
+Shipment Rates
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**CarrierCode** | **string** | carrier code | [readonly]
+**CarrierFriendlyName** | **string** | carrier friendly name | [readonly]
+**CarrierId** | **string** | A string that uniquely identifies the carrier | [readonly]
+**CarrierNickname** | **string** | carrier nickname | [readonly]
+**ConfirmationAmount** | [**MonetaryValue**](MonetaryValue.md) | The confirmation amount. Should be added with shipping_amount, insurance_amount and other_amount to calculate the total purchase price. | [readonly]
+**ErrorMessages** | **List<string>** | The error messages | [readonly]
+**GuaranteedService** | **bool** | Indicates if the rate is guaranteed. | [readonly]
+**InsuranceAmount** | [**MonetaryValue**](MonetaryValue.md) | The insurance amount. Should be added with shipping_amount, confirmation_amount and other_amount to calculate the total purchase price. | [readonly]
+**NegotiatedRate** | **bool** | Indicates if the rates been negotiated | [readonly]
+**OtherAmount** | [**MonetaryValue**](MonetaryValue.md) | Any other charges associated with this rate. Should be added with shipping_amount, insurance_amount and confirmation_amount to calculate the total purchase price. | [readonly]
+**RateId** | **string** | A string that uniquely identifies the rate | [readonly]
+**RateType** | **RateType** | | [readonly]
+**ServiceCode** | **string** | service code for the rate | [readonly]
+**ServiceType** | **string** | service type | [readonly]
+**ShippingAmount** | [**MonetaryValue**](MonetaryValue.md) | The shipping amount. Should be added with confirmation_amount, insurance_amount and other_amount to calculate the total purchase price. | [readonly]
+**Trackable** | **bool** | Indicates if rate is trackable | [readonly]
+**ValidationStatus** | **ValidationStatus** | | [readonly]
+**WarningMessages** | **List<string>** | The warning messages | [readonly]
+**CarrierDeliveryDays** | **string** | The carrier delivery days | [optional] [readonly]
+**DeliveryDays** | **int** | The number of days estimated for delivery, this will show the _actual_ delivery time if for example, the package gets shipped on a Friday | [optional] [readonly]
+**EstimatedDeliveryDate** | **DateTimeOffset** | An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string that represents a date, but not a specific time. The value _may_ contain a time component, but it will be set to `00:00:00` UTC by ShipEngine. | [optional] [readonly]
+**PackageType** | **string** | package type that this rate was estimated for | [readonly]
+**RateAttributes** | [**List<RateAttributes>**](RateAttributes.md) | Optional attributes that indicate the most profitable rates | [optional]
+**RateDetails** | [**List<RateDetail>**](RateDetail.md) | A list of rate details that are associated with this rate. This is useful for displaying a breakdown of the rate to the user. | [optional] [readonly]
+**RequestedComparisonAmount** | [**MonetaryValue**](MonetaryValue.md) | The total shipping cost for the specified comparison_rate_type. | [optional] [readonly]
+**ShipDate** | **DateTimeOffset** | ship date | [optional] [readonly]
+**TaxAmount** | [**MonetaryValue**](MonetaryValue.md) | Tariff and additional taxes associated with an international shipment. | [optional] [readonly]
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [readonly]
+
diff --git a/docs/models/RegulatedContentType.md b/docs/models/RegulatedContentType.md
new file mode 100644
index 00000000..6c53bf1f
--- /dev/null
+++ b/docs/models/RegulatedContentType.md
@@ -0,0 +1,8 @@
+# ShipEngineSDK.Model.RegulatedContentType
+Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
diff --git a/docs/models/Service.md b/docs/models/Service.md
index d370da05..776e1266 100644
--- a/docs/models/Service.md
+++ b/docs/models/Service.md
@@ -10,6 +10,7 @@ Name | Type | Description | Notes
**Domestic** | **bool** | Supports domestic shipping | [optional] [readonly]
**International** | **bool** | Supports international shipping. | [optional] [readonly]
**IsMultiPackageSupported** | **bool** | Carrier supports multiple packages per shipment | [optional] [readonly]
+**IsReturnSupported** | **bool** | This service supports return shipments. | [optional] [readonly]
**Name** | **string** | User friendly service name | [optional] [readonly]
**ServiceCode** | **string** | service code | [optional] [readonly]
diff --git a/docs/models/Shipment.md b/docs/models/Shipment.md
index 593cb1b3..046f383e 100644
--- a/docs/models/Shipment.md
+++ b/docs/models/Shipment.md
@@ -32,4 +32,5 @@ Name | Type | Description | Notes
**ShippingRuleId** | **string** | ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment | [optional]
**TaxIdentifiers** | [**List<TaxIdentifier>**](TaxIdentifier.md) | | [optional]
**WarehouseId** | **string** | The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified. |
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [optional] [readonly]
diff --git a/docs/models/ShipmentItem.md b/docs/models/ShipmentItem.md
index 76295713..5d3956c9 100644
--- a/docs/models/ShipmentItem.md
+++ b/docs/models/ShipmentItem.md
@@ -6,6 +6,7 @@ A shipment item
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Asin** | **string** | Amazon Standard Identification Number | [optional]
+**BundleSku** | **string** | Item Stock Keeping Unit of the product bundle | [optional] [readonly]
**ExternalOrderId** | **string** | external order id | [optional]
**ExternalOrderItemId** | **string** | external order item id | [optional]
**Name** | **string** | item name | [optional]
diff --git a/docs/models/StatusDetailCode.md b/docs/models/StatusDetailCode.md
index 41afedc5..b6a17852 100644
--- a/docs/models/StatusDetailCode.md
+++ b/docs/models/StatusDetailCode.md
@@ -1,5 +1,5 @@
# ShipEngineSDK.Model.StatusDetailCode
-The tracking status detail codes |Value |Description |:- -- -- -- -- |:- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | `CARRIER_STATUS_NOT_MAPPED` | Status not mapped. Please check the carrier's website for updates. | `SHIPMENT_CREATED` | Your tracking number is ready. Your parcel is waiting to be registered in the carrier system and scheduled for pickup. | `AWAITING_PICKUP_DROP_OFF` | Your parcel is waiting to be handed over to the carrier. | `DROPPED_OFF` | Your parcel has been dropped off and is ready for carrier processing. | `ELEC_ADVICE_RECD_BY_CARRIER` | Your shipment is now in the carrier's system. | `PICKED_UP` | Your parcel has been picked up by the carrier. | `CUSTOMS_CLEARED` | Your parcel has cleared customs and is continuing its journey. | `CUSTOMS_PROCESSING` | Your parcel is currently being processed by customs. | `DELIVERY_ARRANGED_WITH_RECIPIENT` | Your parcel's delivery has been arranged with the carrier. | `HUB_SCAN_OUT` | Your parcel has left the carrier's hub. | `HUB_SCAN_IN` | Your parcel has arrived at the carrier's hub for processing. | `IN_TRANSIT` | Your shipment is on its way between the carrier hubs. | `INFORMATION` | The carrier has shared additional information about your parcel. | `PARCEL_OVER_LABELLED` | Your parcel's label has been updated by the carrier, which may affect tracking visibility. | `PARCEL_UPDATE_NOTIFICATION` | The carrier has sent you an update on your parcel status via SMS or email. | `RECEIVED_BY_CARRIER` | Your parcel has been received by the carrier and is beginning its journey. | `RECEIVED_LOCAL_DELIVERY_DEPOT` | Your parcel has arrived at the local delivery depot and is almost ready for delivery. | `SUB_CONTRACTOR_EVENT` | The carrier has shared additional information about your parcel's handling by a delivery partner. | `SUB_CONTRACTOR_RECEIVED` | Your parcel has been received by the carrier's local delivery partner. | `PARCEL_REDIRECTED` | Your parcel has been redirected to a new delivery address per your request. | `DELIVERY_SCHEDULED` | Your parcel's delivery has been scheduled and will soon be out for delivery. | `HUB_PROCESSING` | Your parcel is being processed at a carrier hub. | `DELIVERY_RESCHEDULED` | Your parcel's delivery has been rescheduled due to operational issues. | `ATTEMPTED_DELIVERY` | The carrier attempted to deliver your parcel but was unable to complete delivery. | `ATTEMPTED_DELIVERY_FINAL` | The carrier made a final attempt to deliver your parcel but was unable to complete delivery. Please check the carrier's instructions for next steps. | `COD_AMOUNT_PAID` | Cash on delivery payment received. | `CUSTOMER_CARDED` | Delivery attempt failed. Please follow delivery instructions left by the carrier. | `OUT_FOR_DELIVERY` | Your parcel is on its way and will be delivered today. | `AWAITING_COLLECTION_FROM_PICKUP_POINT` | Your parcel is ready for collection at the selected pickup point. | `COLLECT_AT_LOCAL_PO` | Your parcel is ready for collection at your local post office. | `CUSTOMER_TO_COLLECT_FROM_CARRIER` | Your parcel is available for collection from the carrier's local delivery unit. | `DELIVERED_TO_RECEPTION` | Your parcel has been delivered to your building's reception or designated mail area. | `DELIVERED` | Your parcel has been successfully delivered. | `DELIVERED_DAMAGED` | Your parcel was delivered but arrived with visible damage. | `DELIVERED_IN_PART` | Part of your shipment has been delivered. Check for updates on the rest. | `DELIVERED_SPECIFIED_SAFE_PLACE` | Your parcel has been delivered to your specified safe place. | `DELIVERED_TO_ALTERNATIVE_DELIVERY_LOCATION` | Your parcel was delivered to an alternative location due to the delivery company being unable to deliver it to the specified address. Check carrier instructions for pickup details. | `DELIVERED_TO_NEIGHBOUR` | Your parcel was delivered to your neighbor. | `DELIVERED_TO_PO_BOX` | Your parcel has been delivered to your specified PO Box. | `PARCEL_COLLECTED_FROM_PICKUP_POINT` | Your package has been picked up from the pick up point. | `POST_TRANSIT_STATUS` | The carrier has added more information about your delivery. | `PROOF_OF_DELIVERY` | The carrier has confirmed delivery with proof, such as a signature or photo. | `PICKUP_FAILED` | Parcel pickup failed. The delivery company will try again soon. | `NOT_YET_RECEIVED_BY_CARRIER` | The carrier has not yet received your parcel, which may cause a delay. | `PARCEL_DAMAGED` | Your parcel was damaged in transit but will still be delivered. | `ADDRESS_QUERY` | There is an issue with the delivery address, which may delay your parcel. | `CARRIER_DELAYS` | Your parcel is delayed due to issues within the carrier network. | `DELAYED_NOT_CARRIER` | Your parcel is delayed due to circumstances beyond the carrier's control. | `HELD_BY_CARRIER` | Your parcel is being held due to an operational issue. Contact with the carrier for more information. | `HELD_BY_CARRIER_FOR_CLEARANCE_PRE_PROCESSING` | Your parcel is being held by the carrier for customs documentation checks. This may occur when the carrier must confirm documentation before the parcel can continue its journey. | `HELD_BY_CUSTOMS` | Your parcel is being held at customs, which may delay delivery. | `HELD_BY_EXPORT_CUSTOMS` | Your parcel is held at export customs, which may delay delivery. | `HELD_BY_IMPORT_CUSTOMS` | Your parcel is held at import customs and may require action to proceed. | `INCORRECT_DECLARATION` | Your parcel has been incorrectly declared but is still moving forward for delivery. | `MISROUTED` | Your parcel was sent to the wrong place due to a routing error but is being redirected. | `PARCEL_REPACKED` | Your parcel was repackaged by the carrier due to damage and will still be delivered. | `RECD_BY_CARRIER_NO_ELEC_ADVICE` | Your parcel has been received by the carrier but may experience delays due to missing pre-advice. | `COD_AMOUNT_NOT_PAID` | Delivery failed due to unpaid cash on delivery. Please follow carrier instructions. | `CUSTOMER_IDENTIFICATION_FAILED` | Delivery couldn't be completed as identification requirements were not met. | `NO_ACCESS_TO_RECIPIENTS_ADDRESS` | The carrier couldn't access the delivery location due to restricted entry. | `CANCELLED` | Your parcel has been cancelled. | `CUSTOMER_MOVED` | Delivery failed as the recipient is no longer at the specified address. Your parcel is being returned. | `HAZARDOUS_PROHIBITED` | Your parcel contains restricted items and will not be delivered. | `NOT_COLLECTED_FROM_PICKUP_POINT` | Your parcel was not collected from the pickup point within the designated time and will be returned. | `NOT_DELIVERED` | All delivery attempts failed. Your parcel is being returned to the sender. | `NOT_DELIVERED_ADDRESSEE_DECEASED` | The parcel could not be delivered as the addressee is reported deceased. | `PARCEL_DISPOSED` | Your parcel has been disposed of due to its contents or condition and will not be delivered. | `PARCEL_LOST` | The carrier has reported that your parcel is lost and will not be delivered. | `PARCEL_OUTSIDE_OF_SERVICE_CAPABILITY` | The parcel cannot be delivered as it exceeds the carrier's service limits. | `REFUSED_BY_CUSTOMER` | You have refused the parcel, and it will be returned to the sender. | `RETURN_TO_SENDER` | Your parcel is being returned to the sender due to delivery issues. | `UNSPECIFIED_EXCEPTION` | The carrier has reported an issue with your parcel, but details are unavailable.
+The tracking status detail codes |Value |Description |:- -- -- -- -- |:- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | `CARRIER_STATUS_NOT_MAPPED` | Status not mapped. Please check the carrier's website for updates. | `SHIPMENT_CREATED` | Your tracking number is ready. Your parcel is waiting to be registered in the carrier system and scheduled for pickup. | `AWAITING_PICKUP_DROP_OFF` | Your parcel is waiting to be handed over to the carrier. | `DROPPED_OFF` | Your parcel has been dropped off and is ready for carrier processing. | `ELEC_ADVICE_RECD_BY_CARRIER` | Your shipment is now in the carrier's system. | `PICKED_UP` | Your parcel has been picked up by the carrier. | `CUSTOMS_CLEARED` | Your parcel has cleared customs and is continuing its journey. | `CUSTOMS_PROCESSING` | Your parcel is currently being processed by customs. | `DELIVERY_ARRANGED_WITH_RECIPIENT` | Your parcel's delivery has been arranged with the carrier. | `HUB_SCAN_OUT` | Your parcel has left the carrier's hub. | `HUB_SCAN_IN` | Your parcel has arrived at the carrier's hub for processing. | `IN_TRANSIT` | Your shipment is on its way between the carrier hubs. | `INFORMATION` | The carrier has shared additional information about your parcel. | `PARCEL_OVER_LABELLED` | Your parcel's label has been updated by the carrier, which may affect tracking visibility. | `PARCEL_UPDATE_NOTIFICATION` | The carrier has sent you an update on your parcel status via SMS or email. | `RECEIVED_BY_CARRIER` | Your parcel has been received by the carrier and is beginning its journey. | `RECEIVED_LOCAL_DELIVERY_DEPOT` | Your parcel has arrived at the local delivery depot and is almost ready for delivery. | `SUB_CONTRACTOR_EVENT` | The carrier has shared additional information about your parcel's handling by a delivery partner. | `SUB_CONTRACTOR_RECEIVED` | Your parcel has been received by the carrier's local delivery partner. | `PARCEL_REDIRECTED` | Your parcel has been redirected to a new delivery address per your request. | `DELIVERY_SCHEDULED` | Your parcel's delivery has been scheduled and will soon be out for delivery. | `HUB_PROCESSING` | Your parcel is being processed at a carrier hub. | `DELIVERY_RESCHEDULED` | Your parcel's delivery has been rescheduled due to operational issues. | `ATTEMPTED_DELIVERY` | The carrier attempted to deliver your parcel but was unable to complete delivery. | `ATTEMPTED_DELIVERY_FINAL` | The carrier made a final attempt to deliver your parcel but was unable to complete delivery. Please check the carrier's instructions for next steps. | `COD_AMOUNT_PAID` | Cash on delivery payment received. | `CUSTOMER_CARDED` | Delivery attempt failed. Please follow delivery instructions left by the carrier. | `OUT_FOR_DELIVERY` | Your parcel is on its way and will be delivered today. | `AWAITING_COLLECTION_FROM_PICKUP_POINT` | Your parcel is ready for collection at the selected pickup point. | `COLLECT_AT_LOCAL_PO` | Your parcel is ready for collection at your local post office. | `CUSTOMER_TO_COLLECT_FROM_CARRIER` | Your parcel is available for collection from the carrier's local delivery unit. | `DELIVERED_TO_RECEPTION` | Your parcel has been delivered to your building's reception or designated mail area. | `DELIVERED` | Your parcel has been successfully delivered. | `DELIVERED_DAMAGED` | Your parcel was delivered but arrived with visible damage. | `DELIVERED_IN_PART` | Part of your shipment has been delivered. Check for updates on the rest. | `DELIVERED_SPECIFIED_SAFE_PLACE` | Your parcel has been delivered to your specified safe place. | `DELIVERED_TO_ALTERNATIVE_DELIVERY_LOCATION` | Your parcel was delivered to an alternative location due to the delivery company being unable to deliver it to the specified address. Check carrier instructions for pickup details. | `DELIVERED_TO_NEIGHBOUR` | Your parcel was delivered to your neighbor. | `DELIVERED_TO_PO_BOX` | Your parcel has been delivered to your specified PO Box. | `PARCEL_COLLECTED_FROM_PICKUP_POINT` | Your package has been picked up from the pick up point. | `POST_TRANSIT_STATUS` | The carrier has added more information about your delivery. | `PROOF_OF_DELIVERY` | The carrier has confirmed delivery with proof, such as a signature or photo. | `PICKUP_FAILED` | Parcel pickup failed. The delivery company will try again soon. | `NOT_YET_RECEIVED_BY_CARRIER` | The carrier has not yet received your parcel, which may cause a delay. | `PARCEL_DAMAGED` | Your parcel was damaged in transit but will still be delivered. | `ADDRESS_QUERY` | There is an issue with the delivery address, which may delay your parcel. | `CARRIER_DELAYS` | Your parcel is delayed due to issues within the carrier network. | `DELAYED_NOT_CARRIER` | Your parcel is delayed due to circumstances beyond the carrier's control. | `HELD_BY_CARRIER` | Your parcel is being held due to an operational issue. Contact with the carrier for more information. | `HELD_BY_CARRIER_FOR_CLEARANCE_PRE_PROCESSING` | Your parcel is being held by the carrier for customs documentation checks. This may occur when the carrier must confirm documentation before the parcel can continue its journey. | `HELD_BY_CUSTOMS` | Your parcel is being held at customs, which may delay delivery. | `INCORRECT_DECLARATION` | Your parcel has been incorrectly declared but is still moving forward for delivery. | `MISROUTED` | Your parcel was sent to the wrong place due to a routing error but is being redirected. | `PARCEL_REPACKED` | Your parcel was repackaged by the carrier due to damage and will still be delivered. | `RECD_BY_CARRIER_NO_ELEC_ADVICE` | Your parcel has been received by the carrier but may experience delays due to missing pre-advice. | `COD_AMOUNT_NOT_PAID` | Delivery failed due to unpaid cash on delivery. Please follow carrier instructions. | `CUSTOMER_IDENTIFICATION_FAILED` | Delivery couldn't be completed as identification requirements were not met. | `NO_ACCESS_TO_RECIPIENTS_ADDRESS` | The carrier couldn't access the delivery location due to restricted entry. | `CANCELLED` | Your parcel has been cancelled. | `CUSTOMER_MOVED` | Delivery failed as the recipient is no longer at the specified address. Your parcel is being returned. | `HAZARDOUS_PROHIBITED` | Your parcel contains restricted items and will not be delivered. | `NOT_COLLECTED_FROM_PICKUP_POINT` | Your parcel was not collected from the pickup point within the designated time and will be returned. | `NOT_DELIVERED` | All delivery attempts failed. Your parcel is being returned to the sender. | `NOT_DELIVERED_ADDRESSEE_DECEASED` | The parcel could not be delivered as the addressee is reported deceased. | `PARCEL_DISPOSED` | Your parcel has been disposed of due to its contents or condition and will not be delivered. | `PARCEL_LOST` | The carrier has reported that your parcel is lost and will not be delivered. | `PARCEL_OUTSIDE_OF_SERVICE_CAPABILITY` | The parcel cannot be delivered as it exceeds the carrier's service limits. | `REFUSED_BY_CUSTOMER` | You have refused the parcel, and it will be returned to the sender. | `RETURN_TO_SENDER` | Your parcel is being returned to the sender due to delivery issues. | `UNSPECIFIED_EXCEPTION` | The carrier has reported an issue with your parcel, but details are unavailable. | `TRACKING_EXPIRED` | Tracking for this parcel has expired. If you are still expecting this delivery, please contact the carrier for assistance. | `DUTY_NOT_PAID` | The import taxes or duties for this package havent been paid and it may be subject to disposal by customs authorities if payment is not made. | `PARCEL_REDIRECTED_BY_CARRIER` | The carrier has redirected your parcel due to an operational issue. The package is likely being rerouted to a nearby pickup point. You may contact the carrier for more details about the new delivery location. | `DELIVERED_TO_PICKUP_POINT` | Your package has been delivered to the pickup point. You will be notified when its ready for collection. | `UNDELIVERABLE_RETURNED_TO_SENDER` | The shipment has been returned to the sender. Please contact the sender for further information.
## Properties
diff --git a/docs/models/Tag.md b/docs/models/Tag.md
index 34cb6bed..84de4da8 100644
--- a/docs/models/Tag.md
+++ b/docs/models/Tag.md
@@ -6,4 +6,6 @@ Tags are arbitrary strings that you can use to categorize shipments. For exampl
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Name** | **string** | The tag name. |
+**Color** | **string** | A hex-coded string identifying the color of the tag. | [optional]
+**TagId** | **int** | An integer uniquely identifying a tag. | [optional] [readonly]
diff --git a/docs/models/TrackEvent.md b/docs/models/TrackEvent.md
index 7c08616b..7cf363b7 100644
--- a/docs/models/TrackEvent.md
+++ b/docs/models/TrackEvent.md
@@ -21,6 +21,7 @@ Name | Type | Description | Notes
**EventCode** | **string** | Event Code | [optional]
**Latitude** | **double** | Latitude coordinate of tracking event. | [optional]
**Longitude** | **double** | Longitude coordinate of tracking event. | [optional]
+**ProofOfDeliveryUrl** | **string** | A URL to an image captured at the time of delivery, serving as evidence that the shipment was successfully delivered to the recipient. It can be used to capture things like recipient's signature, location of delivery, condition of the package upon delivery, etc. | [optional] [readonly]
**Signer** | **string** | Signer information | [optional] [readonly]
**StatusDetailCode** | **StatusDetailCode** | | [optional]
**StatusDetailDescription** | **string** | Event Status Detail Description | [optional] [readonly]
diff --git a/docs/models/UpdateShipmentRequestBody.md b/docs/models/UpdateShipmentRequestBody.md
index fc8645a9..a1b18981 100644
--- a/docs/models/UpdateShipmentRequestBody.md
+++ b/docs/models/UpdateShipmentRequestBody.md
@@ -33,4 +33,5 @@ Name | Type | Description | Notes
**TotalWeight** | [**Weight**](Weight.md) | The combined weight of all packages in the shipment | [optional] [readonly]
**ValidateAddress** | **ValidateAddress** | | [optional]
**WarehouseId** | **string** | The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified. | [optional]
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [optional] [readonly]
diff --git a/docs/models/UpdateShipmentResponseBody.md b/docs/models/UpdateShipmentResponseBody.md
index 048d8fdb..38eeca4a 100644
--- a/docs/models/UpdateShipmentResponseBody.md
+++ b/docs/models/UpdateShipmentResponseBody.md
@@ -34,4 +34,5 @@ Name | Type | Description | Notes
**ShippingRuleId** | **string** | ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment | [optional]
**TaxIdentifiers** | [**List<TaxIdentifier>**](TaxIdentifier.md) | | [optional]
**WarehouseId** | **string** | The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified. | [optional]
+**Zone** | **int** | Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location | [optional] [readonly]
diff --git a/docs/models/UpdateWebhookRequestBody.md b/docs/models/UpdateWebhookRequestBody.md
index ee351936..7d334628 100644
--- a/docs/models/UpdateWebhookRequestBody.md
+++ b/docs/models/UpdateWebhookRequestBody.md
@@ -6,5 +6,7 @@ An update webhook request body
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Headers** | [**List<WebhookHeader>**](WebhookHeader.md) | Array of custom webhook headers | [optional]
+**Name** | **string** | The name of the webhook | [optional]
+**StoreId** | **int** | Store ID | [optional]
**Url** | **string** | The url that the wehbook sends the request | [optional]
diff --git a/docs/models/Webhook.md b/docs/models/Webhook.md
index e9d40f5d..e29d4401 100644
--- a/docs/models/Webhook.md
+++ b/docs/models/Webhook.md
@@ -7,6 +7,8 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Event** | **WebhookEvent** | | [optional]
**Headers** | [**List<WebhookHeader>**](WebhookHeader.md) | Array of custom webhook headers | [optional]
+**Name** | **string** | The name of the webhook | [optional]
+**StoreId** | **int** | Store ID | [optional]
**Url** | **string** | The url that the webhook sends the request to | [optional]
**WebhookId** | **string** | A string that uniquely identifies the webhook | [optional] [readonly]
diff --git a/docs/models/WebhookEvent.md b/docs/models/WebhookEvent.md
index f37a9f4a..26617846 100644
--- a/docs/models/WebhookEvent.md
+++ b/docs/models/WebhookEvent.md
@@ -1,5 +1,5 @@
# ShipEngineSDK.Model.WebhookEvent
-The possible webook event values
+The possible webhook event values
## Properties
diff --git a/generation/swagger.json b/generation/swagger.json
index 54262a7b..2c8af9c1 100644
--- a/generation/swagger.json
+++ b/generation/swagger.json
@@ -2,7 +2,7 @@
"openapi": "3.0.0",
"info": {
"title": "ShipEngine API",
- "version": "1.1.202501091801",
+ "version": "1.1.202603171403",
"termsOfService": "https://www.shipengine.com/terms-of-service/",
"x-logo": {
"url": "https://shipengine.github.io/img/shipengine-logo-square.png",
@@ -730,6 +730,50 @@
},
"description": "Batch Number"
},
+ {
+ "description": "Only return batches that were created on or after a specific date/time",
+ "name": "created_at_start",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "example": "2019-03-12T19:24:13.657Z"
+ },
+ {
+ "description": "Only return batches that were created on or before a specific date/time",
+ "name": "created_at_end",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "example": "2019-03-12T19:24:13.657Z"
+ },
+ {
+ "description": "Only return batches that were processed on or after a specific date/time",
+ "name": "processed_at_start",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "example": "2019-03-12T19:24:13.657Z"
+ },
+ {
+ "description": "Only return batches that were processed on or before a specific date/time",
+ "name": "processed_at_end",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "example": "2019-03-12T19:24:13.657Z"
+ },
{
"name": "sort_by",
"in": "query",
@@ -1790,6 +1834,49 @@
}
}
},
+ "/v1/documents/combined_labels": {
+ "summary": "Created Combined Label Document",
+ "description": "Download a combined label file",
+ "post": {
+ "summary": "Created Combined Label Document",
+ "description": "Download a combined label file",
+ "tags": [
+ "labels"
+ ],
+ "operationId": "create_combined_label_document",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/create_combined_label_document_request_body"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "The requested object creation was a success.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/create_combined_label_document_response_body.yaml"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/400_error_response"
+ },
+ "404": {
+ "$ref": "#/components/responses/404_error_response"
+ },
+ "500": {
+ "$ref": "#/components/responses/500_error_response"
+ }
+ }
+ }
+ },
"/v1/downloads/{dir}/{subdir}/{filename}": {
"summary": "File Download",
"description": "This endpoint is used to download forms that are generated in the various pdf, png, zpl formats\nsuch as labels and batches\n",
@@ -1909,7 +1996,7 @@
},
"post": {
"summary": "Create a Webhook",
- "description": "Create a webook for specific events in the environment.",
+ "description": "Create a webhook for specific events in the environment.",
"tags": [
"webhooks"
],
@@ -2295,7 +2382,8 @@
"type": "string",
"enum": [
"modified_at",
- "created_at"
+ "created_at",
+ "voided_at"
],
"default": "created_at"
},
@@ -2470,6 +2558,162 @@
}
}
},
+ "/v1/labels/rate_shopper_id/{rate_shopper_id}": {
+ "summary": "Purchase Label from Rate Shopper",
+ "description": "Purchase and print a label using Rate Shopper to automatically select carrier and service",
+ "parameters": [
+ {
+ "name": "rate_shopper_id",
+ "in": "path",
+ "required": true,
+ "description": "The rate selection strategy for the Rate Shopper. This determines which carrier\nand service will be automatically selected from your wallet carriers based on\nthe rates returned for the shipment.\n",
+ "schema": {
+ "$ref": "#/components/schemas/rate_attributes"
+ }
+ }
+ ],
+ "post": {
+ "summary": "Purchase Label from Rate Shopper",
+ "description": "Purchase and print a shipping label using the Rate Shopper. The Rate Shopper\nautomatically selects the optimal carrier and service from your wallet carriers\nbased on your specified rate selection strategy (cheapest, fastest, or best_value).\nFor more information about this in the [rates documentation](https://www.shipengine.com/docs/rates/#about-the-response).\n",
+ "tags": [
+ "labels"
+ ],
+ "operationId": "create_label_from_rate_shopper",
+ "parameters": [
+ {
+ "name": "rate_shopper_id",
+ "in": "path",
+ "required": true,
+ "description": "The rate selection strategy for the Rate Shopper. This determines which carrier\nand service will be automatically selected from your wallet carriers based on\nthe rates returned for the shipment.\n",
+ "schema": {
+ "$ref": "#/components/schemas/rate_attributes"
+ }
+ }
+ ],
+ "requestBody": {
+ "description": "Label creation details with inline shipment",
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/create_label_rate_shopper_request_body"
+ },
+ "examples": {
+ "domestic_shipment": {
+ "summary": "Domestic shipment with Rate Shopper",
+ "value": {
+ "shipment": {
+ "ship_to": {
+ "name": "John Doe",
+ "company_name": "Example Corp",
+ "address_line1": "123 Main St",
+ "city_locality": "Austin",
+ "state_province": "TX",
+ "postal_code": "78701",
+ "country_code": "US",
+ "phone": "512-555-1234"
+ },
+ "ship_from": {
+ "name": "Warehouse A",
+ "address_line1": "456 Warehouse Blvd",
+ "city_locality": "Dallas",
+ "state_province": "TX",
+ "postal_code": "75001",
+ "country_code": "US"
+ },
+ "packages": [
+ {
+ "weight": {
+ "value": 5,
+ "unit": "pound"
+ },
+ "dimensions": {
+ "length": 12,
+ "width": 8,
+ "height": 6,
+ "unit": "inch"
+ }
+ }
+ ]
+ },
+ "label_format": "pdf",
+ "label_layout": "4x6"
+ }
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "Label created successfully using Rate Shopper. The response includes the\nselected carrier_id, service_code, and rate_shopper_id that was used.\n",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/create_label_rate_shopper_response_body"
+ },
+ "examples": {
+ "successful_label": {
+ "summary": "Successfully created label",
+ "value": {
+ "label_id": "se-123456",
+ "status": "completed",
+ "shipment_id": "se-789012",
+ "ship_date": "2026-02-25T00:00:00Z",
+ "created_at": "2026-02-25T10:30:00Z",
+ "shipment_cost": {
+ "currency": "usd",
+ "amount": 7.33
+ },
+ "insurance_cost": {
+ "currency": "usd",
+ "amount": 0
+ },
+ "tracking_number": "1Z999AA10123456784",
+ "is_return_label": false,
+ "rma_number": null,
+ "is_international": false,
+ "batch_id": "",
+ "carrier_id": "se-456789",
+ "service_code": "usps_priority_mail",
+ "package_code": "package",
+ "voided": false,
+ "voided_at": null,
+ "label_format": "pdf",
+ "label_layout": "4x6",
+ "trackable": true,
+ "label_image_id": null,
+ "carrier_code": "stamps_com",
+ "tracking_status": "in_transit",
+ "label_download": {
+ "pdf": "https://api.shipengine.com/v1/downloads/10/label-123456.pdf",
+ "png": "https://api.shipengine.com/v1/downloads/10/label-123456.png",
+ "zpl": "https://api.shipengine.com/v1/downloads/10/label-123456.zpl",
+ "href": "https://api.shipengine.com/v1/downloads/10/label-123456.pdf"
+ },
+ "form_download": null,
+ "insurance_claim": null,
+ "packages": [],
+ "charge_event": "carrier_default",
+ "rate_shopper_id": "cheapest"
+ }
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/400_error_response"
+ },
+ "404": {
+ "$ref": "#/components/responses/404_error_response"
+ },
+ "500": {
+ "$ref": "#/components/responses/500_error_response"
+ }
+ }
+ }
+ },
"/v1/labels/shipment/{shipment_id}": {
"summary": "Purchase label using shipment ID",
"description": "Purchase a label using a shipment ID that has already been created with the desired address and\npackage info.\n",
@@ -2594,7 +2838,7 @@
],
"post": {
"summary": "Create a return label",
- "description": "Create a return label",
+ "description": "Create a return label for an existing outbound label. You can optionally specify a custom RMA (Return Merchandise Authorization) number. If no RMA number is provided, the system will auto-generate one.\n",
"tags": [
"labels"
],
@@ -2605,6 +2849,27 @@
"application/json": {
"schema": {
"$ref": "#/components/schemas/create_return_label_request_body"
+ },
+ "examples": {
+ "with_custom_rma": {
+ "summary": "Return label with custom RMA number",
+ "description": "Create a return label with a specific RMA number",
+ "value": {
+ "label_format": "pdf",
+ "label_layout": "4x6",
+ "charge_event": "carrier_default",
+ "rma_number": "RMA-2024-001234"
+ }
+ },
+ "without_rma": {
+ "summary": "Return label with auto-generated RMA",
+ "description": "Create a return label using default RMA generation",
+ "value": {
+ "label_format": "pdf",
+ "label_layout": "4x6",
+ "charge_event": "carrier_default"
+ }
+ }
}
}
}
@@ -4885,6 +5150,45 @@
"$ref": "#/components/responses/500_error_response"
}
}
+ },
+ "post": {
+ "summary": "Create a New Tag",
+ "description": "Create a new tag for customizing how you track your shipments.",
+ "tags": [
+ "tags"
+ ],
+ "operationId": "create_tag",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/create_tag_request_body"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "The requested object creation was a success.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/create_tag_response_body"
+ }
+ }
+ }
+ },
+ "400": {
+ "$ref": "#/components/responses/400_error_response"
+ },
+ "404": {
+ "$ref": "#/components/responses/404_error_response"
+ },
+ "500": {
+ "$ref": "#/components/responses/500_error_response"
+ }
+ }
}
},
"/v1/tags/{tag_name}": {
@@ -4902,7 +5206,7 @@
],
"post": {
"summary": "Create a New Tag",
- "description": "Create a new Tag for customizing how you track your shipments",
+ "description": "Create a new tag for customizing how you track your shipments (deprecated - use POST /v1/tags instead)",
"tags": [
"tags"
],
@@ -5085,6 +5389,15 @@
},
"example": "9405511899223197428490",
"description": "The tracking number associated with a shipment"
+ },
+ {
+ "name": "carrier_id",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/se_id"
+ },
+ "description": "Carrier ID"
}
],
"responses": {
@@ -5142,6 +5455,15 @@
},
"example": "9405511899223197428490",
"description": "The tracking number associated with a shipment"
+ },
+ {
+ "name": "carrier_id",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/se_id"
+ },
+ "description": "Carrier ID"
}
],
"responses": {
@@ -5204,6 +5526,15 @@
},
"example": "9405511899223197428490",
"description": "The tracking number associated with a shipment"
+ },
+ {
+ "name": "carrier_id",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "$ref": "#/components/schemas/se_id"
+ },
+ "description": "Carrier ID"
}
],
"responses": {
@@ -5665,9 +5996,7 @@
"validation",
"security",
"system",
- "integrations",
- "wallet",
- "funding_sources"
+ "integrations"
],
"description": "The type of error\n"
},
@@ -7443,6 +7772,11 @@
"readOnly": true,
"description": "Carrier supports multiple packages per shipment"
},
+ "allows_returns": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "The carrier has services that support return shipments."
+ },
"supports_label_messages": {
"type": "boolean",
"readOnly": true,
@@ -7491,6 +7825,25 @@
]
},
"description": "A list of options that are available to that carrier"
+ },
+ "send_rates": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "The carrier provides rates for the shipment."
+ },
+ "supports_user_managed_rates": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "The carrier supports user-managed rates for shipments."
+ },
+ "connection_status": {
+ "type": "string",
+ "readOnly": true,
+ "enum": [
+ "pending_approval",
+ "approved"
+ ],
+ "description": "The current connection status of the carrier. Indicates whether the carrier connection is pending approval or has been approved for use."
}
}
},
@@ -7544,6 +7897,11 @@
"type": "boolean",
"readOnly": true,
"description": "Carrier supports multiple packages per shipment"
+ },
+ "is_return_supported": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "This service supports return shipments."
}
}
},
@@ -9611,23 +9969,83 @@
"title": "connect_insurer_response_body",
"type": "object"
},
- "download_file_pdf_response_body": {
- "title": "download_file_pdf_response_body",
- "type": "string",
- "format": "binary"
- },
- "download_file_png_response_body": {
- "title": "download_file_png_response_body",
- "type": "string",
- "format": "binary"
- },
- "download_file_zpl_response_body": {
- "title": "download_file_zpl_response_body",
- "type": "string",
- "format": "binary"
- },
- "list_webhooks_response_body": {
- "title": "list_webhooks_response_body",
+ "create_combined_label_document_request_body": {
+ "title": "create_combined_label_document_request_body",
+ "type": "object",
+ "description": "A create combined label document request body",
+ "additionalProperties": false,
+ "properties": {
+ "label_ids": {
+ "type": "array",
+ "items": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/se_id"
+ }
+ ]
+ },
+ "description": "The list of up to 30 label ids to include in the combined label document.\nNote that to avoid response size limits, you should only expect to be able to combine 30 single page labels similar in size to that of USPS labels.\n"
+ },
+ "label_format": {
+ "enum": [
+ "pdf"
+ ],
+ "type": "string",
+ "description": "The file format for the combined label document; note that currently only `\"pdf\"` is supported."
+ },
+ "label_download_type": {
+ "default": "inline",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label_download_type"
+ }
+ ]
+ }
+ }
+ },
+ "label_download_type": {
+ "title": "label_download_type",
+ "type": "string",
+ "enum": [
+ "url",
+ "inline"
+ ],
+ "description": "There are two different ways to [download a label](https://www.shipengine.com/docs/labels/downloading/):\n\n|Label Download Type | Description\n|--------------------|------------------------------\n|`url` |You will receive a URL, which you can use to download the label in a separate request. The URL will remain valid for 90 days.\n|`inline` |You will receive the Base64-encoded label as part of the response. No need for a second request to download the label.\n"
+ },
+ "create_combined_label_document_response_body.yaml": {
+ "title": "create_combined_label_document_response_body.yaml",
+ "type": "object",
+ "description": "A create combined label document response body",
+ "additionalProperties": false,
+ "properties": {
+ "label_download": {
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label_download"
+ }
+ ],
+ "description": "The download for the combined label document"
+ }
+ }
+ },
+ "download_file_pdf_response_body": {
+ "title": "download_file_pdf_response_body",
+ "type": "string",
+ "format": "binary"
+ },
+ "download_file_png_response_body": {
+ "title": "download_file_png_response_body",
+ "type": "string",
+ "format": "binary"
+ },
+ "download_file_zpl_response_body": {
+ "title": "download_file_zpl_response_body",
+ "type": "string",
+ "format": "binary"
+ },
+ "list_webhooks_response_body": {
+ "title": "list_webhooks_response_body",
"type": "array",
"description": "A webhook list response body",
"items": {
@@ -9680,6 +10098,17 @@
]
},
"description": "Array of custom webhook headers"
+ },
+ "name": {
+ "type": "string",
+ "example": "My Webhook",
+ "description": "The name of the webhook"
+ },
+ "store_id": {
+ "type": "integer",
+ "format": "int32",
+ "example": 123456,
+ "description": "Store ID"
}
}
},
@@ -9695,7 +10124,7 @@
"sales_orders_imported",
"track"
],
- "description": "The possible webook event values"
+ "description": "The possible webhook event values"
},
"webhook_header": {
"title": "webhook_header",
@@ -9763,6 +10192,17 @@
]
},
"description": "Array of custom webhook headers"
+ },
+ "name": {
+ "type": "string",
+ "example": "My New Webhook",
+ "description": "The name of the webhook"
+ },
+ "store_id": {
+ "type": "integer",
+ "format": "int32",
+ "example": 123456,
+ "description": "Store ID"
}
}
},
@@ -9823,6 +10263,17 @@
]
},
"description": "Array of custom webhook headers"
+ },
+ "name": {
+ "type": "string",
+ "example": "My Updated Webhook",
+ "description": "The name of the webhook"
+ },
+ "store_id": {
+ "type": "integer",
+ "format": "int32",
+ "example": 123456,
+ "description": "Store ID"
}
}
},
@@ -9922,6 +10373,19 @@
],
"description": "The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/)\n"
},
+ "external_shipment_id": {
+ "readOnly": true,
+ "type": "string",
+ "maxLength": 50,
+ "nullable": true,
+ "description": "A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.\n"
+ },
+ "external_order_id": {
+ "readOnly": true,
+ "type": "string",
+ "nullable": true,
+ "description": "ID that the Order Source assigne"
+ },
"shipment": {
"writeOnly": true,
"allOf": [
@@ -10161,6 +10625,15 @@
],
"description": "The current status of the package, such as `in_transit` or `delivered`"
},
+ "confirmation": {
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/delivery_confirmation"
+ }
+ ],
+ "description": "The type of delivery confirmation that is required for this shipment."
+ },
"label_download": {
"allOf": [
{
@@ -10179,6 +10652,16 @@
],
"description": "The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.\n"
},
+ "qr_code_download": {
+ "readOnly": true,
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/optional_link"
+ }
+ ],
+ "description": "The QR code download for the package"
+ },
"paperless_download": {
"readOnly": true,
"nullable": true,
@@ -10229,6 +10712,15 @@
"type": "string",
"example": "https://www.fedex.com/fedextrack/?action=track&trackingnumber=1234",
"description": "The URL to track the package. This URL is provided by the carrier and is unique to the tracking number.\n"
+ },
+ "ship_to": {
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/shipping_address_to"
+ }
+ ],
+ "description": "The recipient's mailing address"
}
}
}
@@ -10317,7 +10809,7 @@
},
"validate_address": {
"writeOnly": true,
- "default": "validate_and_clean",
+ "default": "no_validation",
"allOf": [
{
"$ref": "#/components/schemas/validate_address"
@@ -10590,6 +11082,12 @@
"nullable": true,
"description": "Item Stock Keeping Unit"
},
+ "bundle_sku": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true,
+ "description": "Item Stock Keeping Unit of the product bundle"
+ },
"external_order_id": {
"type": "string",
"nullable": true,
@@ -10820,7 +11318,9 @@
"adult_signature",
"direct_signature",
"delivery_mailed",
- "verbal_confirmation"
+ "verbal_confirmation",
+ "delivery_code",
+ "age_verification_16_plus"
],
"description": "The possible delivery confirmation values"
},
@@ -10885,6 +11385,14 @@
}
]
},
+ "license_number": {
+ "type": "string",
+ "description": "The license number to be used in the customs."
+ },
+ "certificate_number": {
+ "type": "string",
+ "description": "The certificate number to be used in the customs."
+ },
"customs_items": {
"deprecated": true,
"type": "array",
@@ -10969,6 +11477,14 @@
],
"description": "Discount for shipment."
},
+ "estimated_import_charges": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/estimated_import_charges"
+ }
+ ],
+ "description": "Estimated import charges for commercial invoices for international shipments."
+ },
"other_charge": {
"allOf": [
{
@@ -10980,6 +11496,34 @@
"other_charge_description": {
"type": "string",
"description": "Description for the other charge (if provided)."
+ },
+ "invoice_number": {
+ "type": "string",
+ "description": "The invoice number to be used in the customs."
+ }
+ }
+ },
+ "estimated_import_charges": {
+ "title": "estimated_import_charges",
+ "type": "object",
+ "description": "Estimated import charges for commercial invoices for international shipments.\n",
+ "additionalProperties": false,
+ "properties": {
+ "taxes": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/monetary_value"
+ }
+ ],
+ "description": "Estimated import taxes."
+ },
+ "duties": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/monetary_value"
+ }
+ ],
+ "description": "Estimated import duties."
}
}
},
@@ -11377,21 +11921,41 @@
"nullable": true,
"default": null,
"example": 514785,
- "description": "license number."
+ "description": "license_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object."
},
"invoice_number": {
"type": "string",
"nullable": true,
"default": null,
"example": "IOC56888",
- "description": "invoice number."
+ "description": "invoice_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object."
},
"certificate_number": {
"type": "string",
"nullable": true,
"default": null,
"example": 784515,
- "description": "certificate number."
+ "description": "certificate_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object."
+ },
+ "delivery-as-addressed": {
+ "type": "boolean",
+ "default": false,
+ "description": "Instructs the carrier to deliver the package only to the exact address provided."
+ },
+ "return-after-first-attempt": {
+ "type": "boolean",
+ "default": false,
+ "description": "Ensures the shipment is immediately flagged for return to the sender if the initial delivery attempt fails."
+ },
+ "regulated_content_type": {
+ "nullable": true,
+ "default": null,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/regulated_content_type"
+ }
+ ],
+ "description": "Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements."
}
}
},
@@ -11458,6 +12022,15 @@
}
}
},
+ "regulated_content_type": {
+ "title": "regulated_content_type",
+ "type": "string",
+ "enum": [
+ "day_old_poultry",
+ "other_live_animal"
+ ],
+ "description": "Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements."
+ },
"insurance_provider": {
"title": "insurance_provider",
"type": "string",
@@ -11904,15 +12477,6 @@
],
"description": "The possible validate address values"
},
- "label_download_type": {
- "title": "label_download_type",
- "type": "string",
- "enum": [
- "url",
- "inline"
- ],
- "description": "There are two different ways to [download a label](https://www.shipengine.com/docs/labels/downloading/):\n\n|Label Download Type | Description\n|--------------------|------------------------------\n|`url` |You will receive a URL, which you can use to download the label in a separate request. The URL will remain valid for 90 days.
This is the default if `label_download_type` is unspecified.\n|`inline` |You will receive the Base64-encoded label as part of the response. No need for a second request to download the label.\n"
- },
"create_label_response_body": {
"title": "create_label_response_body",
"type": "object",
@@ -11922,6 +12486,8 @@
"label_id",
"status",
"shipment_id",
+ "external_shipment_id",
+ "external_order_id",
"ship_date",
"created_at",
"shipment_cost",
@@ -11940,6 +12506,7 @@
"tracking_status",
"label_download",
"form_download",
+ "qr_code_download",
"paperless_download",
"insurance_claim",
"packages",
@@ -11947,7 +12514,8 @@
"rma_number",
"charge_event",
"package_code",
- "display_scheme"
+ "display_scheme",
+ "ship_to"
],
"allOf": [
{
@@ -11987,6 +12555,19 @@
],
"description": "The shipment that this label is for. ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/)\n"
},
+ "external_shipment_id": {
+ "readOnly": true,
+ "type": "string",
+ "maxLength": 50,
+ "nullable": true,
+ "description": "A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.\n"
+ },
+ "external_order_id": {
+ "readOnly": true,
+ "type": "string",
+ "nullable": true,
+ "description": "ID that the Order Source assigne"
+ },
"shipment": {
"writeOnly": true,
"allOf": [
@@ -12226,6 +12807,15 @@
],
"description": "The current status of the package, such as `in_transit` or `delivered`"
},
+ "confirmation": {
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/delivery_confirmation"
+ }
+ ],
+ "description": "The type of delivery confirmation that is required for this shipment."
+ },
"label_download": {
"allOf": [
{
@@ -12244,6 +12834,16 @@
],
"description": "The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any. Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.\n"
},
+ "qr_code_download": {
+ "readOnly": true,
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/optional_link"
+ }
+ ],
+ "description": "The QR code download for the package"
+ },
"paperless_download": {
"readOnly": true,
"nullable": true,
@@ -12294,6 +12894,15 @@
"type": "string",
"example": "https://www.fedex.com/fedextrack/?action=track&trackingnumber=1234",
"description": "The URL to track the package. This URL is provided by the carrier and is unique to the tracking number.\n"
+ },
+ "ship_to": {
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/shipping_address_to"
+ }
+ ],
+ "description": "The recipient's mailing address"
}
}
},
@@ -12566,6 +13175,15 @@
"type": "string",
"description": "Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.",
"example": "retail"
+ },
+ "zone": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true,
+ "readOnly": true,
+ "minimum": 0,
+ "example": 6,
+ "description": "Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of\ncustom zones that vary depending upon the ship_to and ship_from location\n"
}
}
},
@@ -12589,11 +13207,25 @@
],
"additionalProperties": false,
"properties": {
+ "tag_id": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "minimum": 1,
+ "example": 8712,
+ "description": "An integer uniquely identifying a tag."
+ },
"name": {
"type": "string",
"minLength": 1,
"example": "Fragile",
"description": "The tag name."
+ },
+ "color": {
+ "type": "string",
+ "minLength": 1,
+ "example": "#FF0000",
+ "description": "A hex-coded string identifying the color of the tag."
}
}
},
@@ -12685,10 +13317,6 @@
}
]
},
- "tax_code": {
- "type": "string",
- "description": "Code for a specific tax type"
- },
"tax_percentage": {
"type": "number",
"description": "Tax percentage, e.g. 20 for 20%, added to the shipping cost"
@@ -12882,107 +13510,479 @@
"example": "last_mile_tracking_number",
"description": "The type of alternative_identifier that corresponds to the value.\n"
},
- "value": {
- "type": "string",
- "minLength": 1,
- "example": "12345678912345678912",
- "description": "The value of the alternative_identifier.\n"
- }
- }
- },
- "get_label_by_external_shipment_id_response_body": {
- "title": "get_label_by_external_shipment_id_response_body",
- "type": "object",
- "description": "A get label by external shipment id response body",
- "additionalProperties": false,
- "allOf": [
- {
- "$ref": "#/components/schemas/label"
- }
- ]
- },
- "create_label_from_rate_request_body": {
- "title": "create_label_from_rate_request_body",
- "type": "object",
- "description": "A purchase label without shipment request body",
- "additionalProperties": false,
- "allOf": [
- {
- "$ref": "#/components/schemas/purchase_label_without_shipment"
- }
- ],
- "properties": {
- "custom_field1": {
- "type": "string",
- "description": "Optional - Value will be saved in the shipment's advanced_options > custom_field1"
+ "value": {
+ "type": "string",
+ "minLength": 1,
+ "example": "12345678912345678912",
+ "description": "The value of the alternative_identifier.\n"
+ }
+ }
+ },
+ "get_label_by_external_shipment_id_response_body": {
+ "title": "get_label_by_external_shipment_id_response_body",
+ "type": "object",
+ "description": "A get label by external shipment id response body",
+ "additionalProperties": false,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label"
+ }
+ ]
+ },
+ "create_label_from_rate_request_body": {
+ "title": "create_label_from_rate_request_body",
+ "type": "object",
+ "description": "A purchase label without shipment request body",
+ "additionalProperties": false,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/purchase_label_without_shipment"
+ }
+ ],
+ "properties": {
+ "custom_field1": {
+ "type": "string",
+ "description": "Optional - Value will be saved in the shipment's advanced_options > custom_field1"
+ },
+ "custom_field2": {
+ "type": "string",
+ "description": "Optional - Value will be saved in the shipment's advanced_options > custom_field2"
+ },
+ "custom_field3": {
+ "type": "string",
+ "description": "Optional - Value will be saved in the shipment's advanced_options > custom_field3"
+ }
+ }
+ },
+ "purchase_label_without_shipment": {
+ "title": "purchase_label_without_shipment",
+ "type": "object",
+ "description": "A purchase label without shipment resource",
+ "additionalProperties": false,
+ "properties": {
+ "validate_address": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/validate_address"
+ }
+ ]
+ },
+ "label_layout": {
+ "default": "4x6",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label_layout"
+ }
+ ]
+ },
+ "label_format": {
+ "default": "pdf",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label_format"
+ }
+ ]
+ },
+ "label_download_type": {
+ "default": "url",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label_download_type"
+ }
+ ]
+ },
+ "display_scheme": {
+ "default": "label",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/display_scheme"
+ }
+ ],
+ "description": "The display format that the label should be shown in."
+ }
+ }
+ },
+ "create_label_from_rate_response_body": {
+ "title": "create_label_from_rate_response_body",
+ "type": "object",
+ "description": "A create label from rate response body",
+ "additionalProperties": false,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label"
+ }
+ ]
+ },
+ "rate_attributes": {
+ "title": "rate_attributes",
+ "type": "string",
+ "enum": [
+ "best_value",
+ "cheapest",
+ "fastest"
+ ],
+ "description": "Optional attributes that indicate the most profitable rates"
+ },
+ "create_label_rate_shopper_request_body": {
+ "title": "create_label_rate_shopper_request_body",
+ "type": "object",
+ "description": "Request body for creating a label using the Rate Shopper. The Rate Shopper\nautomatically selects the carrier and service based on your specified strategy.\n\n**Important Constraints:**\n- You MUST provide shipment details inline in the `shipment` object\n- You MUST NOT set `shipment_id` (inline shipment only)\n- You MUST NOT include `carrier_id`, `service_code`, or `shipping_rule_id`\n in the shipment (Rate Shopper selects these automatically)\n- Only carriers configured in your wallet will be considered\n- This endpoint is not available in sandbox mode\n",
+ "additionalProperties": false,
+ "required": [
+ "shipment"
+ ],
+ "properties": {
+ "shipment": {
+ "description": "The shipment details for which to create a label. Must be provided inline.\nThe carrier_id, service_code, and shipping_rule_id are not included as these\nwill be automatically determined by the Rate Shopper based on your strategy.\n",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/partial_shipment_for_rate_shopper"
+ }
+ ]
+ },
+ "is_return_label": {
+ "type": "boolean",
+ "description": "Indicates whether this is a return label. You may also want to set the `rma_number` so you know what is being returned.\n"
+ },
+ "rma_number": {
+ "type": "string",
+ "nullable": true,
+ "description": "An optional Return Merchandise Authorization number. This field is useful for return labels. You can set it to any string value.\n"
+ },
+ "charge_event": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label_charge_event"
+ }
+ ],
+ "description": "The label charge event.\n"
+ },
+ "outbound_label_id": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/se_id"
+ }
+ ],
+ "writeOnly": true,
+ "description": "The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is\nrequired by some carriers.\n"
+ },
+ "test_label": {
+ "writeOnly": true,
+ "type": "boolean",
+ "default": false,
+ "deprecated": true,
+ "description": "Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account."
+ },
+ "validate_address": {
+ "writeOnly": true,
+ "default": "no_validation",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/validate_address"
+ }
+ ]
+ },
+ "label_download_type": {
+ "writeOnly": true,
+ "default": "url",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label_download_type"
+ }
+ ]
+ },
+ "label_format": {
+ "default": "pdf",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label_format"
+ }
+ ],
+ "description": "The file format that you want the label to be in. We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.\n"
+ },
+ "display_scheme": {
+ "default": "label",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/display_scheme"
+ }
+ ],
+ "description": "The display format that the label should be shown in."
+ },
+ "label_layout": {
+ "default": "4x6",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/label_layout"
+ }
+ ],
+ "description": "The layout (size) that you want the label to be in. The `label_format` determines which sizes are allowed. `4x6` is supported for all label formats, whereas `letter` (8.5\" x 11\") is only supported for `pdf` format.\n"
+ },
+ "label_image_id": {
+ "nullable": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/image_id"
+ }
+ ],
+ "description": "The label image resource that was used to create a custom label image."
+ }
+ }
+ },
+ "partial_shipment_for_rate_shopper": {
+ "title": "partial_shipment_for_rate_shopper",
+ "type": "object",
+ "description": "The information necessary to ship a package for Rate Shopper, such as the origin, the destination, and the package dimensions and weight.\n\n**Note:** This schema excludes carrier_id, service_code, and shipping_rule_id as these are automatically selected by the Rate Shopper based on your chosen strategy.\n",
+ "additionalProperties": false,
+ "properties": {
+ "shipment_id": {
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/se_id"
+ }
+ ],
+ "description": "A string that uniquely identifies the shipment"
+ },
+ "external_order_id": {
+ "type": "string",
+ "nullable": true,
+ "description": "ID that the Order Source assigned"
+ },
+ "items": {
+ "type": "array",
+ "default": [],
+ "items": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/shipment_item"
+ }
+ ]
+ },
+ "description": "Describe the packages included in this shipment as related to potential metadata that was imported from\nexternal order sources\n"
+ },
+ "tax_identifiers": {
+ "type": "array",
+ "nullable": true,
+ "items": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/tax_identifier"
+ }
+ ]
+ }
+ },
+ "external_shipment_id": {
+ "type": "string",
+ "maxLength": 50,
+ "nullable": true,
+ "description": "A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.\n\n> **Warning:** The `external_shipment_id` is limited to 50 characters. Any additional characters will be truncated.\n"
+ },
+ "shipment_number": {
+ "type": "string",
+ "maxLength": 50,
+ "nullable": true,
+ "description": "A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment.\n\n> **Warning:** The `shipment_number` is limited to 50 characters. Any additional characters will be truncated.\n"
+ },
+ "ship_date": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/date"
+ }
+ ],
+ "description": "The date that the shipment was (or will be) shipped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead.\n"
+ },
+ "created_at": {
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/date_time"
+ }
+ ],
+ "description": "The date and time that the shipment was created in ShipEngine."
+ },
+ "modified_at": {
+ "readOnly": true,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/date_time"
+ }
+ ],
+ "description": "The date and time that the shipment was created or last modified."
+ },
+ "shipment_status": {
+ "readOnly": true,
+ "default": "pending",
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/shipment_status"
+ }
+ ],
+ "description": "The current status of the shipment"
+ },
+ "ship_to": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/shipping_address_to"
+ }
+ ],
+ "description": "The recipient's mailing address"
+ },
+ "ship_from": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/shipping_address"
+ }
+ ],
+ "description": "The shipment's origin address. If you frequently ship from the same location, consider [creating a warehouse](https://www.shipengine.com/docs/reference/create-warehouse/). Then you can simply specify the `warehouse_id` rather than the complete address each time.\n"
+ },
+ "warehouse_id": {
+ "nullable": true,
+ "default": null,
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/se_id"
+ }
+ ],
+ "description": "The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified.\n"
},
- "custom_field2": {
- "type": "string",
- "description": "Optional - Value will be saved in the shipment's advanced_options > custom_field2"
+ "return_to": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/shipping_address"
+ }
+ ],
+ "description": "The return address for this shipment. Defaults to the `ship_from` address.\n"
},
- "custom_field3": {
- "type": "string",
- "description": "Optional - Value will be saved in the shipment's advanced_options > custom_field3"
- }
- }
- },
- "purchase_label_without_shipment": {
- "title": "purchase_label_without_shipment",
- "type": "object",
- "description": "A purchase label without shipment resource",
- "additionalProperties": false,
- "properties": {
- "validate_address": {
+ "is_return": {
+ "type": "boolean",
+ "nullable": true,
+ "default": false,
+ "description": "An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.\n"
+ },
+ "confirmation": {
+ "default": "none",
"allOf": [
{
- "$ref": "#/components/schemas/validate_address"
+ "$ref": "#/components/schemas/delivery_confirmation"
}
- ]
+ ],
+ "description": "The type of delivery confirmation that is required for this shipment."
},
- "label_layout": {
- "default": "4x6",
+ "customs": {
+ "nullable": true,
+ "default": null,
"allOf": [
{
- "$ref": "#/components/schemas/label_layout"
+ "$ref": "#/components/schemas/international_shipment_options"
}
- ]
+ ],
+ "description": "Customs information. This is usually only needed for international shipments.\n"
},
- "label_format": {
- "default": "pdf",
+ "advanced_options": {
"allOf": [
{
- "$ref": "#/components/schemas/label_format"
+ "$ref": "#/components/schemas/advanced_shipment_options"
}
- ]
+ ],
+ "description": "Advanced shipment options. These are entirely optional."
},
- "label_download_type": {
+ "insurance_provider": {
+ "default": "none",
"allOf": [
{
- "$ref": "#/components/schemas/label_download_type"
+ "$ref": "#/components/schemas/insurance_provider"
+ }
+ ],
+ "description": "The insurance provider to use for any insured packages in the shipment.\n"
+ },
+ "tags": {
+ "type": "array",
+ "readOnly": true,
+ "default": [],
+ "minItems": 0,
+ "items": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/tag"
+ }
+ ]
+ },
+ "description": "Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags.\n"
+ },
+ "order_source_code": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/order_source_name"
}
]
},
- "display_scheme": {
- "default": "label",
+ "packages": {
+ "type": "array",
+ "minItems": 1,
+ "items": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/package"
+ }
+ ]
+ },
+ "description": "The packages in the shipment.\n\n> **Note:** Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.\n"
+ },
+ "total_weight": {
+ "readOnly": true,
"allOf": [
{
- "$ref": "#/components/schemas/display_scheme"
+ "$ref": "#/components/schemas/weight"
}
],
- "description": "The display format that the label should be shown in."
+ "description": "The combined weight of all packages in the shipment"
+ },
+ "comparison_rate_type": {
+ "nullable": true,
+ "type": "string",
+ "description": "Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.",
+ "example": "retail"
+ },
+ "zone": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true,
+ "readOnly": true,
+ "minimum": 0,
+ "example": 6,
+ "description": "Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of\ncustom zones that vary depending upon the ship_to and ship_from location\n"
}
}
},
- "create_label_from_rate_response_body": {
- "title": "create_label_from_rate_response_body",
+ "create_label_rate_shopper_response_body": {
+ "title": "create_label_rate_shopper_response_body",
"type": "object",
- "description": "A create label from rate response body",
+ "description": "The response from creating a label using the Rate Shopper. Includes all standard\nlabel information plus the rate_shopper_id indicating which strategy was used.\n",
"additionalProperties": false,
"allOf": [
{
"$ref": "#/components/schemas/label"
}
- ]
+ ],
+ "properties": {
+ "rate_shopper_id": {
+ "description": "The rate selection strategy that was used to create this label. This will\nmatch the rate_shopper_id provided in the request path.\n",
+ "readOnly": true,
+ "allOf": [
+ {
+ "title": "rate_attributes",
+ "type": "string",
+ "enum": [
+ "best_value",
+ "cheapest",
+ "fastest"
+ ],
+ "description": "Optional attributes that indicate the most profitable rates"
+ }
+ ]
+ }
+ }
},
"create_label_from_shipment_request_body": {
"title": "create_label_from_shipment_request_body",
@@ -13014,6 +14014,7 @@
]
},
"label_download_type": {
+ "default": "url",
"allOf": [
{
"$ref": "#/components/schemas/label_download_type"
@@ -13111,6 +14112,11 @@
}
],
"description": "The label image resource that was used to create a custom label image."
+ },
+ "rma_number": {
+ "type": "string",
+ "nullable": true,
+ "description": "An optional Return Merchandise Authorization number. If provided, this value will be used as the return label's RMA number. If omitted, the system will auto-generate an RMA number (current default behavior). You can set it to any string value.\n"
}
}
},
@@ -13333,8 +14339,6 @@
"HELD_BY_CARRIER",
"HELD_BY_CARRIER_FOR_CLEARANCE_PRE_PROCESSING",
"HELD_BY_CUSTOMS",
- "HELD_BY_EXPORT_CUSTOMS",
- "HELD_BY_IMPORT_CUSTOMS",
"INCORRECT_DECLARATION",
"MISROUTED",
"PARCEL_REPACKED",
@@ -13353,10 +14357,15 @@
"PARCEL_OUTSIDE_OF_SERVICE_CAPABILITY",
"REFUSED_BY_CUSTOMER",
"RETURN_TO_SENDER",
- "UNSPECIFIED_EXCEPTION"
+ "UNSPECIFIED_EXCEPTION",
+ "TRACKING_EXPIRED",
+ "DUTY_NOT_PAID",
+ "PARCEL_REDIRECTED_BY_CARRIER",
+ "DELIVERED_TO_PICKUP_POINT",
+ "UNDELIVERABLE_RETURNED_TO_SENDER"
],
"type": "string",
- "description": "The tracking status detail codes\n\n|Value |Description\n|:--------- |:-----------------------------------------------------\n| `CARRIER_STATUS_NOT_MAPPED` | Status not mapped. Please check the carrier's website for updates.\n| `SHIPMENT_CREATED` | Your tracking number is ready. Your parcel is waiting to be registered in the carrier system and scheduled for pickup.\n| `AWAITING_PICKUP_DROP_OFF` | Your parcel is waiting to be handed over to the carrier.\n| `DROPPED_OFF` | Your parcel has been dropped off and is ready for carrier processing.\n| `ELEC_ADVICE_RECD_BY_CARRIER` | Your shipment is now in the carrier's system.\n| `PICKED_UP` | Your parcel has been picked up by the carrier.\n| `CUSTOMS_CLEARED` | Your parcel has cleared customs and is continuing its journey.\n| `CUSTOMS_PROCESSING` | Your parcel is currently being processed by customs.\n| `DELIVERY_ARRANGED_WITH_RECIPIENT` | Your parcel's delivery has been arranged with the carrier.\n| `HUB_SCAN_OUT` | Your parcel has left the carrier's hub.\n| `HUB_SCAN_IN` | Your parcel has arrived at the carrier's hub for processing.\n| `IN_TRANSIT` | Your shipment is on its way between the carrier hubs.\n| `INFORMATION` | The carrier has shared additional information about your parcel.\n| `PARCEL_OVER_LABELLED` | Your parcel's label has been updated by the carrier, which may affect tracking visibility.\n| `PARCEL_UPDATE_NOTIFICATION` | The carrier has sent you an update on your parcel status via SMS or email.\n| `RECEIVED_BY_CARRIER` | Your parcel has been received by the carrier and is beginning its journey.\n| `RECEIVED_LOCAL_DELIVERY_DEPOT` | Your parcel has arrived at the local delivery depot and is almost ready for delivery.\n| `SUB_CONTRACTOR_EVENT` | The carrier has shared additional information about your parcel's handling by a delivery partner.\n| `SUB_CONTRACTOR_RECEIVED` | Your parcel has been received by the carrier's local delivery partner.\n| `PARCEL_REDIRECTED` | Your parcel has been redirected to a new delivery address per your request.\n| `DELIVERY_SCHEDULED` | Your parcel's delivery has been scheduled and will soon be out for delivery.\n| `HUB_PROCESSING` | Your parcel is being processed at a carrier hub.\n| `DELIVERY_RESCHEDULED` | Your parcel's delivery has been rescheduled due to operational issues.\n| `ATTEMPTED_DELIVERY` | The carrier attempted to deliver your parcel but was unable to complete delivery.\n| `ATTEMPTED_DELIVERY_FINAL` | The carrier made a final attempt to deliver your parcel but was unable to complete delivery. Please check the carrier's instructions for next steps.\n| `COD_AMOUNT_PAID` | Cash on delivery payment received.\n| `CUSTOMER_CARDED` | Delivery attempt failed. Please follow delivery instructions left by the carrier.\n| `OUT_FOR_DELIVERY` | Your parcel is on its way and will be delivered today.\n| `AWAITING_COLLECTION_FROM_PICKUP_POINT` | Your parcel is ready for collection at the selected pickup point.\n| `COLLECT_AT_LOCAL_PO` | Your parcel is ready for collection at your local post office.\n| `CUSTOMER_TO_COLLECT_FROM_CARRIER` | Your parcel is available for collection from the carrier's local delivery unit.\n| `DELIVERED_TO_RECEPTION` | Your parcel has been delivered to your building's reception or designated mail area.\n| `DELIVERED` | Your parcel has been successfully delivered.\n| `DELIVERED_DAMAGED` | Your parcel was delivered but arrived with visible damage.\n| `DELIVERED_IN_PART` | Part of your shipment has been delivered. Check for updates on the rest.\n| `DELIVERED_SPECIFIED_SAFE_PLACE` | Your parcel has been delivered to your specified safe place.\n| `DELIVERED_TO_ALTERNATIVE_DELIVERY_LOCATION` | Your parcel was delivered to an alternative location due to the delivery company being unable to deliver it to the specified address. Check carrier instructions for pickup details.\n| `DELIVERED_TO_NEIGHBOUR` | Your parcel was delivered to your neighbor.\n| `DELIVERED_TO_PO_BOX` | Your parcel has been delivered to your specified PO Box.\n| `PARCEL_COLLECTED_FROM_PICKUP_POINT` | Your package has been picked up from the pick up point.\n| `POST_TRANSIT_STATUS` | The carrier has added more information about your delivery.\n| `PROOF_OF_DELIVERY` | The carrier has confirmed delivery with proof, such as a signature or photo.\n| `PICKUP_FAILED` | Parcel pickup failed. The delivery company will try again soon.\n| `NOT_YET_RECEIVED_BY_CARRIER` | The carrier has not yet received your parcel, which may cause a delay.\n| `PARCEL_DAMAGED` | Your parcel was damaged in transit but will still be delivered.\n| `ADDRESS_QUERY` | There is an issue with the delivery address, which may delay your parcel.\n| `CARRIER_DELAYS` | Your parcel is delayed due to issues within the carrier network.\n| `DELAYED_NOT_CARRIER` | Your parcel is delayed due to circumstances beyond the carrier's control.\n| `HELD_BY_CARRIER` | Your parcel is being held due to an operational issue. Contact with the carrier for more information.\n| `HELD_BY_CARRIER_FOR_CLEARANCE_PRE_PROCESSING` | Your parcel is being held by the carrier for customs documentation checks. This may occur when the carrier must confirm documentation before the parcel can continue its journey.\n| `HELD_BY_CUSTOMS` | Your parcel is being held at customs, which may delay delivery.\n| `HELD_BY_EXPORT_CUSTOMS` | Your parcel is held at export customs, which may delay delivery.\n| `HELD_BY_IMPORT_CUSTOMS` | Your parcel is held at import customs and may require action to proceed.\n| `INCORRECT_DECLARATION` | Your parcel has been incorrectly declared but is still moving forward for delivery.\n| `MISROUTED` | Your parcel was sent to the wrong place due to a routing error but is being redirected.\n| `PARCEL_REPACKED` | Your parcel was repackaged by the carrier due to damage and will still be delivered.\n| `RECD_BY_CARRIER_NO_ELEC_ADVICE` | Your parcel has been received by the carrier but may experience delays due to missing pre-advice.\n| `COD_AMOUNT_NOT_PAID` | Delivery failed due to unpaid cash on delivery. Please follow carrier instructions.\n| `CUSTOMER_IDENTIFICATION_FAILED` | Delivery couldn't be completed as identification requirements were not met.\n| `NO_ACCESS_TO_RECIPIENTS_ADDRESS` | The carrier couldn't access the delivery location due to restricted entry.\n| `CANCELLED` | Your parcel has been cancelled.\n| `CUSTOMER_MOVED` | Delivery failed as the recipient is no longer at the specified address. Your parcel is being returned.\n| `HAZARDOUS_PROHIBITED` | Your parcel contains restricted items and will not be delivered.\n| `NOT_COLLECTED_FROM_PICKUP_POINT` | Your parcel was not collected from the pickup point within the designated time and will be returned.\n| `NOT_DELIVERED` | All delivery attempts failed. Your parcel is being returned to the sender.\n| `NOT_DELIVERED_ADDRESSEE_DECEASED` | The parcel could not be delivered as the addressee is reported deceased.\n| `PARCEL_DISPOSED` | Your parcel has been disposed of due to its contents or condition and will not be delivered.\n| `PARCEL_LOST` | The carrier has reported that your parcel is lost and will not be delivered.\n| `PARCEL_OUTSIDE_OF_SERVICE_CAPABILITY` | The parcel cannot be delivered as it exceeds the carrier's service limits.\n| `REFUSED_BY_CUSTOMER` | You have refused the parcel, and it will be returned to the sender.\n| `RETURN_TO_SENDER` | Your parcel is being returned to the sender due to delivery issues.\n| `UNSPECIFIED_EXCEPTION` | The carrier has reported an issue with your parcel, but details are unavailable.\n"
+ "description": "The tracking status detail codes\n\n|Value |Description\n|:--------- |:-----------------------------------------------------\n| `CARRIER_STATUS_NOT_MAPPED` | Status not mapped. Please check the carrier's website for updates.\n| `SHIPMENT_CREATED` | Your tracking number is ready. Your parcel is waiting to be registered in the carrier system and scheduled for pickup.\n| `AWAITING_PICKUP_DROP_OFF` | Your parcel is waiting to be handed over to the carrier.\n| `DROPPED_OFF` | Your parcel has been dropped off and is ready for carrier processing.\n| `ELEC_ADVICE_RECD_BY_CARRIER` | Your shipment is now in the carrier's system.\n| `PICKED_UP` | Your parcel has been picked up by the carrier.\n| `CUSTOMS_CLEARED` | Your parcel has cleared customs and is continuing its journey.\n| `CUSTOMS_PROCESSING` | Your parcel is currently being processed by customs.\n| `DELIVERY_ARRANGED_WITH_RECIPIENT` | Your parcel's delivery has been arranged with the carrier.\n| `HUB_SCAN_OUT` | Your parcel has left the carrier's hub.\n| `HUB_SCAN_IN` | Your parcel has arrived at the carrier's hub for processing.\n| `IN_TRANSIT` | Your shipment is on its way between the carrier hubs.\n| `INFORMATION` | The carrier has shared additional information about your parcel.\n| `PARCEL_OVER_LABELLED` | Your parcel's label has been updated by the carrier, which may affect tracking visibility.\n| `PARCEL_UPDATE_NOTIFICATION` | The carrier has sent you an update on your parcel status via SMS or email.\n| `RECEIVED_BY_CARRIER` | Your parcel has been received by the carrier and is beginning its journey.\n| `RECEIVED_LOCAL_DELIVERY_DEPOT` | Your parcel has arrived at the local delivery depot and is almost ready for delivery.\n| `SUB_CONTRACTOR_EVENT` | The carrier has shared additional information about your parcel's handling by a delivery partner.\n| `SUB_CONTRACTOR_RECEIVED` | Your parcel has been received by the carrier's local delivery partner.\n| `PARCEL_REDIRECTED` | Your parcel has been redirected to a new delivery address per your request.\n| `DELIVERY_SCHEDULED` | Your parcel's delivery has been scheduled and will soon be out for delivery.\n| `HUB_PROCESSING` | Your parcel is being processed at a carrier hub.\n| `DELIVERY_RESCHEDULED` | Your parcel's delivery has been rescheduled due to operational issues.\n| `ATTEMPTED_DELIVERY` | The carrier attempted to deliver your parcel but was unable to complete delivery.\n| `ATTEMPTED_DELIVERY_FINAL` | The carrier made a final attempt to deliver your parcel but was unable to complete delivery. Please check the carrier's instructions for next steps.\n| `COD_AMOUNT_PAID` | Cash on delivery payment received.\n| `CUSTOMER_CARDED` | Delivery attempt failed. Please follow delivery instructions left by the carrier.\n| `OUT_FOR_DELIVERY` | Your parcel is on its way and will be delivered today.\n| `AWAITING_COLLECTION_FROM_PICKUP_POINT` | Your parcel is ready for collection at the selected pickup point.\n| `COLLECT_AT_LOCAL_PO` | Your parcel is ready for collection at your local post office.\n| `CUSTOMER_TO_COLLECT_FROM_CARRIER` | Your parcel is available for collection from the carrier's local delivery unit.\n| `DELIVERED_TO_RECEPTION` | Your parcel has been delivered to your building's reception or designated mail area.\n| `DELIVERED` | Your parcel has been successfully delivered.\n| `DELIVERED_DAMAGED` | Your parcel was delivered but arrived with visible damage.\n| `DELIVERED_IN_PART` | Part of your shipment has been delivered. Check for updates on the rest.\n| `DELIVERED_SPECIFIED_SAFE_PLACE` | Your parcel has been delivered to your specified safe place.\n| `DELIVERED_TO_ALTERNATIVE_DELIVERY_LOCATION` | Your parcel was delivered to an alternative location due to the delivery company being unable to deliver it to the specified address. Check carrier instructions for pickup details.\n| `DELIVERED_TO_NEIGHBOUR` | Your parcel was delivered to your neighbor.\n| `DELIVERED_TO_PO_BOX` | Your parcel has been delivered to your specified PO Box.\n| `PARCEL_COLLECTED_FROM_PICKUP_POINT` | Your package has been picked up from the pick up point.\n| `POST_TRANSIT_STATUS` | The carrier has added more information about your delivery.\n| `PROOF_OF_DELIVERY` | The carrier has confirmed delivery with proof, such as a signature or photo.\n| `PICKUP_FAILED` | Parcel pickup failed. The delivery company will try again soon.\n| `NOT_YET_RECEIVED_BY_CARRIER` | The carrier has not yet received your parcel, which may cause a delay.\n| `PARCEL_DAMAGED` | Your parcel was damaged in transit but will still be delivered.\n| `ADDRESS_QUERY` | There is an issue with the delivery address, which may delay your parcel.\n| `CARRIER_DELAYS` | Your parcel is delayed due to issues within the carrier network.\n| `DELAYED_NOT_CARRIER` | Your parcel is delayed due to circumstances beyond the carrier's control.\n| `HELD_BY_CARRIER` | Your parcel is being held due to an operational issue. Contact with the carrier for more information.\n| `HELD_BY_CARRIER_FOR_CLEARANCE_PRE_PROCESSING` | Your parcel is being held by the carrier for customs documentation checks. This may occur when the carrier must confirm documentation before the parcel can continue its journey.\n| `HELD_BY_CUSTOMS` | Your parcel is being held at customs, which may delay delivery.\n| `INCORRECT_DECLARATION` | Your parcel has been incorrectly declared but is still moving forward for delivery.\n| `MISROUTED` | Your parcel was sent to the wrong place due to a routing error but is being redirected.\n| `PARCEL_REPACKED` | Your parcel was repackaged by the carrier due to damage and will still be delivered.\n| `RECD_BY_CARRIER_NO_ELEC_ADVICE` | Your parcel has been received by the carrier but may experience delays due to missing pre-advice.\n| `COD_AMOUNT_NOT_PAID` | Delivery failed due to unpaid cash on delivery. Please follow carrier instructions.\n| `CUSTOMER_IDENTIFICATION_FAILED` | Delivery couldn't be completed as identification requirements were not met.\n| `NO_ACCESS_TO_RECIPIENTS_ADDRESS` | The carrier couldn't access the delivery location due to restricted entry.\n| `CANCELLED` | Your parcel has been cancelled.\n| `CUSTOMER_MOVED` | Delivery failed as the recipient is no longer at the specified address. Your parcel is being returned.\n| `HAZARDOUS_PROHIBITED` | Your parcel contains restricted items and will not be delivered.\n| `NOT_COLLECTED_FROM_PICKUP_POINT` | Your parcel was not collected from the pickup point within the designated time and will be returned.\n| `NOT_DELIVERED` | All delivery attempts failed. Your parcel is being returned to the sender.\n| `NOT_DELIVERED_ADDRESSEE_DECEASED` | The parcel could not be delivered as the addressee is reported deceased.\n| `PARCEL_DISPOSED` | Your parcel has been disposed of due to its contents or condition and will not be delivered.\n| `PARCEL_LOST` | The carrier has reported that your parcel is lost and will not be delivered.\n| `PARCEL_OUTSIDE_OF_SERVICE_CAPABILITY` | The parcel cannot be delivered as it exceeds the carrier's service limits.\n| `REFUSED_BY_CUSTOMER` | You have refused the parcel, and it will be returned to the sender.\n| `RETURN_TO_SENDER` | Your parcel is being returned to the sender due to delivery issues.\n| `UNSPECIFIED_EXCEPTION` | The carrier has reported an issue with your parcel, but details are unavailable.\n| `TRACKING_EXPIRED` | Tracking for this parcel has expired. If you are still expecting this delivery, please contact the carrier for assistance.\n| `DUTY_NOT_PAID` | The import taxes or duties for this package havent been paid and it may be subject to disposal by customs authorities if payment is not made.\n| `PARCEL_REDIRECTED_BY_CARRIER` | The carrier has redirected your parcel due to an operational issue. The package is likely being rerouted to a nearby pickup point. You may contact the carrier for more details about the new delivery location.\n| `DELIVERED_TO_PICKUP_POINT` | Your package has been delivered to the pickup point. You will be notified when its ready for collection.\n| `UNDELIVERABLE_RETURNED_TO_SENDER` | The shipment has been returned to the sender. Please contact the sender for further information.\n"
},
"track_event": {
"title": "track_event",
@@ -13508,6 +14517,12 @@
"minimum": -180,
"maximum": 180,
"description": "Longitude coordinate of tracking event."
+ },
+ "proof_of_delivery_url": {
+ "type": "string",
+ "readOnly": true,
+ "example": "https://tracking-service-prod.s3.amazonaws.com/proof-of-delivery/dummy_module/0000000001/bc6dd17969bd97f24262ca73ac6ff36062aafecba25ef16d4178264bf7c0e72c.png",
+ "description": "A URL to an image captured at the time of delivery, serving as evidence that the shipment was successfully delivered to the recipient. It can be used to capture things like recipient's signature, location of delivery, condition of the package upon delivery, etc."
}
}
},
@@ -14504,7 +15519,21 @@
{
"$ref": "#/components/schemas/rate_request_options"
}
- ]
+ ],
+ "properties": {
+ "ship_to_service_point_id": {
+ "nullable": true,
+ "type": "string",
+ "description": "A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address.",
+ "example": "614940"
+ },
+ "ship_from_service_point_id": {
+ "nullable": true,
+ "type": "string",
+ "description": "A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address.",
+ "example": "614940"
+ }
+ }
},
"shipment_id_request": {
"title": "shipment_id_request",
@@ -14634,6 +15663,15 @@
"is_return": {
"type": "boolean",
"description": "Indicate if it's a return shipment"
+ },
+ "rate_type": {
+ "type": "string",
+ "enum": [
+ "check",
+ "shipment",
+ "quick"
+ ],
+ "description": "Indicates what type of rating to perform"
}
}
},
@@ -14696,6 +15734,22 @@
"allOf": [
{
"$ref": "#/components/schemas/rate"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "rate_attributes": {
+ "type": "array",
+ "items": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/rate_attributes"
+ }
+ ]
+ },
+ "description": "Optional attributes that indicate the most profitable rates"
+ }
+ }
}
],
"description": "Shipment Rates"
@@ -15061,7 +16115,21 @@
{
"$ref": "#/components/schemas/rate_request_by_shipments"
}
- ]
+ ],
+ "properties": {
+ "ship_to_service_point_id": {
+ "nullable": true,
+ "type": "string",
+ "description": "A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address.",
+ "example": "614940"
+ },
+ "ship_from_service_point_id": {
+ "nullable": true,
+ "type": "string",
+ "description": "A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address.",
+ "example": "614940"
+ }
+ }
},
"rate_request_rate_options": {
"title": "rate_request_rate_options",
@@ -15579,6 +16647,17 @@
"description": "error message"
},
"description": "The error messages"
+ },
+ "rate_attributes": {
+ "type": "array",
+ "items": {
+ "allOf": [
+ {
+ "$ref": "#/components/schemas/rate_attributes"
+ }
+ ]
+ },
+ "description": "Optional attributes that indicate the most profitable rates"
}
}
},
@@ -16674,6 +17753,29 @@
}
}
},
+ "create_tag_request_body": {
+ "title": "create_tag_request_body",
+ "type": "object",
+ "description": "A create tag request body",
+ "required": [
+ "name"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "example": "Fragile",
+ "description": "The tag name."
+ },
+ "color": {
+ "type": "string",
+ "minLength": 1,
+ "example": "#FF0000",
+ "description": "A hex-coded string identifying the color of the tag."
+ }
+ }
+ },
"create_tag_response_body": {
"title": "create_tag_response_body",
"type": "object",
diff --git a/generation/templates/modelOneOf.mustache b/generation/templates/modelOneOf.mustache
index 720448ac..a590fa7d 100644
--- a/generation/templates/modelOneOf.mustache
+++ b/generation/templates/modelOneOf.mustache
@@ -294,8 +294,17 @@ public class {{classname}}JsonConverter : JsonConverter<{{classname}}>
{{#composedSchemas.allOf}}
{{#allVars}}
+ {{#required}}
writer.WritePropertyName("{{baseName}}");
JsonSerializer.Serialize(writer, value.{{name}}, options);
+ {{/required}}
+ {{^required}}
+ if (value.{{name}} != null)
+ {
+ writer.WritePropertyName("{{baseName}}");
+ JsonSerializer.Serialize(writer, value.{{name}}, options);
+ }
+ {{/required}}
{{/allVars}}
{{/composedSchemas.allOf}}
@@ -332,7 +341,12 @@ public class {{classname}}JsonConverter : JsonConverter<{{classname}}>
{{#composedSchemas.allOf}}
// Deserialize all the common properties of the model so they can be used in object initializers later
{{#allVars}}
+ {{#required}}
var {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} = jsonDoc.RootElement.GetProperty("{{baseName}}").Deserialize<{{#isEnum}}{{{complexType}}}{{^complexType}}{{{datatypeWithEnum}}}{{/complexType}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}>(DeserializingOptions)!;
+ {{/required}}
+ {{^required}}
+ var {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}} = jsonDoc.RootElement.TryGetProperty("{{baseName}}", out var {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}Element) ? {{#lambda.camelcase_sanitize_param}}{{name}}{{/lambda.camelcase_sanitize_param}}Element.Deserialize<{{#isEnum}}{{{complexType}}}{{^complexType}}{{{datatypeWithEnum}}}{{/complexType}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}>(DeserializingOptions) : null;
+ {{/required}}
{{/allVars}}
{{/composedSchemas.allOf}}
diff --git a/package-lock.json b/package-lock.json
index 3e46ab52..ef6a21f9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -52,6 +52,7 @@
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.0.tgz",
"integrity": "sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==",
"dev": true,
+ "peer": true,
"dependencies": {
"iterare": "1.2.1",
"tslib": "2.6.2",
@@ -231,6 +232,7 @@
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
"integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
"dev": true,
+ "peer": true,
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
@@ -1075,7 +1077,8 @@
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
- "dev": true
+ "dev": true,
+ "peer": true
},
"node_modules/regenerator-runtime": {
"version": "0.14.1",
@@ -1119,6 +1122,7 @@
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
"integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
"dev": true,
+ "peer": true,
"dependencies": {
"tslib": "^2.1.0"
}