diff --git a/resources/metadata/modifications.json b/resources/metadata/modifications.json index 31bb6cbb..2d99c266 100644 --- a/resources/metadata/modifications.json +++ b/resources/metadata/modifications.json @@ -84,6 +84,13 @@ "value": { "$ref": "#/components/schemas/Alert_3P" } + }, { + "comment": "The upstream items definition here is an anyOf with two different components with identical schemas, so we're just picking one", + "action": "replace", + "path": "components.schemas.TransactionCreateShipmentOutputVO.properties.alerts.items", + "value": { + "$ref": "#/components/schemas/Alert_3P" + } }, { "comment": "Add missing alertType property to Alert_3P", "action": "merge", @@ -100,13 +107,33 @@ } } }, { - " comment": "Remove required fields from PartyAddress", + "comment": "Remove required fields from PartyAddress", "action": "delete", "path": "components.schemas.PartyAddress.required" }, { "comment": "Remove required fields from PartyContact", "action": "delete", "path": "components.schemas.PartyContact.required" + }, { + "comment": "Remove totalWeight from RequestedShipment required fields", + "action": "delete-array-values", + "path": "components.schemas.RequestedShipment.required", + "value": ["totalWeight"] + }, { + "comment": "Remove accountNumber from ResponsibleParty required fields", + "action": "delete-array-values", + "path": "components.schemas.ResponsiblePartyParty.required", + "value": ["accountNumber"] + }, { + "comment": "Remove commercialInvoice from CustomsClearanceDetail required fields", + "action": "delete-array-values", + "path": "components.schemas.CustomsClearanceDetail.required", + "value": ["commercialInvoice"] + }, { + "comment": "Remove tinType from TaxpayerIdentification required fields", + "action": "delete-array-values", + "path": "components.schemas.TaxpayerIdentification.required", + "value": ["tinType"] } ] }, @@ -131,6 +158,11 @@ "description": "The data content of this instance.
Example: \"value\"", "example": "value" } + }, { + "comment": "The type of PackageBarcodes.binaryBarcodes is array, not string (same as ship/v1 schema)", + "action": "replace", + "path": "components.schemas.PackageBarcodes.properties.binaryBarcodes.type", + "value": "array" }, { "comment": "DangerousGoodsContainer.packingType is not actually required.", "action": "delete", @@ -227,14 +259,9 @@ }, { "comment": "Delete moved `FullSchema-ImageUploadServiceInputVO.properties.rules` from required properties.", - "action": "replace", + "action": "delete-array-values", "path": "components.schemas.Document.required", - "value": [ - "contentType", - "meta", - "name", - "referenceId" - ] + "value": ["rules"] } ] } diff --git a/resources/models/.raw/account-registration/v1/AccountRegistration-Resource.json b/resources/models/.raw/account-registration/v1/AccountRegistration-Resource.json index 1bdd52ea..4ab1be55 100644 --- a/resources/models/.raw/account-registration/v1/AccountRegistration-Resource.json +++ b/resources/models/.raw/account-registration/v1/AccountRegistration-Resource.json @@ -303,7 +303,7 @@ { "name": "Authorization", "in": "header", - "description": "Bearer token from oauth/token", + "description": "Bearer token generated with parent id and secret", "required": true, "style": "simple", "explode": false, @@ -501,7 +501,7 @@ { "name": "authorization", "in": "header", - "description": "Bearer token from oauth/token", + "description": "Bearer token generated with parent id and secret", "required": true, "style": "simple", "explode": false, @@ -693,7 +693,7 @@ { "name": "Authorization", "in": "header", - "description": "Bearer token generated with child id and secret", + "description": "Bearer token generated with parent id and secret", "required": true, "style": "simple", "explode": false, @@ -912,18 +912,11 @@ "mfaOptions": { "$ref": "#/components/schemas/MFAOptions" }, - "child_Key": { - "type": "string", - "description": "Child Key is a JSON Web Token provided for each of your customers. You must use the Child Key along with the Client Key, Client Secret and Customer Secret to get oAuth token, which should be used as credentials with each API transaction.", - "example": "e366a577-3708-47e5-9af8-98004a01c134" - }, - "child_secret": { - "type": "string", - "description": "Child secret, also referred to as Customer Secret, is provided for each of your customers. You must use the Customer Secret along with the Client Key, Client Secret and Child Key to get the oAuth token, which should be used as credentials with each API transaction.", - "example": "*******" + "credentials": { + "$ref": "#/components/schemas/Credentials" } }, - "description": "This is the response object providing Customer Key and secret key as a output." + "description": "This is the response object providing as output MFA options or Customer Key and Secret Key if MFA bypass has been applied." }, "ErrorResponseVO": { "type": "object", @@ -1109,7 +1102,7 @@ "example": "TN" } }, - "description": "Indicates the customer's address you are attempting to get the Customer Key and Customer Secret for. Note that address information needs to match the shipping or billing address as loaded in FedEx systems. Contact FedEx support team for any address-related issues or questions." + "description": "Indicates the customer's address you are attempting to get the Customer Key and Customer Secret for. Note that address information needs to match the billing address as loaded in FedEx systems. Contact FedEx support team for any address-related issues or questions." }, "AccountNumber": { "required": [ @@ -1327,6 +1320,23 @@ "mfaOptions": { "$ref": "#/components/schemas/MFAOptions" }, + "credentials": { + "$ref": "#/components/schemas/Credentials" + } + }, + "description": "This is the response object providing as output MFA options or Customer Key and Secret Key if MFA bypass has been applied." + }, + "MFAOptions": { + "type": "array", + "description": "It provide options to generate the secure pin or validate invoice ", + "items": { + "$ref": "#/components/schemas/MFAOptions_inner" + } + }, + "Credentials": { + "type": "object", + "description": "It provide Child key and child secret to generate the token", + "properties": { "child_Key": { "type": "string", "description": "Child Key is a JSON Web Token provided for each of your customers. You must use the Child Key along with the Client Key, Client Secret and Customer Secret to get oAuth token, which should be used as credentials with each API transaction.", @@ -1337,14 +1347,6 @@ "description": "Child secret, also referred to as Customer Secret, is provided for each of your customers. You must use the Customer Secret along with the Client Key, Client Secret and Child Key to get the oAuth token, which should be used as credentials with each API transaction.", "example": "*******" } - }, - "description": "This is the response object providing Customer Key and secret key as a output." - }, - "MFAOptions": { - "type": "array", - "description": "It provide options to generate the secure pin or validate invoice ", - "items": { - "$ref": "#/components/schemas/MFAOptions_inner" } }, "Options": { diff --git a/resources/models/.raw/address-validation/v1/Addresses-Resource.json b/resources/models/.raw/address-validation/v1/Addresses-Resource.json index dbeec9bc..81afc4a2 100644 --- a/resources/models/.raw/address-validation/v1/Addresses-Resource.json +++ b/resources/models/.raw/address-validation/v1/Addresses-Resource.json @@ -1,7 +1,7 @@ { "openapi": "3.0.0", "info": { - "title": "Address Validation APi", + "title": "Address Validation API", "version": "1.0.0" }, "servers": [ @@ -13,7 +13,7 @@ "/address/v1/addresses/resolve": { "post": { "summary": "Validate Address", - "description": "Use this endpointtt to get address resolution details. These details areee the outcome of validation and resolution of the input address. An address is stated as resolved when the input address matches the known reference data.
Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", + "description": "Use this endpoint to get address resolution details. These details are the outcome of validation and resolution of the input address. An address is stated as resolved when the input address matches the known reference data.
Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", "operationId": "Validate Address", "requestBody": { "content": { diff --git a/resources/models/.raw/consolidation/v1/ShipConsolidation-Resource.json b/resources/models/.raw/consolidation/v1/ShipConsolidation-Resource.json index 254596cf..7d58b409 100644 --- a/resources/models/.raw/consolidation/v1/ShipConsolidation-Resource.json +++ b/resources/models/.raw/consolidation/v1/ShipConsolidation-Resource.json @@ -1,7 +1,7 @@ { "openapi": "3.0.0", "info": { - "title": "ShipConsolidation", + "title": "Consolidation API", "version": "API" }, "servers": [ @@ -1929,7 +1929,7 @@ "INTERNATIONAL_PRIORITY_DISTRIBUTION" ] }, - "shipDate": { + "shipDateStamp": { "type": "string", "description": "This field indicates the shipping date of the LTL Shipment", "example": "2021-05-07" @@ -2121,7 +2121,7 @@ "properties": { "personName": { "type": "string", - "description": "Specify contact name. Maximum length is 70.
Note: Either the companyName or personName is mandatory.
Example: John Taylor", + "description": "Specify contact name. First 35 chars will be printed on the label, excess characters will be truncated..
Note: Either the companyName or personName is mandatory.
Example: John Taylor", "example": "John Taylor" }, "emailAddress": { @@ -2136,7 +2136,7 @@ }, "phoneNumber": { "type": "string", - "description": "The shipper's phone number.
Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", + "description": "The shipper's phone number.
Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", "example": "918xxxxx890" }, "companyName": { @@ -2326,7 +2326,7 @@ }, "phoneNumber": { "type": "string", - "description": "The shipper's phone number.
Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", + "description": "The shipper's phone number.
Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", "example": "918xxxxx890" }, "companyName": { @@ -2685,7 +2685,7 @@ "properties": { "personName": { "type": "string", - "description": "Specify contact name. Maximum length is 70.Note: Either the companyName or personName is mandatory.
Example: John Taylor", + "description": "Specify contact name. First 35 chars will be printed on the label, excess characters will be truncated.
Note: Either the companyName or personName is mandatory.
Example: John Taylor", "example": "John Taylor" }, "emailAddress": { @@ -2700,7 +2700,7 @@ }, "phoneNumber": { "type": "string", - "description": "The shipper's phone number.Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", + "description": "The shipper's phone number.Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", "example": "1234567890" }, "faxNumber": { @@ -3061,7 +3061,7 @@ "InternationalDistributionDetail": { "required": [ "clearanceFacilityLocationId", - "declaredCurrencies", + "declarationCurrencies", "totalDimensions" ], "type": "object", @@ -3093,8 +3093,11 @@ "METRIC" ] }, - "declaredCurrencies": { - "$ref": "#/components/schemas/Money_1" + "declarationCurrencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Money_1" + } }, "clearanceFacilityLocationId": { "type": "string", @@ -3809,6 +3812,11 @@ "description": "This is the commodity description. Maximum allowed 450 characters.", "example": "AC parts" }, + "cIMarksAndNumbers": { + "type": "string", + "description": "This is an identifying mark or number used on the packaging of a shipment to help customers identify a particular shipment
Example: 125SU212061F7", + "example": "125SU212061F7" + }, "countryOfManufacture": { "type": "string", "description": "This is commodity country of manufacture. This is required for International shipments. Maximum allowed length is 4.", @@ -3838,6 +3846,13 @@ "type": "string", "description": "Value used to identify a commodity description; must be unique within the containing shipment.", "example": "commodity Id" + }, + "clearanceItemDetail": { + "type": "array", + "description": "Array of clearance item details including manufacturer info for customs clearance.", + "items": { + "$ref": "#/components/schemas/ClearanceItemDetail" + } } } }, @@ -3913,7 +3928,24 @@ "CONSOLIDATED_CUSTOMS_LINEHAUL_REPORT", "CONSOLIDATED_PARTY_REPORT", "CONSOLIDATED_SOLD_TO_SUMMARY_REPORT", - "CUSTOM_CONSOLIDATION_DOCUMENT" + "CUSTOM_CONSOLIDATION_DOCUMENT", + "CERTIFICATE_OF_ORIGIN", + "COMMERCIAL_INVOICE", + "CUSTOM_PACKAGE_DOCUMENT", + "CUSTOM_SHIPMENT_DOCUMENT", + "CUSTOMER_SPECIFIED_LABELS", + "DANGEROUS_GOODS_SHIPPERS_DECLARATION", + "EXPORT_DECLARATION", + "FEDEX_FREIGHT_STRAIGHT_BILL_OF_LADING", + "GENERAL_AGENCY_AGREEMENT", + "LABEL", + "USMCA_COMMERCIAL_INVOICE_CERTIFICATION_OF_ORIGIN", + "USMCA_CERTIFICATION_OF_ORIGIN", + "OP_900", + "PENDING_SHIPMENT_EMAIL_NOTIFICATION", + "PRO_FORMA_INVOICE", + "RETURN_INSTRUCTIONS", + "VICS_BILL_OF_LADING" ], "items": { "type": "string" @@ -4445,6 +4477,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/AccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to modify a consolidation." @@ -4503,7 +4538,7 @@ "INTERNATIONAL_PRIORITY_DISTRIBUTION" ] }, - "shipDate": { + "shipDateStamp": { "type": "string", "description": "This is the ship date for the outbound shipment associated with a return shipment. The format is YYYY-MM-DD.
Example: 2019-10-01", "example": "2021-05-07" @@ -4576,6 +4611,26 @@ }, "description": "Specify the requested consolidation" }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "ShipperParty_1": { "required": [ "address", @@ -4653,7 +4708,7 @@ "properties": { "personName": { "type": "string", - "description": "Specify contact name. Maximum length is 70.
Note: Either the companyName or personName is mandatory.
Example: John Taylor", + "description": "Specify contact name. First 35 chars will be printed on the label, excess characters will be truncated.
Note: Either the companyName or personName is mandatory.
Example: John Taylor", "example": "John Taylor" }, "emailAddress": { @@ -4668,7 +4723,7 @@ }, "phoneNumber": { "type": "string", - "description": "The shipper's phone number.
Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", + "description": "The shipper's phone number.
Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", "example": "918xxxxx890" }, "companyName": { @@ -4849,7 +4904,7 @@ }, "phoneNumber": { "type": "string", - "description": "Specify contact phone number.
Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
Example: 918xxxxx890", + "description": "Specify contact phone number.
Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
Example: 918xxxxx890", "example": "1234567890" }, "companyName": { @@ -4930,7 +4985,7 @@ "$ref": "#/components/schemas/AddressAncillaryDetail" } }, - "description": "Idicates the contact and address details of a location." + "description": "Indicate the contact and address details of a location." }, "Contact_1_1": { "type": "object", @@ -5426,7 +5481,7 @@ "InternationalDistributionDetail_1": { "required": [ "clearanceFacilityLocationId", - "declaredCurrencies", + "declarationCurrencies", "totalDimensions" ], "type": "object", @@ -5458,8 +5513,11 @@ "METRIC" ] }, - "declaredCurrencies": { - "$ref": "#/components/schemas/Money_1_1" + "declarationCurrencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Money_1_1" + } }, "clearanceFacilityLocationId": { "type": "string", @@ -5957,9 +6015,90 @@ "type": "string", "description": "Value used to identify a commodity description; must be unique within the containing shipment.", "example": "commodity Id" + }, + "clearanceItemDetail": { + "type": "array", + "description": "Array of clearance item details including manufacturer info for customs clearance.", + "items": { + "$ref": "#/components/schemas/ClearanceItemDetail" + } + } + } + }, + "ClearanceItemDetail": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "Role in producing or supplying the item/commodity", + "example": "MANUFACTURER", + "enum": [ + "MANUFACTURER" + ] + }, + "id": { + "type": "string", + "description": "Unique identifier of the manufacturer of the commodity.
For shipments to United States, refer to U.S. Customs and Border Protection website.
Example: USGRE98BIR", + "example": "USGRE98BIR" + }, + "contact": { + "$ref": "#/components/schemas/ClearanceItemDetail_contact" + }, + "address": { + "$ref": "#/components/schemas/ClearanceItemDetail_address" } } }, + "ClearanceItemDetail_contact": { + "type": "object", + "properties": { + "companyName": { + "type": "string", + "description": "Legal name of the manufacturer of the commodity.
Example: THE GREENHOUSE", + "example": "THE GREENHOUSE" + } + }, + "description": "Contact details of the manufacturer." + }, + "ClearanceItemDetail_address": { + "type": "object", + "properties": { + "streetLines": { + "type": "array", + "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included.
Example: 98 Royal Crescent", + "items": { + "type": "string", + "example": "[\"98 Royal Crescent\"]" + } + }, + "city": { + "type": "string", + "description": "The name of city, town of the recipient.
Example: Birmingham", + "example": "Birmingham" + }, + "stateOrProvinceCode": { + "type": "string", + "description": "It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country.
Example: CA", + "example": "CA" + }, + "postalCode": { + "type": "string", + "description": "The US State and Canada Province codes. The Format and presence of this field may vary depending on the country.
Example: 35209", + "example": "35209" + }, + "countryCode": { + "type": "string", + "description": "The two-letter code used to identify a country.
Example: US", + "example": "US" + }, + "residential": { + "type": "boolean", + "description": "Indicate whether this address is Residential (as opposed to Commercial).
Valid Values: True or False.", + "example": false + } + }, + "description": "Address of the manufacturer." + }, "BrokerDetail_1": { "type": "object", "properties": { @@ -6061,7 +6200,24 @@ "CONSOLIDATED_CUSTOMS_LINEHAUL_REPORT", "CONSOLIDATED_PARTY_REPORT", "CONSOLIDATED_SOLD_TO_SUMMARY_REPORT", - "CUSTOM_CONSOLIDATION_DOCUMENT" + "CUSTOM_CONSOLIDATION_DOCUMENT", + "CERTIFICATE_OF_ORIGIN", + "COMMERCIAL_INVOICE", + "CUSTOM_PACKAGE_DOCUMENT", + "CUSTOM_SHIPMENT_DOCUMENT", + "CUSTOMER_SPECIFIED_LABELS", + "DANGEROUS_GOODS_SHIPPERS_DECLARATION", + "EXPORT_DECLARATION", + "FEDEX_FREIGHT_STRAIGHT_BILL_OF_LADING", + "GENERAL_AGENCY_AGREEMENT", + "LABEL", + "USMCA_COMMERCIAL_INVOICE_CERTIFICATION_OF_ORIGIN", + "USMCA_CERTIFICATION_OF_ORIGIN", + "OP_900", + "PENDING_SHIPMENT_EMAIL_NOTIFICATION", + "PRO_FORMA_INVOICE", + "RETURN_INSTRUCTIONS", + "VICS_BILL_OF_LADING" ], "items": { "type": "string" @@ -6325,6 +6481,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/AccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to create a consolidation." @@ -6858,12 +7017,126 @@ "type": "array", "description": "a list of consolidation shipments within the open shipment", "items": { - "$ref": "#/components/schemas/TransactionConsolidationShipmentResultsOutputVO" + "$ref": "#/components/schemas/TransactionCreateConsolidationShipmentResultsOutputVO" } } }, "description": "This is the response received when a create consolidation shipment is requested." }, + "TransactionCreateConsolidationShipmentResultsOutputVO": { + "type": "object", + "properties": { + "serviceType": { + "type": "string", + "description": "Identifies the service for this shipment
Example: FEDEX_2_DAY_FREIGHT
Click here to see Service Types", + "example": "FEDEX_2_DAY_FREIGHT" + }, + "shipDateStamp": { + "type": "string", + "description": "Specifies shipment date. Format [YYYY-MM-DD]
Example: 2010-03-04", + "example": "2010-03-04" + }, + "serviceCategory": { + "type": "string", + "description": "Specifies Service Category.
Example: EXPRESS", + "example": "EXPRESS" + }, + "shipmentDocuments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LabelResponseVO" + } + }, + "pieceResponses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PieceResponse" + } + }, + "serviceName": { + "type": "string", + "description": "Describes the service name for the shipment
Example: FedEx 2 Day Freight", + "example": "FedEx 2 Day Freight" + }, + "completedShipmentDetail": { + "$ref": "#/components/schemas/CreateConsolidationCompletedShipmentDetail" + }, + "shipmentAdvisoryDetails": { + "$ref": "#/components/schemas/ShipmentAdvisoryDetails" + }, + "masterTrackingNumber": { + "type": "string", + "description": "Indicates the TrackingNumber for the single or multiple-package shipment
Example: 794953535000", + "example": "794953535000" + } + }, + "description": "Specifies shipping transaction output details" + }, + "CreateConsolidationCompletedShipmentDetail": { + "type": "object", + "properties": { + "completedPackageDetails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CompletedPackageDetail" + } + }, + "operationalDetail": { + "$ref": "#/components/schemas/ShipmentOperationalDetail" + }, + "carrierCode": { + "type": "string", + "description": "Specify the four letter code of a FedEx operating company that meets your requirements
Examples of FedEx Operating Companies are:
  • FDXE - FedEx Express
  • FDXG - FedEx Ground
  • FXSP - FedEx SmartPost
  • FXCC - FedEx Custom Critical.
", + "example": "FDXE" + }, + "completedHoldAtLocationDetail": { + "$ref": "#/components/schemas/CompletedHoldAtLocationDetail" + }, + "completedEtdDetail": { + "$ref": "#/components/schemas/CompletedEtdDetail" + }, + "packagingDescription": { + "type": "string", + "description": "Specifies packaging description.", + "example": "barrel" + }, + "masterTrackingId": { + "$ref": "#/components/schemas/TrackingId" + }, + "serviceDescription": { + "$ref": "#/components/schemas/ServiceDescription" + }, + "usDomestic": { + "type": "boolean", + "description": "Indicates whether or not this is an intra-U.S. shipment.", + "example": true + }, + "hazardousShipmentDetail": { + "$ref": "#/components/schemas/CompletedHazardousShipmentDetail" + }, + "shipmentRating": { + "$ref": "#/components/schemas/ShipmentRating" + }, + "documentRequirements": { + "$ref": "#/components/schemas/DocumentRequirementsDetail" + }, + "exportComplianceStatement": { + "type": "string", + "description": "Specifies export Compliance Statement.", + "example": "export Compliance Statement" + }, + "accessDetail": { + "$ref": "#/components/schemas/PendingShipmentAccessDetail" + }, + "shipmentConsolidationDetail": { + "$ref": "#/components/schemas/ShipmentConsolidationDetail" + }, + "completedCodDetail": { + "$ref": "#/components/schemas/CompletedCodDetail" + } + }, + "description": "Returns the result of processing the desired package as a single-package shipment." + }, "TransactionConsolidationShipmentResultsOutputVO": { "type": "object", "properties": { @@ -8391,51 +8664,829 @@ "items": { "$ref": "#/components/schemas/ShipmentRateDetail" } - } - }, - "description": "All shipment-level rating data for this shipment, which may include data for multiple rate types." - }, - "ShipmentRateDetail": { - "type": "object", - "properties": { - "rateZone": { - "type": "string", - "description": "Indicates the rate zone used (based on origin and destination).", - "example": "US001O" - }, - "ratedWeightMethod": { - "type": "string", - "description": "Indicates which weight was used.", - "example": "ACTUAL" - }, - "totalDutiesTaxesAndFees": { - "type": "number", - "description": "The total of the total duties & taxes and the total ancillary fees & taxes.", - "format": "double", - "example": 24.56 - }, - "pricingCode": { - "type": "string", - "description": "Specifies pricing Code.", - "example": "LTL_FREIGHT" }, - "totalFreightDiscounts": { - "type": "number", - "description": "The total discounts used in the rate calculation.", - "format": "double", - "example": 1.56 - }, - "totalTaxes": { - "type": "number", - "description": "Total of the transportation-based taxes.
Example: 3.45", - "format": "double", - "example": 3.45 + "totalNetTransportationAndPickupCharge": { + "description": "Sum of totalNetCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of pickup.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] }, - "totalDutiesAndTaxes": { - "type": "number", - "description": "Total of all values under this shipment's duties and taxes; only provided if estimated duties and taxes were calculated for this shipment.", - "format": "double", - "example": 6.78 + "totalNetFedExTransportationAndPickupCharge": { + "description": "Sum of totalNetFedExCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of a pickup.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "pickupRateDetail": { + "description": "Charges associated with a scheduled shipment pickup", + "type": "object", + "properties": { + "rateType": { + "description": "Type used for this specific set of rate data.", + "type": "string", + "enum": [ + "INCENTIVE", + "NEGOTIATED", + "PAYOR_ACCOUNT_PACKAGE", + "PAYOR_ACCOUNT_SHIPMENT", + "PAYOR_CUSTOM_PACKAGE", + "PAYOR_CUSTOM_SHIPMENT", + "PAYOR_LIST_PACKAGE", + "PAYOR_LIST_SHIPMENT", + "PAYOR_RETAIL_PACKAGE", + "PAYOR_RETAIL_SHIPMENT", + "PREFERRED_ACCOUNT_PACKAGE", + "PREFERRED_ACCOUNT_SHIPMENT", + "PREFERRED_CUSTOM_PACKAGE", + "PREFERRED_CUSTOM_SHIPMENT", + "PREFERRED_INCENTIVE", + "PREFERRED_LIST_PACKAGE", + "PREFERRED_LIST_SHIPMENT", + "PREFERRED_NEGOTIATED", + "PREFERRED_RETAIL_PACKAGE", + "PREFERRED_RETAIL_SHIPMENT", + "RATED_ACCOUNT_PACKAGE", + "RATED_ACCOUNT_SHIPMENT", + "RATED_CUSTOM_PACKAGE", + "RATED_CUSTOM_SHIPMENT", + "RATED_LIST_PACKAGE", + "RATED_LIST_SHIPMENT", + "RATED_RETAIL_PACKAGE", + "RATED_RETAIL_SHIPMENT", + "UNKNOWN" + ], + "example": "PAYOR_ACCOUNT_PACKAGE" + }, + "rateScale": { + "type": "string", + "description": "Indicates the rate scale used.", + "example": "*USER IMS20160104 LD067110" + }, + "rateZone": { + "description": "Indicates the rate zone used (based on origin and destination).", + "type": "string", + "example": "CA003O" + }, + "ratingBasis": { + "description": "Allows clients to determine whether to add charges at the package level when Per Piece Rating details are returned.
  • SHIPMENT_WEIGHT_BASED - Indicates shipment weight is used to calculate the rate.

  • FLAT_RATE_PER_PAK - Indicates shipment is rated based on number of packs, weight would be considered for overweight surcharge but not for calculating shipment rate.

  • PACK_WEIGHT_BASED - Indicates individual package weight would be rated and aggregated to get shipment rate weight.
", + "type": "string", + "enum": [ + "SHIPMENT_WEIGHT_BASED", + "FLAT_RATE_PER_PAK", + "PACK_WEIGHT_BASED", + "UNKNOWN" + ], + "example": "SHIPMENT_WEIGHT_BASED" + }, + "pricingCode": { + "description": "Identifies the type of pricing used for this shipment.", + "type": "string", + "enum": [ + "ACTUAL", + "ALTERNATE", + "BASE", + "HUNDREDWEIGHT", + "HUNDREDWEIGHT_ALTERNATE", + "INTERNATIONAL_DISTRIBUTION", + "INTERNATIONAL_ECONOMY_SERVICE", + "LTL_FREIGHT", + "PACKAGE", + "SHIPMENT", + "SHIPMENT_FIVE_POUND_OPTIONAL", + "SHIPMENT_OPTIONAL", + "SPECIAL", + "UNKNOWN" + ], + "example": "ACTUAL" + }, + "minimumChargeType": { + "description": "provides the minimum charge type applicable to the rates.", + "type": "string", + "enum": [ + "CUSTOMER", + "CUSTOMER_FREIGHT_WEIGHT", + "EARNED_DISCOUNT", + "MIXED", + "RATE_SCALE", + "UNKNOWN" + ], + "example": "EARNED_DISCOUNT" + }, + "currencyExchangeRate": { + "$ref": "#/components/schemas/CurrencyExchangeRate" + }, + "specialRatingApplied": { + "type": "array", + "description": "Indicates which special rating cases applied to this shipment.", + "items": { + "type": "string", + "enum": [ + "FEDEX_ONE_RATE", + "FIXED_FUEL_SURCHARGE", + "IMPORT_PRICING" + ] + }, + "example": "FEDEX_ONE_RATE" + }, + "fuelSurchargePercent": { + "description": "Specify a fuel surcharge percentage.", + "format": "double", + "type": "number", + "example": 121 + }, + "pickupBaseChargeDescription": { + "description": "Will indicate the pickup charge description of the on call pickup", + "type": "string", + "enum": [ + "Regularly Scheduled Pickup Mon-Fri", + "Automated Pickup Mon-Fri", + "Same Day OC Pickup Mon-Fri (CS)", + "Same Day OC Pickup Mon-Fri (Online)", + "Fut. Day OC Pickup Mon-Fri (CS)", + "Fut. Day OC Pickup Mon-Fri (Online)", + "Regularly Scheduled Pickup Sat", + "Automated Pickup Sat", + "Same Day OC Pickup Sat (CS)", + "Same Day OC Pickup Sat (Online)", + "Fut. Day OC Pickup Sat (CS)", + "Fut. Day OC Pickup Sat (Online)", + "Regularly Scheduled Pickup Sun", + "Automated Pickup Sun", + "Same Day OC Pickup Sun (CS)", + "Same Day OC Pickup Sun (Online)", + "Fut. Day OC Pickup Sun (CS)", + "Fut. Day OC Pickup Sun (Online)", + "Residential On-Call Pickup Surcharge", + "Pickup Area Surcharge", + "Extended Pickup Area Surcharge", + "Remote Pickup Area Surcharge", + "Fuel Surcharge" + ], + "example": "Pickup Area Surcharge" + }, + "totalBaseCharge": { + "description": "Total base charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalFreightDiscounts": { + "description": "The total discounts used in the rate calculation.
Example: 1257.26", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetFreight": { + "description": "This shipment's totalNetFreight.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalSurcharges": { + "description": "The sum of all surcharges on the package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetFedExCharge": { + "description": "This shipment's totalNetFedExCharge, which is totalNetFreight plus totalSurcharges (not including totalTaxes).", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalTaxes": { + "description": "The sum of all taxes on this package.
Example: 1257.25", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetCharge": { + "description": "Total net charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalRebates": { + "description": "The total sum of all rebates applied to this package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalDutiesAndTaxes": { + "description": "The sum of shipment/package Duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalAncillaryFeesAndTaxes": { + "description": "Identifies the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalDutiesTaxesAndFees": { + "description": "The total amount of the duties and taxes plus the total ancillary fees and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetChargeWithDutiesAndTaxes": { + "description": "Total netChargesWithDutiesAndTaxes for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "freightDiscounts": { + "description": "All rate discounts that apply to this shipment", + "type": "array", + "items": { + "$ref": "#/components/schemas/RateDiscount_2" + } + }, + "rebates": { + "description": "The all rebates applied to this package.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Rebate" + } + }, + "surcharges": { + "description": "The amount of surcharges applied to this shipment.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Surcharge_2" + } + }, + "taxes": { + "description": "List of taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tax_2" + } + }, + "dutiesAndTaxes": { + "description": "List of The shipment/package Duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdtCommodityTax" + } + }, + "ancillaryFeesAndTaxes": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AncillaryFeeAndTax" + } + }, + "variableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges_1" + } + ] + }, + "totalVariableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges_1" + } + ] + } + } + } + }, + "description": "All shipment-level rating data for this shipment, which may include data for multiple rate types." + }, + "EdtCommodityTax": { + "description": "The shipment/package Duties and taxes.", + "type": "object", + "properties": { + "harmonizedCode": { + "description": "Harmonized code is used by customer to classify the product being shipped and define the duties and taxes to be paid.", + "type": "string", + "example": "harmonizedCode" + }, + "taxes": { + "$ref": "#/components/schemas/EdtTaxDetail_1" + }, + "total": { + "description": "Total of Duties and taxes", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "EdtTaxDetail_1": { + "description": "Estimated duties and taxes detail.", + "type": "object", + "properties": { + "taxType": { + "description": "Estimated taxes type", + "type": "string", + "enum": [ + "ADDITIONAL_TAXES", + "CONSULAR_INVOICE_FEE", + "CUSTOMS_SURCHARGES", + "DUTY", + "EXCISE_TAX", + "FOREIGN_EXCHANGE_TAX", + "GENERAL_SALES_TAX", + "IMPORT_LICENSE_FEE", + "INTERNAL_ADDITIONAL_TAXES", + "INTERNAL_SENSITIVE_PRODUCTS_TAX", + "OTHER", + "SENSITIVE_PRODUCTS_TAX", + "STAMP_TAX", + "STATISTICAL_TAX", + "TRANSPORT_FACILITIES_TAX" + ], + "example": "INCENTIVE" + }, + "taxcode": { + "type": "string", + "example": "taxcode" + }, + "effectiveDate": { + "description": "Estimated duties and taxes effective date. Format [YYYY-MM-DD].", + "type": "string", + "example": "2019-12-06" + }, + "name": { + "description": "The localized name of the surcharge.", + "type": "string", + "example": "VAT" + }, + "taxableValue": { + "description": "Estimated duties and taxes taxable Value.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "description": { + "description": "FedEx pays the Duty and Tax charges on your behalf to ensure we can deliver your shipment as quickly as possible", + "type": "string", + "example": "Christmas" + }, + "formula": { + "description": "Indicates the formula.", + "type": "string", + "example": "VAT Payable = Output VAT \u2013 Input VAT" + }, + "amount": { + "description": "Amount for the estimated duties and taxes type.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "taxRates": { + "description": "Estimated duties and taxes taxRates", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "example": null + }, + "currency": { + "type": "string", + "example": null + }, + "quantity": { + "format": "double", + "type": "number", + "example": null + }, + "unitOfMeasure": { + "type": "string", + "example": null + } + } + } + }, + "appliedPreferentialTradeAgreement": { + "description": "provides details about PTA applied between countries for specific product. ", + "type": "object", + "properties": { + "id": { + "description": "", + "type": "string", + "example": "description" + }, + "name": { + "description": "", + "type": "string", + "example": "description" + }, + "description": { + "description": "", + "type": "string", + "example": "description" + } + } + } + } + }, + "VariableHandlingCharges_1": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "type": "object", + "properties": { + "variableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "fixedVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "percentVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalCustomerCharge": { + "description": "Specifies the total customer assessed handling charges.
Example: 445.54", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "AncillaryFeeAndTax": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "object", + "properties": { + "type": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "enum": [ + "CLEARANCE_ENTRY_FEE", + "GOODS_AND_SERVICES_TAX", + "HARMONIZED_SALES_TAX", + "OTHER" + ], + "example": "CLEARANCE_ENTRY_FEE" + }, + "description": { + "description": "Identifies the amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "list of AncillaryFees And Taxes", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "RateDiscount_2": { + "type": "object", + "properties": { + "rateDiscountType": { + "description": "Indicates the type.", + "type": "string", + "enum": [ + "BONUS", + "COUPON", + "EARNED", + "INCENTIVE", + "OTHER", + "VOLUME" + ], + "example": "INCENTIVE" + }, + "description": { + "description": "Indicates the description for the rate discount.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Indicates the amount for the rate discount.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "Rebate": { + "type": "object", + "properties": { + "rebateType": { + "description": "The type of rebate.", + "type": "string", + "enum": [ + "BONUS", + "EARNED", + "OTHER" + ], + "example": "EARNED" + }, + "description": { + "description": "The description of the rebate", + "type": "string", + "example": "description" + }, + "amount": { + "description": "provides the calculated rebate amount based on customer details, transaction information, and applicable rules. ", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "Surcharge_2": { + "type": "object", + "properties": { + "surchargeType": { + "description": "The type of surcharge.", + "type": "string", + "enum": [ + "ACCOUNT_NUMBER_PROCESSING_FEE", + "ADDITIONAL_HANDLING", + "ADDRESS_CORRECTION", + "ANCILLARY_FEE", + "APPOINTMENT_DELIVERY", + "BLIND_SHIPMENT", + "BROKER_SELECT_OPTION", + "CANADIAN_DESTINATION", + "CHARGEABLE_PALLET_WEIGHT", + "COD", + "CUT_FLOWERS", + "DANGEROUS_GOODS", + "DELIVERY_AREA", + "DELIVERY_CONFIRMATION", + "DELIVERY_ON_INVOICE_ACCEPTANCE", + "DEMAND", + "DEMAND_ADDITIONAL_HANDLING", + "DEMAND_OVERSIZE", + "DEMAND_RESIDENTIAL_DELIVERY", + "DETENTION", + "DOCUMENTATION_FEE", + "DRY_ICE", + "EMAIL_LABEL", + "ENHANCED_SECURITY", + "EUROPE_FIRST", + "EXCESS_VALUE", + "EXCLUSIVE_USE", + "EXHIBITION", + "EXPEDITED", + "EXPORT", + "EXTRA_LABOR", + "EXTRA_SURFACE_HANDLING_CHARGE", + "EXTREME_LENGTH", + "FEDEX_INTRACOUNTRY_FEES", + "FEDEX_TAG", + "FICE", + "FLATBED", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_DELIVERY", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_PICKUP", + "FREIGHT_DIRECT_BASIC_DELIVERY", + "FREIGHT_DIRECT_BASIC_PICKUP", + "FREIGHT_DIRECT_PREMIUM_DELIVERY", + "FREIGHT_DIRECT_PREMIUM_PICKUP", + "FREIGHT_DIRECT_STANDARD_DELIVERY", + "FREIGHT_DIRECT_STANDARD_PICKUP", + "FREIGHT_GUARANTEE", + "FREIGHT_ON_VALUE", + "FREIGHT_TO_COLLECT", + "FUEL", + "HIGH_COST_SERVICE_AREA_DESTINATION", + "HIGH_COST_SERVICE_AREA_ORIGIN", + "HIGH_DENSITY", + "HOLD_AT_LOCATION", + "HOLIDAY_DELIVERY", + "HOLIDAY_GUARANTEE", + "HOME_DELIVERY_APPOINTMENT", + "HOME_DELIVERY_DATE_CERTAIN", + "HOME_DELIVERY_EVENING", + "INSIDE_DELIVERY", + "INSIDE_PICKUP", + "INSURED_VALUE", + "INTERHAWAII", + "LIFTGATE_DELIVERY", + "LIFTGATE_PICKUP", + "LIMITED_ACCESS_DELIVERY", + "LIMITED_ACCESS_PICKUP", + "MARKING_OR_TAGGING", + "METRO_DELIVERY", + "METRO_PICKUP", + "MONITORING_AND_INTERVENTION", + "NON_BUSINESS_TIME", + "NON_MACHINABLE", + "OFFSHORE", + "ON_CALL_PICKUP", + "ON_DEMAND_CARE", + "OTHER", + "OUT_OF_DELIVERY_AREA", + "OUT_OF_PICKUP_AREA", + "OVER_DIMENSION", + "OVER_LENGTH", + "OVERSIZE", + "OVERWEIGHT", + "PALLET_SHRINKWRAP", + "PALLETS_PROVIDED", + "PEAK", + "PEAK_ADDITIONAL_HANDLING", + "PEAK_OVERSIZE", + "PEAK_RESIDENTIAL_DELIVERY", + "PERMIT", + "PIECE_COUNT_VERIFICATION", + "PORT", + "PRE_DELIVERY_NOTIFICATION", + "PRIORITY_ALERT", + "PROTECTION_FROM_FREEZING", + "REGIONAL_MALL_DELIVERY", + "REGIONAL_MALL_PICKUP", + "REROUTE", + "RESCHEDULE", + "RESIDENTIAL_DELIVERY", + "RESIDENTIAL_PICKUP", + "RETURN_LABEL", + "SATURDAY_DELIVERY", + "SATURDAY_PICKUP", + "SHIPMENT_ASSEMBLY", + "SIGNATURE_OPTION", + "SINGLE_PIECE", + "SORT_AND_SEGREGATE", + "SPECIAL_DELIVERY", + "SPECIAL_EQUIPMENT", + "STORAGE", + "SUNDAY_DELIVERY", + "TARP", + "THIRD_PARTY_BILLING", + "THIRD_PARTY_CONSIGNEE", + "TRANSMART_SERVICE_FEE", + "USPS", + "WEIGHING" + ], + "example": "COD" + }, + "level": { + "description": "The level of surcharge.", + "type": "string", + "enum": [ + "PACKAGE", + "SHIPMENT" + ], + "example": "PACKAGE" + }, + "description": { + "description": "The description of the surcharge.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "Tax_2": { + "description": "Tax surcharge details", + "type": "object", + "properties": { + "taxType": { + "description": "Specifies the type of Surcharge/Tax.", + "type": "string", + "enum": [ + "EXPORT", + "GST", + "HST", + "INTRACOUNTRY", + "OTHER", + "PST", + "SST", + "VAT" + ], + "example": "VAT" + }, + "description": { + "description": "Specifies the description of the Surcharge/Tax.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Specifies the list of tax amounts.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "ShipmentRateDetail": { + "type": "object", + "properties": { + "rateZone": { + "type": "string", + "description": "Indicates the rate zone used (based on origin and destination).", + "example": "US001O" + }, + "ratedWeightMethod": { + "type": "string", + "description": "Indicates which weight was used.", + "example": "ACTUAL" + }, + "totalDutiesTaxesAndFees": { + "type": "number", + "description": "The total of the total duties & taxes and the total ancillary fees & taxes.", + "format": "double", + "example": 24.56 + }, + "pricingCode": { + "type": "string", + "description": "Specifies pricing Code.", + "example": "LTL_FREIGHT" + }, + "totalFreightDiscounts": { + "type": "number", + "description": "The total discounts used in the rate calculation.", + "format": "double", + "example": 1.56 + }, + "totalTaxes": { + "type": "number", + "description": "Total of the transportation-based taxes.
Example: 3.45", + "format": "double", + "example": 3.45 + }, + "totalDutiesAndTaxes": { + "type": "number", + "description": "Total of all values under this shipment's duties and taxes; only provided if estimated duties and taxes were calculated for this shipment.", + "format": "double", + "example": 6.78 }, "totalAncillaryFeesAndTaxes": { "type": "number", @@ -9190,8 +10241,22 @@ "requestedShipment": { "$ref": "#/components/schemas/RequestedConsolidationShipment" }, + "processingOptions": { + "type": "array", + "description": "Array of processing options for the shipment.", + "items": { + "type": "string", + "example": "INCLUDE_PICKUPRATES", + "enum": [ + "INCLUDE_PICKUPRATES" + ] + } + }, "labelResponseOptions": { "$ref": "#/components/schemas/LableResponseOptions" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to create a consolidation shipment." @@ -9269,6 +10334,12 @@ "$ref": "#/components/schemas/RecipientParty" } }, + "pickupDetail": { + "$ref": "#/components/schemas/PickupDetail" + }, + "emailNotificationDetail": { + "$ref": "#/components/schemas/EmailNotificationDetail" + }, "shippingChargesPayment": { "$ref": "#/components/schemas/Payment" }, @@ -9305,6 +10376,52 @@ }, "description": "The consolidation shipment details" }, + "PickupDetail": { + "type": "object", + "properties": { + "readyDateTime": { + "type": "string", + "format": "date", + "description": "Pickup ready date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "latestPickupDateTime": { + "type": "string", + "format": "date", + "description": "Latest pickup date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "courierInstructions": { + "type": "string", + "description": "Special instructions for the courier", + "example": "Leave package at reception" + }, + "requestType": { + "$ref": "#/components/schemas/PickupRequestType" + }, + "requestSource": { + "$ref": "#/components/schemas/PickupRequestSourceType" + } + } + }, + "PickupRequestType": { + "type": "string", + "description": "Type of pickup request", + "enum": [ + "FUTURE_DAY", + "SAME_DAY" + ], + "example": "FUTURE_DAY" + }, + "PickupRequestSourceType": { + "type": "string", + "description": "Source of the pickup request", + "enum": [ + "AUTOMATION", + "CUSTOMER_SERVICE" + ], + "example": "AUTOMATION" + }, "HoldAtLocationDetail": { "required": [ "locationId" @@ -10657,6 +11774,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -10920,6 +12040,9 @@ }, "consolidationDocumentSpecification": { "$ref": "#/components/schemas/ConsolidationDocumentSpec" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -11005,6 +12128,9 @@ "type": "string", "description": "When the confirm consolidation is processed asynchronously, job Id is generated which is passed in confirm consolidation results to get complete consolidation results", "example": "b8r763490cj7462n8907" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -11131,6 +12257,9 @@ }, "consolidationKey": { "$ref": "#/components/schemas/ConsolidationKey" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to retrieve a consolidation." @@ -11151,7 +12280,7 @@ "consolidationKey": { "consolidationType": "INTERNATIONAL_ECONOMY_DISTRIBUTION", "index": "12345", - "shipDate": "2022-03-21" + "shipDateStamp": "2022-03-21" } } }, @@ -11266,6 +12395,9 @@ "type": "string", "description": "This is a unique number assigned by FedEx to the packages for tracking. This will help in the identification of the dangerous goods shipments to mark it for removal on the manifest report.", "example": "86ea9b69e068191a59f0e2721b8fbfee" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to cancel a shipment. " @@ -11325,6 +12457,9 @@ }, "trackingId": { "$ref": "#/components/schemas/TrackingIds" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to delete a consolidation." @@ -11337,7 +12472,7 @@ "consolidationKey": { "consolidationType": "INTERNATIONAL_ECONOMY_DISTRIBUTION", "index": "12345", - "shipDate": "2022-03-21" + "shipDateStamp": "2022-03-21" }, "trackingId": { "trackingNumber": "547698721345", @@ -11752,7 +12887,7 @@ } } }, - "description": "Information about the person who is paying for the shipment.
Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT." + "description": "Information about the person who is paying for the shipment.
Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY." }, "TransborderDistributionDetail_specialServicesRequested_transborderDistributionLtlDetail_payment_ePaymentDetail_amount": { "type": "object", @@ -12635,7 +13770,7 @@ } } }, - "description": "Information about the person who is paying for the shipment.
Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT." + "description": "Information about the person who is paying for the shipment.
Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY." }, "TransborderDistributionDetail_1_specialServicesRequested_transborderDistributionLtlDetail_payment_creditCard_creditCardHolder": { "type": "object", @@ -12925,6 +14060,109 @@ }, "description": "These special services are available at the shipment level for some or all service types.
If the shipper is requesting a special service which requires additional data (such as the COD amount), the shipment special service type must be present in the specialServiceTypes collection, and the supporting detail must be provided in the appropriate sub-object below.
RETURN_SHIPMENT is required for creating return shipments." }, + "EmailNotificationDetail": { + "type": "object", + "properties": { + "aggregationType": { + "type": "string", + "description": "Consolidation Shipment Notification Aggregation Type.
Example:PER_PACKAGE", + "example": "PER_PACKAGE", + "enum": [ + "PER_PACKAGE", + "PER_SHIPMENT" + ] + }, + "emailNotificationRecipients": { + "type": "array", + "description": "These are email notification recipient details.", + "items": { + "$ref": "#/components/schemas/EmailNotificationRecipient" + } + }, + "personalMessage": { + "type": "string", + "description": "This is your personal message for the email.
Note: The maximum personal message character limit depends on the element emailNotificationDetail\\emailNotificationRecipients\\notificationFormatType values:
  • If notificationFormatType is TEXT, then only 120 characters printed on the email
  • If notificationFormatType is HTML, then 500 characters printed on the email

Example: This is concerning the order 123456 of 26 Nov 2025 - art no 34324-23 Teddy Bear, brown", + "example": "your personal message here" + } + }, + "description": "These are email details. Provides the type and email addresses of e-mail recipients." + }, + "EmailNotificationRecipient": { + "required": [ + "emailNotificationRecipientType" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Specify the recipient name.
Example: Dispatch", + "example": "Dispatch" + }, + "emailNotificationRecipientType": { + "type": "string", + "description": "This is the email notification recipient type.
Example: SHIPPER", + "example": "SHIPPER", + "enum": [ + "BROKER", + "OTHER", + "RECIPIENT", + "SHIPPER", + "THIRD_PARTY" + ] + }, + "emailAddress": { + "type": "string", + "description": "Specify the recipient email address.
Example: xyz@aol.com", + "example": "jsmith3@aol.com" + }, + "notificationFormatType": { + "type": "string", + "description": "This is the format for the email notification. Either HTML or plain text can be provided.", + "example": "TEXT", + "enum": [ + "HTML", + "TEXT" + ] + }, + "notificationType": { + "type": "string", + "description": "Indicate the type of notification that will be sent as an email.", + "example": "EMAIL", + "enum": [ + "EMAIL" + ] + }, + "locale": { + "type": "string", + "description": "These are the locale details for email.
click here to see Locales
Note: If the locale is left blank or an invalid locale is entered, an error message is returned in response.", + "example": "en_US" + }, + "notificationEventType": { + "type": "array", + "description": "Specify notification event types.
Click here for more information on Notification Event Types.", + "example": [ + "ON_TENDER", + "ON_DELIVERY" + ], + "items": { + "type": "string", + "enum": [ + "ON_DELIVERY", + "ON_EXCEPTION", + "ON_SHIPMENT", + "ON_TENDER", + "ON_ESTIMATED_DELIVERY", + "ON_BILL_OF_LADING", + "ON_PICKUP_DRIVER_ARRIVED", + "ON_PICKUP_DRIVER_ASSIGNED", + "ON_PICKUP_DRIVER_DEPARTED", + "ON_PICKUP_DRIVER_EN_ROUTE" + ] + } + } + }, + "description": "These are recipient details for receiving email notification." + }, "RequestedConsolidationShipment_processingOption": { "type": "object", "properties": { @@ -13594,6 +14832,9 @@ "properties": { "consolidationShipments": { "$ref": "#/components/schemas/ConsolidationShipments" + }, + "consolidationDocumentTypes": { + "$ref": "#/components/schemas/ConsolidationDocumentSpec" } }, "description": "Specifies Complete Consolidation Details when user selected ASYCHRONOUSLY_PROCESSED" diff --git a/resources/models/.raw/freight-ltl/v1/LTLFreight-Resource.json b/resources/models/.raw/freight-ltl/v1/LTLFreight-Resource.json index d3a50eab..4a16bb1b 100644 --- a/resources/models/.raw/freight-ltl/v1/LTLFreight-Resource.json +++ b/resources/models/.raw/freight-ltl/v1/LTLFreight-Resource.json @@ -1082,6 +1082,9 @@ }, "freightRequestedShipment": { "$ref": "#/components/schemas/LTLRequestedShipment" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements for requesting a freight rate quote." @@ -4396,6 +4399,9 @@ "type": "boolean", "description": "If the value is false, it uses single shot MPS shipments where in all the packages are processed in the same transaction and can generate number of labels for the handling units all at once. If the value is true, the MPS shipment processes packages and labels one at a time. Default value is false. \n
Example: true or false", "example": true + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to create a Freight2020Shipment." @@ -6018,7 +6024,7 @@ ], "properties": { "units": { - "description": "Specifies the package weight unit type.
Example:KG", + "description": "Specifies the shipment weight unit type.
Example:KG", "type": "string", "enum": [ "KG", @@ -11937,7 +11943,7 @@ "type": "number" } }, - "description": "The total weight of the packages for the pickup. Unit of measure is LB and KG.", + "description": "The total shipment weight for pickup. Unit of measure is LB and KG.", "items": { "$ref": "#/components/schemas/TotalWeight" } @@ -12915,6 +12921,26 @@ } }, "description": "Specifies the freight guarantee detail." + }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "2", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } } } } diff --git a/resources/models/.raw/global-trade/v1/GlobalTrade-Resource.json b/resources/models/.raw/global-trade/v1/GlobalTrade-Resource.json index e061a319..6ec0be32 100644 --- a/resources/models/.raw/global-trade/v1/GlobalTrade-Resource.json +++ b/resources/models/.raw/global-trade/v1/GlobalTrade-Resource.json @@ -19,14 +19,7 @@ "content": { "application/json": { "schema": { - "oneOf": [ - { - "$ref": "#/components/schemas/FullSchema" - }, - { - "$ref": "#/components/schemas/MinimumSamplePayload" - } - ] + "$ref": "#/components/schemas/regulatorydetails_retrieve_body" } } } @@ -180,6 +173,279 @@ }, "components": { "schemas": { + "regulatorydetails_retrieve_body": { + "oneOf": [ + { + "$ref": "#/components/schemas/FullSchema" + }, + { + "$ref": "#/components/schemas/MinimumSamplePayload" + } + ] + }, + "GticResponseVO": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", + "example": "624deea6-b709-470c-8c39-4b5511281492" + }, + "customerTransactionId": { + "type": "string", + "description": "This element allows you to assign a unique identifier to your transaction. This element is also returned in the reply and helps you match the request to the reply.
Example: AnyCo_order123456789", + "example": "AnyCo_order123456789" + }, + "output": { + "$ref": "#/components/schemas/BaseProcessOutputVO_1" + } + }, + "description": "This is a wrapper class for outputVO." + }, + "BaseProcessOutputVO_1": { + "required": [ + "countryDetails", + "userMessages" + ], + "type": "object", + "properties": { + "userMessages": { + "type": "array", + "description": "Represents User Message", + "items": { + "$ref": "#/components/schemas/RegulatoryMessage" + } + }, + "countryDetails": { + "description": "Represents Country Details", + "allOf": [ + { + "$ref": "#/components/schemas/RegulatoryCountryDetails" + } + ] + }, + "cxsalerts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CXSAlert_1" + } + } + }, + "description": "ShipmentRegulatoryDetailsOutputVO Model" + }, + "ErrorResponseVO": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", + "example": "624deea6-b709-470c-8c39-4b5511281492" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CXSError" + } + } + }, + "description": "This holds the error responses." + }, + "CXSError": { + "type": "object", + "properties": { + "code": { + "description": "Indicates the error code.
Example: ACCOUNT.NUMBER.INVALID,LOGIN.REAUTHENTICATE.ERROR,SHIPMENT.USER.UNAUTHORIZED,NOT.FOUND.ERROR,INTERNAL.SERVER.ERROR" + }, + "parameterList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Parameter_2" + } + }, + "message": { + "type": "string", + "description": "Indicates the description of API error alert message.
Example: We are unable to process this request. Please try again later or contact FedEx Customer Service." + } + }, + "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" + }, + "Parameter_2": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Identifies the error option to be applied." + }, + "key": { + "type": "string", + "description": "Indicates the value associated with the key." + } + }, + "description": "List of parameters which indicates the properties of the alert message." + }, + "ErrorResponseVO401": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", + "example": "624deea6-b709-470c-8c39-4b5511281492" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CXSError401" + } + } + }, + "description": "This holds the error responses." + }, + "CXSError401": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Indicates the error code.
Example: NOT.AUTHORIZED.ERROR" + }, + "parameterList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Parameter" + } + }, + "message": { + "description": "Indicates the description of API error alert message.
Example: Access token expired. Please modify your request and try again." + } + }, + "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" + }, + "Parameter": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Identifies the error option to be applied." + }, + "key": { + "type": "string", + "description": "Indicates the value associated with the key." + } + }, + "description": "List of parameters which indicates the properties of the alert message." + }, + "ErrorResponseVO404": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", + "example": "624deea6-b709-470c-8c39-4b5511281492" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CXSError404" + } + } + }, + "description": "This holds the error responses." + }, + "CXSError404": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Indicates the error code.
Example: NOT.FOUND.ERROR" + }, + "parameterList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Parameter" + } + }, + "message": { + "description": "Indicates the description of API error alert message.
Example: The resource you requested is no longer available. Please modify your request and try again." + } + }, + "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" + }, + "ErrorResponseVO422": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", + "example": "624deea6-b709-470c-8c39-4b5511281492" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CXSError422" + } + } + }, + "description": "This holds the error responses." + }, + "CXSError422": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Indicates the error code.
Example: INVALID.INPUT.EXCEPTION" + }, + "parameterList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Parameter" + } + }, + "message": { + "description": "Validation failed for the object='shipmentRegulatoryDetailsInputVO'.Error count:1" + } + }, + "description": "Indicates error when mandatory elements are not passed in the request." + }, + "ErrorResponseVO500": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", + "example": "624deea6-b709-470c-8c39-4b5511281492" + }, + "customerTransactionId": { + "type": "string", + "description": "This element allows you to assign a unique identifier to your transaction. This element is also returned in the reply and helps you match the request to the reply.
Example: AnyCo_order123456789", + "format": "uuid" + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CXSError500" + } + } + }, + "description": "This holds the error responses." + }, + "CXSError500": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Indicates the error code.
Example: INTERNAL.SERVER.ERROR" + }, + "parameterList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Parameter" + } + }, + "message": { + "description": "Indicates the description of API error alert message.
Example: We encountered an unexpected error and are working to resolve the issue. We apologize for any inconvenience. Please check back at a later time." + } + }, + "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" + }, "FullSchema": { "required": [ "carrierCode", @@ -265,7 +531,7 @@ "includeURLReferences": { "type": "boolean", "description": "Specify if the url references to be included in the output. These are regulatory reference data urls specific to document, agency.", - "example": "True" + "example": true }, "consolidationType": { "type": "string", @@ -276,36 +542,15 @@ "type": "string", "description": "Specify the role this shipment plays within the consolidation.

Valid values are:
  • CONSOLIDATION_DOCUMENTS_SHIPMENT – Shipment contains clearance documents for the corresponding consolidation.
  • CRN_SHIPMENT – Shipment is a Child Reference Number(individual shipment within consolidation).
  • MASTER_AIRWAYBILL_SHIPMENT – Shipment represents entire consolidation, moving as a unit.
", "example": "CONSOLIDATION_DOCUMENTS_SHIPMENT" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements to retrieve Shipment Regulatory Details." }, "Money": { "type": "object", - "description": "Customs value for this commodity.", - "properties": { - "amount": { - "type": "number", - "description": "This is the amount.
Example: 12.45", - "format": "double", - "example": 12.45, - "xml": { - "name": "Amount" - } - }, - "currency": { - "type": "string", - "description": "This is the currency code for the amount.
Example: USD
click here to see Currency codes", - "example": "USD", - "xml": { - "name": "Currency" - } - } - } - }, - "Money_1": { - "type": "object", - "description": "Specify Insurance charges if applicable.
Note: FedEx does not provide insurance of any kind.", "properties": { "amount": { "type": "number", @@ -324,7 +569,8 @@ "name": "Currency" } } - } + }, + "description": "Customs value for this commodity." }, "Address": { "required": [ @@ -372,7 +618,6 @@ } }, "insuranceCharges": { - "description": "Specify Insurance charges if applicable.
Note: FedEx does not provide insurance of any kind.", "$ref": "#/components/schemas/Money_1" }, "importerOfRecordAccountNumber": { @@ -407,6 +652,29 @@ }, "description": "These are customs clearance details.
Required for International and intra-country Shipments." }, + "Money_1": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "This is the amount.
Example: 12.45", + "format": "double", + "example": 12.45, + "xml": { + "name": "Amount" + } + }, + "currency": { + "type": "string", + "description": "This is the currency code for the amount.
Example: USD
click here to see Currency codes", + "example": "USD", + "xml": { + "name": "Currency" + } + } + }, + "description": "Specify Insurance charges if applicable.
Note: FedEx does not provide insurance of any kind." + }, "Party": { "type": "object", "properties": { @@ -495,6 +763,31 @@ } } }, + "Measure": { + "required": [ + "quantity", + "uom" + ], + "type": "object", + "properties": { + "uom": { + "type": "string", + "description": "Unit of measure used to express the quantity of this commodity line item.", + "xml": { + "name": "Uom" + } + }, + "quantity": { + "type": "number", + "description": "Specify commodity quantity.", + "format": "double", + "xml": { + "name": "Quantity" + } + } + }, + "description": "This object contains additional quantitative information other than weight and quantity to calculate duties and taxes." + }, "Weight": { "required": [ "units", @@ -524,31 +817,6 @@ "value": 68 } }, - "Measure": { - "required": [ - "quantity", - "uom" - ], - "type": "object", - "description": "This object contains additional quantitative information other than weight and quantity to calculate duties and taxes.", - "properties": { - "uom": { - "type": "string", - "description": "Unit of measure used to express the quantity of this commodity line item.", - "xml": { - "name": "Uom" - } - }, - "quantity": { - "type": "number", - "description": "Specify commodity quantity.", - "format": "double", - "xml": { - "name": "Quantity" - } - } - } - }, "MinimumSamplePayload": { "example": { "originAddress": { @@ -571,27 +839,165 @@ } } }, - "GticResponseVO": { + "Version": { "type": "object", "properties": { - "transactionId": { + "major": { + "type": "integer", + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": 1 + }, + "minor": { + "type": "integer", + "description": "This represents a backward-compatible minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": 1 + }, + "patch": { + "type": "integer", + "description": "This represents a backward-compatible bug fix adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": 1 + } + } + }, + "BaseProcessOutputVO": { + "type": "object", + "properties": { + "regulatoryComplianceCountryDetails": { + "type": "array", + "description": "This is an array of nonnegative-Integer identifying the associated commodities.", + "items": { + "$ref": "#/components/schemas/RegulatoryComplianceCountryDetail" + } + }, + "shipmentRegulatoryComplianceDetails": { + "type": "array", + "description": "This is an array of nonnegative-Integer identifying the associated commodities.", + "items": { + "$ref": "#/components/schemas/RegulatoryComplianceTypeDetail" + } + } + } + }, + "RegulatoryComplianceCountryDetail": { + "type": "object", + "properties": { + "countryCode": { "type": "string", - "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", - "example": "624deea6-b709-470c-8c39-4b5511281492" + "description": "The ISO country code for the country.", + "example": "US" }, - "customerTransactionId": { + "category": { "type": "string", - "description": "This element allows you to assign a unique identifier to your transaction. This element is also returned in the reply and helps you match the request to the reply.
Example: AnyCo_order123456789", - "example": "AnyCo_order123456789" + "description": "Describes the type of category", + "example": "ProductType" }, - "output": { - "$ref": "#/components/schemas/BaseProcessOutputVO" + "regulatoryComplianceCommodityDetails": { + "type": "array", + "description": "This is an array of nonnegative-Integer identifying the associated commodities.", + "items": { + "$ref": "#/components/schemas/RegulatoryComplianceCommodityDetail" + } + } + } + }, + "RegulatoryComplianceCommodityDetail": { + "type": "object", + "properties": { + "commodityComplianceTypeDetail": { + "$ref": "#/components/schemas/CommodityComplianceTypeDetail" + } + } + }, + "CommodityComplianceTypeDetail": { + "type": "object", + "properties": { + "commodityIndexes": { + "type": "array", + "description": "This is an array of nonnegative-Integer identifying the associated commodities.", + "example": 1, + "items": { + "minimum": 0, + "type": "number" + } + }, + "regulatoryComplianceTypeDetail": { + "$ref": "#/components/schemas/RegulatoryComplianceTypeDetail" + } + } + }, + "RegulatoryComplianceTypeDetail": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "compliance type.", + "example": "EEI" + }, + "description": { + "type": "string", + "description": "compliance description.", + "example": "Shipments to your selected country require an EEI filing" + } + } + }, + "CXSAlert": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Specifies the API alert code.", + "example": "INVALID.INPUT.EXCEPTION" + }, + "alertType": { + "type": "string", + "description": "Specifies the API alert Type.", + "example": "WARNING", + "enum": [ + "NOTE", + "WARNING" + ] + }, + "parameterList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Parameter_1" + } + }, + "message": { + "type": "string", + "description": "Specifies the API alert message.", + "example": "Validation failed for object. Error count: 1" + } + } + }, + "Parameter_1": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "Identifies the error option to be applied.", + "example": "packagingType can not be null" + }, + "key": { + "type": "string", + "description": "Indicates the value associated with the key.", + "example": "NotNull.specialServicesOptionsInputVO.requestedShipment.packagingType" } }, - "description": "This is a wrapper class for outputVO." + "description": "List of parameters which indicates the properties of the alert message." }, - "BaseProcessOutputVO": { - "$ref": "#/components/schemas/ShipmentRegulatoryDetailsOutputVO" + "CXSError_1": { + "type": "object", + "properties": { + "code": { + "description": "Indicates the error code.
Example: ACCOUNT.NUMBER.INVALID,LOGIN.REAUTHENTICATE.ERROR,SHIPMENT.USER.UNAUTHORIZED,NOT.FOUND.ERROR,INTERNAL.SERVER.ERROR" + }, + "message": { + "type": "string", + "description": "Indicates the description of API error alert message.
Example: We are unable to process this request. Please try again later or contact FedEx Customer Service." + } + }, + "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" }, "ShipmentRegulatoryDetailsOutputVO": { "required": [ @@ -618,7 +1024,7 @@ "cxsalerts": { "type": "array", "items": { - "$ref": "#/components/schemas/CXSAlert" + "$ref": "#/components/schemas/CXSAlert_1" } } }, @@ -782,52 +1188,19 @@ "localizedAttributes": { "$ref": "#/components/schemas/LocalizedAttributeDetail" }, - "documentIds": { - "type": "array", - "description": "Specifies the document identifier.", - "items": { - "type": "string" - } - }, - "statementUrl": { - "type": "string", - "description": "This represents statement url." - } - }, - "description": "Specifies the list of regulatory statements." - }, - "LocalizedAttributeDetail": { - "type": "object", - "properties": { - "localization": { - "$ref": "#/components/schemas/Localization" - }, - "name": { - "type": "string", - "description": "Specifies the name of the product being shipped." - }, - "description": { - "type": "string", - "description": "Specifies elabaorate material description and other technical details of the product beingshipped." - } - }, - "description": "Specifies the localized attribute details." - }, - "Localization": { - "type": "object", - "properties": { - "localization": { - "type": "string", - "description": "Two letter language code.
Example: EN
click here to see Locales", - "example": "EN" - }, - "localeCode": { + "documentIds": { + "type": "array", + "description": "Specifies the document identifier.", + "items": { + "type": "string" + } + }, + "statementUrl": { "type": "string", - "description": "Two letter region code.
Example: us
click here to see Locales", - "example": "us" + "description": "This represents statement url." } }, - "description": "Specify locale details for composing email with the document." + "description": "Specifies the list of regulatory statements." }, "RegulatoryDocument": { "type": "object", @@ -896,6 +1269,39 @@ }, "description": "Specifies the types and parameters of Country's advisory regulations." }, + "LocalizedAttributeDetail": { + "type": "object", + "properties": { + "localization": { + "$ref": "#/components/schemas/Localization" + }, + "name": { + "type": "string", + "description": "Specifies the name of the product being shipped." + }, + "description": { + "type": "string", + "description": "Specifies elabaorate material description and other technical details of the product beingshipped." + } + }, + "description": "Specifies the localized attribute details." + }, + "Localization": { + "type": "object", + "properties": { + "localization": { + "type": "string", + "description": "Two letter language code.
Example: EN
click here to see Locales", + "example": "EN" + }, + "localeCode": { + "type": "string", + "description": "Two letter region code.
Example: us
click here to see Locales", + "example": "us" + } + }, + "description": "Specify locale details for composing email with the document." + }, "Message": { "type": "object", "properties": { @@ -933,7 +1339,7 @@ } } }, - "CXSAlert": { + "CXSAlert_1": { "type": "object", "properties": { "code": { @@ -960,218 +1366,18 @@ } } }, - "Parameter": { - "type": "object", - "properties": { - "value": { - "type": "string", - "description": "Identifies the error option to be applied." - }, - "key": { - "type": "string", - "description": "Indicates the value associated with the key." - } - }, - "description": "List of parameters which indicates the properties of the alert message." - }, - "ErrorResponseVO": { - "type": "object", - "properties": { - "transactionId": { - "type": "string", - "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", - "example": "624deea6-b709-470c-8c39-4b5511281492" - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CXSError" - } - } - }, - "description": "This holds the error responses." - }, - "CXSError": { - "type": "object", - "properties": { - "code": { - "description": "Indicates the error code.
Example: ACCOUNT.NUMBER.INVALID,LOGIN.REAUTHENTICATE.ERROR,SHIPMENT.USER.UNAUTHORIZED,NOT.FOUND.ERROR,INTERNAL.SERVER.ERROR" - }, - "parameterList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Parameter_2" - } - }, - "message": { - "type": "string", - "description": "Indicates the description of API error alert message.
Example: We are unable to process this request. Please try again later or contact FedEx Customer Service." - } - }, - "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" - }, - "Parameter_2": { + "AccountNumber": { "type": "object", "properties": { "value": { "type": "string", - "description": "Identifies the error option to be applied." - }, - "key": { - "type": "string", - "description": "Indicates the value associated with the key." - } - }, - "description": "List of parameters which indicates the properties of the alert message." - }, - "ErrorResponseVO401": { - "type": "object", - "properties": { - "transactionId": { - "type": "string", - "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", - "example": "624deea6-b709-470c-8c39-4b5511281492" - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CXSError401" - } - } - }, - "description": "This holds the error responses." - }, - "CXSError401": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Indicates the error code.
Example: NOT.AUTHORIZED.ERROR" - }, - "parameterList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Parameter" - } - }, - "message": { - "description": "Indicates the description of API error alert message.
Example: Access token expired. Please modify your request and try again." - } - }, - "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" - }, - "ErrorResponseVO422": { - "type": "object", - "properties": { - "transactionId": { - "type": "string", - "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", - "example": "624deea6-b709-470c-8c39-4b5511281492" - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CXSError422" - } - } - }, - "description": "This holds the error responses." - }, - "CXSError422": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Indicates the error code.
Example: INVALID.INPUT.EXCEPTION" - }, - "parameterList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Parameter" - } - }, - "message": { - "description": "Validation failed for the object='shipmentRegulatoryDetailsInputVO'.Error count:1" - } - }, - "description": "Indicates error when mandatory elements are not passed in the request." - }, - "ErrorResponseVO404": { - "type": "object", - "properties": { - "transactionId": { - "type": "string", - "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", - "example": "624deea6-b709-470c-8c39-4b5511281492" - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CXSError404" - } - } - }, - "description": "This holds the error responses." - }, - "CXSError404": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Indicates the error code.
Example: NOT.FOUND.ERROR" - }, - "parameterList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Parameter" - } - }, - "message": { - "description": "Indicates the description of API error alert message.
Example: The resource you requested is no longer available. Please modify your request and try again." - } - }, - "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" - }, - "ErrorResponseVO500": { - "type": "object", - "properties": { - "transactionId": { - "type": "string", - "description": "The transaction ID is a special set of numbers that defines each transaction.
Example: 624deea6-b709-470c-8c39-4b5511281492", - "example": "624deea6-b709-470c-8c39-4b5511281492" - }, - "customerTransactionId": { - "type": "string", - "description": "This element allows you to assign a unique identifier to your transaction. This element is also returned in the reply and helps you match the request to the reply.
Example: AnyCo_order123456789", - "format": "uuid" - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CXSError500" - } - } - }, - "description": "This holds the error responses." - }, - "CXSError500": { - "type": "object", - "properties": { - "code": { - "type": "string", - "description": "Indicates the error code.
Example: INTERNAL.SERVER.ERROR" - }, - "parameterList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Parameter" - } - }, - "message": { - "description": "Indicates the description of API error alert message.
Example: We encountered an unexpected error and are working to resolve the issue. We apologize for any inconvenience. Please check back at a later time." + "description": "The account number value.
Max Length is 9.
Example: 123456789" } }, - "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" + "description": "The account number of the recipient.", + "example": { + "value": "602345XXX" + } } } } diff --git a/resources/models/.raw/ground-eod-close/v1/ShipmentCloseAPI-Resource.json b/resources/models/.raw/ground-eod-close/v1/ShipmentCloseAPI-Resource.json index b0b33e73..578c538a 100644 --- a/resources/models/.raw/ground-eod-close/v1/ShipmentCloseAPI-Resource.json +++ b/resources/models/.raw/ground-eod-close/v1/ShipmentCloseAPI-Resource.json @@ -809,6 +809,9 @@ }, "closeDocumentSpecification": { "$ref": "#/components/schemas/CloseDocumentSpecification" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -856,6 +859,26 @@ }, "description": "Specifies characteristics of the document to be returned for this request." }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "Op950Detail": { "type": "object", "properties": { @@ -918,6 +941,9 @@ }, "closeDocumentSpecification": { "$ref": "#/components/schemas/CloseDocumentSpecification" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, diff --git a/resources/models/.raw/locations-search/v1/Locations-Resource.json b/resources/models/.raw/locations-search/v1/Locations-Resource.json index a9c9269c..a1d9c4d1 100644 --- a/resources/models/.raw/locations-search/v1/Locations-Resource.json +++ b/resources/models/.raw/locations-search/v1/Locations-Resource.json @@ -13,7 +13,7 @@ "/location/v1/locations": { "post": { "summary": "Find Locations", - "description": "Use this endpoint to search for nearest FedEx locations by address, geographicccc coordinates, or phone numberrrr. You can also narrow your search by type of location and services offered. It returns up to 75 locations within a 50-mile radius for the address used in the search criteria. Results are based on current date and time. Supports all FedEx operating companies and countries, dependent upon being able to get a valid geolocation for a given set of criteria.
Note: You must specify landline numbers only, when searching for the nearest FedEx locations using phone number.
Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", + "description": "Use this endpoint to search for FedEx locations by address, geographic coordinates, or phone number. You can also narrow your search by type of location and services offered. It returns up to 75 locations within a 50-mile radius for the address used in the search criteria. Results are based on current date and time. Supports all FedEx operating companies and countries, dependent upon being able to get a valid geolocation for a given set of criteria.
Note: You must specify landline numbers only, when searching for the nearest FedEx locations using phone number.
Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", "operationId": "Find Location", "parameters": [ { @@ -434,6 +434,38 @@ "type": "boolean", "description": "Get a call.
Valid values: True, False.", "example": false + }, + "packagingType": { + "type": "string", + "description": "The FedEx Package Type", + "example": "FEDEX_PAK" + }, + "totalDeclaredValue": { + "description": "This is the total declared value of all of the packages for the shipment", + "allOf": [ + { + "$ref": "#/components/schemas/Amounts" + } + ] + }, + "totalCustomsValue": { + "description": "This is the total customs value of all of the packages for the shipment", + "allOf": [ + { + "$ref": "#/components/schemas/Amounts" + } + ] + }, + "paymentType": { + "type": "string", + "description": "Duties and Taxes Payor Payment Type", + "example": "SENDER", + "enum": [ + "SENDER", + "THIRD_PARTY", + "RECIPIENT", + "COLLECT" + ] } } }, @@ -749,6 +781,16 @@ "$ref": "#/components/schemas/Dimensions" } ] + }, + "serviceOptions": { + "type": "array", + "description": "Provide all the service Options for this package", + "example": [ + "DRY_ICE" + ], + "items": { + "type": "string" + } } }, "example": { @@ -761,7 +803,10 @@ "width": 40, "units": "IN", "height": 70 - } + }, + "serviceOptions": [ + "DRY_ICE" + ] } }, "Weight": { @@ -828,6 +873,20 @@ "units": "CM" } }, + "Amounts": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "example": 100 + }, + "currency": { + "type": "string", + "example": "USD" + } + }, + "description": "The package dimension limits supported at the location." + }, "Search_Location_for_Postal_Aware_Country": { "example": { "location": { diff --git a/resources/models/.raw/open-ship/v1/OpenShipment-Resource.json b/resources/models/.raw/open-ship/v1/OpenShipment-Resource.json index dc455bc1..60caadea 100644 --- a/resources/models/.raw/open-ship/v1/OpenShipment-Resource.json +++ b/resources/models/.raw/open-ship/v1/OpenShipment-Resource.json @@ -2170,6 +2170,9 @@ "accountNumber": { "$ref": "#/components/schemas/AccountNumber" }, + "version": { + "$ref": "#/components/schemas/Version" + }, "openShipmentAction": { "$ref": "#/components/schemas/OpenShipAction" }, @@ -2189,7 +2192,8 @@ "requestedPackageLineItems", "serviceType", "shipper", - "shippingChargesPayment" + "shippingChargesPayment", + "labelSpecification" ], "type": "object", "properties": { @@ -2340,6 +2344,9 @@ "items": { "$ref": "#/components/schemas/RequestedPackageLineItem" } + }, + "labelSpecification": { + "$ref": "#/components/schemas/LabelSpecification" } }, "description": "The detailed transaction data for the requested Open Shipment." @@ -2430,7 +2437,7 @@ "properties": { "streetLines": { "type": "array", - "description": "This is the combination of number, street name, etc. Maximum length per line is 35.
Example: 10 FedEx Parkway, Suite 302.

Note:

  • At least one line is required.
  • Streetlines more than 3 will be ignored.
  • Empty lines should not be included
  • For SmartPost Shipments, only 30 characters from the individual street lines will be printed on the labels.

", + "description": "This is the Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
Note - For FedEx Ground Economy, a maximum of 30 characters will be printed on the label, excess characters will be truncated.", "example": [ "1550 Union Blvd", "Suite 302" @@ -2802,7 +2809,7 @@ "$ref": "#/components/schemas/ResponsiblePartyParty" } }, - "description": "Indicate the payer Information responsible for paying for the shipment.
Note: credit card payment is not applicable.
Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT.", + "description": "Indicate the payer Information responsible for paying for the shipment.
Note: credit card payment is not applicable.
Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY. ", "example": { "responsibleParty": { "address": { @@ -2886,7 +2893,7 @@ "properties": { "value": { "type": "string", - "description": "Conditional.
The account number value.
Max Length is 9.
Example: 12XXXXX89

NOTE:- FedEx Account number is required for FedEx International Connect Plus (FICP) service shipments from APAC to US or PR with duty & tax Bill-to recipient:
if any of the shipment commodities\u2019 Country of Manufacture is CN/HK" + "description": "Conditional.
The account number value.
Max Length is 9.
Example: 12XXXXX89
NOTE: A FedEx account number is required for FedEx International Connect Plus (FICP) service non-document shipments. This applies to shipments from APAC countries and territories to U.S. or PR with duty and tax bill-to recipient if any shipment commodities\u2019 country of manufacture is AU, CN, HK, ID, JP, KR, MO, MY, NZ, PH, SG, TH, TW, VN (APAC countries and territories)." } }, "description": "This is FedEx Account number details.", @@ -4372,9 +4379,90 @@ }, "usmcaDetail": { "$ref": "#/components/schemas/UsmcaDetail" + }, + "clearanceItemDetail": { + "type": "array", + "description": "Array of clearance item details including manufacturer info for customs clearance.", + "items": { + "$ref": "#/components/schemas/ClearanceItemDetail" + } } } }, + "ClearanceItemDetail": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "Role in producing or supplying the item/commodity", + "example": "MANUFACTURER", + "enum": [ + "MANUFACTURER" + ] + }, + "id": { + "type": "string", + "description": "Unique identifier of the manufacturer of the commodity.
For shipments to United States, refer to U.S. Customs and Border Protection website.
Example: USGRE98BIR", + "example": "USGRE98BIR" + }, + "contact": { + "$ref": "#/components/schemas/ClearanceItemDetail_contact" + }, + "address": { + "$ref": "#/components/schemas/ClearanceItemDetail_address" + } + } + }, + "ClearanceItemDetail_contact": { + "type": "object", + "properties": { + "companyName": { + "type": "string", + "description": "Legal name of the manufacturer of the commodity.
Example: THE GREENHOUSE", + "example": "THE GREENHOUSE" + } + }, + "description": "Contact details of the manufacturer." + }, + "ClearanceItemDetail_address": { + "type": "object", + "properties": { + "streetLines": { + "type": "array", + "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included.
Example: 98 Royal Crescent", + "items": { + "type": "string", + "example": "[\"98 Royal Crescent\"]" + } + }, + "city": { + "type": "string", + "description": "The name of city, town of the recipient.
Example: Birmingham", + "example": "Birmingham" + }, + "stateOrProvinceCode": { + "type": "string", + "description": "It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country.
Example: CA", + "example": "CA" + }, + "postalCode": { + "type": "string", + "description": "The US State and Canada Province codes. The Format and presence of this field may vary depending on the country.
Example: 35209", + "example": "35209" + }, + "countryCode": { + "type": "string", + "description": "The two-letter code used to identify a country.
Example: US", + "example": "US" + }, + "residential": { + "type": "boolean", + "description": "Indicate whether this address is Residential (as opposed to Commercial).
Valid Values: True or False.", + "example": false + } + }, + "description": "Address of the manufacturer" + }, "AdditionalMeasures": { "type": "object", "properties": { @@ -5091,6 +5179,17 @@ ] }, "OpenShipAction": { + "type": "string", + "description": "Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

Here are the values:

  • CREATE_PACKAGE - Use CREATE_PACKAGE option to create Open Shipment.
  • STRONG_VALIDATION \u2013 Full shipment edits: any edit that fails will cause the transaction to fail. If the transaction is successful, a tracking number may be returned and the transaction will be saved to the database (committed).
  • WEAK_VALIDATION - Full shipment edits: any edit that fails will return errors but the transaction does not fail. The tracking number is returned and the transaction is saved in the database if the core edits are passed. Fix errors with the ModifyRequests transaction using the Index and returned tracking number.
  • PROVIDE_DOCUMENTS_INCREMENTALLY - Used in the Print as You Go (PASGO) flow to print labels incrementally as packages are added to an open shipment.

", + "example": "CREATE_PACKAGE", + "enum": [ + "STRONG_VALIDATION", + "WEAK_VALIDATION", + "CREATE_PACKAGE", + "PROVIDE_DOCUMENTS_INCREMENTALLY" + ] + }, + "OpenShipmentAction_1": { "type": "string", "description": "Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

Here are the values:

  • CREATE_PACKAGE - Use CREATE_PACKAGE option to create Open Shipment.
  • STRONG_VALIDATION \u2013 Full shipment edits: any edit that fails will cause the transaction to fail. If the transaction is successful, a tracking number may be returned and the transaction will be saved to the database (committed).
  • WEAK_VALIDATION - Full shipment edits: any edit that fails will return errors but the transaction does not fail. The tracking number is returned and the transaction is saved in the database if the core edits are passed. Fix errors with the ModifyRequests transaction using the Index and returned tracking number.

", "example": "CREATE_PACKAGE", @@ -5269,7 +5368,7 @@ "type": "array", "description": "The shipping transaction details, such as master tracking number, service type, and ship timestamp.", "items": { - "$ref": "#/components/schemas/TransactionOpenShipmentOutputVO" + "$ref": "#/components/schemas/TransactionOpenShipmentOutputVO_1" } }, "alerts": { @@ -5300,6 +5399,13 @@ "description": "Indicates service category.
Example: EXPRESS", "example": "EXPRESS" }, + "pieceResponses": { + "type": "array", + "description": "These are pieces information received in the response.", + "items": { + "$ref": "#/components/schemas/PieceResponse" + } + }, "serviceName": { "type": "string", "description": "Describes the service name for the shipment.
Example: FedEx Ground", @@ -5326,6 +5432,238 @@ }, "description": "Specifies shipping transaction output details" }, + "TransactionOpenShipmentOutputVO_1": { + "type": "object", + "properties": { + "serviceType": { + "type": "string", + "description": "Indicate the FedEx serviceType used for this shipment. The results will be filtered by the serviceType value indicated.
Example: STANDARD_OVERNIGHT
click here to see Service Types", + "example": "FEDEX_2_DAY_FREIGHT" + }, + "shipDatestamp": { + "type": "string", + "description": "This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
Format [YYYY-MM-DD].
Example: 2019-10-14", + "example": "2010-03-04" + }, + "serviceCategory": { + "type": "string", + "description": "Indicates service category.
Example: EXPRESS", + "example": "EXPRESS" + }, + "pieceResponses": { + "type": "array", + "description": "These are pieces information received in the response.", + "items": { + "$ref": "#/components/schemas/PieceResponse_1" + } + }, + "serviceName": { + "type": "string", + "description": "Describes the service name for the shipment.
Example: FedEx Ground", + "example": "FedEx 2 Day Freight" + }, + "alerts": { + "type": "array", + "description": "These are alert details received in the response.", + "items": { + "$ref": "#/components/schemas/Alert" + } + }, + "completedShipmentDetail": { + "$ref": "#/components/schemas/CompletedShipmentDetail" + }, + "shipmentAdvisoryDetails": { + "$ref": "#/components/schemas/ShipmentAdvisoryDetails" + }, + "masterTrackingNumber": { + "type": "string", + "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
Example: 794953535000", + "example": "794953535000" + } + }, + "description": "Specifies shipping transaction output details" + }, + "TransactionShipmentOutputVO_1": { + "type": "object", + "properties": { + "serviceType": { + "type": "string", + "description": "Indicate the FedEx serviceType used for this shipment. The results will be filtered by the serviceType value indicated.
Example: STANDARD_OVERNIGHT
click here to see Service Types", + "example": "STANDARD_OVERNIGHT" + }, + "shipDatestamp": { + "type": "string", + "description": "This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
Format [YYYY-MM-DD].
Example: 2019-10-14", + "example": "2010-03-04" + }, + "serviceCategory": { + "type": "string", + "description": "Indicates the Service Category.
Example: EXPRESS", + "example": "EXPRESS" + }, + "shipmentDocuments": { + "type": "array", + "description": "These are shipping document details.", + "items": { + "$ref": "#/components/schemas/LabelResponseVO" + } + }, + "pieceResponses": { + "type": "array", + "description": "These are pieces information received in the response.", + "items": { + "$ref": "#/components/schemas/PieceResponse_1" + } + }, + "serviceName": { + "type": "string", + "description": "This is the service name associated with the shipment.
Example: FedEx Ground", + "example": "FedEx 2 Day Freight" + }, + "alerts": { + "type": "array", + "description": "These are alert details received in the response.", + "items": { + "$ref": "#/components/schemas/Alert" + } + }, + "completedShipmentDetail": { + "$ref": "#/components/schemas/CompletedShipmentDetail" + }, + "shipmentAdvisoryDetails": { + "$ref": "#/components/schemas/ShipmentAdvisoryDetails" + }, + "masterTrackingNumber": { + "type": "string", + "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
Example: 794953535000", + "example": "794953535000" + } + }, + "description": "Specifies shipping transaction output details" + }, + "PieceResponse_1": { + "type": "object", + "properties": { + "netChargeAmount": { + "type": "number", + "description": "Indicates the net charges amount.
Example: 21.45", + "format": "double", + "example": 21.45 + }, + "transactionDetails": { + "type": "array", + "description": "Indicates data received that governs data payload language/translations. The TransactionDetail from the request is echoed back to the caller in the corresponding reply.", + "items": { + "$ref": "#/components/schemas/TransactionDetailVO" + } + }, + "packageDocuments": { + "type": "array", + "description": "Placeholder for package documents.
Note- it will be returned in response of create open shipment if openShipAction is PROVIDE_DOCUMENTS_INCREMENTALLY", + "items": { + "$ref": "#/components/schemas/LabelResponseVO" + } + }, + "acceptanceTrackingNumber": { + "type": "string", + "description": "Indicates the acceptance tracking number.
Example: 7949XXXXX5000", + "example": "794953535000" + }, + "serviceCategory": { + "type": "string", + "description": "Indicates the service category.", + "example": "EXPRESS", + "enum": [ + "EXPRESS", + "GROUND", + "EXPRESS_FREIGHT", + "FREIGHT", + "SMARTPOST", + "EXPRESS_PARCEL", + "NULL" + ] + }, + "listCustomerTotalCharge": { + "type": "string", + "description": "Indicates total charges applicable to the customer.
Example: listCustomerTotalCharge", + "example": "listCustomerTotalCharge" + }, + "deliveryTimestamp": { + "type": "string", + "description": "Indicates delivery date.
Example: 2012-09-23", + "example": "2012-09-23" + }, + "trackingIdType": { + "type": "string", + "description": "Indicates the type of the tracking identifier.", + "example": "FEDEX" + }, + "additionalChargesDiscount": { + "type": "number", + "description": "These are additional charges or discounts.
Example: 621.45", + "format": "double", + "example": 621.45 + }, + "netListRateAmount": { + "type": "number", + "description": "Indicates the net List rate amount.
Example: 1.45", + "format": "double", + "example": 1.45 + }, + "baseRateAmount": { + "type": "number", + "description": "Specifies the base rate amount.
Example: 321.45", + "format": "double", + "example": 321.45 + }, + "packageSequenceNumber": { + "type": "integer", + "description": "Indicates package sequence number.
Example: 215", + "format": "int32", + "example": 215 + }, + "netDiscountAmount": { + "type": "number", + "description": "Specifies the net discount amount.
Example: 121.45", + "format": "double", + "example": 121.45 + }, + "codcollectionAmount": { + "type": "number", + "description": "Specifies the Collect on Delivery collection amount.
Example: 231.45", + "format": "double", + "example": 231.45 + }, + "masterTrackingNumber": { + "type": "string", + "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
Example: 794XXXXX5000", + "example": "794953535000" + }, + "acceptanceType": { + "type": "string", + "description": "Indicates acceptance type.", + "example": "acceptanceType" + }, + "trackingNumber": { + "type": "string", + "description": "This is a tracking number associated with this package.
Example: 49XXX0000XXX20032835", + "example": "794953535000" + }, + "successful": { + "type": "boolean", + "description": "Returns true if the responses are successful otherwise false.", + "example": true + }, + "customerReferences": { + "type": "array", + "description": "These are additional customer reference data.
Note: The groupPackageCount must be specified to retrieve customer references.", + "items": { + "$ref": "#/components/schemas/CustomerReference" + } + } + }, + "description": "Piece Response information." + }, "Alert": { "type": "object", "properties": { @@ -7435,7 +7773,10 @@ "$ref": "#/components/schemas/OpenshipmentRequestedShipment" }, "openShipmentAction": { - "$ref": "#/components/schemas/OpenShipAction" + "$ref": "#/components/schemas/OpenShipmentAction_1" + }, + "version": { + "$ref": "#/components/schemas/Version" }, "accountNumber": { "$ref": "#/components/schemas/AccountNumber" @@ -7746,12 +8087,23 @@ }, "accountNumber": { "$ref": "#/components/schemas/AccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" + }, + "openShipmentAction": { + "type": "string", + "description": "Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

Here are the value:

  • PROVIDE_DOCUMENTS_INCREMENTALLY- Used in the Print as You Go (PASGO) flow to print labels incrementally as packages are added to an open shipment.

", + "example": "PROVIDE_DOCUMENTS_INCREMENTALLY", + "enum": [ + "PROVIDE_DOCUMENTS_INCREMENTALLY" + ] } } }, "LABELRESPONSEOPTIONS": { "type": "string", - "description": "Specify whether the encoded bytecode or the label URL to be returned in the response.

Valid values:

  • LABEL – Indicates request is for encoded bytecode.
  • URL_ONLY – Indicates label URL request.
Note: For asynchronous shipment (More than 40 packages) request only the value LABEL is suported.



Note: With URL_ONLY option, the URL once created will be active for 12 hours.", + "description": "Specify whether the encoded bytecode or the label URL to be returned in the response.

Valid values:

  • LABEL – Indicates request is for encoded bytecode.
  • URL_ONLY – Indicates label URL request.

Note:

  • For asynchronous shipment (More than 40 packages) request only the value LABEL is supported.
  • With URL_ONLY option, the URL once created will be active for 12 hours.
  • Label will be returned as Base64 ONLY when openShipmentAction is PROVIDE_DOCUMENTS_INCREMENTALLY

", "example": "LABEL", "enum": [ "URL_ONLY", @@ -9026,18 +9378,19 @@ "description": "This is a unique value assigned to the already created Open Shipment. If this isn\u2019t available then provide the master tracking number.
Example: Test1234", "example": "Test1234" }, - "shipAction": { - "description": "Allowed values are STRONG_VALIDATION, PROVIDE_DOCUMENTS_INCREMENTALLY", - "example": "STRONG_VALIDATION", + "OpenShipAction": { "allOf": [ { - "$ref": "#/components/schemas/OpenShipAction" + "$ref": "#/components/schemas/OpenShipmentAction_1" } ] }, "accountNumber": { "$ref": "#/components/schemas/AccountNumber" }, + "version": { + "$ref": "#/components/schemas/Version" + }, "trackingId": { "$ref": "#/components/schemas/TrackingId" } @@ -9264,18 +9617,19 @@ "description": "This is a unique value assigned to the already created Open Shipment. If this isn\u2019t available then provide the master tracking number.
Example: Test1234", "example": "Test1234" }, - "shipAction": { - "description": "There are Ship actions as part of processing the shipment.", - "example": "STRONG_VALIDATION", + "OpenShipAction": { "allOf": [ { - "$ref": "#/components/schemas/OpenShipmentAction" + "$ref": "#/components/schemas/OpenShipmentAction_1" } ] }, "accountNumber": { "$ref": "#/components/schemas/AccountNumber" }, + "version": { + "$ref": "#/components/schemas/Version" + }, "requestedPackageLineItems": { "type": "array", "description": "These are package line item details in the shipment. ", @@ -9335,7 +9689,7 @@ "type": "array", "description": "These are shipping transaction details, such as master tracking number, service type, and ship date and time.", "items": { - "$ref": "#/components/schemas/TransactionShipmentOutputVO" + "$ref": "#/components/schemas/TransactionShipmentOutputVO_1" } }, "alerts": { @@ -9364,6 +9718,9 @@ "accountNumber": { "$ref": "#/components/schemas/AccountNumber" }, + "version": { + "$ref": "#/components/schemas/Version" + }, "trackingIds": { "type": "array", "description": "One or more tracking IDs, for which the packages to be removed from the shipment.", @@ -9445,6 +9802,9 @@ }, "trackingId": { "$ref": "#/components/schemas/TrackingId" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -9512,6 +9872,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/AccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -9577,6 +9940,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/AccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -10301,6 +10667,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/AccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -10331,6 +10700,26 @@ "resultMethodType": "MODIFY" } }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "SHPCResponseVO_GetOpenShipmentResults": { "type": "object", "properties": { diff --git a/resources/models/.raw/pickup-request/v1/Pickup-Resource.json b/resources/models/.raw/pickup-request/v1/Pickup-Resource.json index 773185ef..496b06f9 100644 --- a/resources/models/.raw/pickup-request/v1/Pickup-Resource.json +++ b/resources/models/.raw/pickup-request/v1/Pickup-Resource.json @@ -694,11 +694,6 @@ "description": "The confirmation number provided to the customer when a pickup is requested
Example : 3001", "example": "3001" }, - "message": { - "type": "string", - "description": "Human-readable text that explains pickup notification
Example: Courier on the way", - "example": "Courier on the way" - }, "location": { "type": "string", "description": "The location from where the package will be picked up.

Note: The location will only be returned for Express Pickup.

Example: COSA", @@ -1077,10 +1072,85 @@ "$ref": "#/components/schemas/PickupNotificationdetail" } ] + }, + "pickupChargesPayment": { + "allOf": [ + { + "$ref": "#/components/schemas/PickupChargesPayment" + } + ] + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "Use this endpoint to create a pickup request." }, + "PickupChargesPayment": { + "type": "object", + "description": "Specifies how the pickup charges will be paid.", + "properties": { + "paymentType": { + "type": "string", + "description": "Type of payment for the pickup charges.", + "enum": [ + "ACCOUNT", + "CASH", + "COLLECT", + "CHECK", + "CREDIT_CARD", + "RECIPIENT", + "SENDER", + "THIRD_PARTY" + ], + "example": "ACCOUNT" + }, + "payor": { + "$ref": "#/components/schemas/Payor" + }, + "payorType": { + "$ref": "#/components/schemas/PayorType" + } + } + }, + "Payor": { + "type": "object", + "description": "Details about the party responsible for payment.", + "properties": { + "responsibleParty": { + "type": "object", + "description": "The entity paying for the pickup charges.", + "properties": { + "accountNumber": { + "type": "object", + "description": "The FedEx account number of the responsible party.", + "properties": { + "value": { + "type": "string", + "description": "Conditional.
The account number value. Max Length is 9.", + "example": "XXXXXX789" + }, + "key": { + "type": "string", + "description": "The account key associated with this account number.", + "example": "d53b8011d262ae762da1c9a5a71XXXXX" + } + } + } + } + } + } + }, + "PayorType": { + "type": "string", + "description": "Identifies the role of the party paying for the pickup.", + "enum": [ + "RECIPIENT", + "SENDER", + "THIRD_PARTY" + ], + "example": "SENDER" + }, "MinimumSamplePayload-ExpressFreightPickup": { "example": { "associatedAccountNumber": { @@ -1332,9 +1402,11 @@ "properties": { "streetLines": { "type": "array", - "description": "This is a combination of number, street name, etc.
Note: At least one line is required and streetlines more than 3 will be ignored. Empty lines should not be included.
Example: [\\\"10 FedEx Parkway\\\", \\\"Suite 302\\\"]", + "description": "This is a combination of number, street name, etc.
Note: At least one line is required. Empty lines should not be included. Minimum length is 3 and maximum length is 35.
Example: [\\\"10 FedEx Parkway\\\", \\\"Suite 302\\\"]", "items": { "type": "string", + "minLength": 3, + "maxLength": 35, "example": "[[\"123 Ship Street\"]]" } }, @@ -1424,9 +1496,11 @@ "properties": { "streetLines": { "type": "array", - "description": "Specify Street line details for the given address
Example :[\\\"10 FedEx Parkway\\\", \\\"Suite 302\\\"]", + "description": " This is a combination of number, street name, etc.
Note: At least one line is required. Empty lines should not be included. Minimum length is 3 and maximum length is 35.
Example :[\\\"10 FedEx Parkway\\\", \\\"Suite 302\\\"]", "items": { "type": "string", + "minLength": 3, + "maxLength": 35, "example": "[[\"123 Ship Street\"]]" } }, @@ -1972,6 +2046,9 @@ "DOMESTIC", "INTERNATIONAL" ] + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "These are pickup availability request elements." @@ -2239,9 +2316,6 @@ "FDXG" ] }, - "accountAddressOfRecord": { - "$ref": "#/components/schemas/AccountAddressOfRecord" - }, "scheduledDate": { "type": "string", "description": "Indicates the date the pickup dispatch occurs.
Format YYYY-MM-DD
Example: 2019-10-15", @@ -2251,30 +2325,13 @@ "type": "string", "description": "The FedEx Express location identifier responsible for processing the pickup request. This is returned in the CreatePickup response and is required to cancel a FedEx Express dispatch.Required only for FedEx Express Pickups. Optional for FedEx Ground. Example: LOSA", "example": "LOSA" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "This is a placeholder for cancelled pickup request elements." }, - "AccountAddressOfRecord": { - "description": "Address details for the associated pickup account. Indicates if the address is residential. Specifies the city name, country code, streetline number, postal code, address verification Identifier, and state or province code.", - "allOf": [ - { - "$ref": "#/components/schemas/Address" - }, - { - "properties": { - "city": { - "description": "Placeholder for the pickup city. Max length is 35.
Example: Memphis", - "example": "Memphis" - }, - "stateOrProvinceCode": { - "description": "The two character state/proviceCode for the pickup. Max length is 2.
Example: ON
Click here to see State/Province Code", - "example": "ON" - } - } - } - ] - }, "Cancel_Pickup_Ground": { "example": { "associatedAccountNumber": { @@ -2392,6 +2449,26 @@ "example": "7194446666" } } + }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } } } } diff --git a/resources/models/.raw/postal-code-validation/v1/ValidatePostal-Resource.json b/resources/models/.raw/postal-code-validation/v1/ValidatePostal-Resource.json index 2a4f0795..9645718b 100644 --- a/resources/models/.raw/postal-code-validation/v1/ValidatePostal-Resource.json +++ b/resources/models/.raw/postal-code-validation/v1/ValidatePostal-Resource.json @@ -288,6 +288,9 @@ "type": "boolean", "description": "This element checks for mismatch between State/Province Code and Postal Code.
  • When the checkForMismatch is set TRUE, for U.S. and Canada: The values in State/Province Code are checked with respect to Postal Code provided. If these entries are valid, the response provides respective State/Province Code and Postal Code. In case of mismatch of Postal Code and State/Province Code an error message is displayed.
  • When the checkForMismatch is set FALSE, for U.S. and Canada: The values in State/Province Code are not checked with respect to Postal Code provided. Instead the given data is reflected in the response.

For regions other than U.S and Canada regardless of the value of checkForMismatch the State/Province Code are checked with respect to the Postal Code and the response provides the respective State/Province Code and Postal Code.", "example": true + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements for validating a postal code." @@ -361,6 +364,26 @@ }, "description": "Indicates data returned in the postal validation reply." }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "Alert": { "type": "object", "properties": { diff --git a/resources/models/.raw/rates-transit-times/v1/RateQuotes-Resource.json b/resources/models/.raw/rates-transit-times/v1/RateQuotes-Resource.json index adf410cd..be191d30 100644 --- a/resources/models/.raw/rates-transit-times/v1/RateQuotes-Resource.json +++ b/resources/models/.raw/rates-transit-times/v1/RateQuotes-Resource.json @@ -230,6 +230,511 @@ }, "components": { "schemas": { + "EdtCommodityTax": { + "description": "The shipment/package Duties and taxes.", + "type": "object", + "properties": { + "harmonizedCode": { + "description": "Harmonized code is used by customer to classify the product being shipped and define the duties and taxes to be paid.", + "type": "string", + "example": "harmonizedCode" + }, + "taxes": { + "$ref": "#/components/schemas/EdtTaxDetail_1" + }, + "total": { + "description": "Total of Duties and taxes", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "EdtTaxDetail_1": { + "description": "Estimated duties and taxes detail.", + "type": "object", + "properties": { + "taxType": { + "description": "Estimated taxes type", + "type": "string", + "enum": [ + "ADDITIONAL_TAXES", + "CONSULAR_INVOICE_FEE", + "CUSTOMS_SURCHARGES", + "DUTY", + "EXCISE_TAX", + "FOREIGN_EXCHANGE_TAX", + "GENERAL_SALES_TAX", + "IMPORT_LICENSE_FEE", + "INTERNAL_ADDITIONAL_TAXES", + "INTERNAL_SENSITIVE_PRODUCTS_TAX", + "OTHER", + "SENSITIVE_PRODUCTS_TAX", + "STAMP_TAX", + "STATISTICAL_TAX", + "TRANSPORT_FACILITIES_TAX" + ], + "example": "INCENTIVE" + }, + "taxcode": { + "type": "string", + "example": "taxcode" + }, + "effectiveDate": { + "description": "Estimated duties and taxes effective date. Format [YYYY-MM-DD].", + "type": "string", + "example": "2019-12-06" + }, + "name": { + "description": "The localized name of the surcharge.", + "type": "string", + "example": "VAT" + }, + "taxableValue": { + "description": "Estimated duties and taxes taxable Value.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "description": { + "description": "FedEx pays the Duty and Tax charges on your behalf to ensure we can deliver your shipment as quickly as possible", + "type": "string", + "example": "Christmas" + }, + "formula": { + "description": "Indicates the formula.", + "type": "string", + "example": "VAT Payable = Output VAT \u2013 Input VAT" + }, + "amount": { + "description": "Amount for the estimated duties and taxes type.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "taxRates": { + "description": "Estimated duties and taxes taxRates", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "example": null + }, + "currency": { + "type": "string", + "example": null + }, + "quantity": { + "format": "double", + "type": "number", + "example": null + }, + "unitOfMeasure": { + "type": "string", + "example": null + } + } + } + }, + "appliedPreferentialTradeAgreement": { + "description": "provides details about PTA applied between countries for specific product. ", + "type": "object", + "properties": { + "id": { + "description": "", + "type": "string", + "example": "description" + }, + "name": { + "description": "", + "type": "string", + "example": "description" + }, + "description": { + "description": "", + "type": "string", + "example": "description" + } + } + } + } + }, + "VariableHandlingCharges_1": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "type": "object", + "properties": { + "variableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "fixedVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "percentVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalCustomerCharge": { + "description": "Specifies the total customer assessed handling charges.
Example: 445.54", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "AncillaryFeeAndTax": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "object", + "properties": { + "type": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "enum": [ + "CLEARANCE_ENTRY_FEE", + "GOODS_AND_SERVICES_TAX", + "HARMONIZED_SALES_TAX", + "OTHER" + ], + "example": "CLEARANCE_ENTRY_FEE" + }, + "description": { + "description": "Identifies the amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "list of AncillaryFees And Taxes", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "RateDiscount_2": { + "type": "object", + "properties": { + "rateDiscountType": { + "description": "Indicates the type.", + "type": "string", + "enum": [ + "BONUS", + "COUPON", + "EARNED", + "INCENTIVE", + "OTHER", + "VOLUME" + ], + "example": "INCENTIVE" + }, + "description": { + "description": "Indicates the description for the rate discount.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Indicates the amount for the rate discount.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "Rebate": { + "type": "object", + "properties": { + "rebateType": { + "description": "The type of rebate.", + "type": "string", + "enum": [ + "BONUS", + "EARNED", + "OTHER" + ], + "example": "EARNED" + }, + "description": { + "description": "The description of the rebate", + "type": "string", + "example": "description" + }, + "amount": { + "description": "provides the calculated rebate amount based on customer details, transaction information, and applicable rules. ", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "Surcharge_2": { + "type": "object", + "properties": { + "surchargeType": { + "description": "The type of surcharge.", + "type": "string", + "enum": [ + "ACCOUNT_NUMBER_PROCESSING_FEE", + "ADDITIONAL_HANDLING", + "ADDRESS_CORRECTION", + "ANCILLARY_FEE", + "APPOINTMENT_DELIVERY", + "BLIND_SHIPMENT", + "BROKER_SELECT_OPTION", + "CANADIAN_DESTINATION", + "CHARGEABLE_PALLET_WEIGHT", + "COD", + "CUT_FLOWERS", + "DANGEROUS_GOODS", + "DELIVERY_AREA", + "DELIVERY_CONFIRMATION", + "DELIVERY_ON_INVOICE_ACCEPTANCE", + "DEMAND", + "DEMAND_ADDITIONAL_HANDLING", + "DEMAND_OVERSIZE", + "DEMAND_RESIDENTIAL_DELIVERY", + "DETENTION", + "DOCUMENTATION_FEE", + "DRY_ICE", + "EMAIL_LABEL", + "ENHANCED_SECURITY", + "EUROPE_FIRST", + "EXCESS_VALUE", + "EXCLUSIVE_USE", + "EXHIBITION", + "EXPEDITED", + "EXPORT", + "EXTRA_LABOR", + "EXTRA_SURFACE_HANDLING_CHARGE", + "EXTREME_LENGTH", + "FEDEX_INTRACOUNTRY_FEES", + "FEDEX_TAG", + "FICE", + "FLATBED", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_DELIVERY", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_PICKUP", + "FREIGHT_DIRECT_BASIC_DELIVERY", + "FREIGHT_DIRECT_BASIC_PICKUP", + "FREIGHT_DIRECT_PREMIUM_DELIVERY", + "FREIGHT_DIRECT_PREMIUM_PICKUP", + "FREIGHT_DIRECT_STANDARD_DELIVERY", + "FREIGHT_DIRECT_STANDARD_PICKUP", + "FREIGHT_GUARANTEE", + "FREIGHT_ON_VALUE", + "FREIGHT_TO_COLLECT", + "FUEL", + "HIGH_COST_SERVICE_AREA_DESTINATION", + "HIGH_COST_SERVICE_AREA_ORIGIN", + "HIGH_DENSITY", + "HOLD_AT_LOCATION", + "HOLIDAY_DELIVERY", + "HOLIDAY_GUARANTEE", + "HOME_DELIVERY_APPOINTMENT", + "HOME_DELIVERY_DATE_CERTAIN", + "HOME_DELIVERY_EVENING", + "INSIDE_DELIVERY", + "INSIDE_PICKUP", + "INSURED_VALUE", + "INTERHAWAII", + "LIFTGATE_DELIVERY", + "LIFTGATE_PICKUP", + "LIMITED_ACCESS_DELIVERY", + "LIMITED_ACCESS_PICKUP", + "MARKING_OR_TAGGING", + "METRO_DELIVERY", + "METRO_PICKUP", + "MONITORING_AND_INTERVENTION", + "NON_BUSINESS_TIME", + "NON_MACHINABLE", + "OFFSHORE", + "ON_CALL_PICKUP", + "ON_DEMAND_CARE", + "OTHER", + "OUT_OF_DELIVERY_AREA", + "OUT_OF_PICKUP_AREA", + "OVER_DIMENSION", + "OVER_LENGTH", + "OVERSIZE", + "OVERWEIGHT", + "PALLET_SHRINKWRAP", + "PALLETS_PROVIDED", + "PEAK", + "PEAK_ADDITIONAL_HANDLING", + "PEAK_OVERSIZE", + "PEAK_RESIDENTIAL_DELIVERY", + "PERMIT", + "PIECE_COUNT_VERIFICATION", + "PORT", + "PRE_DELIVERY_NOTIFICATION", + "PRIORITY_ALERT", + "PROTECTION_FROM_FREEZING", + "REGIONAL_MALL_DELIVERY", + "REGIONAL_MALL_PICKUP", + "REROUTE", + "RESCHEDULE", + "RESIDENTIAL_DELIVERY", + "RESIDENTIAL_PICKUP", + "RETURN_LABEL", + "SATURDAY_DELIVERY", + "SATURDAY_PICKUP", + "SHIPMENT_ASSEMBLY", + "SIGNATURE_OPTION", + "SINGLE_PIECE", + "SORT_AND_SEGREGATE", + "SPECIAL_DELIVERY", + "SPECIAL_EQUIPMENT", + "STORAGE", + "SUNDAY_DELIVERY", + "TARP", + "THIRD_PARTY_BILLING", + "THIRD_PARTY_CONSIGNEE", + "TRANSMART_SERVICE_FEE", + "USPS", + "WEIGHING" + ], + "example": "COD" + }, + "level": { + "description": "The level of surcharge.", + "type": "string", + "enum": [ + "PACKAGE", + "SHIPMENT" + ], + "example": "PACKAGE" + }, + "description": { + "description": "The description of the surcharge.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "PickupDetail": { + "type": "object", + "properties": { + "readyDateTime": { + "type": "string", + "format": "date", + "description": "Pickup ready date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "latestPickupDateTime": { + "type": "string", + "format": "date", + "description": "Latest pickup date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "courierInstructions": { + "type": "string", + "description": "Special instructions for the courier", + "example": "Leave package at reception" + }, + "requestType": { + "$ref": "#/components/schemas/PickupRequestType" + }, + "requestSource": { + "$ref": "#/components/schemas/PickupRequestSourceType" + } + } + }, + "PickupRequestType": { + "type": "string", + "description": "Type of pickup request", + "enum": [ + "FUTURE_DAY", + "SAME_DAY" + ], + "example": "FUTURE_DAY" + }, + "PickupRequestSourceType": { + "type": "string", + "description": "Source of the pickup request", + "enum": [ + "AUTOMATION", + "CUSTOMER_SERVICE" + ], + "example": "AUTOMATION" + }, + "Tax_2": { + "description": "Tax surcharge details", + "type": "object", + "properties": { + "taxType": { + "description": "Specifies the type of Surcharge/Tax.", + "type": "string", + "enum": [ + "EXPORT", + "GST", + "HST", + "INTRACOUNTRY", + "OTHER", + "PST", + "SST", + "VAT" + ], + "example": "VAT" + }, + "description": { + "description": "Specifies the description of the Surcharge/Tax.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Specifies the list of tax amounts.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, "RatcResponseVO": { "type": "object", "properties": { @@ -307,6 +812,20 @@ "totalVatCharge": 0, "totalNetFedExCharge": 445.54, "totalDutiesAndTaxes": 0, + "totalNetTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "totalNetFedExTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "pickupRateDetail": { + "rateType": "INCENTIVE", + "ratingBasis": "PACK_WEIGHT_BASED", + "pricingCode": "ACTUAL", + "fuelSurchargePercent": 90.8 + }, "totalNetChargeWithDutiesAndTaxes": 445.54, "totalDutiesTaxesAndFees": 0, "totalAncillaryFeesAndTaxes": 0, @@ -346,6 +865,20 @@ "totalVatCharge": 0, "totalNetFedExCharge": 445.54, "totalDutiesAndTaxes": 0, + "totalNetTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "totalNetFedExTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "pickupRateDetail": { + "rateType": "INCENTIVE", + "ratingBasis": "PACK_WEIGHT_BASED", + "pricingCode": "ACTUAL", + "fuelSurchargePercent": 90.8 + }, "totalNetChargeWithDutiesAndTaxes": 445.54, "totalDutiesTaxesAndFees": 0, "totalAncillaryFeesAndTaxes": 0, @@ -385,6 +918,20 @@ "totalVatCharge": 0, "totalNetFedExCharge": 341.13, "totalDutiesAndTaxes": 0, + "totalNetTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "totalNetFedExTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "pickupRateDetail": { + "rateType": "INCENTIVE", + "ratingBasis": "PACK_WEIGHT_BASED", + "pricingCode": "ACTUAL", + "fuelSurchargePercent": 90.8 + }, "totalNetChargeWithDutiesAndTaxes": 341.13, "totalDutiesTaxesAndFees": 0, "totalAncillaryFeesAndTaxes": 0, @@ -424,6 +971,20 @@ "totalVatCharge": 0, "totalNetFedExCharge": 341.13, "totalDutiesAndTaxes": 0, + "totalNetTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "totalNetFedExTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "pickupRateDetail": { + "rateType": "INCENTIVE", + "ratingBasis": "PACK_WEIGHT_BASED", + "pricingCode": "ACTUAL", + "fuelSurchargePercent": 90.8 + }, "totalNetChargeWithDutiesAndTaxes": 341.13, "totalDutiesTaxesAndFees": 0, "totalAncillaryFeesAndTaxes": 0, @@ -1051,7 +1612,7 @@ }, { "serviceType": "FEDEX_GROUND", - "serviceName": "FedEx International Ground\ufffd", + "serviceName": "FedEx International Ground ", "packagingType": "YOUR_PACKAGING", "customerMessages": [ { @@ -1767,6 +2328,325 @@ "PREFERRED_CURRENCY" ] }, + "totalNetTransportationAndPickupCharge": { + "description": "Sum of totalNetCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of pickup.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalNetFedExTransportationAndPickupCharge": { + "description": "Sum of totalNetFedExCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of a pickup.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "pickupRateDetail": { + "description": "Charges associated with a scheduled shipment pickup", + "type": "object", + "properties": { + "rateType": { + "description": "Type used for this specific set of rate data.", + "type": "string", + "enum": [ + "INCENTIVE", + "NEGOTIATED", + "PAYOR_ACCOUNT_PACKAGE", + "PAYOR_ACCOUNT_SHIPMENT", + "PAYOR_CUSTOM_PACKAGE", + "PAYOR_CUSTOM_SHIPMENT", + "PAYOR_LIST_PACKAGE", + "PAYOR_LIST_SHIPMENT", + "PAYOR_RETAIL_PACKAGE", + "PAYOR_RETAIL_SHIPMENT", + "PREFERRED_ACCOUNT_PACKAGE", + "PREFERRED_ACCOUNT_SHIPMENT", + "PREFERRED_CUSTOM_PACKAGE", + "PREFERRED_CUSTOM_SHIPMENT", + "PREFERRED_INCENTIVE", + "PREFERRED_LIST_PACKAGE", + "PREFERRED_LIST_SHIPMENT", + "PREFERRED_NEGOTIATED", + "PREFERRED_RETAIL_PACKAGE", + "PREFERRED_RETAIL_SHIPMENT", + "RATED_ACCOUNT_PACKAGE", + "RATED_ACCOUNT_SHIPMENT", + "RATED_CUSTOM_PACKAGE", + "RATED_CUSTOM_SHIPMENT", + "RATED_LIST_PACKAGE", + "RATED_LIST_SHIPMENT", + "RATED_RETAIL_PACKAGE", + "RATED_RETAIL_SHIPMENT", + "UNKNOWN" + ], + "example": "PAYOR_ACCOUNT_PACKAGE" + }, + "rateScale": { + "type": "string", + "description": "Indicates the rate scale used.", + "example": "*USER IMS20160104 LD067110" + }, + "rateZone": { + "description": "Indicates the rate zone used (based on origin and destination).", + "type": "string", + "example": "CA003O" + }, + "ratingBasis": { + "description": "Allows clients to determine whether to add charges at the package level when Per Piece Rating details are returned.
  • SHIPMENT_WEIGHT_BASED - Indicates shipment weight is used to calculate the rate.

  • FLAT_RATE_PER_PAK - Indicates shipment is rated based on number of packs, weight would be considered for overweight surcharge but not for calculating shipment rate.

  • PACK_WEIGHT_BASED - Indicates individual package weight would be rated and aggregated to get shipment rate weight.
", + "type": "string", + "enum": [ + "SHIPMENT_WEIGHT_BASED", + "FLAT_RATE_PER_PAK", + "PACK_WEIGHT_BASED", + "UNKNOWN" + ], + "example": "SHIPMENT_WEIGHT_BASED" + }, + "pricingCode": { + "description": "Identifies the type of pricing used for this shipment.", + "type": "string", + "enum": [ + "ACTUAL", + "ALTERNATE", + "BASE", + "HUNDREDWEIGHT", + "HUNDREDWEIGHT_ALTERNATE", + "INTERNATIONAL_DISTRIBUTION", + "INTERNATIONAL_ECONOMY_SERVICE", + "LTL_FREIGHT", + "PACKAGE", + "SHIPMENT", + "SHIPMENT_FIVE_POUND_OPTIONAL", + "SHIPMENT_OPTIONAL", + "SPECIAL", + "UNKNOWN" + ], + "example": "ACTUAL" + }, + "minimumChargeType": { + "description": "provides the minimum charge type applicable to the rates.", + "type": "string", + "enum": [ + "CUSTOMER", + "CUSTOMER_FREIGHT_WEIGHT", + "EARNED_DISCOUNT", + "MIXED", + "RATE_SCALE", + "UNKNOWN" + ], + "example": "EARNED_DISCOUNT" + }, + "currencyExchangeRate": { + "$ref": "#/components/schemas/CurrencyExchangeRate" + }, + "specialRatingApplied": { + "type": "array", + "description": "Indicates which special rating cases applied to this shipment.", + "items": { + "type": "string", + "enum": [ + "FEDEX_ONE_RATE", + "FIXED_FUEL_SURCHARGE", + "IMPORT_PRICING" + ] + }, + "example": "FEDEX_ONE_RATE" + }, + "fuelSurchargePercent": { + "description": "Specify a fuel surcharge percentage.", + "format": "double", + "type": "number", + "example": 121 + }, + "pickupBaseChargeDescription": { + "description": "Will indicate the pickup charge description of the on call pickup", + "type": "string", + "enum": [ + "Regularly Scheduled Pickup Mon-Fri", + "Automated Pickup Mon-Fri", + "Same Day OC Pickup Mon-Fri (CS)", + "Same Day OC Pickup Mon-Fri (Online)", + "Fut. Day OC Pickup Mon-Fri (CS)", + "Fut. Day OC Pickup Mon-Fri (Online)", + "Regularly Scheduled Pickup Sat", + "Automated Pickup Sat", + "Same Day OC Pickup Sat (CS)", + "Same Day OC Pickup Sat (Online)", + "Fut. Day OC Pickup Sat (CS)", + "Fut. Day OC Pickup Sat (Online)", + "Regularly Scheduled Pickup Sun", + "Automated Pickup Sun", + "Same Day OC Pickup Sun (CS)", + "Same Day OC Pickup Sun (Online)", + "Fut. Day OC Pickup Sun (CS)", + "Fut. Day OC Pickup Sun (Online)", + "Residential On-Call Pickup Surcharge", + "Pickup Area Surcharge", + "Extended Pickup Area Surcharge", + "Remote Pickup Area Surcharge", + "Fuel Surcharge" + ], + "example": "Pickup Area Surcharge" + }, + "totalBaseCharge": { + "description": "Total base charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalFreightDiscounts": { + "description": "The total discounts used in the rate calculation.
Example: 1257.26", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetFreight": { + "description": "This shipment's totalNetFreight.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalSurcharges": { + "description": "The sum of all surcharges on the package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetFedExCharge": { + "description": "This shipment's totalNetFedExCharge, which is totalNetFreight plus totalSurcharges (not including totalTaxes).", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalTaxes": { + "description": "The sum of all taxes on this package.
Example: 1257.25", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetCharge": { + "description": "Total net charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalRebates": { + "description": "The total sum of all rebates applied to this package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalDutiesAndTaxes": { + "description": "The sum of shipment/package Duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalAncillaryFeesAndTaxes": { + "description": "Identifies the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalDutiesTaxesAndFees": { + "description": "The total amount of the duties and taxes plus the total ancillary fees and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetChargeWithDutiesAndTaxes": { + "description": "Total netChargesWithDutiesAndTaxes for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "freightDiscounts": { + "description": "All rate discounts that apply to this shipment", + "type": "array", + "items": { + "$ref": "#/components/schemas/RateDiscount_2" + } + }, + "rebates": { + "description": "The all rebates applied to this package.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Rebate" + } + }, + "surcharges": { + "description": "The amount of surcharges applied to this shipment.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Surcharge_2" + } + }, + "taxes": { + "description": "List of taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tax_2" + } + }, + "dutiesAndTaxes": { + "description": "List of The shipment/package Duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdtCommodityTax" + } + }, + "ancillaryFeesAndTaxes": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AncillaryFeeAndTax" + } + }, + "variableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges_1" + } + ] + }, + "totalVariableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges_1" + } + ] + } + } + }, "ratedWeightMethod": { "type": "string", "description": "Indicates which weight was used for the rate.
Example: 'ACTUAL'", @@ -3555,6 +4435,17 @@ "requestedShipment": { "$ref": "#/components/schemas/RequestedShipment" }, + "processingOptions": { + "type": "array", + "description": "Array of processing options for the shipment.", + "items": { + "type": "string", + "example": "INCLUDE_PICKUPRATES", + "enum": [ + "INCLUDE_PICKUPRATES" + ] + } + }, "carrierCodes": { "type": "array", "description": "Specify the four letter code of a FedEx operating company that meets your requirements.
Example: FDXE
  • FDXE - FedEx Express
  • FDXG - FedEx Ground
  • FXSP - FedEx SmartPost
  • FXCC - FedEx Custom Critical.
", @@ -3565,10 +4456,33 @@ "items": { "type": "string" } + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements for requesting a rate quote." }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "FDGSamplePayload-RateResourceDetails-IntraEurope": { "example": { "rateRequestControlParameters": { @@ -3892,6 +4806,9 @@ } ] }, + "pickupDetail": { + "$ref": "#/components/schemas/PickupDetail" + }, "recipient": { "description": "Indicate the descriptive data for the recipient location to which the shipment is to be received.", "allOf": [ diff --git a/resources/models/.raw/service-availability/v1/PackageAndServiceOptions-Resource.json b/resources/models/.raw/service-availability/v1/PackageAndServiceOptions-Resource.json index 588a10a8..285e7c7f 100644 --- a/resources/models/.raw/service-availability/v1/PackageAndServiceOptions-Resource.json +++ b/resources/models/.raw/service-availability/v1/PackageAndServiceOptions-Resource.json @@ -779,6 +779,9 @@ "FXSP" ] } + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "TransitTimeInputVO describes the details needed in order to get the transit times for a particular shipment. " @@ -1707,6 +1710,9 @@ "IMPERIAL", "METRIC" ] + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "These are the input elements for requesting package and service options." @@ -4424,6 +4430,26 @@ "example": 10 } } + }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } } } } diff --git a/resources/models/.raw/service-availability/v1/SpecialServiceOptions-Resource.json b/resources/models/.raw/service-availability/v1/SpecialServiceOptions-Resource.json index f7a23925..03641251 100644 --- a/resources/models/.raw/service-availability/v1/SpecialServiceOptions-Resource.json +++ b/resources/models/.raw/service-availability/v1/SpecialServiceOptions-Resource.json @@ -917,6 +917,9 @@ "FXFR" ] } + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements for special service options availability." @@ -3039,6 +3042,26 @@ "example": 10 } } + }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } } } } diff --git a/resources/models/.raw/ship-dg-hazmat/v1/ShipDGHazmatAPI-Resource.json b/resources/models/.raw/ship-dg-hazmat/v1/ShipDGHazmatAPI-Resource.json index 40c5d0a1..e3af7f77 100644 --- a/resources/models/.raw/ship-dg-hazmat/v1/ShipDGHazmatAPI-Resource.json +++ b/resources/models/.raw/ship-dg-hazmat/v1/ShipDGHazmatAPI-Resource.json @@ -1485,7 +1485,7 @@ "$ref": "#/components/schemas/ResponsiblePartyParty" } }, - "description": "Information about the person who is paying for the shipment.
Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT.", + "description": "Information about the person who is paying for the shipment.
Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY.", "example": { "responsibleParty": { "address": { @@ -3259,9 +3259,90 @@ }, "usmcaDetail": { "$ref": "#/components/schemas/UsmcaCommodityDetail" + }, + "clearanceItemDetail": { + "type": "array", + "description": "Array of clearance item details including manufacturer info for customs clearance.", + "items": { + "$ref": "#/components/schemas/ClearanceItemDetail" + } + } + } + }, + "ClearanceItemDetail": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "Role in producing or supplying the item/commodity", + "example": "MANUFACTURER", + "enum": [ + "MANUFACTURER" + ] + }, + "id": { + "type": "string", + "description": "Unique identifier of the manufacturer of the commodity.
For shipments to United States, refer to U.S. Customs and Border Protection website.
Example: USGRE98BIR", + "example": "USGRE98BIR" + }, + "contact": { + "$ref": "#/components/schemas/ClearanceItemDetail_contact" + }, + "address": { + "$ref": "#/components/schemas/ClearanceItemDetail_address" } } }, + "ClearanceItemDetail_contact": { + "type": "object", + "properties": { + "companyName": { + "type": "string", + "description": "Legal name of the manufacturer of the commodity.
Example: THE GREENHOUSE", + "example": "THE GREENHOUSE" + } + }, + "description": "Contact details of the manufacturer." + }, + "ClearanceItemDetail_address": { + "type": "object", + "properties": { + "streetLines": { + "type": "array", + "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included.
Example: 98 Royal Crescent", + "items": { + "type": "string", + "example": "[\"98 Royal Crescent\"]" + } + }, + "city": { + "type": "string", + "description": "The name of city, town of the recipient.
Example: Birmingham", + "example": "Birmingham" + }, + "stateOrProvinceCode": { + "type": "string", + "description": "It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country.
Example: CA", + "example": "CA" + }, + "postalCode": { + "type": "string", + "description": "The US State and Canada Province codes. The Format and presence of this field may vary depending on the country.
Example: 35209", + "example": "35209" + }, + "countryCode": { + "type": "string", + "description": "The two-letter code used to identify a country.
Example: US", + "example": "US" + }, + "residential": { + "type": "boolean", + "description": "Indicate whether this address is Residential (as opposed to Commercial).
Valid Values: True or False.", + "example": false + } + }, + "description": "Address of the manufacturer" + }, "AdditionalMeasures": { "type": "object", "properties": { @@ -4452,7 +4533,7 @@ "type": "object", "properties": { "formId": { - "type": "integer", + "type": "string", "description": "This is FedEx tracking Identifier associated with the package.
Example: 0201", "example": 201 }, @@ -4462,7 +4543,7 @@ "example": "EXPRESS" }, "uspsApplicationId": { - "type": "integer", + "type": "string", "description": "Specify the USPS tracking Identifier associated with FedEx SmartPost shipment.
Example: 92", "example": 92 }, @@ -7563,7 +7644,7 @@ "$ref": "#/components/schemas/ResponsiblePartyParty_1" } }, - "description": "Information about the person who is paying for the shipment.
Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT.", + "description": "Information about the person who is paying for the shipment.
Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY.", "example": { "responsibleParty": { "address": { @@ -10690,7 +10771,7 @@ "type": "object", "properties": { "binaryBarcodes": { - "type": "array", + "type": "string", "items": { "$ref": "#/components/schemas/BinaryBarcode" } @@ -10907,12 +10988,10 @@ "type": "object", "properties": { "amount": { - "description": "Specifies the Surcharge Amount.", - "allOf": [ - { - "$ref": "#/components/schemas/Money" - } - ] + "type": "number", + "description": "This is commodity value in amount used for Customs declaration.
Max limit: 7 digits before decimal.
Example: 12.45", + "format": "double", + "example": 12.45 }, "surchargeType": { "type": "string", @@ -12615,24 +12694,9 @@ { "$ref": "#/components/schemas/DGHazShipmentGroundMPS-UN1888-UN3082" }, - { - "$ref": "#/components/schemas/US_Domestic_Print_Return_Label_Shipment" - }, - { - "$ref": "#/components/schemas/US_Domestic_Email_Return_Label_Shipment" - }, { "$ref": "#/components/schemas/International_Shipment" }, - { - "$ref": "#/components/schemas/International_SingleShot_Multi_Piece_Shipment" - }, - { - "$ref": "#/components/schemas/Domestic_Express_Customer_Reference" - }, - { - "$ref": "#/components/schemas/International_Express_Email_notifications" - }, { "$ref": "#/components/schemas/MinimumSamplePayload-Intra-EU" }, @@ -12688,8 +12752,8 @@ }, "units": { "type": "string", - "description": "The weight unit of measure for the packaging. KG or LB", - "example": "LB" + "description": "Units in which the hazardous commodity is packaged.", + "example": "HAZMATPACKAGE" } }, "description": "Indicates the Packaging details of dangerous goods." diff --git a/resources/models/.raw/ship/v1/Shipment-Resource.json b/resources/models/.raw/ship/v1/Shipment-Resource.json index 92e68549..762b5314 100644 --- a/resources/models/.raw/ship/v1/Shipment-Resource.json +++ b/resources/models/.raw/ship/v1/Shipment-Resource.json @@ -35,6 +35,9 @@ { "$ref": "#/components/schemas/FDGSamplePayload-ShipShipment-intraEurope" }, + { + "$ref": "#/components/schemas/Domestic_Ground_Shipment" + }, { "$ref": "#/components/schemas/One_Rate_Shipment" }, @@ -1014,6 +1017,20 @@ "type": "boolean", "description": "This flag is used to specify if the shipment is singleshot mps or one Label at a time, piece by piece shipment. Default is false. If true, one label at a time is processed.", "example": true + }, + "version": { + "$ref": "#/components/schemas/Version" + }, + "processingOptions": { + "type": "array", + "description": "Array of processing options for the shipment.", + "items": { + "type": "string", + "example": "INCLUDE_PICKUPRATES", + "enum": [ + "INCLUDE_PICKUPRATES" + ] + } } }, "description": "The request elements required to create a shipment." @@ -1164,6 +1181,9 @@ "$ref": "#/components/schemas/RecipientsParty" } }, + "pickupDetail": { + "$ref": "#/components/schemas/PickupDetail" + }, "soldTo": { "description": "Will indicate the party responsible for purchasing the goods shipped from the shipper to the recipient. The sold to party is not necessarily the recipient or the importer of record. The sold to party is relevant when the purchaser, rather than the recipient determines when certain customs regulations apply.", "allOf": [ @@ -1199,7 +1219,7 @@ }, "totalWeight": { "type": "number", - "description": "Indicate the shipment total weight in pounds.
Example: 10.6
Note:
  • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
  • This value contains 1 explicit decimal position.
  • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
", + "description": "Indicate the shipment total weight in Metric or US.
Example: 10.6
Note:
  • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
  • This value contains 1 explicit decimal position.
  • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
", "format": "double", "example": 20.6 }, @@ -1276,6 +1296,13 @@ "masterTrackingId": { "$ref": "#/components/schemas/MasterTrackingId" }, + "variationOptions": { + "type": "array", + "description": "The shipment variations for the current shipment expressed in key-value pairs", + "items": { + "$ref": "#/components/schemas/VariationOptions" + } + }, "requestedPackageLineItems": { "type": "array", "description": "These are one or more package-attribute descriptions, each of which describes an individual package, a group of identical packages, or (for the total-piece-total-weight case) common characteristics of all packages in the shipment.
  • At least one instance containing the weight for at least one package is required for EXPRESS and GROUND shipments.
  • Single piece requests will have one RequestedPackageLineItem.
  • Multiple piece requests will have multiple RequestedPackageLineItems.
  • Maximum occurrences is 30.
", @@ -1286,6 +1313,73 @@ }, "description": "The descriptive data of the requested shipment." }, + "VariationOptions": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Specifies the name or the key for the shipment variation.\n", + "example": "GLOBAL-SPOT-IDENTIFIER" + }, + "values": { + "type": "array", + "description": "The values that are valid for the specified shipment variation in the context of the current shipment.\n", + "example": [ + "21089052", + "21089053" + ], + "items": { + "type": "string" + } + } + } + }, + "PickupDetail": { + "type": "object", + "properties": { + "readyDateTime": { + "type": "string", + "format": "date", + "description": "Pickup ready date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "latestPickupDateTime": { + "type": "string", + "format": "date", + "description": "Latest pickup date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "courierInstructions": { + "type": "string", + "description": "Special instructions for the courier", + "example": "Leave package at reception" + }, + "requestType": { + "$ref": "#/components/schemas/PickupRequestType" + }, + "requestSource": { + "$ref": "#/components/schemas/PickupRequestSourceType" + } + } + }, + "PickupRequestType": { + "type": "string", + "description": "Type of pickup request", + "enum": [ + "FUTURE_DAY", + "SAME_DAY" + ], + "example": "FUTURE_DAY" + }, + "PickupRequestSourceType": { + "type": "string", + "description": "Source of the pickup request", + "enum": [ + "AUTOMATION", + "CUSTOMER_SERVICE" + ], + "example": "AUTOMATION" + }, "Money": { "type": "object", "properties": { @@ -1331,7 +1425,7 @@ "$ref": "#/components/schemas/PartyAddress_2" }, "contact": { - "$ref": "#/components/schemas/PartyContact" + "$ref": "#/components/schemas/PartyContacts_2" }, "tins": { "type": "array", @@ -1405,7 +1499,7 @@ "properties": { "streetLines": { "type": "array", - "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
Example: [1550 Union Blvd,Suite 302]", + "description": "This is the Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.Note - For FedEx Ground Economy, a maximum of 30 characters will be printed on the label, excess characters will be truncated.", "example": "1550 Union Blvd, Suite 302", "items": { "type": "string" @@ -1461,7 +1555,7 @@ "properties": { "streetLines": { "type": "array", - "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
Example: [1550 Union Blvd,Suite 302]", + "description": "This is the Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35. Note - For FedEx Ground Economy, a maximum of 30 characters will be printed on the label, excess characters will be truncated.", "example": "1550 Union Blvd, Suite 302", "items": { "type": "string" @@ -1530,7 +1624,7 @@ }, "phoneNumber": { "type": "string", - "description": "Contact person's phone number.
Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", + "description": "Contact person's phone number.
Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", "example": "1234567890" }, "companyName": { @@ -1608,7 +1702,7 @@ "$ref": "#/components/schemas/PartyAddress_2" }, "contact": { - "$ref": "#/components/schemas/PartyContact" + "$ref": "#/components/schemas/PartyContacts_2" }, "tins": { "type": "array", @@ -1655,6 +1749,47 @@ "deliveryInstructions": "Delivery Instructions" } }, + "PartyContacts_2": { + "required": [ + "phoneNumber" + ], + "type": "object", + "properties": { + "personName": { + "type": "string", + "description": "Specify contact name. First 35 chars will be printed on the label, excess characters will be truncated.
Note: Either the companyName or personName is manadatory.
Example : John Taylor", + "example": "John Taylor" + }, + "emailAddress": { + "type": "string", + "description": "Specify contact email address. Maximum length is 80.
Example: sample@company.com", + "example": "sample@company.com" + }, + "phoneExtension": { + "type": "string", + "description": "Specify contact phone extension. Maximum length is 6.
Example: 1234", + "example": "91" + }, + "phoneNumber": { + "type": "string", + "description": "The shipper's phone number.
Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", + "example": "918xxxxx890" + }, + "companyName": { + "type": "string", + "description": "The shipper's company name. Max length is 35.
Example: FedEx", + "example": "Fedex" + } + }, + "description": "Indicate the contact details for this shipment.", + "example": { + "personName": "John Taylor", + "emailAddress": "sample@company.com", + "phoneExtension": "91", + "phoneNumber": "1234567890", + "companyName": "Fedex" + } + }, "ContactAndAddress_1": { "type": "object", "properties": { @@ -1703,7 +1838,7 @@ }, "phoneNumber": { "type": "string", - "description": "Specify contact phone number.
Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
Example: 918xxxxx890", + "description": "Specify contact phone number.
Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
Example: 918xxxxx890", "example": "1234567890" }, "phoneExtension": { @@ -1836,7 +1971,7 @@ "$ref": "#/components/schemas/ResponsiblePartyParty" } }, - "description": "Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT.", + "description": "Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY.", "example": { "responsibleParty": { "address": { @@ -1924,7 +2059,7 @@ "properties": { "value": { "type": "string", - "description": "Conditional.
The account number value.
Max Length is 9.
Example: 12XXXXX89
NOTE-FedEx Account Number is required for FedEx International Connect Plus (FICP) service shipments from APAC to US or PR with duty & tax Bill-to recipient:
1. If any of the shipment Commodities' Country of Manufacture is CN/HK", + "description": "Conditional.
The account number value.
Max Length is 9.
Example: 12XXXXX89
NOTE: A FedEx account number is required for FedEx International Connect Plus (FICP) service non-document shipments. This applies to shipments from APAC countries and territories to U.S. or PR with duty and tax bill-to recipient if any shipment commodities\u2019 country of manufacture is AU, CN, HK, ID, JP, KR, MO, MY, NZ, PH, SG, TH, TW, VN (APAC countries and territories).", "example": "12XXXXX89" } }, @@ -2243,7 +2378,7 @@ "properties": { "pendingShipmentType": { "type": "string", - "description": "Specifies the pending shipment type. Must include the value: EMAIL for email return shipments.
Not applicable for other types of shipments
Example: EMAIL", + "description": "Specifies the pending shipment type. Must include the value: EMAIL for email return shipments.
Not applicable for other types of shipments.

Once the label is printed, the transaction is marked with the original print date. You can reprint the label and documents for up to 5 days from that original print date. Once the 5-day reprint window closes, the label is no longer accessible.

Example: EMAIL", "example": "EMAIL", "enum": [ "EMAIL" @@ -2267,7 +2402,7 @@ }, "expirationTimeStamp": { "type": "string", - "description": "Specifies the Email Label expiration date. The maximum expiration date for an Email Return Label must be greater of equal to the day of the label request and not greater than 2 years in the future. Format[YYYY-MM-DD]
Example: 2020-01-01", + "description": "Specifies the Email Label expiration date.
The expiration date must be:
- Greater than or equal to the label request date.
- Not more than 2 years in the future.
Once the label is printed, the transaction is marked with the original print date. You can reprint the label and documents for up to 5 days from that original print date. Once the 5-day reprint window closes, the label is no longer accessible.

Format: [YYYY-MM-DD]
Example: 2020-01-01", "example": "2020-01-01" } }, @@ -2527,7 +2662,7 @@ }, "phoneNumber": { "type": "string", - "description": "Contact person's phone number.
Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", + "description": "Contact person's phone number.
Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", "example": "1234567890" }, "phoneExtension": { @@ -3633,6 +3768,13 @@ ], "type": "object", "properties": { + "clearanceItemDetail": { + "type": "array", + "description": "These are commodities clearance item detail", + "items": { + "$ref": "#/components/schemas/ClearanceItemDetail" + } + }, "unitPrice": { "description": "This is the unit price.", "allOf": [ @@ -3730,6 +3872,92 @@ } } }, + "ClearanceItemDetail": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "Role in producing or supplying the item/commodity", + "example": "MANUFACTURER", + "enum": [ + "MANUFACTURER" + ] + }, + "id": { + "type": "string", + "description": "Unique identifier of the manufacturer of the commodity.For shipments to United States, refer to U.S. Customs and Border Protection website.", + "example": "USGRE98BIR" + }, + "contact": { + "type": "object", + "properties": { + "companyName": { + "type": "string", + "description": "Legal name of the manufacturer of the commodity.", + "example": "THE GREENHOUSE" + } + } + }, + "address": { + "type": "object", + "description": "Address of the manufacturer", + "properties": { + "streetLines": { + "type": "array", + "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included.98 Royal Crescent", + "example": [ + "98 Royal Crescent" + ], + "items": { + "type": "string" + } + }, + "city": { + "type": "string", + "description": "The name of city, town of the recipient.Example: Birmingham", + "example": "Birmingham" + }, + "stateOrProvinceCode": { + "type": "string", + "description": "It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country. Example: CA.click here to see State or Province Code", + "example": "CA" + }, + "postalCode": { + "type": "string", + "description": "The US State and Canada Province codes. The Format and presence of this field may vary depending on the country. Example: 35209click here to see Postal aware countries", + "example": "35209" + }, + "countryCode": { + "type": "string", + "description": "The two-letter code used to identify a country.Example: USclick here to see Country codes", + "example": "US" + }, + "residential": { + "type": "boolean", + "description": "Indicate whether this address is residential (as opposed to commercial).Valid Values: True or False.", + "example": false + } + } + } + }, + "example": { + "type": "MANUFACTURER", + "id": "USGRE98BIR", + "contact": { + "companyName": "THE GREENHOUSE" + }, + "address": { + "streetLines": [ + "98 Royal Crescent" + ], + "city": "Birmingham", + "stateOrProvinceCode": "CA", + "postalCode": "35209", + "countryCode": "US", + "residential": false + } + } + }, "AdditionalMeasures": { "type": "object", "properties": { @@ -3755,8 +3983,8 @@ "properties": { "units": { "type": "string", - "description": "Specifies the package weight unit type.
Example:KG", - "example": "KG", + "description": "Specifies the package weight unit type.
Example:KG,LB", + "example": "KG, LB", "enum": [ "KG", "LB" @@ -3784,10 +4012,11 @@ "properties": { "units": { "type": "string", - "description": "Indicate the weight unit type. The package and commodity weight unit should be the same else the request will result in an error.", + "description": "Indicate the weight unit type.", "example": "KG", "enum": [ - "KG" + "KG", + "LB" ] }, "value": { @@ -3812,7 +4041,7 @@ "properties": { "units": { "type": "string", - "description": "Indicate the weight unit type. The package and commodity weight unit should be the same else the request will result in an error.
Example:KG", + "description": "Indicate the weight unit type.
Example:KG", "example": "KG", "enum": [ "KG", @@ -4835,7 +5064,7 @@ "properties": { "personName": { "type": "string", - "description": "Specify contact name. Maximum length is 70.
Example: John Taylor", + "description": "Specify contact name. First 35 chars will be printed on the label, excess characters will be truncated.
Example: John Taylor", "example": "John Taylor" }, "emailAddress": { @@ -4850,7 +5079,7 @@ }, "phoneNumber": { "type": "string", - "description": "Contact person's phone number.
Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", + "description": "Contact person's phone number.
Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
Example: 918xxxxx890", "example": "1234567890" }, "companyName": { @@ -5167,7 +5396,7 @@ "properties": { "specialServiceTypes": { "type": "array", - "description": "The list of all special services requested for the package.
Click here to see Package Special Service Types
Example:ALCOHOL", + "description": "The list of all special services requested for the package.
Click here to see Package Level Special Service Types
Example:ALCOHOL", "example": [ "ALCOHOL", "NON_STANDARD_CONTAINER", @@ -5400,7 +5629,7 @@ }, "LABELRESPONSEOPTIONS": { "type": "string", - "description": "Note- Label will be returned as Base64 ONLY when openShipmentAction is PROVIDE_DOCUMENTS_INCREMENTALLY.
LabelResponseOptions specifies the label generation format.
Example:URL_ONLY", + "description": "LABEL \u2013 Indicates request is for encoded bytecode (Base64).
URL_ONLY \u2013 Indicates label URL request.
Note:
  • For asynchronous shipment (more than 40 packages) requests only the value LABEL is supported.
  • With URL_ONLY option, the URL once created will be active for 12 hours.", "example": "URL_ONLY", "enum": [ "URL_ONLY", @@ -8458,7 +8687,7 @@ "type": "array", "description": "These are shipping transaction details, such as master tracking number, service type, and ship date and time.", "items": { - "$ref": "#/components/schemas/TransactionShipmentOutputVO" + "$ref": "#/components/schemas/TransactionCreateShipmentOutputVO" } }, "alerts": { @@ -8476,6 +8705,131 @@ }, "description": "This is the response received when a shipment is requested." }, + "TransactionCreateShipmentOutputVO": { + "type": "object", + "properties": { + "serviceType": { + "type": "string", + "description": "Indicate the FedEx serviceType used for this shipment. The results will be filtered by the serviceType value indicated.
    Example: STANDARD_OVERNIGHT
    click here to see Service Types", + "example": "STANDARD_OVERNIGHT" + }, + "shipDatestamp": { + "type": "string", + "description": "This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
    Format [YYYY-MM-DD].
    Example: 2019-10-14", + "example": "2010-03-04" + }, + "serviceCategory": { + "type": "string", + "description": "Indicates the Service Category.
    Example: EXPRESS", + "example": "EXPRESS" + }, + "shipmentDocuments": { + "type": "array", + "description": "These are shipping document details.", + "items": { + "$ref": "#/components/schemas/LabelResponseVO" + } + }, + "pieceResponses": { + "type": "array", + "description": "Specifies the information about the pieces, received in the response.", + "items": { + "$ref": "#/components/schemas/PieceResponse" + } + }, + "serviceName": { + "type": "string", + "description": "This is the service name associated with the shipment.
    Example: FedEx Ground", + "example": "FedEx 2 Day Freight" + }, + "alerts": { + "type": "array", + "description": "These are alert details received in the response.", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Alert_3P" + }, + { + "$ref": "#/components/schemas/Alert_3PP" + } + ] + } + }, + "completedShipmentDetail": { + "$ref": "#/components/schemas/CompletedCreateShipmentDetail" + }, + "shipmentAdvisoryDetails": { + "$ref": "#/components/schemas/ShipmentAdvisoryDetails" + }, + "masterTrackingNumber": { + "type": "string", + "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
    Example: 794953535000", + "example": "794953535000" + } + }, + "description": "Specifies shipping transaction output details" + }, + "CompletedCreateShipmentDetail": { + "type": "object", + "properties": { + "completedPackageDetails": { + "type": "array", + "description": "Indicates the completed package details.", + "items": { + "$ref": "#/components/schemas/CompletedPackageDetail" + } + }, + "operationalDetail": { + "$ref": "#/components/schemas/ShipmentOperationalDetail" + }, + "carrierCode": { + "type": "string", + "description": "Specify the four letter code of a FedEx operating company that meets your requirements
    Examples of FedEx Operating Companies are:
    • FDXE - FedEx Express
    • FDXG - FedEx Ground
    • FXSP - FedEx SmartPost
    • FXCC - FedEx Custom Critical.
    ", + "example": "FDXE" + }, + "completedHoldAtLocationDetail": { + "$ref": "#/components/schemas/CompletedHoldAtLocationDetail" + }, + "completedEtdDetail": { + "$ref": "#/components/schemas/CompletedEtdDetail" + }, + "packagingDescription": { + "type": "string", + "description": "Specifies packaging description
    Example: Customer Packaging", + "example": "Customer Packaging" + }, + "masterTrackingId": { + "$ref": "#/components/schemas/TrackingId" + }, + "serviceDescription": { + "$ref": "#/components/schemas/ServiceDescription" + }, + "usDomestic": { + "type": "boolean", + "description": "Indicates whether or not this is an intra-U.S. shipment.", + "example": true + }, + "hazardousShipmentDetail": { + "$ref": "#/components/schemas/CompletedHazardousShipmentDetail" + }, + "shipmentRating": { + "$ref": "#/components/schemas/Create_ShipmentRating" + }, + "documentRequirements": { + "$ref": "#/components/schemas/DocumentRequirementsDetail" + }, + "exportComplianceStatement": { + "type": "string", + "description": "For US export shipments requiring an EEI, enter the ITN number received from AES when you filed your shipment or the FTR (Foreign Trade Regulations) exemption number.The proper format for an ITN number is AES XYYYYMMDDNNNNNN where YYYYMMDD is date and NNNNNN are numbers generated by the AES.
    Example: AESX20220714987654
    Note: The ITN or FTR exemption number you submit in the ship request prints on the international shipping label.

    For CA export shipments,it can be Proof of report number(15-32 alphanumeric) , Summary proof of report number(7-32 alphanumeric) or Exemption number(2 digit) based on the selected b13AFilingOption.
    Example: 98765432107654321(POR number), 7654321(Summary POR number) and 02(Exemption number).
    For FTR exemption number you need provide a predefined value as NO_EEI_30_37_A.", + "example": "12345678901234567" + }, + "accessDetail": { + "$ref": "#/components/schemas/PendingShipmentAccessDetail" + } + }, + "description": "Returns the result of processing the desired package as a single-package shipment." + }, "TransactionShipmentOutputVO": { "type": "object", "properties": { @@ -9271,6 +9625,12 @@ "type": "string", "description": "Indicate the unit of measure.
    Example: KG", "example": "Kg" + }, + "value": { + "type": "number", + "description": "Weight Value.
    Example: 68.25
    Click here to see Weight Values.", + "format": "double", + "example": 68.25 } }, "description": "Specify the Hazardous commodity quantity details." @@ -9681,7 +10041,7 @@ }, "stateOrProvinceCode": { "type": "string", - "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.
    Example: CA
    click here to see State or Province Code", + "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional.
    Example: CA
    click here to see State or Province Code", "example": "GA" }, "destinationLocationNumber": { @@ -9779,7 +10139,7 @@ }, "stateOrProvinceCode": { "type": "string", - "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.
    Example: CA
    click here to see State or Province Code" + "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional.
    Example: CA
    click here to see State or Province Code" }, "postalCode": { "type": "string", @@ -9821,7 +10181,7 @@ }, "phoneNumber": { "type": "string", - "description": "The shippers phone number.
    Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of 1 or +1.
    Example: 918xxxxx890" + "description": "The shippers phone number.
    Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of 1 or +1.
    Example: 918xxxxx890" }, "phoneExtension": { "type": "string", @@ -9995,7 +10355,7 @@ "type": "object", "properties": { "totalWeight": { - "description": "Specify total dry ice weight for the shipment.", + "description": "This is the total dry ice weight in all packages of this shipment", "allOf": [ { "$ref": "#/components/schemas/Weight" @@ -10045,9 +10405,827 @@ "$ref": "#/components/schemas/ShipmentRateDetail" } } + } + }, + "Create_ShipmentRating": { + "type": "object", + "properties": { + "actualRateType": { + "type": "string", + "description": "This rate type identifies which entry in the following array is considered as presenting the \"actual\" rates for the shipment.
    Example: PAYOR_LIST_SHIPMENT", + "example": "PAYOR_LIST_SHIPMENT" + }, + "shipmentRateDetails": { + "type": "array", + "description": "Each element of this field provides shipment-level rate totals for a specific rate type.", + "items": { + "$ref": "#/components/schemas/ShipmentRateDetail" + } + }, + "totalNetTransportationAndPickupCharge": { + "description": "Sum of totalNetCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of pickup.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetFedExTransportationAndPickupCharge": { + "description": "Sum of totalNetFedExCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of a pickup.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "pickupRateDetail": { + "description": "Charges associated with a scheduled shipment pickup", + "type": "object", + "properties": { + "rateType": { + "description": "Type used for this specific set of rate data.", + "type": "string", + "enum": [ + "INCENTIVE", + "NEGOTIATED", + "PAYOR_ACCOUNT_PACKAGE", + "PAYOR_ACCOUNT_SHIPMENT", + "PAYOR_CUSTOM_PACKAGE", + "PAYOR_CUSTOM_SHIPMENT", + "PAYOR_LIST_PACKAGE", + "PAYOR_LIST_SHIPMENT", + "PAYOR_RETAIL_PACKAGE", + "PAYOR_RETAIL_SHIPMENT", + "PREFERRED_ACCOUNT_PACKAGE", + "PREFERRED_ACCOUNT_SHIPMENT", + "PREFERRED_CUSTOM_PACKAGE", + "PREFERRED_CUSTOM_SHIPMENT", + "PREFERRED_INCENTIVE", + "PREFERRED_LIST_PACKAGE", + "PREFERRED_LIST_SHIPMENT", + "PREFERRED_NEGOTIATED", + "PREFERRED_RETAIL_PACKAGE", + "PREFERRED_RETAIL_SHIPMENT", + "RATED_ACCOUNT_PACKAGE", + "RATED_ACCOUNT_SHIPMENT", + "RATED_CUSTOM_PACKAGE", + "RATED_CUSTOM_SHIPMENT", + "RATED_LIST_PACKAGE", + "RATED_LIST_SHIPMENT", + "RATED_RETAIL_PACKAGE", + "RATED_RETAIL_SHIPMENT", + "UNKNOWN" + ], + "example": "PAYOR_ACCOUNT_PACKAGE" + }, + "rateScale": { + "type": "string", + "description": "Indicates the rate scale used.", + "example": "*USER IMS20160104 LD067110" + }, + "rateZone": { + "description": "Indicates the rate zone used (based on origin and destination).", + "type": "string", + "example": "CA003O" + }, + "ratingBasis": { + "description": "Allows clients to determine whether to add charges at the package level when Per Piece Rating details are returned.
    • SHIPMENT_WEIGHT_BASED - Indicates shipment weight is used to calculate the rate.

    • FLAT_RATE_PER_PAK - Indicates shipment is rated based on number of packs, weight would be considered for overweight surcharge but not for calculating shipment rate.

    • PACK_WEIGHT_BASED - Indicates individual package weight would be rated and aggregated to get shipment rate weight.
    ", + "type": "string", + "enum": [ + "SHIPMENT_WEIGHT_BASED", + "FLAT_RATE_PER_PAK", + "PACK_WEIGHT_BASED", + "UNKNOWN" + ], + "example": "SHIPMENT_WEIGHT_BASED" + }, + "pricingCode": { + "description": "Identifies the type of pricing used for this shipment.", + "type": "string", + "enum": [ + "ACTUAL", + "ALTERNATE", + "BASE", + "HUNDREDWEIGHT", + "HUNDREDWEIGHT_ALTERNATE", + "INTERNATIONAL_DISTRIBUTION", + "INTERNATIONAL_ECONOMY_SERVICE", + "LTL_FREIGHT", + "PACKAGE", + "SHIPMENT", + "SHIPMENT_FIVE_POUND_OPTIONAL", + "SHIPMENT_OPTIONAL", + "SPECIAL", + "UNKNOWN" + ], + "example": "ACTUAL" + }, + "minimumChargeType": { + "description": "provides the minimum charge type applicable to the rates.", + "type": "string", + "enum": [ + "CUSTOMER", + "CUSTOMER_FREIGHT_WEIGHT", + "EARNED_DISCOUNT", + "MIXED", + "RATE_SCALE", + "UNKNOWN" + ], + "example": "EARNED_DISCOUNT" + }, + "currencyExchangeRate": { + "$ref": "#/components/schemas/CurrencyExchangeRate" + }, + "specialRatingApplied": { + "type": "array", + "description": "Indicates which special rating cases applied to this shipment.", + "items": { + "type": "string", + "enum": [ + "FEDEX_ONE_RATE", + "FIXED_FUEL_SURCHARGE", + "IMPORT_PRICING" + ] + }, + "example": "FEDEX_ONE_RATE" + }, + "fuelSurchargePercent": { + "description": "Specify a fuel surcharge percentage.", + "format": "double", + "type": "number", + "example": 121 + }, + "pickupBaseChargeDescription": { + "description": "Will indicate the pickup charge description of the on call pickup", + "type": "string", + "enum": [ + "Regularly Scheduled Pickup Mon-Fri", + "Automated Pickup Mon-Fri", + "Same Day OC Pickup Mon-Fri (CS)", + "Same Day OC Pickup Mon-Fri (Online)", + "Fut. Day OC Pickup Mon-Fri (CS)", + "Fut. Day OC Pickup Mon-Fri (Online)", + "Regularly Scheduled Pickup Sat", + "Automated Pickup Sat", + "Same Day OC Pickup Sat (CS)", + "Same Day OC Pickup Sat (Online)", + "Fut. Day OC Pickup Sat (CS)", + "Fut. Day OC Pickup Sat (Online)", + "Regularly Scheduled Pickup Sun", + "Automated Pickup Sun", + "Same Day OC Pickup Sun (CS)", + "Same Day OC Pickup Sun (Online)", + "Fut. Day OC Pickup Sun (CS)", + "Fut. Day OC Pickup Sun (Online)", + "Residential On-Call Pickup Surcharge", + "Pickup Area Surcharge", + "Extended Pickup Area Surcharge", + "Remote Pickup Area Surcharge", + "Fuel Surcharge" + ], + "example": "Pickup Area Surcharge" + }, + "totalBaseCharge": { + "description": "Total base charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalFreightDiscounts": { + "description": "The total discounts used in the rate calculation.
    Example: 1257.26", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetFreight": { + "description": "This shipment's totalNetFreight.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalSurcharges": { + "description": "The sum of all surcharges on the package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetFedExCharge": { + "description": "This shipment's totalNetFedExCharge, which is totalNetFreight plus totalSurcharges (not including totalTaxes).", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalTaxes": { + "description": "The sum of all taxes on this package.
    Example: 1257.25", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetCharge": { + "description": "Total net charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalRebates": { + "description": "The total sum of all rebates applied to this package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalDutiesAndTaxes": { + "description": "The sum of shipment/package Duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalAncillaryFeesAndTaxes": { + "description": "Identifies the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalDutiesTaxesAndFees": { + "description": "The total amount of the duties and taxes plus the total ancillary fees and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalNetChargeWithDutiesAndTaxes": { + "description": "Total netChargesWithDutiesAndTaxes for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "freightDiscounts": { + "description": "All rate discounts that apply to this shipment", + "type": "array", + "items": { + "$ref": "#/components/schemas/RateDiscount_2" + } + }, + "rebates": { + "description": "The all rebates applied to this package.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Rebate" + } + }, + "surcharges": { + "description": "The amount of surcharges applied to this shipment.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Surcharge_2" + } + }, + "taxes": { + "description": "List of taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tax_2" + } + }, + "dutiesAndTaxes": { + "description": "List of The shipment/package Duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdtCommodityTax" + } + }, + "ancillaryFeesAndTaxes": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AncillaryFeeAndTax" + } + }, + "variableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges_1" + } + ] + }, + "totalVariableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges_1" + } + ] + } + } + } }, "description": "All shipment-level rating data for this shipment, which may include data for multiple rate types." }, + "Money_1": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "Three-character currency code (e.g. USD, CAD, EUR, JPY, etc.)
    Click here to see Currency Codes", + "example": "USD" + }, + "value": { + "type": "string", + "description": "Specify the value.", + "example": "CUSTOMS_VALUE", + "enum": [ + "CUSTOMS_VALUE", + "INSURED_VALUE" + ] + } + }, + "description": "This is commodity value used for Customs declaration." + }, + "EdtCommodityTax": { + "description": "The shipment/package Duties and taxes.", + "type": "object", + "properties": { + "harmonizedCode": { + "description": "Harmonized code is used by customer to classify the product being shipped and define the duties and taxes to be paid.", + "type": "string", + "example": "harmonizedCode" + }, + "taxes": { + "$ref": "#/components/schemas/EdtTaxDetail_1" + }, + "total": { + "description": "Total of Duties and taxes", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "EdtTaxDetail_1": { + "description": "Estimated duties and taxes detail.", + "type": "object", + "properties": { + "taxType": { + "description": "Estimated taxes type", + "type": "string", + "enum": [ + "ADDITIONAL_TAXES", + "CONSULAR_INVOICE_FEE", + "CUSTOMS_SURCHARGES", + "DUTY", + "EXCISE_TAX", + "FOREIGN_EXCHANGE_TAX", + "GENERAL_SALES_TAX", + "IMPORT_LICENSE_FEE", + "INTERNAL_ADDITIONAL_TAXES", + "INTERNAL_SENSITIVE_PRODUCTS_TAX", + "OTHER", + "SENSITIVE_PRODUCTS_TAX", + "STAMP_TAX", + "STATISTICAL_TAX", + "TRANSPORT_FACILITIES_TAX" + ], + "example": "INCENTIVE" + }, + "taxcode": { + "type": "string", + "example": "taxcode" + }, + "effectiveDate": { + "description": "Estimated duties and taxes effective date. Format [YYYY-MM-DD].", + "type": "string", + "example": "2019-12-06" + }, + "name": { + "description": "The localized name of the surcharge.", + "type": "string", + "example": "VAT" + }, + "taxableValue": { + "description": "Estimated duties and taxes taxable Value.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "description": { + "description": "FedEx pays the Duty and Tax charges on your behalf to ensure we can deliver your shipment as quickly as possible", + "type": "string", + "example": "Christmas" + }, + "formula": { + "description": "Indicates the formula.", + "type": "string", + "example": "VAT Payable = Output VAT \u2013 Input VAT" + }, + "amount": { + "description": "Amount for the estimated duties and taxes type.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "taxRates": { + "description": "Estimated duties and taxes taxRates", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "example": null + }, + "currency": { + "type": "string", + "example": null + }, + "quantity": { + "format": "double", + "type": "number", + "example": null + }, + "unitOfMeasure": { + "type": "string", + "example": null + } + } + } + }, + "appliedPreferentialTradeAgreement": { + "description": "provides details about PTA applied between countries for specific product. ", + "type": "object", + "properties": { + "id": { + "description": "", + "type": "string", + "example": "description" + }, + "name": { + "description": "", + "type": "string", + "example": "description" + }, + "description": { + "description": "", + "type": "string", + "example": "description" + } + } + } + } + }, + "VariableHandlingCharges_1": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "type": "object", + "properties": { + "variableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "fixedVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "percentVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "totalCustomerCharge": { + "description": "Specifies the total customer assessed handling charges.
    Example: 445.54", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "AncillaryFeeAndTax": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "object", + "properties": { + "type": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "enum": [ + "CLEARANCE_ENTRY_FEE", + "GOODS_AND_SERVICES_TAX", + "HARMONIZED_SALES_TAX", + "OTHER" + ], + "example": "CLEARANCE_ENTRY_FEE" + }, + "description": { + "description": "Identifies the amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "list of AncillaryFees And Taxes", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "RateDiscount_2": { + "type": "object", + "properties": { + "rateDiscountType": { + "description": "Indicates the type.", + "type": "string", + "enum": [ + "BONUS", + "COUPON", + "EARNED", + "INCENTIVE", + "OTHER", + "VOLUME" + ], + "example": "INCENTIVE" + }, + "description": { + "description": "Indicates the description for the rate discount.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Indicates the amount for the rate discount.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "Rebate": { + "type": "object", + "properties": { + "rebateType": { + "description": "The type of rebate.", + "type": "string", + "enum": [ + "BONUS", + "EARNED", + "OTHER" + ], + "example": "EARNED" + }, + "description": { + "description": "The description of the rebate", + "type": "string", + "example": "description" + }, + "amount": { + "description": "provides the calculated rebate amount based on customer details, transaction information, and applicable rules. ", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "Surcharge_2": { + "type": "object", + "properties": { + "surchargeType": { + "description": "The type of surcharge.", + "type": "string", + "enum": [ + "ACCOUNT_NUMBER_PROCESSING_FEE", + "ADDITIONAL_HANDLING", + "ADDRESS_CORRECTION", + "ANCILLARY_FEE", + "APPOINTMENT_DELIVERY", + "BLIND_SHIPMENT", + "BROKER_SELECT_OPTION", + "CANADIAN_DESTINATION", + "CHARGEABLE_PALLET_WEIGHT", + "COD", + "CUT_FLOWERS", + "DANGEROUS_GOODS", + "DELIVERY_AREA", + "DELIVERY_CONFIRMATION", + "DELIVERY_ON_INVOICE_ACCEPTANCE", + "DEMAND", + "DEMAND_ADDITIONAL_HANDLING", + "DEMAND_OVERSIZE", + "DEMAND_RESIDENTIAL_DELIVERY", + "DETENTION", + "DOCUMENTATION_FEE", + "DRY_ICE", + "EMAIL_LABEL", + "ENHANCED_SECURITY", + "EUROPE_FIRST", + "EXCESS_VALUE", + "EXCLUSIVE_USE", + "EXHIBITION", + "EXPEDITED", + "EXPORT", + "EXTRA_LABOR", + "EXTRA_SURFACE_HANDLING_CHARGE", + "EXTREME_LENGTH", + "FEDEX_INTRACOUNTRY_FEES", + "FEDEX_TAG", + "FICE", + "FLATBED", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_DELIVERY", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_PICKUP", + "FREIGHT_DIRECT_BASIC_DELIVERY", + "FREIGHT_DIRECT_BASIC_PICKUP", + "FREIGHT_DIRECT_PREMIUM_DELIVERY", + "FREIGHT_DIRECT_PREMIUM_PICKUP", + "FREIGHT_DIRECT_STANDARD_DELIVERY", + "FREIGHT_DIRECT_STANDARD_PICKUP", + "FREIGHT_GUARANTEE", + "FREIGHT_ON_VALUE", + "FREIGHT_TO_COLLECT", + "FUEL", + "HIGH_COST_SERVICE_AREA_DESTINATION", + "HIGH_COST_SERVICE_AREA_ORIGIN", + "HIGH_DENSITY", + "HOLD_AT_LOCATION", + "HOLIDAY_DELIVERY", + "HOLIDAY_GUARANTEE", + "HOME_DELIVERY_APPOINTMENT", + "HOME_DELIVERY_DATE_CERTAIN", + "HOME_DELIVERY_EVENING", + "INSIDE_DELIVERY", + "INSIDE_PICKUP", + "INSURED_VALUE", + "INTERHAWAII", + "LIFTGATE_DELIVERY", + "LIFTGATE_PICKUP", + "LIMITED_ACCESS_DELIVERY", + "LIMITED_ACCESS_PICKUP", + "MARKING_OR_TAGGING", + "METRO_DELIVERY", + "METRO_PICKUP", + "MONITORING_AND_INTERVENTION", + "NON_BUSINESS_TIME", + "NON_MACHINABLE", + "OFFSHORE", + "ON_CALL_PICKUP", + "ON_DEMAND_CARE", + "OTHER", + "OUT_OF_DELIVERY_AREA", + "OUT_OF_PICKUP_AREA", + "OVER_DIMENSION", + "OVER_LENGTH", + "OVERSIZE", + "OVERWEIGHT", + "PALLET_SHRINKWRAP", + "PALLETS_PROVIDED", + "PEAK", + "PEAK_ADDITIONAL_HANDLING", + "PEAK_OVERSIZE", + "PEAK_RESIDENTIAL_DELIVERY", + "PERMIT", + "PIECE_COUNT_VERIFICATION", + "PORT", + "PRE_DELIVERY_NOTIFICATION", + "PRIORITY_ALERT", + "PROTECTION_FROM_FREEZING", + "REGIONAL_MALL_DELIVERY", + "REGIONAL_MALL_PICKUP", + "REROUTE", + "RESCHEDULE", + "RESIDENTIAL_DELIVERY", + "RESIDENTIAL_PICKUP", + "RETURN_LABEL", + "SATURDAY_DELIVERY", + "SATURDAY_PICKUP", + "SHIPMENT_ASSEMBLY", + "SIGNATURE_OPTION", + "SINGLE_PIECE", + "SORT_AND_SEGREGATE", + "SPECIAL_DELIVERY", + "SPECIAL_EQUIPMENT", + "STORAGE", + "SUNDAY_DELIVERY", + "TARP", + "THIRD_PARTY_BILLING", + "THIRD_PARTY_CONSIGNEE", + "TRANSMART_SERVICE_FEE", + "USPS", + "WEIGHING" + ], + "example": "COD" + }, + "level": { + "description": "The level of surcharge.", + "type": "string", + "enum": [ + "PACKAGE", + "SHIPMENT" + ], + "example": "PACKAGE" + }, + "description": { + "description": "The description of the surcharge.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, + "Tax_2": { + "description": "Tax surcharge details", + "type": "object", + "properties": { + "taxType": { + "description": "Specifies the type of Surcharge/Tax.", + "type": "string", + "enum": [ + "EXPORT", + "GST", + "HST", + "INTRACOUNTRY", + "OTHER", + "PST", + "SST", + "VAT" + ], + "example": "VAT" + }, + "description": { + "description": "Specifies the description of the Surcharge/Tax.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Specifies the list of tax amounts.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_1" + } + ] + } + } + }, "ShipmentRateDetail": { "type": "object", "properties": { @@ -10985,6 +12163,9 @@ "type": "string", "description": "This is an unique number assigned by FedEx to the packages for tracking.
    Example: \"794953555571\"", "example": "794953555571" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to cancel a shipment. " @@ -11188,6 +12369,9 @@ "type": "string", "description": "Indicates the job under which the deferred shipment artifacts must be identified in the subsequent retrieval request.
    Example: 89sxxxxx233ae24ff31xxxxx", "example": "89sxxxxx233ae24ff31xxxxx" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -11266,6 +12450,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/ShipperAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to create a shipment." @@ -11478,7 +12665,7 @@ }, "phoneNumber": { "type": "string", - "description": "Specify contact phone number.
    Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
    Example: 918xxxxx890", + "description": "Specify contact phone number.
    Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
    Example: 918xxxxx890", "example": "1234567890" }, "phoneExtension": { @@ -12277,6 +13464,176 @@ "value": "XXXXX2842" } } + }, + "Domestic_Ground_Shipment": { + "example": { + "accountNumber": { + "value": 604007038 + }, + "labelResponseOptions": "URL_ONLY", + "requestedShipment": { + "shipper": { + "contact": { + "personName": "SENDER NAME", + "phoneNumber": "9018328595" + }, + "address": { + "streetLines": [ + "777 LENA DR" + ], + "city": "AURORA", + "stateOrProvinceCode": "OH", + "postalCode": "44202-8025", + "countryCode": "US", + "residential": false + } + }, + "recipients": [ + { + "contact": { + "personName": "RECIPIENT NAME", + "phoneNumber": "1234567890" + }, + "address": { + "streetLines": [ + "2890 Market Loop" + ], + "city": "Southlake", + "stateOrProvinceCode": "TX", + "postalCode": "76092", + "countryCode": "US" + } + } + ], + "shipDatestamp": "2023-04-20", + "serviceType": "FEDEX_GROUND", + "packagingType": "YOUR_PACKAGING", + "pickupType": "USE_SCHEDULED_PICKUP", + "shippingChargesPayment": { + "paymentType": "SENDER", + "payor": { + "responsibleParty": { + "accountNumber": { + "value": 604007038 + } + } + } + }, + "labelSpecification": { + "labelFormatType": "COMMON2D", + "imageType": "ZPLII", + "labelStockType": "STOCK_4X675_LEADING_DOC_TAB", + "labelPrintingOrientation": "TOP_EDGE_OF_TEXT_FIRST", + "customerSpecifiedDetail": { + "docTabContentType": "ZONE001", + "zone001": { + "docTabZoneSpecifications": [ + { + "zoneNumber": 1, + "header": "Date", + "justification": "RIGHT", + "dataField": "REQUEST/SHIPMENT/ShipTimestamp" + }, + { + "zoneNumber": 2, + "header": "Del Date", + "justification": "RIGHT", + "dataField": "REPLY/SHIPMENT/OperationalDetail/DeliveryDate" + }, + { + "zoneNumber": 3, + "header": "PO Num", + "justification": "RIGHT", + "literalValue": "DAVE-Test" + }, + { + "zoneNumber": 4, + "header": "Inv Num", + "justification": "RIGHT", + "literalValue": "302229" + }, + { + "zoneNumber": 5, + "header": "Weight", + "justification": "RIGHT", + "dataField": "REQUEST/PACKAGE/weight/Value" + }, + { + "zoneNumber": 6, + "header": "Dim Wt", + "justification": "RIGHT", + "dataField": "REPLY/PACKAGE/RATES/ACTUAL/DimWeight/Value" + }, + { + "zoneNumber": 7, + "header": "Pkg #", + "justification": "RIGHT", + "dataField": "REQUEST/PACKAGE/SequenceNumber" + }, + { + "zoneNumber": 8, + "header": "Pkg Cnt", + "justification": "RIGHT", + "dataField": "REQUEST/SHIPMENT/PackageCount" + }, + { + "zoneNumber": 9, + "header": "Dec Val", + "justification": "RIGHT", + "dataField": "REQUEST/PACKAGE/InsuredValue/Amount" + }, + { + "zoneNumber": 11, + "header": "List", + "justification": "RIGHT", + "dataField": "REPLY/PACKAGE/RATE/LIST/NetCharge/Amount" + }, + { + "zoneNumber": 12, + "header": "Net Chrg", + "justification": "RIGHT", + "dataField": "REPLY/SHIPMENT/RATES/ACTUAL/totalNetCharge/Amount" + } + ] + } + } + }, + "requestedPackageLineItems": [ + { + "weight": { + "units": "LB", + "value": 11 + }, + "dimensions": { + "units": "IN", + "length": 8, + "width": 6, + "height": 4 + } + } + ] + } + } + }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } } } } diff --git a/resources/models/.raw/ship/v1/Tag-Resource.json b/resources/models/.raw/ship/v1/Tag-Resource.json index 3fe81a2e..170fc562 100644 --- a/resources/models/.raw/ship/v1/Tag-Resource.json +++ b/resources/models/.raw/ship/v1/Tag-Resource.json @@ -13,7 +13,7 @@ "/ship/v1/shipments/tag": { "post": { "summary": "Create Tag", - "description": "FedEx creates and delivers a returnnn shipping label to your customer and collects the item for return. Your customer needs to have the package ready for pickup when the FedEx driver arrives. Use this endpoint to create tag requests for FedEx Express and FedEx Ground shipments.
    Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", + "description": "FedEx creates and delivers a return shipping label to your customer and collects the item for return. Your customer needs to have the package ready for pickup when the FedEx driver arrives. Use this endpoint to create tag requests for FedEx Express and FedEx Ground shipments.
    Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", "operationId": "Create Tag", "requestBody": { "content": { @@ -495,6 +495,9 @@ "$ref": "#/components/schemas/AccountNumber" } ] + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -646,7 +649,7 @@ }, "totalWeight": { "type": "number", - "description": "Indicate the shipment total weight in pounds.
    Example: 10.6
    Note:
    • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
    • This value contains 1 explicit decimal position.
    • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
    ", + "description": "Indicate the shipment total weight in Metric or US.
    Example: 10.6
    Note:
    • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
    • This value contains 1 explicit decimal position.
    • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
    ", "format": "double", "example": 20.6 }, @@ -852,7 +855,7 @@ "properties": { "streetLines": { "type": "array", - "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
    Example: [1550 Union Blvd,Suite 302]", + "description": "This is the Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
    Note - For FedEx Ground Economy, a maximum of 30 characters will be printed on the label, excess characters will be truncated.
    Example: [1550 Union Blvd,Suite 302]", "example": "1550 Union Blvd, Suite 302", "items": { "type": "string" @@ -908,7 +911,7 @@ "properties": { "streetLines": { "type": "array", - "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
    Example: [1550 Union Blvd,Suite 302]", + "description": "This is the Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
    Note - For FedEx Ground Economy, a maximum of 30 characters will be printed on the label, excess characters will be truncated.
    Example: [1550 Union Blvd,Suite 302]", "example": "1550 Union Blvd, Suite 302", "items": { "type": "string" @@ -962,7 +965,7 @@ "properties": { "personName": { "type": "string", - "description": "Specify contact name. Maximum length is 70.
    Note: Either the companyName or personName is mandatory.
    Example: John Taylor", + "description": "Specify contact name. First 35 chars will be printed on the label, excess characters will be truncated.
    Note: Either the companyName or personName is manadatory.
    Example : John Taylor", "example": "John Taylor" }, "emailAddress": { @@ -977,7 +980,7 @@ }, "phoneNumber": { "type": "string", - "description": "The shipper's phone number.
    Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
    Example: 918xxxxx890", + "description": "The shipper's phone number.
    Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
    Example: 918xxxxx890", "example": "918xxxxx890" }, "companyName": { @@ -1152,7 +1155,7 @@ }, "phoneNumber": { "type": "string", - "description": "Specify contact phone number.
    Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
    Example: 918xxxxx890", + "description": "Specify contact phone number.
    Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
    Example: 918xxxxx890", "example": "1234567890" }, "phoneExtension": { @@ -1202,7 +1205,7 @@ }, "stateOrProvinceCode": { "type": "string", - "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.
    Example: CA
    click here to see State or Province Code", + "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional.
    Example: CA
    click here to see State or Province Code", "example": "CA" }, "postalCode": { @@ -1285,7 +1288,7 @@ "$ref": "#/components/schemas/ResponsiblePartyParty" } }, - "description": "Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT.", + "description": "Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY.", "example": { "responsibleParty": { "address": { @@ -1692,7 +1695,7 @@ "properties": { "pendingShipmentType": { "type": "string", - "description": "Specifies the pending shipment type. Must include the value: EMAIL for email return shipments.
    Not applicable for other types of shipments
    Example: EMAIL", + "description": "Specifies the pending shipment type. Must include the value: EMAIL for email return shipments.
    Not applicable for other types of shipments.

    Once the label is printed, the transaction is marked with the original print date. You can reprint the label and documents for up to 5 days from that original print date. Once the 5-day reprint window closes, the label is no longer accessible.

    Example: EMAIL", "example": "EMAIL", "enum": [ "EMAIL" @@ -1716,7 +1719,7 @@ }, "expirationTimeStamp": { "type": "string", - "description": "Specifies the Email Label expiration date. The maximum expiration date for an Email Return Label must be greater of equal to the day of the label request and not greater than 2 years in the future. Format[YYYY-MM-DD]
    Example: 2020-01-01", + "description": "Specifies the Email Label expiration date.
    The expiration date must be:
    - Greater than or equal to the label request date.
    - Not more than 2 years in the future.
    Once the label is printed, the transaction is marked with the original print date. You can reprint the label and documents for up to 5 days from that original print date. Once the 5-day reprint window closes, the label is no longer accessible.

    Format: [YYYY-MM-DD]
    Example: 2020-01-01", "example": "2020-01-01" } }, @@ -1976,7 +1979,7 @@ }, "phoneNumber": { "type": "string", - "description": "Contact person's phone number.
    Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
    Example: 918xxxxx890", + "description": "Contact person's phone number.
    Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
    Example: 918xxxxx890", "example": "918xxxxx890" }, "phoneExtension": { @@ -3235,7 +3238,8 @@ "description": "Indicate the weight unit type. The package and commodity weight unit should be the same else the request will result in an error.", "example": "KG", "enum": [ - "KG" + "KG", + "LB" ] }, "value": { @@ -4241,7 +4245,7 @@ }, "stateOrProvinceCode": { "type": "string", - "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.
    Example: CA.
    click here to see State or Province Code", + "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional.
    Example: CA.
    click here to see State or Province Code", "example": "CA" }, "postalCode": { @@ -4615,7 +4619,7 @@ "properties": { "specialServiceTypes": { "type": "array", - "description": "The list of all special services requested for the package.
    Click here to see Package Special Service Types
    Example:ALCOHOL", + "description": "The list of all special services requested for the package.
    Click here to see Package Special Service Types
    Example:ALCOHOL", "example": [ "ALCOHOL", "NON_STANDARD_CONTAINER", @@ -5378,6 +5382,9 @@ "description": "The tracking number for the Express or Ground Tag to the cancelled.
    Example: 301025281523
    Click here to see mock tracking numbers for FedEx Express and FedEx Ground.", "example": "301025281523" }, + "version": { + "$ref": "#/components/schemas/Version" + }, "completedTagDetail": { "description": "The details of the package for which shipping has been completed. The details include dispatch confirmation number, dispatch date, location, and the cxs alerts associated with the process.", "allOf": [ @@ -5392,6 +5399,26 @@ "ShipmentAccountNumber": { "$ref": "#/components/schemas/PartyAccountNumber_2" }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "PartyAccountNumber_2": { "type": "object", "properties": { diff --git a/resources/models/.raw/track/v1/TrackingNumbers-Resource.json b/resources/models/.raw/track/v1/TrackingNumbers-Resource.json index 4147c0c8..3b6f3e3a 100644 --- a/resources/models/.raw/track/v1/TrackingNumbers-Resource.json +++ b/resources/models/.raw/track/v1/TrackingNumbers-Resource.json @@ -1904,7 +1904,10 @@ "ESTIMATED_PICKUP", "ESTIMATED_RETURN_TO_STATION", "SHIP", - "SHIPMENT_DATA_RECEIVED" + "SHIPMENT_DATA_RECEIVED", + "TYPICAL", + "PROJECTED", + "PRE_DELIVERY" ] } } diff --git a/resources/models/.raw/trade-documents-upload/v1/EDUDocuments-Resource.json b/resources/models/.raw/trade-documents-upload/v1/EDUDocuments-Resource.json index e03f1877..beb87346 100644 --- a/resources/models/.raw/trade-documents-upload/v1/EDUDocuments-Resource.json +++ b/resources/models/.raw/trade-documents-upload/v1/EDUDocuments-Resource.json @@ -249,7 +249,7 @@ "name": "x-customer-transaction-id", "in": "header", "description": "Identifies the transaction ID of the request.
    Example: \"771407-1\"", - "required": true, + "required": false, "schema": { "type": "string", "example": "771407-1" @@ -1093,11 +1093,9 @@ "example": "090493e181586308" }, "folderId": { - "type": "array", + "type": "string", "description": "This is the reference server folder id, where the document is uploaded. ", - "example": [ - "0b0493e1812f8921" - ], + "example": "0b0493e1812f8921", "items": { "type": "string" } @@ -1430,7 +1428,7 @@ }, "originLocationCode": { "type": "string", - "description": "Provide origin FedEx location code for the shipment.

    Example: GVTKK", + "description": "Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.

    Example: GVTKK", "example": "GVTKK" }, "originCountryCode": { @@ -1440,7 +1438,7 @@ }, "destinationLocationCode": { "type": "string", - "description": "Provide destination FedEx location code for the shipment.

    Example: JNUA", + "description": "Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.

    Example: JNUA", "example": "JNUA" }, "destinationCountryCode": { @@ -1539,8 +1537,8 @@ "properties": { "attachment": { "type": "string", - "description": "Input the actual image file to be uploaded.", - "format": "file" + "description": "Input the actual image file to be uploaded.
    Example:file.PNG", + "format": "file.PNG" }, "document": { "$ref": "#/components/schemas/Document" @@ -1560,17 +1558,17 @@ "properties": { "referenceId": { "type": "string", - "description": "Specify reference ID for the image to be uploaded.

    Example: SIGNA202103", + "description": "Specify reference ID for the image to be uploaded.

    Example: 1234", "example": "1234" }, "name": { "type": "string", - "description": "Specify file name to be uploaded.

    Example: Signature.PNG", - "example": "FedExImages.PNG" + "description": "Specify file name to be uploaded.

    Example: LH2.PNG", + "example": "LH2.PNG" }, "contentType": { "type": "string", - "description": "Specify the file type or image type of the to be uploaded.

    Valid Values are:
    • image/png
    • image/gif
    ", + "description": "Specify the file type or image type of the to be uploaded.
    Example: image/png.

    Valid Values are:
    • image/png
    • image/gif
    ", "example": "image/png" }, "rules": { @@ -1639,7 +1637,7 @@ "example": "D0l5gsn6inat9IiB" }, "folderId": { - "type": "array", + "type": "string", "description": "This is the reference server folder id, where the document is uploaded. Note that, this data is returned only for Post-Shipment Upload scenario", "items": { "type": "string", @@ -1929,7 +1927,7 @@ "carrierCode", "destinationCountryCode", "metaData", - "orginCountryCode", + "originCountryCode", "workflowName" ], "type": "object", @@ -1952,7 +1950,7 @@ "FDXG" ] }, - "orginCountryCode": { + "originCountryCode": { "type": "string", "description": "Provide origin country code for the shipment", "example": "US" @@ -2031,12 +2029,12 @@ }, "originLocationCode": { "type": "string", - "description": "Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response.", + "description": "Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.", "example": "BSLA" }, "destinationLocationCode": { "type": "string", - "description": "Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response.", + "description": "Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.", "example": "SFOA" }, "shipDocumentType": { @@ -2313,7 +2311,7 @@ "carrierCode", "destinationCountryCode", "metaData", - "orginCountryCode", + "originCountryCode", "workflowName" ], "type": "object", @@ -2336,7 +2334,7 @@ "FDXG" ] }, - "orginCountryCode": { + "originCountryCode": { "type": "string", "description": "Origin country code for the shipment.

    Example: US
    Click here to see Country Codes", "example": "US" @@ -2412,7 +2410,7 @@ "carrierCode", "destinationCountryCode", "metaData", - "orginCountryCode", + "originCountryCode", "workflowName" ], "type": "object", @@ -2435,7 +2433,7 @@ "FDXG" ] }, - "orginCountryCode": { + "originCountryCode": { "type": "string", "description": "Origin country code for the shipment.

    Example: US
    Click here to see Country Codes", "example": "US" @@ -2491,12 +2489,12 @@ }, "originLocationCode": { "type": "string", - "description": "Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response.", + "description": "Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.", "example": "BSLA" }, "destinationLocationCode": { "type": "string", - "description": "Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response.", + "description": "Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.", "example": "SFOA" }, "shipDocumentType": { @@ -2551,7 +2549,7 @@ "properties": { "workflowName": { "type": "string", - "description": "Specify workflow name. To upload custom signature and letterhead images/company logo use value LetterheadSignature", + "description": "Specify workflow name. To upload custom signature and letterhead images/company logo use value

    Example:LetterheadSignature", "example": "LetterheadSignature" } }, @@ -2566,12 +2564,12 @@ "properties": { "imageType": { "type": "string", - "description": "Specify the type of image to be uploaded.

    Valid Values are:
    • SIGNATURE
    • LETTERHEAD
    ", + "description": "Specify the type of image to be uploaded.
    Example:SIGNATURE

    Valid Values are:
    • SIGNATURE
    • LETTERHEAD
    ", "example": "SIGNATURE" }, "imageIndex": { "type": "string", - "description": "Specify the index for the uploaded image.

    Valid Values are:
    • IMAGE_1
    • IMAGE_2
    • IMAGE_3
    • IMAGE_4
    • IMAGE_5
    ", + "description": "Specify the index for the uploaded image.
    Example: IMAGE_1

    Valid Values are:
    • IMAGE_1
    • IMAGE_2
    • IMAGE_3
    • IMAGE_4
    • IMAGE_5
    ", "example": "IMAGE_1" } }, diff --git a/resources/models/account-registration/v1.json b/resources/models/account-registration/v1.json index 4582a29f..73049345 100644 --- a/resources/models/account-registration/v1.json +++ b/resources/models/account-registration/v1.json @@ -276,7 +276,7 @@ { "name": "Authorization", "in": "header", - "description": "Bearer token from oauth/token", + "description": "Bearer token generated with parent id and secret", "required": true, "style": "simple", "explode": false, @@ -467,7 +467,7 @@ { "name": "authorization", "in": "header", - "description": "Bearer token from oauth/token", + "description": "Bearer token generated with parent id and secret", "required": true, "style": "simple", "explode": false, @@ -658,7 +658,7 @@ { "name": "Authorization", "in": "header", - "description": "Bearer token generated with child id and secret", + "description": "Bearer token generated with parent id and secret", "required": true, "style": "simple", "explode": false, @@ -853,18 +853,11 @@ "mfaOptions": { "$ref": "#/components/schemas/MFAOptions" }, - "child_Key": { - "type": "string", - "description": "Child Key is a JSON Web Token provided for each of your customers. You must use the Child Key along with the Client Key, Client Secret and Customer Secret to get oAuth token, which should be used as credentials with each API transaction.", - "example": "e366a577-3708-47e5-9af8-98004a01c134" - }, - "child_secret": { - "type": "string", - "description": "Child secret, also referred to as Customer Secret, is provided for each of your customers. You must use the Customer Secret along with the Client Key, Client Secret and Child Key to get the oAuth token, which should be used as credentials with each API transaction.", - "example": "*******" + "credentials": { + "$ref": "#/components/schemas/Credentials" } }, - "description": "This is the response object providing Customer Key and secret key as a output." + "description": "This is the response object providing as output MFA options or Customer Key and Secret Key if MFA bypass has been applied." }, "Parameter": { "type": "object", @@ -949,7 +942,7 @@ "example": "TN" } }, - "description": "Indicates the customer's address you are attempting to get the Customer Key and Customer Secret for. Note that address information needs to match the shipping or billing address as loaded in FedEx systems. Contact FedEx support team for any address-related issues or questions." + "description": "Indicates the customer's address you are attempting to get the Customer Key and Customer Secret for. Note that address information needs to match the billing address as loaded in FedEx systems. Contact FedEx support team for any address-related issues or questions." }, "AccountNumber": { "required": [ @@ -1096,6 +1089,22 @@ "type": "string" } }, + "Credentials": { + "type": "object", + "description": "It provide Child key and child secret to generate the token", + "properties": { + "child_Key": { + "type": "string", + "description": "Child Key is a JSON Web Token provided for each of your customers. You must use the Child Key along with the Client Key, Client Secret and Customer Secret to get oAuth token, which should be used as credentials with each API transaction.", + "example": "e366a577-3708-47e5-9af8-98004a01c134" + }, + "child_secret": { + "type": "string", + "description": "Child secret, also referred to as Customer Secret, is provided for each of your customers. You must use the Customer Secret along with the Client Key, Client Secret and Child Key to get the oAuth token, which should be used as credentials with each API transaction.", + "example": "*******" + } + } + }, "Options": { "type": "object", "properties": { diff --git a/resources/models/address-validation/v1.json b/resources/models/address-validation/v1.json index cca19ace..4ac5bb47 100644 --- a/resources/models/address-validation/v1.json +++ b/resources/models/address-validation/v1.json @@ -3,7 +3,7 @@ "/address/v1/addresses/resolve": { "post": { "summary": "Validate Address", - "description": "Use this endpointtt to get address resolution details. These details areee the outcome of validation and resolution of the input address. An address is stated as resolved when the input address matches the known reference data.
    Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", + "description": "Use this endpoint to get address resolution details. These details are the outcome of validation and resolution of the input address. An address is stated as resolved when the input address matches the known reference data.
    Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", "operationId": "Validate Address", "requestBody": { "content": { @@ -735,7 +735,7 @@ }, "openapi": "3.0.0", "info": { - "title": "Address Validation APi", + "title": "Address Validation API", "version": "1.0.0" } } \ No newline at end of file diff --git a/resources/models/consolidation/v1.json b/resources/models/consolidation/v1.json index 57d96db8..c494e7a1 100644 --- a/resources/models/consolidation/v1.json +++ b/resources/models/consolidation/v1.json @@ -2039,7 +2039,7 @@ "INTERNATIONAL_PRIORITY_DISTRIBUTION" ] }, - "shipDate": { + "shipDateStamp": { "type": "string", "description": "This field indicates the shipping date of the LTL Shipment", "example": "2021-05-07" @@ -2614,6 +2614,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to modify a consolidation.", @@ -2673,7 +2676,7 @@ "INTERNATIONAL_PRIORITY_DISTRIBUTION" ] }, - "shipDate": { + "shipDateStamp": { "type": "string", "description": "This is the ship date for the outbound shipment associated with a return shipment. The format is YYYY-MM-DD.
    Example: 2019-10-01", "example": "2021-05-07" @@ -2738,6 +2741,26 @@ }, "description": "Specify the requested consolidation" }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "ConsolidationDataSources_1": { "type": "array", "description": "Specifies how selected values in the consolidation are to be determined.", @@ -2800,6 +2823,80 @@ "description": "This is a customer reference type value.
    Example: 3686
    Note: Maximum length for all customer references is 40 characters.", "example": "USD" }, + "ClearanceItemDetail": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "Role in producing or supplying the item/commodity", + "example": "MANUFACTURER", + "enum": [ + "MANUFACTURER" + ] + }, + "id": { + "type": "string", + "description": "Unique identifier of the manufacturer of the commodity.
    For shipments to United States, refer to U.S. Customs and Border Protection website.
    Example: USGRE98BIR", + "example": "USGRE98BIR" + }, + "contact": { + "$ref": "#/components/schemas/ClearanceItemDetail_contact" + }, + "address": { + "$ref": "#/components/schemas/ClearanceItemDetail_address" + } + } + }, + "ClearanceItemDetail_contact": { + "type": "object", + "properties": { + "companyName": { + "type": "string", + "description": "Legal name of the manufacturer of the commodity.
    Example: THE GREENHOUSE", + "example": "THE GREENHOUSE" + } + }, + "description": "Contact details of the manufacturer." + }, + "ClearanceItemDetail_address": { + "type": "object", + "properties": { + "streetLines": { + "type": "array", + "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included.
    Example: 98 Royal Crescent", + "items": { + "type": "string", + "example": "[\"98 Royal Crescent\"]" + } + }, + "city": { + "type": "string", + "description": "The name of city, town of the recipient.
    Example: Birmingham", + "example": "Birmingham" + }, + "stateOrProvinceCode": { + "type": "string", + "description": "It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country.
    Example: CA", + "example": "CA" + }, + "postalCode": { + "type": "string", + "description": "The US State and Canada Province codes. The Format and presence of this field may vary depending on the country.
    Example: 35209", + "example": "35209" + }, + "countryCode": { + "type": "string", + "description": "The two-letter code used to identify a country.
    Example: US", + "example": "US" + }, + "residential": { + "type": "boolean", + "description": "Indicate whether this address is Residential (as opposed to Commercial).
    Valid Values: True or False.", + "example": false + } + }, + "description": "Address of the manufacturer." + }, "ConsolidationProcessingOptionsRequested": { "type": "object", "properties": { @@ -2925,6 +3022,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to create a consolidation.", @@ -2956,12 +3056,126 @@ "type": "array", "description": "a list of consolidation shipments within the open shipment", "items": { - "$ref": "#/components/schemas/TransactionConsolidationShipmentResultsOutputVO" + "$ref": "#/components/schemas/TransactionCreateConsolidationShipmentResultsOutputVO" } } }, "description": "This is the response received when a create consolidation shipment is requested." }, + "TransactionCreateConsolidationShipmentResultsOutputVO": { + "type": "object", + "properties": { + "serviceType": { + "type": "string", + "description": "Identifies the service for this shipment
    Example: FEDEX_2_DAY_FREIGHT
    Click here to see Service Types", + "example": "FEDEX_2_DAY_FREIGHT" + }, + "shipDateStamp": { + "type": "string", + "description": "Specifies shipment date. Format [YYYY-MM-DD]
    Example: 2010-03-04", + "example": "2010-03-04" + }, + "serviceCategory": { + "type": "string", + "description": "Specifies Service Category.
    Example: EXPRESS", + "example": "EXPRESS" + }, + "shipmentDocuments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LabelResponseVO" + } + }, + "pieceResponses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PieceResponse" + } + }, + "serviceName": { + "type": "string", + "description": "Describes the service name for the shipment
    Example: FedEx 2 Day Freight", + "example": "FedEx 2 Day Freight" + }, + "completedShipmentDetail": { + "$ref": "#/components/schemas/CreateConsolidationCompletedShipmentDetail" + }, + "shipmentAdvisoryDetails": { + "$ref": "#/components/schemas/ShipmentAdvisoryDetails" + }, + "masterTrackingNumber": { + "type": "string", + "description": "Indicates the TrackingNumber for the single or multiple-package shipment
    Example: 794953535000", + "example": "794953535000" + } + }, + "description": "Specifies shipping transaction output details" + }, + "CreateConsolidationCompletedShipmentDetail": { + "type": "object", + "properties": { + "completedPackageDetails": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CompletedPackageDetail" + } + }, + "operationalDetail": { + "$ref": "#/components/schemas/ShipmentOperationalDetail" + }, + "carrierCode": { + "type": "string", + "description": "Specify the four letter code of a FedEx operating company that meets your requirements
    Examples of FedEx Operating Companies are:
    • FDXE - FedEx Express
    • FDXG - FedEx Ground
    • FXSP - FedEx SmartPost
    • FXCC - FedEx Custom Critical.
    ", + "example": "FDXE" + }, + "completedHoldAtLocationDetail": { + "$ref": "#/components/schemas/CompletedHoldAtLocationDetail" + }, + "completedEtdDetail": { + "$ref": "#/components/schemas/CompletedEtdDetail" + }, + "packagingDescription": { + "type": "string", + "description": "Specifies packaging description.", + "example": "barrel" + }, + "masterTrackingId": { + "$ref": "#/components/schemas/TrackingId" + }, + "serviceDescription": { + "$ref": "#/components/schemas/ServiceDescription" + }, + "usDomestic": { + "type": "boolean", + "description": "Indicates whether or not this is an intra-U.S. shipment.", + "example": true + }, + "hazardousShipmentDetail": { + "$ref": "#/components/schemas/CompletedHazardousShipmentDetail" + }, + "shipmentRating": { + "$ref": "#/components/schemas/ShipmentRating" + }, + "documentRequirements": { + "$ref": "#/components/schemas/DocumentRequirementsDetail" + }, + "exportComplianceStatement": { + "type": "string", + "description": "Specifies export Compliance Statement.", + "example": "export Compliance Statement" + }, + "accessDetail": { + "$ref": "#/components/schemas/PendingShipmentAccessDetail" + }, + "shipmentConsolidationDetail": { + "$ref": "#/components/schemas/ShipmentConsolidationDetail" + }, + "completedCodDetail": { + "$ref": "#/components/schemas/CompletedCodDetail" + } + }, + "description": "Returns the result of processing the desired package as a single-package shipment." + }, "TransactionConsolidationShipmentResultsOutputVO": { "type": "object", "properties": { @@ -3447,31 +3661,6 @@ }, "description": "Details of the rates associated with the package, as calculated per a specific rate type." }, - "Surcharge": { - "type": "object", - "properties": { - "amount": { - "description": "This is the surcharge amount.
    Example: 15.35", - "$ref": "#/components/schemas/Money_2" - }, - "surchargeType": { - "type": "string", - "description": "Specifies the Surcharge Type.
    Example: APPOINTMENT_DELIVERY", - "example": "APPOINTMENT_DELIVERY" - }, - "level": { - "type": "string", - "description": "Specifies if the surcharge applies to the entire shipment, or to an individual package.
    Example: PACKAGE", - "example": "PACKAGE, or SHIPMENT" - }, - "description": { - "type": "string", - "description": "Specifies the description of the surcharge. Indicates delivery and returns information for FedEx Ground Economy services.
    Example: Fuel Surcharge", - "example": "Overweight package" - } - }, - "description": "All surcharges that apply to this shipment.
    click here to see Surcharges" - }, "CompletedHazardousPackageDetail": { "type": "object", "properties": { @@ -4058,41 +4247,425 @@ "items": { "$ref": "#/components/schemas/ShipmentRateDetail" } + }, + "totalNetTransportationAndPickupCharge": { + "description": "Sum of totalNetCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of pickup.", + "$ref": "#/components/schemas/Money" + }, + "totalNetFedExTransportationAndPickupCharge": { + "description": "Sum of totalNetFedExCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of a pickup.", + "$ref": "#/components/schemas/Money" + }, + "pickupRateDetail": { + "description": "Charges associated with a scheduled shipment pickup", + "type": "object", + "properties": { + "rateType": { + "description": "Type used for this specific set of rate data.", + "type": "string", + "enum": [ + "INCENTIVE", + "NEGOTIATED", + "PAYOR_ACCOUNT_PACKAGE", + "PAYOR_ACCOUNT_SHIPMENT", + "PAYOR_CUSTOM_PACKAGE", + "PAYOR_CUSTOM_SHIPMENT", + "PAYOR_LIST_PACKAGE", + "PAYOR_LIST_SHIPMENT", + "PAYOR_RETAIL_PACKAGE", + "PAYOR_RETAIL_SHIPMENT", + "PREFERRED_ACCOUNT_PACKAGE", + "PREFERRED_ACCOUNT_SHIPMENT", + "PREFERRED_CUSTOM_PACKAGE", + "PREFERRED_CUSTOM_SHIPMENT", + "PREFERRED_INCENTIVE", + "PREFERRED_LIST_PACKAGE", + "PREFERRED_LIST_SHIPMENT", + "PREFERRED_NEGOTIATED", + "PREFERRED_RETAIL_PACKAGE", + "PREFERRED_RETAIL_SHIPMENT", + "RATED_ACCOUNT_PACKAGE", + "RATED_ACCOUNT_SHIPMENT", + "RATED_CUSTOM_PACKAGE", + "RATED_CUSTOM_SHIPMENT", + "RATED_LIST_PACKAGE", + "RATED_LIST_SHIPMENT", + "RATED_RETAIL_PACKAGE", + "RATED_RETAIL_SHIPMENT", + "UNKNOWN" + ], + "example": "PAYOR_ACCOUNT_PACKAGE" + }, + "rateScale": { + "type": "string", + "description": "Indicates the rate scale used.", + "example": "*USER IMS20160104 LD067110" + }, + "rateZone": { + "description": "Indicates the rate zone used (based on origin and destination).", + "type": "string", + "example": "CA003O" + }, + "ratingBasis": { + "description": "Allows clients to determine whether to add charges at the package level when Per Piece Rating details are returned.
    • SHIPMENT_WEIGHT_BASED - Indicates shipment weight is used to calculate the rate.

    • FLAT_RATE_PER_PAK - Indicates shipment is rated based on number of packs, weight would be considered for overweight surcharge but not for calculating shipment rate.

    • PACK_WEIGHT_BASED - Indicates individual package weight would be rated and aggregated to get shipment rate weight.
    ", + "type": "string", + "enum": [ + "SHIPMENT_WEIGHT_BASED", + "FLAT_RATE_PER_PAK", + "PACK_WEIGHT_BASED", + "UNKNOWN" + ], + "example": "SHIPMENT_WEIGHT_BASED" + }, + "pricingCode": { + "description": "Identifies the type of pricing used for this shipment.", + "type": "string", + "enum": [ + "ACTUAL", + "ALTERNATE", + "BASE", + "HUNDREDWEIGHT", + "HUNDREDWEIGHT_ALTERNATE", + "INTERNATIONAL_DISTRIBUTION", + "INTERNATIONAL_ECONOMY_SERVICE", + "LTL_FREIGHT", + "PACKAGE", + "SHIPMENT", + "SHIPMENT_FIVE_POUND_OPTIONAL", + "SHIPMENT_OPTIONAL", + "SPECIAL", + "UNKNOWN" + ], + "example": "ACTUAL" + }, + "minimumChargeType": { + "description": "provides the minimum charge type applicable to the rates.", + "type": "string", + "enum": [ + "CUSTOMER", + "CUSTOMER_FREIGHT_WEIGHT", + "EARNED_DISCOUNT", + "MIXED", + "RATE_SCALE", + "UNKNOWN" + ], + "example": "EARNED_DISCOUNT" + }, + "currencyExchangeRate": { + "$ref": "#/components/schemas/CurrencyExchangeRate" + }, + "specialRatingApplied": { + "type": "array", + "description": "Indicates which special rating cases applied to this shipment.", + "items": { + "type": "string", + "enum": [ + "FEDEX_ONE_RATE", + "FIXED_FUEL_SURCHARGE", + "IMPORT_PRICING" + ] + }, + "example": "FEDEX_ONE_RATE" + }, + "fuelSurchargePercent": { + "description": "Specify a fuel surcharge percentage.", + "format": "double", + "type": "number", + "example": 121 + }, + "pickupBaseChargeDescription": { + "description": "Will indicate the pickup charge description of the on call pickup", + "type": "string", + "enum": [ + "Regularly Scheduled Pickup Mon-Fri", + "Automated Pickup Mon-Fri", + "Same Day OC Pickup Mon-Fri (CS)", + "Same Day OC Pickup Mon-Fri (Online)", + "Fut. Day OC Pickup Mon-Fri (CS)", + "Fut. Day OC Pickup Mon-Fri (Online)", + "Regularly Scheduled Pickup Sat", + "Automated Pickup Sat", + "Same Day OC Pickup Sat (CS)", + "Same Day OC Pickup Sat (Online)", + "Fut. Day OC Pickup Sat (CS)", + "Fut. Day OC Pickup Sat (Online)", + "Regularly Scheduled Pickup Sun", + "Automated Pickup Sun", + "Same Day OC Pickup Sun (CS)", + "Same Day OC Pickup Sun (Online)", + "Fut. Day OC Pickup Sun (CS)", + "Fut. Day OC Pickup Sun (Online)", + "Residential On-Call Pickup Surcharge", + "Pickup Area Surcharge", + "Extended Pickup Area Surcharge", + "Remote Pickup Area Surcharge", + "Fuel Surcharge" + ], + "example": "Pickup Area Surcharge" + }, + "totalBaseCharge": { + "description": "Total base charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalFreightDiscounts": { + "description": "The total discounts used in the rate calculation.
    Example: 1257.26", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalNetFreight": { + "description": "This shipment's totalNetFreight.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalSurcharges": { + "description": "The sum of all surcharges on the package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalNetFedExCharge": { + "description": "This shipment's totalNetFedExCharge, which is totalNetFreight plus totalSurcharges (not including totalTaxes).", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalTaxes": { + "description": "The sum of all taxes on this package.
    Example: 1257.25", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalNetCharge": { + "description": "Total net charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalRebates": { + "description": "The total sum of all rebates applied to this package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalDutiesAndTaxes": { + "description": "The sum of shipment/package Duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalAncillaryFeesAndTaxes": { + "description": "Identifies the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalDutiesTaxesAndFees": { + "description": "The total amount of the duties and taxes plus the total ancillary fees and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalNetChargeWithDutiesAndTaxes": { + "description": "Total netChargesWithDutiesAndTaxes for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "freightDiscounts": { + "description": "All rate discounts that apply to this shipment", + "type": "array", + "items": { + "$ref": "#/components/schemas/RateDiscount" + } + }, + "rebates": { + "description": "The all rebates applied to this package.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Rebate" + } + }, + "surcharges": { + "description": "The amount of surcharges applied to this shipment.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Surcharge_2" + } + }, + "taxes": { + "description": "List of taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tax" + } + }, + "dutiesAndTaxes": { + "description": "List of The shipment/package Duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdtCommodityTax" + } + }, + "ancillaryFeesAndTaxes": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AncillaryFeeAndTax" + } + }, + "variableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges" + } + ] + }, + "totalVariableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges" + } + ] + } + } } }, "description": "All shipment-level rating data for this shipment, which may include data for multiple rate types." }, - "ShipmentRateDetail": { + "EdtCommodityTax": { + "description": "The shipment/package Duties and taxes.", "type": "object", "properties": { - "rateZone": { - "type": "string", - "description": "Indicates the rate zone used (based on origin and destination).", - "example": "US001O" - }, - "ratedWeightMethod": { + "harmonizedCode": { + "description": "Harmonized code is used by customer to classify the product being shipped and define the duties and taxes to be paid.", "type": "string", - "description": "Indicates which weight was used.", - "example": "ACTUAL" + "example": "harmonizedCode" }, - "totalDutiesTaxesAndFees": { - "type": "number", - "description": "The total of the total duties & taxes and the total ancillary fees & taxes.", - "format": "double", - "example": 24.56 + "taxes": { + "$ref": "#/components/schemas/EdtTaxDetail" }, - "pricingCode": { + "total": { + "description": "Total of Duties and taxes", + "$ref": "#/components/schemas/Money" + } + } + }, + "AncillaryFeeAndTax": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "object", + "properties": { + "type": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", "type": "string", - "description": "Specifies pricing Code.", - "example": "LTL_FREIGHT" + "enum": [ + "CLEARANCE_ENTRY_FEE", + "GOODS_AND_SERVICES_TAX", + "HARMONIZED_SALES_TAX", + "OTHER" + ], + "example": "CLEARANCE_ENTRY_FEE" }, - "totalFreightDiscounts": { - "type": "number", - "description": "The total discounts used in the rate calculation.", - "format": "double", - "example": 1.56 + "description": { + "description": "Identifies the amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "example": "description" }, - "totalTaxes": { + "amount": { + "description": "list of AncillaryFees And Taxes", + "$ref": "#/components/schemas/Money" + } + } + }, + "Rebate": { + "type": "object", + "properties": { + "rebateType": { + "description": "The type of rebate.", + "type": "string", + "enum": [ + "BONUS", + "EARNED", + "OTHER" + ], + "example": "EARNED" + }, + "description": { + "description": "The description of the rebate", + "type": "string", + "example": "description" + }, + "amount": { + "description": "provides the calculated rebate amount based on customer details, transaction information, and applicable rules. ", + "$ref": "#/components/schemas/Money" + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "ShipmentRateDetail": { + "type": "object", + "properties": { + "rateZone": { + "type": "string", + "description": "Indicates the rate zone used (based on origin and destination).", + "example": "US001O" + }, + "ratedWeightMethod": { + "type": "string", + "description": "Indicates which weight was used.", + "example": "ACTUAL" + }, + "totalDutiesTaxesAndFees": { + "type": "number", + "description": "The total of the total duties & taxes and the total ancillary fees & taxes.", + "format": "double", + "example": 24.56 + }, + "pricingCode": { + "type": "string", + "description": "Specifies pricing Code.", + "example": "LTL_FREIGHT" + }, + "totalFreightDiscounts": { + "type": "number", + "description": "The total discounts used in the rate calculation.", + "format": "double", + "example": 1.56 + }, + "totalTaxes": { "type": "number", "description": "Total of the transportation-based taxes.
    Example: 3.45", "format": "double", @@ -4116,7 +4689,7 @@ "items": { "type": "object", "schema": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax_2" } } }, @@ -4184,7 +4757,7 @@ "freightDiscounts": { "type": "array", "items": { - "$ref": "#/components/schemas/RateDiscount" + "$ref": "#/components/schemas/RateDiscount_2" } }, "rateScale": { @@ -4218,33 +4791,6 @@ }, "description": "This is a placeholder for the shipment's total/summary rates details, as calculated per a specific rate type. The totals may differ from the sum of corresponding package data for Multiweight or Express MPS." }, - "Tax": { - "type": "object", - "properties": { - "amount": { - "type": "number", - "description": "Indicates the amount of tax", - "format": "double", - "example": 10 - }, - "level": { - "type": "string", - "description": "Indicates the Level of Tax.", - "example": "level" - }, - "description": { - "type": "string", - "description": "Placeholder for the tax description.
    Example: descrption", - "example": "description" - }, - "type": { - "type": "string", - "description": "Specifies the type of the tax.", - "example": "type" - } - }, - "description": "All transportation-based taxes applicable to this shipment.." - }, "CurrencyExchangeRate": { "type": "object", "properties": { @@ -4284,7 +4830,7 @@ "type": "array", "description": "Specifies the taxes.", "items": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax_2" } }, "totalDimWeight": { @@ -4394,7 +4940,7 @@ "freightDiscounts": { "type": "array", "items": { - "$ref": "#/components/schemas/RateDiscount" + "$ref": "#/components/schemas/RateDiscount_2" } }, "rateScale": { @@ -4422,34 +4968,6 @@ }, "description": "This is data for a single leg of a shipment's total/summary rates, as calculated per a specific rate type." }, - "RateDiscount": { - "type": "object", - "properties": { - "amount": { - "type": "number", - "description": "Specifies the amount.", - "format": "double", - "example": 8.9 - }, - "rateDiscountType": { - "type": "string", - "description": "The type of rate discount.
    Valid Values are BONUS, COUPON,EARNED,OTHER,VOLUME.", - "example": "COUPON" - }, - "percent": { - "type": "number", - "description": "Specifies the percentage of Rate discount.", - "format": "double", - "example": 28.9 - }, - "description": { - "type": "string", - "description": "Specifies the description of the discounted rate.", - "example": "description" - } - }, - "description": "Specifies discount Rate for Shipment." - }, "DocumentRequirementsDetail": { "type": "object", "properties": { @@ -4840,8 +5358,22 @@ "requestedShipment": { "$ref": "#/components/schemas/RequestedConsolidationShipment" }, + "processingOptions": { + "type": "array", + "description": "Array of processing options for the shipment.", + "items": { + "type": "string", + "example": "INCLUDE_PICKUPRATES", + "enum": [ + "INCLUDE_PICKUPRATES" + ] + } + }, "labelResponseOptions": { "$ref": "#/components/schemas/LableResponseOptions" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to create a consolidation shipment.", @@ -4920,6 +5452,12 @@ "$ref": "#/components/schemas/RecipientParty" } }, + "pickupDetail": { + "$ref": "#/components/schemas/PickupDetail" + }, + "emailNotificationDetail": { + "$ref": "#/components/schemas/EmailNotificationDetail" + }, "shippingChargesPayment": { "$ref": "#/components/schemas/Payment" }, @@ -4956,6 +5494,52 @@ }, "description": "The consolidation shipment details" }, + "PickupDetail": { + "type": "object", + "properties": { + "readyDateTime": { + "type": "string", + "format": "date", + "description": "Pickup ready date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "latestPickupDateTime": { + "type": "string", + "format": "date", + "description": "Latest pickup date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "courierInstructions": { + "type": "string", + "description": "Special instructions for the courier", + "example": "Leave package at reception" + }, + "requestType": { + "$ref": "#/components/schemas/PickupRequestType" + }, + "requestSource": { + "$ref": "#/components/schemas/PickupRequestSourceType" + } + } + }, + "PickupRequestType": { + "type": "string", + "description": "Type of pickup request", + "enum": [ + "FUTURE_DAY", + "SAME_DAY" + ], + "example": "FUTURE_DAY" + }, + "PickupRequestSourceType": { + "type": "string", + "description": "Source of the pickup request", + "enum": [ + "AUTOMATION", + "CUSTOMER_SERVICE" + ], + "example": "AUTOMATION" + }, "HoldAtLocationDetail": { "required": [ "locationId" @@ -5376,6 +5960,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -5631,6 +6218,9 @@ }, "consolidationDocumentSpecification": { "$ref": "#/components/schemas/ConsolidationDocumentSpec" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -5697,6 +6287,9 @@ "type": "string", "description": "When the confirm consolidation is processed asynchronously, job Id is generated which is passed in confirm consolidation results to get complete consolidation results", "example": "b8r763490cj7462n8907" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -5746,6 +6339,9 @@ }, "consolidationKey": { "$ref": "#/components/schemas/ConsolidationKey" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to retrieve a consolidation.", @@ -5822,6 +6418,9 @@ "type": "string", "description": "This is a unique number assigned by FedEx to the packages for tracking. This will help in the identification of the dangerous goods shipments to mark it for removal on the manifest report.", "example": "86ea9b69e068191a59f0e2721b8fbfee" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to cancel a shipment. " @@ -5873,6 +6472,9 @@ }, "trackingId": { "$ref": "#/components/schemas/TrackingIds" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to delete a consolidation.", @@ -6100,7 +6702,7 @@ } } }, - "description": "Information about the person who is paying for the shipment.
    Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT." + "description": "Information about the person who is paying for the shipment.
    Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY." }, "TransborderDistributionDetail_specialServicesRequested_transborderDistributionLtlDetail_payment_ePaymentDetail_amount": { "type": "object", @@ -6983,7 +7585,7 @@ } } }, - "description": "Information about the person who is paying for the shipment.
    Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT." + "description": "Information about the person who is paying for the shipment.
    Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY." }, "TransborderDistributionDetail_1_specialServicesRequested_transborderDistributionLtlDetail_payment_creditCard_creditCardHolder": { "type": "object", @@ -7274,6 +7876,109 @@ }, "description": "These special services are available at the shipment level for some or all service types.
    If the shipper is requesting a special service which requires additional data (such as the COD amount), the shipment special service type must be present in the specialServiceTypes collection, and the supporting detail must be provided in the appropriate sub-object below.
    RETURN_SHIPMENT is required for creating return shipments." }, + "EmailNotificationDetail": { + "type": "object", + "properties": { + "aggregationType": { + "type": "string", + "description": "Consolidation Shipment Notification Aggregation Type.
    Example:PER_PACKAGE", + "example": "PER_PACKAGE", + "enum": [ + "PER_PACKAGE", + "PER_SHIPMENT" + ] + }, + "emailNotificationRecipients": { + "type": "array", + "description": "These are email notification recipient details.", + "items": { + "$ref": "#/components/schemas/EmailNotificationRecipient" + } + }, + "personalMessage": { + "type": "string", + "description": "This is your personal message for the email.
    Note: The maximum personal message character limit depends on the element emailNotificationDetail\\emailNotificationRecipients\\notificationFormatType values:
    • If notificationFormatType is TEXT, then only 120 characters printed on the email
    • If notificationFormatType is HTML, then 500 characters printed on the email

    Example: This is concerning the order 123456 of 26 Nov 2025 - art no 34324-23 Teddy Bear, brown", + "example": "your personal message here" + } + }, + "description": "These are email details. Provides the type and email addresses of e-mail recipients." + }, + "EmailNotificationRecipient": { + "required": [ + "emailNotificationRecipientType" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Specify the recipient name.
    Example: Dispatch", + "example": "Dispatch" + }, + "emailNotificationRecipientType": { + "type": "string", + "description": "This is the email notification recipient type.
    Example: SHIPPER", + "example": "SHIPPER", + "enum": [ + "BROKER", + "OTHER", + "RECIPIENT", + "SHIPPER", + "THIRD_PARTY" + ] + }, + "emailAddress": { + "type": "string", + "description": "Specify the recipient email address.
    Example: xyz@aol.com", + "example": "jsmith3@aol.com" + }, + "notificationFormatType": { + "type": "string", + "description": "This is the format for the email notification. Either HTML or plain text can be provided.", + "example": "TEXT", + "enum": [ + "HTML", + "TEXT" + ] + }, + "notificationType": { + "type": "string", + "description": "Indicate the type of notification that will be sent as an email.", + "example": "EMAIL", + "enum": [ + "EMAIL" + ] + }, + "locale": { + "type": "string", + "description": "These are the locale details for email.
    click here to see Locales
    Note: If the locale is left blank or an invalid locale is entered, an error message is returned in response.", + "example": "en_US" + }, + "notificationEventType": { + "type": "array", + "description": "Specify notification event types.
    Click here for more information on Notification Event Types.", + "example": [ + "ON_TENDER", + "ON_DELIVERY" + ], + "items": { + "type": "string", + "enum": [ + "ON_DELIVERY", + "ON_EXCEPTION", + "ON_SHIPMENT", + "ON_TENDER", + "ON_ESTIMATED_DELIVERY", + "ON_BILL_OF_LADING", + "ON_PICKUP_DRIVER_ARRIVED", + "ON_PICKUP_DRIVER_ASSIGNED", + "ON_PICKUP_DRIVER_DEPARTED", + "ON_PICKUP_DRIVER_EN_ROUTE" + ] + } + } + }, + "description": "These are recipient details for receiving email notification." + }, "RequestedConsolidationShipment_processingOption": { "type": "object", "properties": { @@ -7920,6 +8625,9 @@ "properties": { "consolidationShipments": { "$ref": "#/components/schemas/ConsolidationShipments" + }, + "consolidationDocumentTypes": { + "$ref": "#/components/schemas/ConsolidationDocumentSpec" } }, "description": "Specifies Complete Consolidation Details when user selected ASYCHRONOUSLY_PROCESSED" @@ -7932,7 +8640,7 @@ "properties": { "personName": { "type": "string", - "description": "Specify contact name. Maximum length is 70.
    Note: Either the companyName or personName is mandatory.
    Example: John Taylor", + "description": "Specify contact name. First 35 chars will be printed on the label, excess characters will be truncated.
    Note: Either the companyName or personName is mandatory.
    Example: John Taylor", "example": "John Taylor" }, "emailAddress": { @@ -7947,7 +8655,7 @@ }, "phoneNumber": { "type": "string", - "description": "The shipper's phone number.
    Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
    Example: 918xxxxx890", + "description": "The shipper's phone number.
    Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
    Example: 918xxxxx890", "example": "918xxxxx890" }, "companyName": { @@ -8727,62 +9435,191 @@ }, "description": "Specifies documentation and limits for validation of an individual packing group/category. DG Data Upload Mode: Required (IATA), Optional (Other), DG Full Validation Mode: Required (IATA), Optional (Other)," }, - "ShippingDocumentDispositionDetail": { + "EdtTaxDetail": { + "description": "Estimated duties and taxes detail.", "type": "object", "properties": { - "eMailDetail": { - "$ref": "#/components/schemas/ShippingDocumentEmailDetail" - }, - "dispositionType": { + "taxType": { + "description": "Estimated taxes type", "type": "string", - "description": "Values in this field specify how to create and return the document.", - "example": "CONFIRMED", "enum": [ - "CONFIRMED", - "DEFERRED_QUEUED", - "DEFERRED_RETURNED", - "DEFERRED_STORED", - "EMAILED", - "QUEUED", - "RETURNED", - "STORED" - ] + "ADDITIONAL_TAXES", + "CONSULAR_INVOICE_FEE", + "CUSTOMS_SURCHARGES", + "DUTY", + "EXCISE_TAX", + "FOREIGN_EXCHANGE_TAX", + "GENERAL_SALES_TAX", + "IMPORT_LICENSE_FEE", + "INTERNAL_ADDITIONAL_TAXES", + "INTERNAL_SENSITIVE_PRODUCTS_TAX", + "OTHER", + "SENSITIVE_PRODUCTS_TAX", + "STAMP_TAX", + "STATISTICAL_TAX", + "TRANSPORT_FACILITIES_TAX" + ], + "example": "INCENTIVE" }, - "grouping": { + "taxcode": { "type": "string", - "description": "Identifies the convention by which documents are to be grouped as email attachment.", - "enum": [ - "CONSOLIDATED_BY_DOCUMENT_TYPE", - "CONSOLIDATED_BY_IMAGE_TYPE", - "INDIVIDUAL" - ] - }, - "storageDetail": { - "$ref": "#/components/schemas/ShippingDocumentStorageDetail" + "example": "taxcode" }, - "printDetail": { - "$ref": "#/components/schemas/ShippingDocumentPrintDetail" - } - }, - "description": "Each occurrence of this class specifies a particular way in which a kind of shipping document is to be produced and provided." - }, - "ContactAndAddress": { - "type": "object", - "properties": { - "contact": { - "$ref": "#/components/schemas/Contact" + "effectiveDate": { + "description": "Estimated duties and taxes effective date. Format [YYYY-MM-DD].", + "type": "string", + "example": "2019-12-06" }, - "contactAncillaryDetail": { - "$ref": "#/components/schemas/ContactAncillaryDetail" + "name": { + "description": "The localized name of the surcharge.", + "type": "string", + "example": "VAT" }, - "address": { - "$ref": "#/components/schemas/Address" + "taxableValue": { + "description": "Estimated duties and taxes taxable Value.", + "$ref": "#/components/schemas/Money" + }, + "description": { + "description": "FedEx pays the Duty and Tax charges on your behalf to ensure we can deliver your shipment as quickly as possible", + "type": "string", + "example": "Christmas" + }, + "formula": { + "description": "Indicates the formula.", + "type": "string", + "example": "VAT Payable = Output VAT \u2013 Input VAT" + }, + "amount": { + "description": "Amount for the estimated duties and taxes type.", + "$ref": "#/components/schemas/Money" + }, + "taxRates": { + "description": "Estimated duties and taxes taxRates", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "example": null + }, + "currency": { + "type": "string", + "example": null + }, + "quantity": { + "format": "double", + "type": "number", + "example": null + }, + "unitOfMeasure": { + "type": "string", + "example": null + } + } + } + }, + "appliedPreferentialTradeAgreement": { + "description": "provides details about PTA applied between countries for specific product. ", + "type": "object", + "properties": { + "id": { + "description": "", + "type": "string", + "example": "description" + }, + "name": { + "description": "", + "type": "string", + "example": "description" + }, + "description": { + "description": "", + "type": "string", + "example": "description" + } + } + } + } + }, + "VariableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "type": "object", + "properties": { + "variableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "$ref": "#/components/schemas/Money" + }, + "fixedVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "$ref": "#/components/schemas/Money" + }, + "percentVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "$ref": "#/components/schemas/Money" + }, + "totalCustomerCharge": { + "description": "Specifies the total customer assessed handling charges.
    Example: 445.54", + "$ref": "#/components/schemas/Money" + } + } + }, + "ShippingDocumentDispositionDetail": { + "type": "object", + "properties": { + "eMailDetail": { + "$ref": "#/components/schemas/ShippingDocumentEmailDetail" + }, + "dispositionType": { + "type": "string", + "description": "Values in this field specify how to create and return the document.", + "example": "CONFIRMED", + "enum": [ + "CONFIRMED", + "DEFERRED_QUEUED", + "DEFERRED_RETURNED", + "DEFERRED_STORED", + "EMAILED", + "QUEUED", + "RETURNED", + "STORED" + ] + }, + "grouping": { + "type": "string", + "description": "Identifies the convention by which documents are to be grouped as email attachment.", + "enum": [ + "CONSOLIDATED_BY_DOCUMENT_TYPE", + "CONSOLIDATED_BY_IMAGE_TYPE", + "INDIVIDUAL" + ] + }, + "storageDetail": { + "$ref": "#/components/schemas/ShippingDocumentStorageDetail" + }, + "printDetail": { + "$ref": "#/components/schemas/ShippingDocumentPrintDetail" + } + }, + "description": "Each occurrence of this class specifies a particular way in which a kind of shipping document is to be produced and provided." + }, + "ContactAndAddress": { + "type": "object", + "properties": { + "contact": { + "$ref": "#/components/schemas/Contact" + }, + "contactAncillaryDetail": { + "$ref": "#/components/schemas/ContactAncillaryDetail" + }, + "address": { + "$ref": "#/components/schemas/Address" }, "addressAncillaryDetail": { "$ref": "#/components/schemas/AddressAncillaryDetail" } }, - "description": "Idicates the contact and address details of a location." + "description": "Indicate the contact and address details of a location." }, "DocTabContentZone": { "type": "object", @@ -8826,7 +9663,7 @@ "InternationalDistributionDetail": { "required": [ "clearanceFacilityLocationId", - "declaredCurrencies", + "declarationCurrencies", "totalDimensions" ], "type": "object", @@ -8858,8 +9695,11 @@ "METRIC" ] }, - "declaredCurrencies": { - "$ref": "#/components/schemas/Money" + "declarationCurrencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Money" + } }, "clearanceFacilityLocationId": { "type": "string", @@ -8903,61 +9743,6 @@ }, "description": "Conditional. Export Detail Used for US or CA exports." }, - "Commodity": { - "required": [ - "description", - "numberOfPieces" - ], - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Specify the commodity name", - "example": "non-threaded rivets" - }, - "numberOfPieces": { - "type": "integer", - "description": "Indicates the number of pieces associated with the commodity. Number of pieces cannot be a negative value or exceed 9,999.", - "format": "int32", - "example": 12 - }, - "description": { - "type": "string", - "description": "This is the commodity description. Maximum allowed 450 characters.", - "example": "AC parts" - }, - "countryOfManufacture": { - "type": "string", - "description": "This is commodity country of manufacture. This is required for International shipments. Maximum allowed length is 4.", - "example": "US" - }, - "weight": { - "$ref": "#/components/schemas/Weight" - }, - "quantity": { - "type": "integer", - "description": "This is the units quantity (using quantityUnits as the unit of measure) per commodity. This is used to estimate duties and taxes.", - "format": "int32", - "example": 125 - }, - "quantityUnits": { - "type": "string", - "description": "This is the unit of measure for the units quantity. This is used to estimate duties and taxes.", - "example": "EA" - }, - "unitPrice": { - "$ref": "#/components/schemas/Money_2" - }, - "customsValue": { - "$ref": "#/components/schemas/Money_2" - }, - "commodityId": { - "type": "string", - "description": "Value used to identify a commodity description; must be unique within the containing shipment.", - "example": "commodity Id" - } - } - }, "DocTabContent": { "type": "object", "properties": { @@ -9473,7 +10258,7 @@ }, "phoneNumber": { "type": "string", - "description": "The shipper's phone number.
    Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
    Example: 918xxxxx890", + "description": "The shipper's phone number.
    Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
    Example: 918xxxxx890", "example": "918xxxxx890" }, "companyName": { @@ -9511,7 +10296,7 @@ }, "phoneNumber": { "type": "string", - "description": "Specify contact phone number.
    Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
    Example: 918xxxxx890", + "description": "Specify contact phone number.
    Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
    Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
    Example: 918xxxxx890", "example": "1234567890" }, "companyName": { @@ -9939,7 +10724,7 @@ "type": "array", "description": "Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment.", "items": { - "$ref": "#/components/schemas/Commodity" + "$ref": "#/components/schemas/Commodity_2" } }, "brokers": { @@ -10102,6 +10887,136 @@ ] } }, + "Commodity": { + "required": [ + "description", + "numberOfPieces" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Specify the commodity name", + "example": "non-threaded rivets" + }, + "numberOfPieces": { + "type": "integer", + "description": "Indicates the number of pieces associated with the commodity. Number of pieces cannot be a negative value or exceed 9,999.", + "format": "int32", + "example": 12 + }, + "description": { + "type": "string", + "description": "This is the commodity description. Maximum allowed 450 characters.", + "example": "AC parts" + }, + "cIMarksAndNumbers": { + "type": "string", + "description": "This is an identifying mark or number used on the packaging of a shipment to help customers identify a particular shipment
    Example: 125SU212061F7", + "example": "125SU212061F7" + }, + "countryOfManufacture": { + "type": "string", + "description": "This is commodity country of manufacture. This is required for International shipments. Maximum allowed length is 4.", + "example": "US" + }, + "weight": { + "$ref": "#/components/schemas/Weight" + }, + "quantity": { + "type": "integer", + "description": "This is the units quantity (using quantityUnits as the unit of measure) per commodity. This is used to estimate duties and taxes.", + "format": "int32", + "example": 125 + }, + "quantityUnits": { + "type": "string", + "description": "This is the unit of measure for the units quantity. This is used to estimate duties and taxes.", + "example": "EA" + }, + "unitPrice": { + "$ref": "#/components/schemas/Money_2" + }, + "customsValue": { + "$ref": "#/components/schemas/Money_2" + }, + "commodityId": { + "type": "string", + "description": "Value used to identify a commodity description; must be unique within the containing shipment.", + "example": "commodity Id" + }, + "clearanceItemDetail": { + "type": "array", + "description": "Array of clearance item details including manufacturer info for customs clearance.", + "items": { + "$ref": "#/components/schemas/ClearanceItemDetail" + } + } + } + }, + "Commodity_2": { + "required": [ + "description", + "name", + "numberOfPieces" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Specify the commodity name", + "example": "non-threaded rivets" + }, + "numberOfPieces": { + "type": "integer", + "description": "Indicates the number of pieces associated with the commodity. Number of pieces cannot be a negative value or exceed 9,999.", + "format": "int32", + "example": 12 + }, + "description": { + "type": "string", + "description": "This is the commodity description. Maximum allowed 450 characters.", + "example": "AC parts" + }, + "countryOfManufacture": { + "type": "string", + "description": "This is commodity country of manufacture. This is required for International shipments. Maximum allowed length is 4.", + "example": "US" + }, + "weight": { + "$ref": "#/components/schemas/Weight" + }, + "quantity": { + "type": "integer", + "description": "This is the units quantity (using quantityUnits as the unit of measure) per commodity. This is used to estimate duties and taxes.", + "format": "int32", + "example": 125 + }, + "quantityUnits": { + "type": "string", + "description": "This is the unit of measure for the units quantity. This is used to estimate duties and taxes.", + "example": "EA" + }, + "unitPrice": { + "$ref": "#/components/schemas/Money_2" + }, + "customsValue": { + "$ref": "#/components/schemas/Money_2" + }, + "commodityId": { + "type": "string", + "description": "Value used to identify a commodity description; must be unique within the containing shipment.", + "example": "commodity Id" + }, + "clearanceItemDetail": { + "type": "array", + "description": "Array of clearance item details including manufacturer info for customs clearance.", + "items": { + "$ref": "#/components/schemas/ClearanceItemDetail" + } + } + } + }, "BrokerDetail": { "type": "object", "properties": { @@ -10145,7 +11060,24 @@ "CONSOLIDATED_CUSTOMS_LINEHAUL_REPORT", "CONSOLIDATED_PARTY_REPORT", "CONSOLIDATED_SOLD_TO_SUMMARY_REPORT", - "CUSTOM_CONSOLIDATION_DOCUMENT" + "CUSTOM_CONSOLIDATION_DOCUMENT", + "CERTIFICATE_OF_ORIGIN", + "COMMERCIAL_INVOICE", + "CUSTOM_PACKAGE_DOCUMENT", + "CUSTOM_SHIPMENT_DOCUMENT", + "CUSTOMER_SPECIFIED_LABELS", + "DANGEROUS_GOODS_SHIPPERS_DECLARATION", + "EXPORT_DECLARATION", + "FEDEX_FREIGHT_STRAIGHT_BILL_OF_LADING", + "GENERAL_AGENCY_AGREEMENT", + "LABEL", + "USMCA_COMMERCIAL_INVOICE_CERTIFICATION_OF_ORIGIN", + "USMCA_CERTIFICATION_OF_ORIGIN", + "OP_900", + "PENDING_SHIPMENT_EMAIL_NOTIFICATION", + "PRO_FORMA_INVOICE", + "RETURN_INSTRUCTIONS", + "VICS_BILL_OF_LADING" ], "items": { "type": "string" @@ -10200,7 +11132,24 @@ "CONSOLIDATED_CUSTOMS_LINEHAUL_REPORT", "CONSOLIDATED_PARTY_REPORT", "CONSOLIDATED_SOLD_TO_SUMMARY_REPORT", - "CUSTOM_CONSOLIDATION_DOCUMENT" + "CUSTOM_CONSOLIDATION_DOCUMENT", + "CERTIFICATE_OF_ORIGIN", + "COMMERCIAL_INVOICE", + "CUSTOM_PACKAGE_DOCUMENT", + "CUSTOM_SHIPMENT_DOCUMENT", + "CUSTOMER_SPECIFIED_LABELS", + "DANGEROUS_GOODS_SHIPPERS_DECLARATION", + "EXPORT_DECLARATION", + "FEDEX_FREIGHT_STRAIGHT_BILL_OF_LADING", + "GENERAL_AGENCY_AGREEMENT", + "LABEL", + "USMCA_COMMERCIAL_INVOICE_CERTIFICATION_OF_ORIGIN", + "USMCA_CERTIFICATION_OF_ORIGIN", + "OP_900", + "PENDING_SHIPMENT_EMAIL_NOTIFICATION", + "PRO_FORMA_INVOICE", + "RETURN_INSTRUCTIONS", + "VICS_BILL_OF_LADING" ], "items": { "type": "string" @@ -10449,12 +11398,301 @@ } }, "description": "Indicates exception when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" + }, + "Surcharge": { + "type": "object", + "properties": { + "amount": { + "description": "This is the surcharge amount.
    Example: 15.35", + "$ref": "#/components/schemas/Money_2" + }, + "surchargeType": { + "type": "string", + "description": "Specifies the Surcharge Type.
    Example: APPOINTMENT_DELIVERY", + "example": "APPOINTMENT_DELIVERY" + }, + "level": { + "type": "string", + "description": "Specifies if the surcharge applies to the entire shipment, or to an individual package.
    Example: PACKAGE", + "example": "PACKAGE, or SHIPMENT" + }, + "description": { + "type": "string", + "description": "Specifies the description of the surcharge. Indicates delivery and returns information for FedEx Ground Economy services.
    Example: Fuel Surcharge", + "example": "Overweight package" + } + }, + "description": "All surcharges that apply to this shipment.
    click here to see Surcharges" + }, + "Surcharge_2": { + "type": "object", + "properties": { + "surchargeType": { + "description": "The type of surcharge.", + "type": "string", + "enum": [ + "ACCOUNT_NUMBER_PROCESSING_FEE", + "ADDITIONAL_HANDLING", + "ADDRESS_CORRECTION", + "ANCILLARY_FEE", + "APPOINTMENT_DELIVERY", + "BLIND_SHIPMENT", + "BROKER_SELECT_OPTION", + "CANADIAN_DESTINATION", + "CHARGEABLE_PALLET_WEIGHT", + "COD", + "CUT_FLOWERS", + "DANGEROUS_GOODS", + "DELIVERY_AREA", + "DELIVERY_CONFIRMATION", + "DELIVERY_ON_INVOICE_ACCEPTANCE", + "DEMAND", + "DEMAND_ADDITIONAL_HANDLING", + "DEMAND_OVERSIZE", + "DEMAND_RESIDENTIAL_DELIVERY", + "DETENTION", + "DOCUMENTATION_FEE", + "DRY_ICE", + "EMAIL_LABEL", + "ENHANCED_SECURITY", + "EUROPE_FIRST", + "EXCESS_VALUE", + "EXCLUSIVE_USE", + "EXHIBITION", + "EXPEDITED", + "EXPORT", + "EXTRA_LABOR", + "EXTRA_SURFACE_HANDLING_CHARGE", + "EXTREME_LENGTH", + "FEDEX_INTRACOUNTRY_FEES", + "FEDEX_TAG", + "FICE", + "FLATBED", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_DELIVERY", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_PICKUP", + "FREIGHT_DIRECT_BASIC_DELIVERY", + "FREIGHT_DIRECT_BASIC_PICKUP", + "FREIGHT_DIRECT_PREMIUM_DELIVERY", + "FREIGHT_DIRECT_PREMIUM_PICKUP", + "FREIGHT_DIRECT_STANDARD_DELIVERY", + "FREIGHT_DIRECT_STANDARD_PICKUP", + "FREIGHT_GUARANTEE", + "FREIGHT_ON_VALUE", + "FREIGHT_TO_COLLECT", + "FUEL", + "HIGH_COST_SERVICE_AREA_DESTINATION", + "HIGH_COST_SERVICE_AREA_ORIGIN", + "HIGH_DENSITY", + "HOLD_AT_LOCATION", + "HOLIDAY_DELIVERY", + "HOLIDAY_GUARANTEE", + "HOME_DELIVERY_APPOINTMENT", + "HOME_DELIVERY_DATE_CERTAIN", + "HOME_DELIVERY_EVENING", + "INSIDE_DELIVERY", + "INSIDE_PICKUP", + "INSURED_VALUE", + "INTERHAWAII", + "LIFTGATE_DELIVERY", + "LIFTGATE_PICKUP", + "LIMITED_ACCESS_DELIVERY", + "LIMITED_ACCESS_PICKUP", + "MARKING_OR_TAGGING", + "METRO_DELIVERY", + "METRO_PICKUP", + "MONITORING_AND_INTERVENTION", + "NON_BUSINESS_TIME", + "NON_MACHINABLE", + "OFFSHORE", + "ON_CALL_PICKUP", + "ON_DEMAND_CARE", + "OTHER", + "OUT_OF_DELIVERY_AREA", + "OUT_OF_PICKUP_AREA", + "OVER_DIMENSION", + "OVER_LENGTH", + "OVERSIZE", + "OVERWEIGHT", + "PALLET_SHRINKWRAP", + "PALLETS_PROVIDED", + "PEAK", + "PEAK_ADDITIONAL_HANDLING", + "PEAK_OVERSIZE", + "PEAK_RESIDENTIAL_DELIVERY", + "PERMIT", + "PIECE_COUNT_VERIFICATION", + "PORT", + "PRE_DELIVERY_NOTIFICATION", + "PRIORITY_ALERT", + "PROTECTION_FROM_FREEZING", + "REGIONAL_MALL_DELIVERY", + "REGIONAL_MALL_PICKUP", + "REROUTE", + "RESCHEDULE", + "RESIDENTIAL_DELIVERY", + "RESIDENTIAL_PICKUP", + "RETURN_LABEL", + "SATURDAY_DELIVERY", + "SATURDAY_PICKUP", + "SHIPMENT_ASSEMBLY", + "SIGNATURE_OPTION", + "SINGLE_PIECE", + "SORT_AND_SEGREGATE", + "SPECIAL_DELIVERY", + "SPECIAL_EQUIPMENT", + "STORAGE", + "SUNDAY_DELIVERY", + "TARP", + "THIRD_PARTY_BILLING", + "THIRD_PARTY_CONSIGNEE", + "TRANSMART_SERVICE_FEE", + "USPS", + "WEIGHING" + ], + "example": "COD" + }, + "level": { + "description": "The level of surcharge.", + "type": "string", + "enum": [ + "PACKAGE", + "SHIPMENT" + ], + "example": "PACKAGE" + }, + "description": { + "description": "The description of the surcharge.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "$ref": "#/components/schemas/Money" + } + } + }, + "RateDiscount": { + "type": "object", + "properties": { + "rateDiscountType": { + "description": "Indicates the type.", + "type": "string", + "enum": [ + "BONUS", + "COUPON", + "EARNED", + "INCENTIVE", + "OTHER", + "VOLUME" + ], + "example": "INCENTIVE" + }, + "description": { + "description": "Indicates the description for the rate discount.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Indicates the amount for the rate discount.", + "$ref": "#/components/schemas/Money" + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "RateDiscount_2": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Specifies the amount.", + "format": "double", + "example": 8.9 + }, + "rateDiscountType": { + "type": "string", + "description": "The type of rate discount.
    Valid Values are BONUS, COUPON,EARNED,OTHER,VOLUME.", + "example": "COUPON" + }, + "percent": { + "type": "number", + "description": "Specifies the percentage of Rate discount.", + "format": "double", + "example": 28.9 + }, + "description": { + "type": "string", + "description": "Specifies the description of the discounted rate.", + "example": "description" + } + }, + "description": "Specifies discount Rate for Shipment." + }, + "Tax": { + "description": "Tax surcharge details", + "type": "object", + "properties": { + "taxType": { + "description": "Specifies the type of Surcharge/Tax.", + "type": "string", + "enum": [ + "EXPORT", + "GST", + "HST", + "INTRACOUNTRY", + "OTHER", + "PST", + "SST", + "VAT" + ], + "example": "VAT" + }, + "description": { + "description": "Specifies the description of the Surcharge/Tax.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Specifies the list of tax amounts.", + "$ref": "#/components/schemas/Money" + } + } + }, + "Tax_2": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Indicates the amount of tax", + "format": "double", + "example": 10 + }, + "level": { + "type": "string", + "description": "Indicates the Level of Tax.", + "example": "level" + }, + "description": { + "type": "string", + "description": "Placeholder for the tax description.
    Example: descrption", + "example": "description" + }, + "type": { + "type": "string", + "description": "Specifies the type of the tax.", + "example": "type" + } + }, + "description": "All transportation-based taxes applicable to this shipment.." } } }, "openapi": "3.0.0", "info": { - "title": "ShipConsolidation", + "title": "Consolidation API", "version": "API" } } \ No newline at end of file diff --git a/resources/models/freight-ltl/v1.json b/resources/models/freight-ltl/v1.json index dda892bb..82808a86 100644 --- a/resources/models/freight-ltl/v1.json +++ b/resources/models/freight-ltl/v1.json @@ -1102,6 +1102,9 @@ }, "freightRequestedShipment": { "$ref": "#/components/schemas/LTLRequestedShipment" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements for requesting a freight rate quote." @@ -2813,6 +2816,9 @@ "type": "boolean", "description": "If the value is false, it uses single shot MPS shipments where in all the packages are processed in the same transaction and can generate number of labels for the handling units all at once. If the value is true, the MPS shipment processes packages and labels one at a time. Default value is false. \n
    Example: true or false", "example": true + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to create a Freight2020Shipment." @@ -3640,7 +3646,7 @@ ], "properties": { "units": { - "description": "Specifies the package weight unit type.
    Example:KG", + "description": "Specifies the shipment weight unit type.
    Example:KG", "type": "string", "enum": [ "KG", @@ -6925,7 +6931,7 @@ "type": "number" } }, - "description": "The total weight of the packages for the pickup. Unit of measure is LB and KG.", + "description": "The total shipment weight for pickup. Unit of measure is LB and KG.", "items": { "$ref": "#/components/schemas/Weight" } @@ -7642,6 +7648,26 @@ }, "description": "Specifies the freight guarantee detail." }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "2", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "ContentRecord": { "type": "object", "properties": { diff --git a/resources/models/global-trade/v1.json b/resources/models/global-trade/v1.json index 05841000..503a2ce7 100644 --- a/resources/models/global-trade/v1.json +++ b/resources/models/global-trade/v1.json @@ -176,6 +176,25 @@ }, "components": { "schemas": { + "GticResponseVO": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "The transaction ID is a special set of numbers that defines each transaction.
    Example: 624deea6-b709-470c-8c39-4b5511281492", + "example": "624deea6-b709-470c-8c39-4b5511281492" + }, + "customerTransactionId": { + "type": "string", + "description": "This element allows you to assign a unique identifier to your transaction. This element is also returned in the reply and helps you match the request to the reply.
    Example: AnyCo_order123456789", + "example": "AnyCo_order123456789" + }, + "output": { + "$ref": "#/components/schemas/BaseProcessOutputVO" + } + }, + "description": "This is a wrapper class for outputVO." + }, "FullSchema": { "required": [ "carrierCode", @@ -241,7 +260,7 @@ "includeURLReferences": { "type": "boolean", "description": "Specify if the url references to be included in the output. These are regulatory reference data urls specific to document, agency.", - "example": "True" + "example": true }, "consolidationType": { "type": "string", @@ -252,6 +271,9 @@ "type": "string", "description": "Specify the role this shipment plays within the consolidation.

    Valid values are:
    • CONSOLIDATION_DOCUMENTS_SHIPMENT – Shipment contains clearance documents for the corresponding consolidation.
    • CRN_SHIPMENT – Shipment is a Child Reference Number(individual shipment within consolidation).
    • MASTER_AIRWAYBILL_SHIPMENT – Shipment represents entire consolidation, moving as a unit.
    ", "example": "CONSOLIDATION_DOCUMENTS_SHIPMENT" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements to retrieve Shipment Regulatory Details." @@ -302,7 +324,6 @@ } }, "insuranceCharges": { - "description": "Specify Insurance charges if applicable.
    Note: FedEx does not provide insurance of any kind.", "$ref": "#/components/schemas/Money" }, "importerOfRecordAccountNumber": { @@ -409,6 +430,31 @@ } } }, + "Measure": { + "required": [ + "quantity", + "uom" + ], + "type": "object", + "properties": { + "uom": { + "type": "string", + "description": "Unit of measure used to express the quantity of this commodity line item.", + "xml": { + "name": "Uom" + } + }, + "quantity": { + "type": "number", + "description": "Specify commodity quantity.", + "format": "double", + "xml": { + "name": "Quantity" + } + } + }, + "description": "This object contains additional quantitative information other than weight and quantity to calculate duties and taxes." + }, "Weight": { "required": [ "units", @@ -438,76 +484,87 @@ "value": 68 } }, - "Measure": { - "required": [ - "quantity", - "uom" - ], + "Version": { "type": "object", - "description": "This object contains additional quantitative information other than weight and quantity to calculate duties and taxes.", "properties": { - "uom": { - "type": "string", - "description": "Unit of measure used to express the quantity of this commodity line item.", - "xml": { - "name": "Uom" - } + "major": { + "type": "integer", + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": 1 }, - "quantity": { - "type": "number", - "description": "Specify commodity quantity.", - "format": "double", - "xml": { - "name": "Quantity" - } + "minor": { + "type": "integer", + "description": "This represents a backward-compatible minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": 1 + }, + "patch": { + "type": "integer", + "description": "This represents a backward-compatible bug fix adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": 1 } } }, - "GticResponseVO": { + "RegulatoryComplianceCountryDetail": { "type": "object", "properties": { - "transactionId": { + "countryCode": { "type": "string", - "description": "The transaction ID is a special set of numbers that defines each transaction.
    Example: 624deea6-b709-470c-8c39-4b5511281492", - "example": "624deea6-b709-470c-8c39-4b5511281492" + "description": "The ISO country code for the country.", + "example": "US" }, - "customerTransactionId": { + "category": { "type": "string", - "description": "This element allows you to assign a unique identifier to your transaction. This element is also returned in the reply and helps you match the request to the reply.
    Example: AnyCo_order123456789", - "example": "AnyCo_order123456789" + "description": "Describes the type of category", + "example": "ProductType" }, - "output": { - "$ref": "#/components/schemas/ShipmentRegulatoryDetailsOutputVO" + "regulatoryComplianceCommodityDetails": { + "type": "array", + "description": "This is an array of nonnegative-Integer identifying the associated commodities.", + "items": { + "$ref": "#/components/schemas/RegulatoryComplianceCommodityDetail" + } } - }, - "description": "This is a wrapper class for outputVO." + } }, - "ShipmentRegulatoryDetailsOutputVO": { - "required": [ - "countryDetails", - "userMessages" - ], + "RegulatoryComplianceCommodityDetail": { "type": "object", "properties": { - "userMessages": { + "commodityComplianceTypeDetail": { + "$ref": "#/components/schemas/CommodityComplianceTypeDetail" + } + } + }, + "CommodityComplianceTypeDetail": { + "type": "object", + "properties": { + "commodityIndexes": { "type": "array", - "description": "Represents User Message", + "description": "This is an array of nonnegative-Integer identifying the associated commodities.", + "example": 1, "items": { - "$ref": "#/components/schemas/RegulatoryMessage" + "minimum": 0, + "type": "number" } }, - "countryDetails": { - "description": "Represents Country Details", - "$ref": "#/components/schemas/RegulatoryCountryDetails" + "regulatoryComplianceTypeDetail": { + "$ref": "#/components/schemas/RegulatoryComplianceTypeDetail" + } + } + }, + "RegulatoryComplianceTypeDetail": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "compliance type.", + "example": "EEI" }, - "cxsalerts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CXSAlert" - } + "description": { + "type": "string", + "description": "compliance description.", + "example": "Shipments to your selected country require an EEI filing" } - }, - "description": "ShipmentRegulatoryDetailsOutputVO Model" + } }, "RegulatoryMessage": { "type": "object", @@ -677,39 +734,6 @@ }, "description": "Specifies the list of regulatory statements." }, - "LocalizedAttributeDetail": { - "type": "object", - "properties": { - "localization": { - "$ref": "#/components/schemas/Localization" - }, - "name": { - "type": "string", - "description": "Specifies the name of the product being shipped." - }, - "description": { - "type": "string", - "description": "Specifies elabaorate material description and other technical details of the product beingshipped." - } - }, - "description": "Specifies the localized attribute details." - }, - "Localization": { - "type": "object", - "properties": { - "localization": { - "type": "string", - "description": "Two letter language code.
    Example: EN
    click here to see Locales", - "example": "EN" - }, - "localeCode": { - "type": "string", - "description": "Two letter region code.
    Example: us
    click here to see Locales", - "example": "us" - } - }, - "description": "Specify locale details for composing email with the document." - }, "RegulatoryDocument": { "type": "object", "properties": { @@ -777,6 +801,39 @@ }, "description": "Specifies the types and parameters of Country's advisory regulations." }, + "LocalizedAttributeDetail": { + "type": "object", + "properties": { + "localization": { + "$ref": "#/components/schemas/Localization" + }, + "name": { + "type": "string", + "description": "Specifies the name of the product being shipped." + }, + "description": { + "type": "string", + "description": "Specifies elabaorate material description and other technical details of the product beingshipped." + } + }, + "description": "Specifies the localized attribute details." + }, + "Localization": { + "type": "object", + "properties": { + "localization": { + "type": "string", + "description": "Two letter language code.
    Example: EN
    click here to see Locales", + "example": "EN" + }, + "localeCode": { + "type": "string", + "description": "Two letter region code.
    Example: us
    click here to see Locales", + "example": "us" + } + }, + "description": "Specify locale details for composing email with the document." + }, "Message": { "type": "object", "properties": { @@ -814,36 +871,24 @@ } } }, - "CXSAlert": { + "Parameter": { "type": "object", "properties": { - "code": { - "type": "string", - "description": "Specifies the API alert code." - }, - "alertType": { + "value": { "type": "string", - "description": "Specifies the API alert type.", - "enum": [ - "NOTE", - "WARNING" - ] + "description": "Identifies the error option to be applied.", + "example": "packagingType can not be null" }, - "parameterList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Parameter" - } - }, - "message": { + "key": { "type": "string", - "description": "Specifies the API alert message." + "description": "Indicates the value associated with the key.", + "example": "NotNull.specialServicesOptionsInputVO.requestedShipment.packagingType" } - } + }, + "description": "List of parameters which indicates the properties of the alert message." }, "Money": { "type": "object", - "description": "Specify Insurance charges if applicable.
    Note: FedEx does not provide insurance of any kind.", "properties": { "amount": { "type": "number", @@ -862,28 +907,43 @@ "name": "Currency" } } - } + }, + "description": "Specify Insurance charges if applicable.
    Note: FedEx does not provide insurance of any kind." }, - "Parameter": { + "CXSError": { "type": "object", "properties": { - "value": { + "code": { "type": "string", - "description": "Identifies the error option to be applied." + "description": "Indicates the error code.
    Example: INTERNAL.SERVER.ERROR" }, - "key": { - "type": "string", - "description": "Indicates the value associated with the key." + "parameterList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Parameter" + } + }, + "message": { + "description": "Indicates the description of API error alert message.
    Example: We encountered an unexpected error and are working to resolve the issue. We apologize for any inconvenience. Please check back at a later time.", + "type": "string" } }, - "description": "List of parameters which indicates the properties of the alert message." + "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" }, - "CXSError": { + "CXSAlert": { "type": "object", "properties": { "code": { "type": "string", - "description": "Indicates the error code.
    Example: INTERNAL.SERVER.ERROR" + "description": "Specifies the API alert code." + }, + "alertType": { + "type": "string", + "description": "Specifies the API alert type.", + "enum": [ + "NOTE", + "WARNING" + ] }, "parameterList": { "type": "array", @@ -892,11 +952,37 @@ } }, "message": { - "description": "Indicates the description of API error alert message.
    Example: We encountered an unexpected error and are working to resolve the issue. We apologize for any inconvenience. Please check back at a later time.", - "type": "string" + "type": "string", + "description": "Specifies the API alert message." + } + } + }, + "BaseProcessOutputVO": { + "required": [ + "countryDetails", + "userMessages" + ], + "type": "object", + "properties": { + "userMessages": { + "type": "array", + "description": "Represents User Message", + "items": { + "$ref": "#/components/schemas/RegulatoryMessage" + } + }, + "countryDetails": { + "description": "Represents Country Details", + "$ref": "#/components/schemas/RegulatoryCountryDetails" + }, + "cxsalerts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CXSAlert" + } } }, - "description": "Indicates error alert when suspicious files, potential exploits and viruses found while scanning files , directories and user accounts. This includes code, message and parameter" + "description": "ShipmentRegulatoryDetailsOutputVO Model" }, "ErrorResponseVO": { "type": "object", diff --git a/resources/models/ground-eod-close/v1.json b/resources/models/ground-eod-close/v1.json index f7ad6ae3..bbaeb7aa 100644 --- a/resources/models/ground-eod-close/v1.json +++ b/resources/models/ground-eod-close/v1.json @@ -604,6 +604,9 @@ }, "closeDocumentSpecification": { "$ref": "#/components/schemas/CloseDocumentSpecification" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -643,6 +646,26 @@ }, "description": "Specifies characteristics of the document to be returned for this request." }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "Op950Detail": { "type": "object", "properties": { @@ -695,6 +718,9 @@ }, "closeDocumentSpecification": { "$ref": "#/components/schemas/CloseDocumentSpecification" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, diff --git a/resources/models/locations-search/v1.json b/resources/models/locations-search/v1.json index 214e213e..3c8cece2 100644 --- a/resources/models/locations-search/v1.json +++ b/resources/models/locations-search/v1.json @@ -3,7 +3,7 @@ "/location/v1/locations": { "post": { "summary": "Find Locations", - "description": "Use this endpoint to search for nearest FedEx locations by address, geographicccc coordinates, or phone numberrrr. You can also narrow your search by type of location and services offered. It returns up to 75 locations within a 50-mile radius for the address used in the search criteria. Results are based on current date and time. Supports all FedEx operating companies and countries, dependent upon being able to get a valid geolocation for a given set of criteria.
    Note: You must specify landline numbers only, when searching for the nearest FedEx locations using phone number.
    Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", + "description": "Use this endpoint to search for FedEx locations by address, geographic coordinates, or phone number. You can also narrow your search by type of location and services offered. It returns up to 75 locations within a 50-mile radius for the address used in the search criteria. Results are based on current date and time. Supports all FedEx operating companies and countries, dependent upon being able to get a valid geolocation for a given set of criteria.
    Note: You must specify landline numbers only, when searching for the nearest FedEx locations using phone number.
    Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", "operationId": "Find Location", "parameters": [ { @@ -394,6 +394,30 @@ "type": "boolean", "description": "Get a call.
    Valid values: True, False.", "example": false + }, + "packagingType": { + "type": "string", + "description": "The FedEx Package Type", + "example": "FEDEX_PAK" + }, + "totalDeclaredValue": { + "description": "This is the total declared value of all of the packages for the shipment", + "$ref": "#/components/schemas/Amounts" + }, + "totalCustomsValue": { + "description": "This is the total customs value of all of the packages for the shipment", + "$ref": "#/components/schemas/Amounts" + }, + "paymentType": { + "type": "string", + "description": "Duties and Taxes Payor Payment Type", + "example": "SENDER", + "enum": [ + "SENDER", + "THIRD_PARTY", + "RECIPIENT", + "COLLECT" + ] } } }, @@ -697,6 +721,16 @@ "dimensions": { "description": "Indicate the dimensions of the package.
    Following conditions will apply:
    • Dimensions are optional but when added, then all three dimensions must be indicated.
    • Dimensions are required with YOUR_PACKAGING package type.
    Note: The maximum/minimum dimension values varies based on the services and the packaging types.
    Refer FedEx Service Guide for service details related to DIM Weighting for FedEx Express and oversize conditions for FedEx Express and FedEx Ground.", "$ref": "#/components/schemas/Dimensions" + }, + "serviceOptions": { + "type": "array", + "description": "Provide all the service Options for this package", + "example": [ + "DRY_ICE" + ], + "items": { + "type": "string" + } } }, "example": { @@ -709,7 +743,10 @@ "width": 40, "units": "IN", "height": 70 - } + }, + "serviceOptions": [ + "DRY_ICE" + ] } }, "Weight": { @@ -776,6 +813,20 @@ "units": "CM" } }, + "Amounts": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "example": 100 + }, + "currency": { + "type": "string", + "example": "USD" + } + }, + "description": "The package dimension limits supported at the location." + }, "LoccResponseVO": { "type": "object", "properties": { diff --git a/resources/models/open-ship/v1.json b/resources/models/open-ship/v1.json index e1d6ac29..6dedd7e3 100644 --- a/resources/models/open-ship/v1.json +++ b/resources/models/open-ship/v1.json @@ -2214,6 +2214,9 @@ "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" }, + "version": { + "$ref": "#/components/schemas/Version" + }, "openShipmentAction": { "$ref": "#/components/schemas/OpenShipAction" }, @@ -2233,7 +2236,8 @@ "requestedPackageLineItems", "serviceType", "shipper", - "shippingChargesPayment" + "shippingChargesPayment", + "labelSpecification" ], "type": "object", "properties": { @@ -2372,6 +2376,9 @@ "items": { "$ref": "#/components/schemas/RequestedPackageLineItem" } + }, + "labelSpecification": { + "$ref": "#/components/schemas/LabelSpecification" } }, "description": "The detailed transaction data for the requested Open Shipment." @@ -3481,9 +3488,90 @@ }, "usmcaDetail": { "$ref": "#/components/schemas/UsmcaDetail" + }, + "clearanceItemDetail": { + "type": "array", + "description": "Array of clearance item details including manufacturer info for customs clearance.", + "items": { + "$ref": "#/components/schemas/ClearanceItemDetail" + } + } + } + }, + "ClearanceItemDetail": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "Role in producing or supplying the item/commodity", + "example": "MANUFACTURER", + "enum": [ + "MANUFACTURER" + ] + }, + "id": { + "type": "string", + "description": "Unique identifier of the manufacturer of the commodity.
    For shipments to United States, refer to U.S. Customs and Border Protection website.
    Example: USGRE98BIR", + "example": "USGRE98BIR" + }, + "contact": { + "$ref": "#/components/schemas/ClearanceItemDetail_contact" + }, + "address": { + "$ref": "#/components/schemas/ClearanceItemDetail_address" } } }, + "ClearanceItemDetail_contact": { + "type": "object", + "properties": { + "companyName": { + "type": "string", + "description": "Legal name of the manufacturer of the commodity.
    Example: THE GREENHOUSE", + "example": "THE GREENHOUSE" + } + }, + "description": "Contact details of the manufacturer." + }, + "ClearanceItemDetail_address": { + "type": "object", + "properties": { + "streetLines": { + "type": "array", + "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included.
    Example: 98 Royal Crescent", + "items": { + "type": "string", + "example": "[\"98 Royal Crescent\"]" + } + }, + "city": { + "type": "string", + "description": "The name of city, town of the recipient.
    Example: Birmingham", + "example": "Birmingham" + }, + "stateOrProvinceCode": { + "type": "string", + "description": "It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country.
    Example: CA", + "example": "CA" + }, + "postalCode": { + "type": "string", + "description": "The US State and Canada Province codes. The Format and presence of this field may vary depending on the country.
    Example: 35209", + "example": "35209" + }, + "countryCode": { + "type": "string", + "description": "The two-letter code used to identify a country.
    Example: US", + "example": "US" + }, + "residential": { + "type": "boolean", + "description": "Indicate whether this address is Residential (as opposed to Commercial).
    Valid Values: True or False.", + "example": false + } + }, + "description": "Address of the manufacturer" + }, "AdditionalMeasures": { "type": "object", "properties": { @@ -4157,6 +4245,17 @@ } }, "OpenShipAction": { + "type": "string", + "description": "Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

    Here are the values:

    • CREATE_PACKAGE - Use CREATE_PACKAGE option to create Open Shipment.
    • STRONG_VALIDATION \u2013 Full shipment edits: any edit that fails will cause the transaction to fail. If the transaction is successful, a tracking number may be returned and the transaction will be saved to the database (committed).
    • WEAK_VALIDATION - Full shipment edits: any edit that fails will return errors but the transaction does not fail. The tracking number is returned and the transaction is saved in the database if the core edits are passed. Fix errors with the ModifyRequests transaction using the Index and returned tracking number.
    • PROVIDE_DOCUMENTS_INCREMENTALLY - Used in the Print as You Go (PASGO) flow to print labels incrementally as packages are added to an open shipment.

    ", + "example": "CREATE_PACKAGE", + "enum": [ + "STRONG_VALIDATION", + "WEAK_VALIDATION", + "CREATE_PACKAGE", + "PROVIDE_DOCUMENTS_INCREMENTALLY" + ] + }, + "OpenShipmentAction_1": { "type": "string", "description": "Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

    Here are the values:

    • CREATE_PACKAGE - Use CREATE_PACKAGE option to create Open Shipment.
    • STRONG_VALIDATION \u2013 Full shipment edits: any edit that fails will cause the transaction to fail. If the transaction is successful, a tracking number may be returned and the transaction will be saved to the database (committed).
    • WEAK_VALIDATION - Full shipment edits: any edit that fails will return errors but the transaction does not fail. The tracking number is returned and the transaction is saved in the database if the core edits are passed. Fix errors with the ModifyRequests transaction using the Index and returned tracking number.

    ", "example": "CREATE_PACKAGE", @@ -4215,50 +4314,6 @@ }, "description": "The response elements received when a shipment is created." }, - "TransactionOpenShipmentOutputVO": { - "type": "object", - "properties": { - "serviceType": { - "type": "string", - "description": "Indicate the FedEx serviceType used for this shipment. The results will be filtered by the serviceType value indicated.
    Example: STANDARD_OVERNIGHT
    click here to see Service Types", - "example": "FEDEX_2_DAY_FREIGHT" - }, - "shipDatestamp": { - "type": "string", - "description": "This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
    Format [YYYY-MM-DD].
    Example: 2019-10-14", - "example": "2010-03-04" - }, - "serviceCategory": { - "type": "string", - "description": "Indicates service category.
    Example: EXPRESS", - "example": "EXPRESS" - }, - "serviceName": { - "type": "string", - "description": "Describes the service name for the shipment.
    Example: FedEx Ground", - "example": "FedEx 2 Day Freight" - }, - "alerts": { - "type": "array", - "description": "These are alert details received in the response.", - "items": { - "$ref": "#/components/schemas/Alert" - } - }, - "completedShipmentDetail": { - "$ref": "#/components/schemas/CompletedShipmentDetail" - }, - "shipmentAdvisoryDetails": { - "$ref": "#/components/schemas/ShipmentAdvisoryDetails" - }, - "masterTrackingNumber": { - "type": "string", - "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
    Example: 794953535000", - "example": "794953535000" - } - }, - "description": "Specifies shipping transaction output details" - }, "Alert": { "type": "object", "properties": { @@ -5913,7 +5968,10 @@ "$ref": "#/components/schemas/OpenshipmentRequestedShipment" }, "openShipmentAction": { - "$ref": "#/components/schemas/OpenShipAction" + "$ref": "#/components/schemas/OpenShipmentAction_1" + }, + "version": { + "$ref": "#/components/schemas/Version" }, "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" @@ -6001,12 +6059,23 @@ }, "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" + }, + "openShipmentAction": { + "type": "string", + "description": "Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

    Here are the value:

    • PROVIDE_DOCUMENTS_INCREMENTALLY- Used in the Print as You Go (PASGO) flow to print labels incrementally as packages are added to an open shipment.

    ", + "example": "PROVIDE_DOCUMENTS_INCREMENTALLY", + "enum": [ + "PROVIDE_DOCUMENTS_INCREMENTALLY" + ] } } }, "LABELRESPONSEOPTIONS": { "type": "string", - "description": "Specify whether the encoded bytecode or the label URL to be returned in the response.

    Valid values:

    • LABEL – Indicates request is for encoded bytecode.
    • URL_ONLY – Indicates label URL request.
    Note: For asynchronous shipment (More than 40 packages) request only the value LABEL is suported.



    Note: With URL_ONLY option, the URL once created will be active for 12 hours.", + "description": "Specify whether the encoded bytecode or the label URL to be returned in the response.

    Valid values:

    • LABEL – Indicates request is for encoded bytecode.
    • URL_ONLY – Indicates label URL request.

    Note:

    • For asynchronous shipment (More than 40 packages) request only the value LABEL is supported.
    • With URL_ONLY option, the URL once created will be active for 12 hours.
    • Label will be returned as Base64 ONLY when openShipmentAction is PROVIDE_DOCUMENTS_INCREMENTALLY

    ", "example": "LABEL", "enum": [ "URL_ONLY", @@ -6813,64 +6882,6 @@ }, "description": "The response elements received when a shipment is created." }, - "TransactionShipmentOutputVO": { - "type": "object", - "properties": { - "serviceType": { - "type": "string", - "description": "Indicate the FedEx serviceType used for this shipment. The results will be filtered by the serviceType value indicated.
    Example: STANDARD_OVERNIGHT
    click here to see Service Types", - "example": "STANDARD_OVERNIGHT" - }, - "shipDatestamp": { - "type": "string", - "description": "This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
    Format [YYYY-MM-DD].
    Example: 2019-10-14", - "example": "2010-03-04" - }, - "serviceCategory": { - "type": "string", - "description": "Indicates the Service Category.
    Example: EXPRESS", - "example": "EXPRESS" - }, - "shipmentDocuments": { - "type": "array", - "description": "These are shipping document details.", - "items": { - "$ref": "#/components/schemas/LabelResponseVO" - } - }, - "pieceResponses": { - "type": "array", - "description": "These are pieces information received in the response.", - "items": { - "$ref": "#/components/schemas/PieceResponse" - } - }, - "serviceName": { - "type": "string", - "description": "This is the service name associated with the shipment.
    Example: FedEx Ground", - "example": "FedEx 2 Day Freight" - }, - "alerts": { - "type": "array", - "description": "These are alert details received in the response.", - "items": { - "$ref": "#/components/schemas/Alert" - } - }, - "completedShipmentDetail": { - "$ref": "#/components/schemas/CompletedShipmentDetail" - }, - "shipmentAdvisoryDetails": { - "$ref": "#/components/schemas/ShipmentAdvisoryDetails" - }, - "masterTrackingNumber": { - "type": "string", - "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
    Example: 794953535000", - "example": "794953535000" - } - }, - "description": "Specifies shipping transaction output details" - }, "LabelResponseVO": { "type": "object", "properties": { @@ -6938,169 +6949,47 @@ }, "description": "These are shipping document/label specific information." }, - "PieceResponse": { + "TransactionDetailVO": { "type": "object", "properties": { - "netChargeAmount": { - "type": "number", - "description": "Indicates the net charges amount.
    Example: 21.45", - "format": "double", - "example": 21.45 - }, "transactionDetails": { - "type": "array", - "description": "Indicates data received that governs data payload language/translations. The TransactionDetail from the request is echoed back to the caller in the corresponding reply.", - "items": { - "$ref": "#/components/schemas/TransactionDetailVO" - } - }, - "packageDocuments": { - "type": "array", - "description": "These are package documents returned in the response.", - "items": { - "$ref": "#/components/schemas/LabelResponseVO" - } - }, - "acceptanceTrackingNumber": { "type": "string", - "description": "Indicates the acceptance tracking number.
    Example: 7949XXXXX5000", - "example": "794953535000" + "description": "Includes data returned which governs data payload language/translations. The TransactionDetail from the request is echoed back to the caller in the corresponding reply.
    Example: transactionDetails", + "example": "transactionDetails" }, - "serviceCategory": { + "transactionId": { "type": "string", - "description": "Indicates the service category.", - "example": "EXPRESS", - "enum": [ - "EXPRESS", - "GROUND", - "EXPRESS_FREIGHT", - "FREIGHT", - "SMARTPOST", - "EXPRESS_PARCEL", - "NULL" - ] + "description": "This element has a unique identifier added in your request, helps you match the request to the reply. Maximum of 40 characters allowed.
    Example: XXXX_XXX123XXXXX.", + "example": "12345" + } + } + }, + "FullSchema-modifyPackageInOpenShipment": { + "required": [ + "accountNumber", + "index", + "requestedPackageLineItem", + "trackingId" + ], + "type": "object", + "properties": { + "requestedPackageLineItem": { + "description": "Contains the data for the package that is to be modified in the open shipment.", + "$ref": "#/components/schemas/RequestedPackageLineItem" }, - "listCustomerTotalCharge": { + "index": { "type": "string", - "description": "Indicates total charges applicable to the customer.
    Example: listCustomerTotalCharge", - "example": "listCustomerTotalCharge" + "description": "This is a unique value assigned to the already created Open Shipment. If this isn\u2019t available then provide the master tracking number.
    Example: Test1234", + "example": "Test1234" }, - "deliveryTimestamp": { - "type": "string", - "description": "Indicates delivery date.
    Example: 2012-09-23", - "example": "2012-09-23" + "OpenShipAction": { + "$ref": "#/components/schemas/OpenShipmentAction_1" }, - "trackingIdType": { - "type": "string", - "description": "Indicates the type of the tracking identifier.", - "example": "FEDEX" + "accountNumber": { + "$ref": "#/components/schemas/PartyAccountNumber" }, - "additionalChargesDiscount": { - "type": "number", - "description": "These are additional charges or discounts.
    Example: 621.45", - "format": "double", - "example": 621.45 - }, - "netListRateAmount": { - "type": "number", - "description": "Indicates the net List rate amount.
    Example: 1.45", - "format": "double", - "example": 1.45 - }, - "baseRateAmount": { - "type": "number", - "description": "Specifies the base rate amount.
    Example: 321.45", - "format": "double", - "example": 321.45 - }, - "packageSequenceNumber": { - "type": "integer", - "description": "Indicates package sequence number.
    Example: 215", - "format": "int32", - "example": 215 - }, - "netDiscountAmount": { - "type": "number", - "description": "Specifies the net discount amount.
    Example: 121.45", - "format": "double", - "example": 121.45 - }, - "codcollectionAmount": { - "type": "number", - "description": "Specifies the Collect on Delivery collection amount.
    Example: 231.45", - "format": "double", - "example": 231.45 - }, - "masterTrackingNumber": { - "type": "string", - "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
    Example: 794XXXXX5000", - "example": "794953535000" - }, - "acceptanceType": { - "type": "string", - "description": "Indicates acceptance type.", - "example": "acceptanceType" - }, - "trackingNumber": { - "type": "string", - "description": "This is a tracking number associated with this package.
    Example: 49XXX0000XXX20032835", - "example": "794953535000" - }, - "successful": { - "type": "boolean", - "description": "Returns true if the responses are successful otherwise false.", - "example": true - }, - "customerReferences": { - "type": "array", - "description": "These are additional customer reference data.
    Note: The groupPackageCount must be specified to retrieve customer references.", - "items": { - "$ref": "#/components/schemas/CustomerReference" - } - } - }, - "description": "Piece Response information." - }, - "TransactionDetailVO": { - "type": "object", - "properties": { - "transactionDetails": { - "type": "string", - "description": "Includes data returned which governs data payload language/translations. The TransactionDetail from the request is echoed back to the caller in the corresponding reply.
    Example: transactionDetails", - "example": "transactionDetails" - }, - "transactionId": { - "type": "string", - "description": "This element has a unique identifier added in your request, helps you match the request to the reply. Maximum of 40 characters allowed.
    Example: XXXX_XXX123XXXXX.", - "example": "12345" - } - } - }, - "FullSchema-modifyPackageInOpenShipment": { - "required": [ - "accountNumber", - "index", - "requestedPackageLineItem", - "trackingId" - ], - "type": "object", - "properties": { - "requestedPackageLineItem": { - "description": "Contains the data for the package that is to be modified in the open shipment.", - "$ref": "#/components/schemas/RequestedPackageLineItem" - }, - "index": { - "type": "string", - "description": "This is a unique value assigned to the already created Open Shipment. If this isn\u2019t available then provide the master tracking number.
    Example: Test1234", - "example": "Test1234" - }, - "shipAction": { - "description": "Allowed values are STRONG_VALIDATION, PROVIDE_DOCUMENTS_INCREMENTALLY", - "example": "STRONG_VALIDATION", - "$ref": "#/components/schemas/OpenShipAction" - }, - "accountNumber": { - "$ref": "#/components/schemas/PartyAccountNumber" + "version": { + "$ref": "#/components/schemas/Version" }, "trackingId": { "$ref": "#/components/schemas/TrackingId" @@ -7169,14 +7058,15 @@ "description": "This is a unique value assigned to the already created Open Shipment. If this isn\u2019t available then provide the master tracking number.
    Example: Test1234", "example": "Test1234" }, - "shipAction": { - "description": "There are Ship actions as part of processing the shipment.", - "example": "STRONG_VALIDATION", - "$ref": "#/components/schemas/OpenShipmentAction" + "OpenShipAction": { + "$ref": "#/components/schemas/OpenShipmentAction_1" }, "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" }, + "version": { + "$ref": "#/components/schemas/Version" + }, "requestedPackageLineItems": { "type": "array", "description": "These are package line item details in the shipment. ", @@ -7242,6 +7132,9 @@ "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" }, + "version": { + "$ref": "#/components/schemas/Version" + }, "trackingIds": { "type": "array", "description": "One or more tracking IDs, for which the packages to be removed from the shipment.", @@ -7305,6 +7198,9 @@ }, "trackingId": { "$ref": "#/components/schemas/TrackingId" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -7356,6 +7252,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -7410,6 +7309,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -8075,6 +7977,29 @@ }, "accountNumber": { "$ref": "#/components/schemas/PartyAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" + } + } + }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" } } }, @@ -8168,7 +8093,7 @@ "properties": { "value": { "type": "string", - "description": "Conditional.
    The account number value.
    Max Length is 9.
    Example: 12XXXXX89

    NOTE:- FedEx Account number is required for FedEx International Connect Plus (FICP) service shipments from APAC to US or PR with duty & tax Bill-to recipient:
    if any of the shipment commodities\u2019 Country of Manufacture is CN/HK" + "description": "Conditional.
    The account number value.
    Max Length is 9.
    Example: 12XXXXX89
    NOTE: A FedEx account number is required for FedEx International Connect Plus (FICP) service non-document shipments. This applies to shipments from APAC countries and territories to U.S. or PR with duty and tax bill-to recipient if any shipment commodities\u2019 country of manufacture is AU, CN, HK, ID, JP, KR, MO, MY, NZ, PH, SG, TH, TW, VN (APAC countries and territories)." } }, "description": "This is FedEx Account number details.", @@ -8263,6 +8188,129 @@ } } }, + "PieceResponse": { + "type": "object", + "properties": { + "netChargeAmount": { + "type": "number", + "description": "Indicates the net charges amount.
    Example: 21.45", + "format": "double", + "example": 21.45 + }, + "transactionDetails": { + "type": "array", + "description": "Indicates data received that governs data payload language/translations. The TransactionDetail from the request is echoed back to the caller in the corresponding reply.", + "items": { + "$ref": "#/components/schemas/TransactionDetailVO" + } + }, + "packageDocuments": { + "type": "array", + "description": "These are package documents returned in the response.", + "items": { + "$ref": "#/components/schemas/LabelResponseVO" + } + }, + "acceptanceTrackingNumber": { + "type": "string", + "description": "Indicates the acceptance tracking number.
    Example: 7949XXXXX5000", + "example": "794953535000" + }, + "serviceCategory": { + "type": "string", + "description": "Indicates the service category.", + "example": "EXPRESS", + "enum": [ + "EXPRESS", + "GROUND", + "EXPRESS_FREIGHT", + "FREIGHT", + "SMARTPOST", + "EXPRESS_PARCEL", + "NULL" + ] + }, + "listCustomerTotalCharge": { + "type": "string", + "description": "Indicates total charges applicable to the customer.
    Example: listCustomerTotalCharge", + "example": "listCustomerTotalCharge" + }, + "deliveryTimestamp": { + "type": "string", + "description": "Indicates delivery date.
    Example: 2012-09-23", + "example": "2012-09-23" + }, + "trackingIdType": { + "type": "string", + "description": "Indicates the type of the tracking identifier.", + "example": "FEDEX" + }, + "additionalChargesDiscount": { + "type": "number", + "description": "These are additional charges or discounts.
    Example: 621.45", + "format": "double", + "example": 621.45 + }, + "netListRateAmount": { + "type": "number", + "description": "Indicates the net List rate amount.
    Example: 1.45", + "format": "double", + "example": 1.45 + }, + "baseRateAmount": { + "type": "number", + "description": "Specifies the base rate amount.
    Example: 321.45", + "format": "double", + "example": 321.45 + }, + "packageSequenceNumber": { + "type": "integer", + "description": "Indicates package sequence number.
    Example: 215", + "format": "int32", + "example": 215 + }, + "netDiscountAmount": { + "type": "number", + "description": "Specifies the net discount amount.
    Example: 121.45", + "format": "double", + "example": 121.45 + }, + "codcollectionAmount": { + "type": "number", + "description": "Specifies the Collect on Delivery collection amount.
    Example: 231.45", + "format": "double", + "example": 231.45 + }, + "masterTrackingNumber": { + "type": "string", + "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
    Example: 794XXXXX5000", + "example": "794953535000" + }, + "acceptanceType": { + "type": "string", + "description": "Indicates acceptance type.", + "example": "acceptanceType" + }, + "trackingNumber": { + "type": "string", + "description": "This is a tracking number associated with this package.
    Example: 49XXX0000XXX20032835", + "example": "794953535000" + }, + "successful": { + "type": "boolean", + "description": "Returns true if the responses are successful otherwise false.", + "example": true + }, + "customerReferences": { + "type": "array", + "description": "These are additional customer reference data.
    Note: The groupPackageCount must be specified to retrieve customer references.", + "items": { + "$ref": "#/components/schemas/CustomerReference" + } + } + }, + "description": "Piece Response information." + }, "HazardousCommodityQuantityDetail": { "required": [ "amount", @@ -8521,6 +8569,115 @@ } } }, + "TransactionOpenShipmentOutputVO": { + "type": "object", + "properties": { + "serviceType": { + "type": "string", + "description": "Indicate the FedEx serviceType used for this shipment. The results will be filtered by the serviceType value indicated.
    Example: STANDARD_OVERNIGHT
    click here to see Service Types", + "example": "FEDEX_2_DAY_FREIGHT" + }, + "shipDatestamp": { + "type": "string", + "description": "This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
    Format [YYYY-MM-DD].
    Example: 2019-10-14", + "example": "2010-03-04" + }, + "serviceCategory": { + "type": "string", + "description": "Indicates service category.
    Example: EXPRESS", + "example": "EXPRESS" + }, + "pieceResponses": { + "type": "array", + "description": "These are pieces information received in the response.", + "items": { + "$ref": "#/components/schemas/PieceResponse" + } + }, + "serviceName": { + "type": "string", + "description": "Describes the service name for the shipment.
    Example: FedEx Ground", + "example": "FedEx 2 Day Freight" + }, + "alerts": { + "type": "array", + "description": "These are alert details received in the response.", + "items": { + "$ref": "#/components/schemas/Alert" + } + }, + "completedShipmentDetail": { + "$ref": "#/components/schemas/CompletedShipmentDetail" + }, + "shipmentAdvisoryDetails": { + "$ref": "#/components/schemas/ShipmentAdvisoryDetails" + }, + "masterTrackingNumber": { + "type": "string", + "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
    Example: 794953535000", + "example": "794953535000" + } + }, + "description": "Specifies shipping transaction output details" + }, + "TransactionShipmentOutputVO": { + "type": "object", + "properties": { + "serviceType": { + "type": "string", + "description": "Indicate the FedEx serviceType used for this shipment. The results will be filtered by the serviceType value indicated.
    Example: STANDARD_OVERNIGHT
    click here to see Service Types", + "example": "STANDARD_OVERNIGHT" + }, + "shipDatestamp": { + "type": "string", + "description": "This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
    Format [YYYY-MM-DD].
    Example: 2019-10-14", + "example": "2010-03-04" + }, + "serviceCategory": { + "type": "string", + "description": "Indicates the Service Category.
    Example: EXPRESS", + "example": "EXPRESS" + }, + "shipmentDocuments": { + "type": "array", + "description": "These are shipping document details.", + "items": { + "$ref": "#/components/schemas/LabelResponseVO" + } + }, + "pieceResponses": { + "type": "array", + "description": "These are pieces information received in the response.", + "items": { + "$ref": "#/components/schemas/PieceResponse" + } + }, + "serviceName": { + "type": "string", + "description": "This is the service name associated with the shipment.
    Example: FedEx Ground", + "example": "FedEx 2 Day Freight" + }, + "alerts": { + "type": "array", + "description": "These are alert details received in the response.", + "items": { + "$ref": "#/components/schemas/Alert" + } + }, + "completedShipmentDetail": { + "$ref": "#/components/schemas/CompletedShipmentDetail" + }, + "shipmentAdvisoryDetails": { + "$ref": "#/components/schemas/ShipmentAdvisoryDetails" + }, + "masterTrackingNumber": { + "type": "string", + "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
    Example: 794953535000", + "example": "794953535000" + } + }, + "description": "Specifies shipping transaction output details" + }, "PartyAddress": { "required": [ "city", @@ -8532,7 +8689,7 @@ "properties": { "streetLines": { "type": "array", - "description": "This is the combination of number, street name, etc. Maximum length per line is 35.
    Example: 10 FedEx Parkway, Suite 302.

    Note:

    • At least one line is required.
    • Streetlines more than 3 will be ignored.
    • Empty lines should not be included
    • For SmartPost Shipments, only 30 characters from the individual street lines will be printed on the labels.

    ", + "description": "This is the Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
    Note - For FedEx Ground Economy, a maximum of 30 characters will be printed on the label, excess characters will be truncated.", "example": [ "1550 Union Blvd", "Suite 302" @@ -8954,7 +9111,7 @@ "$ref": "#/components/schemas/ResponsiblePartyParty" } }, - "description": "Indicate the payer Information responsible for paying for the shipment.
    Note: credit card payment is not applicable.
    Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT.", + "description": "Indicate the payer Information responsible for paying for the shipment.
    Note: credit card payment is not applicable.
    Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY. ", "example": { "responsibleParty": { "address": { diff --git a/resources/models/pickup-request/v1.json b/resources/models/pickup-request/v1.json index b17168f2..cbe0ee6e 100644 --- a/resources/models/pickup-request/v1.json +++ b/resources/models/pickup-request/v1.json @@ -720,11 +720,6 @@ "description": "The confirmation number provided to the customer when a pickup is requested
    Example : 3001", "example": "3001" }, - "message": { - "type": "string", - "description": "Human-readable text that explains pickup notification
    Example: Courier on the way", - "example": "Courier on the way" - }, "location": { "type": "string", "description": "The location from where the package will be picked up.

    Note: The location will only be returned for Express Pickup.

    Example: COSA", @@ -862,10 +857,81 @@ }, "pickupNotificationDetail": { "$ref": "#/components/schemas/PickupNotificationDetail" + }, + "pickupChargesPayment": { + "$ref": "#/components/schemas/PickupChargesPayment" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "Use this endpoint to create a pickup request." }, + "PickupChargesPayment": { + "type": "object", + "description": "Specifies how the pickup charges will be paid.", + "properties": { + "paymentType": { + "type": "string", + "description": "Type of payment for the pickup charges.", + "enum": [ + "ACCOUNT", + "CASH", + "COLLECT", + "CHECK", + "CREDIT_CARD", + "RECIPIENT", + "SENDER", + "THIRD_PARTY" + ], + "example": "ACCOUNT" + }, + "payor": { + "$ref": "#/components/schemas/Payor" + }, + "payorType": { + "$ref": "#/components/schemas/PayorType" + } + } + }, + "Payor": { + "type": "object", + "description": "Details about the party responsible for payment.", + "properties": { + "responsibleParty": { + "type": "object", + "description": "The entity paying for the pickup charges.", + "properties": { + "accountNumber": { + "type": "object", + "description": "The FedEx account number of the responsible party.", + "properties": { + "value": { + "type": "string", + "description": "Conditional.
    The account number value. Max Length is 9.", + "example": "XXXXXX789" + }, + "key": { + "type": "string", + "description": "The account key associated with this account number.", + "example": "d53b8011d262ae762da1c9a5a71XXXXX" + } + } + } + } + } + } + }, + "PayorType": { + "type": "string", + "description": "Identifies the role of the party paying for the pickup.", + "enum": [ + "RECIPIENT", + "SENDER", + "THIRD_PARTY" + ], + "example": "SENDER" + }, "AccountNumber": { "type": "object", "properties": { @@ -1409,6 +1475,9 @@ "DOMESTIC", "INTERNATIONAL" ] + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "These are pickup availability request elements." @@ -1544,9 +1613,6 @@ "FDXG" ] }, - "accountAddressOfRecord": { - "$ref": "#/components/schemas/Address" - }, "scheduledDate": { "type": "string", "description": "Indicates the date the pickup dispatch occurs.
    Format YYYY-MM-DD
    Example: 2019-10-15", @@ -1556,10 +1622,33 @@ "type": "string", "description": "The FedEx Express location identifier responsible for processing the pickup request. This is returned in the CreatePickup response and is required to cancel a FedEx Express dispatch.Required only for FedEx Express Pickups. Optional for FedEx Ground. Example: LOSA", "example": "LOSA" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "This is a placeholder for cancelled pickup request elements." }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "CXSError": { "type": "object", "properties": { @@ -1661,9 +1750,11 @@ "properties": { "streetLines": { "type": "array", - "description": "This is a combination of number, street name, etc.
    Note: At least one line is required and streetlines more than 3 will be ignored. Empty lines should not be included.
    Example: [\\\"10 FedEx Parkway\\\", \\\"Suite 302\\\"]", + "description": "This is a combination of number, street name, etc.
    Note: At least one line is required. Empty lines should not be included. Minimum length is 3 and maximum length is 35.
    Example: [\\\"10 FedEx Parkway\\\", \\\"Suite 302\\\"]", "items": { "type": "string", + "minLength": 3, + "maxLength": 35, "example": "[[\"123 Ship Street\"]]" } }, @@ -1728,9 +1819,11 @@ "properties": { "streetLines": { "type": "array", - "description": "Specify Street line details for the given address
    Example :[\\\"10 FedEx Parkway\\\", \\\"Suite 302\\\"]", + "description": " This is a combination of number, street name, etc.
    Note: At least one line is required. Empty lines should not be included. Minimum length is 3 and maximum length is 35.
    Example :[\\\"10 FedEx Parkway\\\", \\\"Suite 302\\\"]", "items": { "type": "string", + "minLength": 3, + "maxLength": 35, "example": "[[\"123 Ship Street\"]]" } }, diff --git a/resources/models/postal-code-validation/v1.json b/resources/models/postal-code-validation/v1.json index 4ed2b10c..ae00c631 100644 --- a/resources/models/postal-code-validation/v1.json +++ b/resources/models/postal-code-validation/v1.json @@ -284,6 +284,9 @@ "type": "boolean", "description": "This element checks for mismatch between State/Province Code and Postal Code.
    • When the checkForMismatch is set TRUE, for U.S. and Canada: The values in State/Province Code are checked with respect to Postal Code provided. If these entries are valid, the response provides respective State/Province Code and Postal Code. In case of mismatch of Postal Code and State/Province Code an error message is displayed.
    • When the checkForMismatch is set FALSE, for U.S. and Canada: The values in State/Province Code are not checked with respect to Postal Code provided. Instead the given data is reflected in the response.

    For regions other than U.S and Canada regardless of the value of checkForMismatch the State/Province Code are checked with respect to the Postal Code and the response provides the respective State/Province Code and Postal Code.", "example": true + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements for validating a postal code." @@ -345,6 +348,26 @@ }, "description": "Indicates data returned in the postal validation reply." }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "Alert": { "type": "object", "properties": { diff --git a/resources/models/rates-transit-times/v1.json b/resources/models/rates-transit-times/v1.json index 6aeb0aea..921fc669 100644 --- a/resources/models/rates-transit-times/v1.json +++ b/resources/models/rates-transit-times/v1.json @@ -233,6 +233,125 @@ }, "components": { "schemas": { + "EdtCommodityTax": { + "description": "The shipment/package Duties and taxes.", + "type": "object", + "properties": { + "harmonizedCode": { + "description": "Harmonized code is used by customer to classify the product being shipped and define the duties and taxes to be paid.", + "type": "string", + "example": "harmonizedCode" + }, + "taxes": { + "$ref": "#/components/schemas/EdtTaxDetail" + }, + "total": { + "description": "Total of Duties and taxes", + "$ref": "#/components/schemas/Money" + } + } + }, + "AncillaryFeeAndTax": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "object", + "properties": { + "type": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "enum": [ + "CLEARANCE_ENTRY_FEE", + "GOODS_AND_SERVICES_TAX", + "HARMONIZED_SALES_TAX", + "OTHER" + ], + "example": "CLEARANCE_ENTRY_FEE" + }, + "description": { + "description": "Identifies the amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "list of AncillaryFees And Taxes", + "$ref": "#/components/schemas/Money" + } + } + }, + "Rebate": { + "type": "object", + "properties": { + "rebateType": { + "description": "The type of rebate.", + "type": "string", + "enum": [ + "BONUS", + "EARNED", + "OTHER" + ], + "example": "EARNED" + }, + "description": { + "description": "The description of the rebate", + "type": "string", + "example": "description" + }, + "amount": { + "description": "provides the calculated rebate amount based on customer details, transaction information, and applicable rules. ", + "$ref": "#/components/schemas/Money" + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "PickupDetail": { + "type": "object", + "properties": { + "readyDateTime": { + "type": "string", + "format": "date", + "description": "Pickup ready date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "latestPickupDateTime": { + "type": "string", + "format": "date", + "description": "Latest pickup date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "courierInstructions": { + "type": "string", + "description": "Special instructions for the courier", + "example": "Leave package at reception" + }, + "requestType": { + "$ref": "#/components/schemas/PickupRequestType" + }, + "requestSource": { + "$ref": "#/components/schemas/PickupRequestSourceType" + } + } + }, + "PickupRequestType": { + "type": "string", + "description": "Type of pickup request", + "enum": [ + "FUTURE_DAY", + "SAME_DAY" + ], + "example": "FUTURE_DAY" + }, + "PickupRequestSourceType": { + "type": "string", + "description": "Source of the pickup request", + "enum": [ + "AUTOMATION", + "CUSTOMER_SERVICE" + ], + "example": "AUTOMATION" + }, "RatcResponseVO": { "type": "object", "properties": { @@ -307,6 +426,20 @@ "totalVatCharge": 0, "totalNetFedExCharge": 445.54, "totalDutiesAndTaxes": 0, + "totalNetTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "totalNetFedExTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "pickupRateDetail": { + "rateType": "INCENTIVE", + "ratingBasis": "PACK_WEIGHT_BASED", + "pricingCode": "ACTUAL", + "fuelSurchargePercent": 90.8 + }, "totalNetChargeWithDutiesAndTaxes": 445.54, "totalDutiesTaxesAndFees": 0, "totalAncillaryFeesAndTaxes": 0, @@ -346,6 +479,20 @@ "totalVatCharge": 0, "totalNetFedExCharge": 445.54, "totalDutiesAndTaxes": 0, + "totalNetTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "totalNetFedExTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "pickupRateDetail": { + "rateType": "INCENTIVE", + "ratingBasis": "PACK_WEIGHT_BASED", + "pricingCode": "ACTUAL", + "fuelSurchargePercent": 90.8 + }, "totalNetChargeWithDutiesAndTaxes": 445.54, "totalDutiesTaxesAndFees": 0, "totalAncillaryFeesAndTaxes": 0, @@ -385,6 +532,20 @@ "totalVatCharge": 0, "totalNetFedExCharge": 341.13, "totalDutiesAndTaxes": 0, + "totalNetTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "totalNetFedExTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "pickupRateDetail": { + "rateType": "INCENTIVE", + "ratingBasis": "PACK_WEIGHT_BASED", + "pricingCode": "ACTUAL", + "fuelSurchargePercent": 90.8 + }, "totalNetChargeWithDutiesAndTaxes": 341.13, "totalDutiesTaxesAndFees": 0, "totalAncillaryFeesAndTaxes": 0, @@ -424,6 +585,20 @@ "totalVatCharge": 0, "totalNetFedExCharge": 341.13, "totalDutiesAndTaxes": 0, + "totalNetTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "totalNetFedExTransportationAndPickupCharge": { + "amount": 12.45, + "currency": "USD" + }, + "pickupRateDetail": { + "rateType": "INCENTIVE", + "ratingBasis": "PACK_WEIGHT_BASED", + "pricingCode": "ACTUAL", + "fuelSurchargePercent": 90.8 + }, "totalNetChargeWithDutiesAndTaxes": 341.13, "totalDutiesTaxesAndFees": 0, "totalAncillaryFeesAndTaxes": 0, @@ -1051,7 +1226,7 @@ }, { "serviceType": "FEDEX_GROUND", - "serviceName": "FedEx International Ground\ufffd", + "serviceName": "FedEx International Ground ", "packagingType": "YOUR_PACKAGING", "customerMessages": [ { @@ -1767,6 +1942,317 @@ "PREFERRED_CURRENCY" ] }, + "totalNetTransportationAndPickupCharge": { + "description": "Sum of totalNetCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of pickup.", + "$ref": "#/components/schemas/Money" + }, + "totalNetFedExTransportationAndPickupCharge": { + "description": "Sum of totalNetFedExCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of a pickup.", + "$ref": "#/components/schemas/Money" + }, + "pickupRateDetail": { + "description": "Charges associated with a scheduled shipment pickup", + "type": "object", + "properties": { + "rateType": { + "description": "Type used for this specific set of rate data.", + "type": "string", + "enum": [ + "INCENTIVE", + "NEGOTIATED", + "PAYOR_ACCOUNT_PACKAGE", + "PAYOR_ACCOUNT_SHIPMENT", + "PAYOR_CUSTOM_PACKAGE", + "PAYOR_CUSTOM_SHIPMENT", + "PAYOR_LIST_PACKAGE", + "PAYOR_LIST_SHIPMENT", + "PAYOR_RETAIL_PACKAGE", + "PAYOR_RETAIL_SHIPMENT", + "PREFERRED_ACCOUNT_PACKAGE", + "PREFERRED_ACCOUNT_SHIPMENT", + "PREFERRED_CUSTOM_PACKAGE", + "PREFERRED_CUSTOM_SHIPMENT", + "PREFERRED_INCENTIVE", + "PREFERRED_LIST_PACKAGE", + "PREFERRED_LIST_SHIPMENT", + "PREFERRED_NEGOTIATED", + "PREFERRED_RETAIL_PACKAGE", + "PREFERRED_RETAIL_SHIPMENT", + "RATED_ACCOUNT_PACKAGE", + "RATED_ACCOUNT_SHIPMENT", + "RATED_CUSTOM_PACKAGE", + "RATED_CUSTOM_SHIPMENT", + "RATED_LIST_PACKAGE", + "RATED_LIST_SHIPMENT", + "RATED_RETAIL_PACKAGE", + "RATED_RETAIL_SHIPMENT", + "UNKNOWN" + ], + "example": "PAYOR_ACCOUNT_PACKAGE" + }, + "rateScale": { + "type": "string", + "description": "Indicates the rate scale used.", + "example": "*USER IMS20160104 LD067110" + }, + "rateZone": { + "description": "Indicates the rate zone used (based on origin and destination).", + "type": "string", + "example": "CA003O" + }, + "ratingBasis": { + "description": "Allows clients to determine whether to add charges at the package level when Per Piece Rating details are returned.
    • SHIPMENT_WEIGHT_BASED - Indicates shipment weight is used to calculate the rate.

    • FLAT_RATE_PER_PAK - Indicates shipment is rated based on number of packs, weight would be considered for overweight surcharge but not for calculating shipment rate.

    • PACK_WEIGHT_BASED - Indicates individual package weight would be rated and aggregated to get shipment rate weight.
    ", + "type": "string", + "enum": [ + "SHIPMENT_WEIGHT_BASED", + "FLAT_RATE_PER_PAK", + "PACK_WEIGHT_BASED", + "UNKNOWN" + ], + "example": "SHIPMENT_WEIGHT_BASED" + }, + "pricingCode": { + "description": "Identifies the type of pricing used for this shipment.", + "type": "string", + "enum": [ + "ACTUAL", + "ALTERNATE", + "BASE", + "HUNDREDWEIGHT", + "HUNDREDWEIGHT_ALTERNATE", + "INTERNATIONAL_DISTRIBUTION", + "INTERNATIONAL_ECONOMY_SERVICE", + "LTL_FREIGHT", + "PACKAGE", + "SHIPMENT", + "SHIPMENT_FIVE_POUND_OPTIONAL", + "SHIPMENT_OPTIONAL", + "SPECIAL", + "UNKNOWN" + ], + "example": "ACTUAL" + }, + "minimumChargeType": { + "description": "provides the minimum charge type applicable to the rates.", + "type": "string", + "enum": [ + "CUSTOMER", + "CUSTOMER_FREIGHT_WEIGHT", + "EARNED_DISCOUNT", + "MIXED", + "RATE_SCALE", + "UNKNOWN" + ], + "example": "EARNED_DISCOUNT" + }, + "currencyExchangeRate": { + "$ref": "#/components/schemas/CurrencyExchangeRate" + }, + "specialRatingApplied": { + "type": "array", + "description": "Indicates which special rating cases applied to this shipment.", + "items": { + "type": "string", + "enum": [ + "FEDEX_ONE_RATE", + "FIXED_FUEL_SURCHARGE", + "IMPORT_PRICING" + ] + }, + "example": "FEDEX_ONE_RATE" + }, + "fuelSurchargePercent": { + "description": "Specify a fuel surcharge percentage.", + "format": "double", + "type": "number", + "example": 121 + }, + "pickupBaseChargeDescription": { + "description": "Will indicate the pickup charge description of the on call pickup", + "type": "string", + "enum": [ + "Regularly Scheduled Pickup Mon-Fri", + "Automated Pickup Mon-Fri", + "Same Day OC Pickup Mon-Fri (CS)", + "Same Day OC Pickup Mon-Fri (Online)", + "Fut. Day OC Pickup Mon-Fri (CS)", + "Fut. Day OC Pickup Mon-Fri (Online)", + "Regularly Scheduled Pickup Sat", + "Automated Pickup Sat", + "Same Day OC Pickup Sat (CS)", + "Same Day OC Pickup Sat (Online)", + "Fut. Day OC Pickup Sat (CS)", + "Fut. Day OC Pickup Sat (Online)", + "Regularly Scheduled Pickup Sun", + "Automated Pickup Sun", + "Same Day OC Pickup Sun (CS)", + "Same Day OC Pickup Sun (Online)", + "Fut. Day OC Pickup Sun (CS)", + "Fut. Day OC Pickup Sun (Online)", + "Residential On-Call Pickup Surcharge", + "Pickup Area Surcharge", + "Extended Pickup Area Surcharge", + "Remote Pickup Area Surcharge", + "Fuel Surcharge" + ], + "example": "Pickup Area Surcharge" + }, + "totalBaseCharge": { + "description": "Total base charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalFreightDiscounts": { + "description": "The total discounts used in the rate calculation.
    Example: 1257.26", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalNetFreight": { + "description": "This shipment's totalNetFreight.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalSurcharges": { + "description": "The sum of all surcharges on the package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalNetFedExCharge": { + "description": "This shipment's totalNetFedExCharge, which is totalNetFreight plus totalSurcharges (not including totalTaxes).", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalTaxes": { + "description": "The sum of all taxes on this package.
    Example: 1257.25", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalNetCharge": { + "description": "Total net charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalRebates": { + "description": "The total sum of all rebates applied to this package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalDutiesAndTaxes": { + "description": "The sum of shipment/package Duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalAncillaryFeesAndTaxes": { + "description": "Identifies the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalDutiesTaxesAndFees": { + "description": "The total amount of the duties and taxes plus the total ancillary fees and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "totalNetChargeWithDutiesAndTaxes": { + "description": "Total netChargesWithDutiesAndTaxes for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money" + } + ] + }, + "freightDiscounts": { + "description": "All rate discounts that apply to this shipment", + "type": "array", + "items": { + "$ref": "#/components/schemas/RateDiscount" + } + }, + "rebates": { + "description": "The all rebates applied to this package.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Rebate" + } + }, + "surcharges": { + "description": "The amount of surcharges applied to this shipment.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Surcharge" + } + }, + "taxes": { + "description": "List of taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tax" + } + }, + "dutiesAndTaxes": { + "description": "List of The shipment/package Duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdtCommodityTax" + } + }, + "ancillaryFeesAndTaxes": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AncillaryFeeAndTax" + } + }, + "variableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges" + } + ] + }, + "totalVariableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges" + } + ] + } + } + }, "ratedWeightMethod": { "type": "string", "description": "Indicates which weight was used for the rate.
    Example: 'ACTUAL'", @@ -1806,7 +2292,7 @@ "example": 445.54 }, "variableHandlingCharges": { - "$ref": "#/components/schemas/VariableHandlingCharges" + "$ref": "#/components/schemas/VariableHandlingCharges_2" }, "edtCharges": { "type": "array", @@ -1860,7 +2346,7 @@ ] }, "totalVariableHandlingCharges": { - "$ref": "#/components/schemas/VariableHandlingCharges" + "$ref": "#/components/schemas/VariableHandlingCharges_2" }, "totalVatCharge": { "type": "number", @@ -1906,29 +2392,11 @@ }, "description": "This object provides the shipment and package rating data in a rate request reply." }, - "VariableHandlingCharges": { - "type": "object", - "properties": { - "totalCustomerCharge": { - "type": "number", - "description": "Specifies the total customer assessed handling charges.
    Example: 445.54", - "format": "double", - "example": 445.54 - }, - "variableHandlingCharge": { - "type": "number", - "description": "The variable handling charge amount calculated based on the requested variable handling charge detail.
    Example: 403.2", - "format": "double", - "example": 403.2 - } - }, - "description": "The variable handling charge amount calculated based on the requested variable handling charge detail." - }, "EdtCharge": { "type": "object", "properties": { "edtTaxDetail": { - "$ref": "#/components/schemas/EdtTaxDetail" + "$ref": "#/components/schemas/EdtTaxDetail_2" }, "harmonizedCode": { "type": "string", @@ -1938,49 +2406,6 @@ }, "description": "estimated duties and tax charge" }, - "EdtTaxDetail": { - "type": "object", - "properties": { - "edtTaxType": { - "type": "string", - "description": "Specifies the Estimated duties and taxes type.
    Example: TaxType", - "example": "TaxType" - }, - "amount": { - "type": "number", - "description": "Specifies the amount for the estimated duties and taxes type.
    Example: 785.12", - "format": "double", - "example": 785.12 - }, - "taxableValue": { - "type": "number", - "description": "Specifies the Estimated duties and taxes taxable Value.
    Example: 562.23", - "format": "double", - "example": 562.23 - }, - "name": { - "type": "string", - "description": "Indicates the name for the Etd tax.", - "example": "name" - }, - "description": { - "type": "string", - "description": "Indicates the description for the Etd tax.", - "example": "description" - }, - "formula": { - "type": "string", - "description": "Indicates the formula.", - "example": "formula" - }, - "effectiveDate": { - "type": "string", - "description": "Specifies the Estimated duties and taxes effective date. Format [YYYY-MM-DD].
    Example: 2019-12-06", - "example": "2019-12-06" - } - }, - "description": "Specifies the Estimated duties and taxes detail." - }, "RatedPackageDetail": { "type": "object", "properties": { @@ -2050,7 +2475,7 @@ "type": "array", "description": "Specifies the list of all surcharges that apply to this package.", "items": { - "$ref": "#/components/schemas/Surcharge" + "$ref": "#/components/schemas/Surcharge_2" } }, "totalSurcharges": { @@ -2075,7 +2500,7 @@ "type": "array", "description": "All rate discounts that apply to this shipment.
    Click here to see Discounts", "items": { - "$ref": "#/components/schemas/RateDiscount" + "$ref": "#/components/schemas/RateDiscount_2" } } }, @@ -2179,7 +2604,7 @@ "type": "array", "description": "This is total discount used in the rate calculation.
    Click here to see Discounts", "items": { - "$ref": "#/components/schemas/RateDiscount" + "$ref": "#/components/schemas/RateDiscount_2" } }, "fuelSurchargePercent": { @@ -2206,14 +2631,14 @@ "type": "array", "description": "Indicates the surcharges applied to this shipment.", "items": { - "$ref": "#/components/schemas/Surcharge" + "$ref": "#/components/schemas/Surcharge_2" } }, "taxes": { "description": "List of taxes.", "type": "array", "items": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax_2" } } }, @@ -2798,6 +3223,17 @@ "requestedShipment": { "$ref": "#/components/schemas/RequestedShipment" }, + "processingOptions": { + "type": "array", + "description": "Array of processing options for the shipment.", + "items": { + "type": "string", + "example": "INCLUDE_PICKUPRATES", + "enum": [ + "INCLUDE_PICKUPRATES" + ] + } + }, "carrierCodes": { "type": "array", "description": "Specify the four letter code of a FedEx operating company that meets your requirements.
    Example: FDXE
    • FDXE - FedEx Express
    • FDXG - FedEx Ground
    • FXSP - FedEx SmartPost
    • FXCC - FedEx Custom Critical.
    ", @@ -2808,10 +3244,33 @@ "items": { "type": "string" } + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements for requesting a rate quote." }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "RateRequestControlParameters": { "type": "object", "properties": { @@ -2862,6 +3321,9 @@ "description": "The descriptive data for the physical shipper location from which the shipment originates.", "$ref": "#/components/schemas/RateParty" }, + "pickupDetail": { + "$ref": "#/components/schemas/PickupDetail" + }, "recipient": { "description": "Indicate the descriptive data for the recipient location to which the shipment is to be received.", "$ref": "#/components/schemas/RateParty" @@ -4079,77 +4541,14 @@ "value": 10 } }, - "Surcharge": { - "type": "object", - "properties": { - "amount": { - "type": "number", - "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.
    Example: 87.5", - "format": "double", - "example": 87.5 - }, - "level": { - "type": "string", - "description": "The level of surcharge.
    Example: level", - "example": "level" - }, - "name": { - "type": "string", - "description": "The localized name of the surcharge.
    Example: name", - "example": "name" - }, - "description": { - "type": "string", - "description": "The description of the surcharge.
    Example: description", - "example": "description" - }, - "type": { - "type": "string", - "description": "The type of surcharge.
    Example: type", - "example": "type" - } - } - }, - "RateDiscount": { - "type": "object", - "properties": { - "amount": { - "type": "number", - "description": "Indicates the amount for the rate discount.
    Example: 87.5", - "format": "double", - "example": 87.5 - }, - "name": { - "type": "string", - "description": "Indicate the name of the discount.Click here to see Discounts
    Example: name", - "example": "name" - }, - "description": { - "type": "string", - "description": "Indicates the description for the rate discount.
    Example: Description", - "example": "description" - }, - "type": { - "type": "string", - "description": "Indicates the type.
    Example: type", - "example": "type" - }, - "percent": { - "type": "number", - "description": "Indicates the percentage of the rate discount.
    Example: 10.5", - "format": "double", - "example": 10.5 - } - } - }, - "ShipmentLegRateDetail": { + "ShipmentLegRateDetail": { "type": "object", "properties": { "discounts": { "type": "array", "description": "Specifies the list of discounts.
    Click here to see Discounts", "items": { - "$ref": "#/components/schemas/RateDiscount" + "$ref": "#/components/schemas/RateDiscount_2" } }, "pricingCode": { @@ -4166,7 +4565,7 @@ "type": "array", "description": "Specifies the list of surcharges.
    Valid value is:
  • PEAK
  • PEAK_ADDTIONAL_HANDLING
  • PEAK_OVERSIZE
  • PEAK_RESIDENTIAL_DELIVERY
  • ", "items": { - "$ref": "#/components/schemas/Surcharge" + "$ref": "#/components/schemas/Surcharge_2" } }, "specialRatingApplied": { @@ -4180,7 +4579,7 @@ "type": "array", "description": "Specifies the list of taxes.", "items": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax_2" } }, "rateScale": { @@ -4213,33 +4612,6 @@ } } }, - "Tax": { - "description": "Tax surcharge details", - "type": "object", - "properties": { - "amount": { - "description": "Tax amount.
    Example: 408.97", - "format": "double", - "type": "number", - "example": 408.97 - }, - "name": { - "description": "The localized name of the tax.
    Example: Denmark VAT", - "type": "string", - "example": "Denmark VAT" - }, - "description": { - "description": "The description of the Surcharge/Tax.
    Example: Denmark VAT", - "type": "string", - "example": "Denmark VAT" - }, - "type": { - "description": "The type of Surcharge/Tax.
    Example: VAT", - "type": "string", - "example": "VAT" - } - } - }, "Address": { "type": "object", "properties": { @@ -4480,6 +4852,495 @@ "units": "CM" } }, + "EdtTaxDetail": { + "description": "Estimated duties and taxes detail.", + "type": "object", + "properties": { + "taxType": { + "description": "Estimated taxes type", + "type": "string", + "enum": [ + "ADDITIONAL_TAXES", + "CONSULAR_INVOICE_FEE", + "CUSTOMS_SURCHARGES", + "DUTY", + "EXCISE_TAX", + "FOREIGN_EXCHANGE_TAX", + "GENERAL_SALES_TAX", + "IMPORT_LICENSE_FEE", + "INTERNAL_ADDITIONAL_TAXES", + "INTERNAL_SENSITIVE_PRODUCTS_TAX", + "OTHER", + "SENSITIVE_PRODUCTS_TAX", + "STAMP_TAX", + "STATISTICAL_TAX", + "TRANSPORT_FACILITIES_TAX" + ], + "example": "INCENTIVE" + }, + "taxcode": { + "type": "string", + "example": "taxcode" + }, + "effectiveDate": { + "description": "Estimated duties and taxes effective date. Format [YYYY-MM-DD].", + "type": "string", + "example": "2019-12-06" + }, + "name": { + "description": "The localized name of the surcharge.", + "type": "string", + "example": "VAT" + }, + "taxableValue": { + "description": "Estimated duties and taxes taxable Value.", + "$ref": "#/components/schemas/Money" + }, + "description": { + "description": "FedEx pays the Duty and Tax charges on your behalf to ensure we can deliver your shipment as quickly as possible", + "type": "string", + "example": "Christmas" + }, + "formula": { + "description": "Indicates the formula.", + "type": "string", + "example": "VAT Payable = Output VAT \u2013 Input VAT" + }, + "amount": { + "description": "Amount for the estimated duties and taxes type.", + "$ref": "#/components/schemas/Money" + }, + "taxRates": { + "description": "Estimated duties and taxes taxRates", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "example": null + }, + "currency": { + "type": "string", + "example": null + }, + "quantity": { + "format": "double", + "type": "number", + "example": null + }, + "unitOfMeasure": { + "type": "string", + "example": null + } + } + } + }, + "appliedPreferentialTradeAgreement": { + "description": "provides details about PTA applied between countries for specific product. ", + "type": "object", + "properties": { + "id": { + "description": "", + "type": "string", + "example": "description" + }, + "name": { + "description": "", + "type": "string", + "example": "description" + }, + "description": { + "description": "", + "type": "string", + "example": "description" + } + } + } + } + }, + "EdtTaxDetail_2": { + "type": "object", + "properties": { + "edtTaxType": { + "type": "string", + "description": "Specifies the Estimated duties and taxes type.
    Example: TaxType", + "example": "TaxType" + }, + "amount": { + "type": "number", + "description": "Specifies the amount for the estimated duties and taxes type.
    Example: 785.12", + "format": "double", + "example": 785.12 + }, + "taxableValue": { + "type": "number", + "description": "Specifies the Estimated duties and taxes taxable Value.
    Example: 562.23", + "format": "double", + "example": 562.23 + }, + "name": { + "type": "string", + "description": "Indicates the name for the Etd tax.", + "example": "name" + }, + "description": { + "type": "string", + "description": "Indicates the description for the Etd tax.", + "example": "description" + }, + "formula": { + "type": "string", + "description": "Indicates the formula.", + "example": "formula" + }, + "effectiveDate": { + "type": "string", + "description": "Specifies the Estimated duties and taxes effective date. Format [YYYY-MM-DD].
    Example: 2019-12-06", + "example": "2019-12-06" + } + }, + "description": "Specifies the Estimated duties and taxes detail." + }, + "VariableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "type": "object", + "properties": { + "variableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "$ref": "#/components/schemas/Money" + }, + "fixedVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "$ref": "#/components/schemas/Money" + }, + "percentVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "$ref": "#/components/schemas/Money" + }, + "totalCustomerCharge": { + "description": "Specifies the total customer assessed handling charges.
    Example: 445.54", + "$ref": "#/components/schemas/Money" + } + } + }, + "VariableHandlingCharges_2": { + "type": "object", + "properties": { + "totalCustomerCharge": { + "type": "number", + "description": "Specifies the total customer assessed handling charges.
    Example: 445.54", + "format": "double", + "example": 445.54 + }, + "variableHandlingCharge": { + "type": "number", + "description": "The variable handling charge amount calculated based on the requested variable handling charge detail.
    Example: 403.2", + "format": "double", + "example": 403.2 + } + }, + "description": "The variable handling charge amount calculated based on the requested variable handling charge detail." + }, + "RateDiscount": { + "type": "object", + "properties": { + "rateDiscountType": { + "description": "Indicates the type.", + "type": "string", + "enum": [ + "BONUS", + "COUPON", + "EARNED", + "INCENTIVE", + "OTHER", + "VOLUME" + ], + "example": "INCENTIVE" + }, + "description": { + "description": "Indicates the description for the rate discount.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Indicates the amount for the rate discount.", + "$ref": "#/components/schemas/Money" + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "RateDiscount_2": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Indicates the amount for the rate discount.
    Example: 87.5", + "format": "double", + "example": 87.5 + }, + "name": { + "type": "string", + "description": "Indicate the name of the discount.Click here to see Discounts
    Example: name", + "example": "name" + }, + "description": { + "type": "string", + "description": "Indicates the description for the rate discount.
    Example: Description", + "example": "description" + }, + "type": { + "type": "string", + "description": "Indicates the type.
    Example: type", + "example": "type" + }, + "percent": { + "type": "number", + "description": "Indicates the percentage of the rate discount.
    Example: 10.5", + "format": "double", + "example": 10.5 + } + } + }, + "Surcharge": { + "type": "object", + "properties": { + "surchargeType": { + "description": "The type of surcharge.", + "type": "string", + "enum": [ + "ACCOUNT_NUMBER_PROCESSING_FEE", + "ADDITIONAL_HANDLING", + "ADDRESS_CORRECTION", + "ANCILLARY_FEE", + "APPOINTMENT_DELIVERY", + "BLIND_SHIPMENT", + "BROKER_SELECT_OPTION", + "CANADIAN_DESTINATION", + "CHARGEABLE_PALLET_WEIGHT", + "COD", + "CUT_FLOWERS", + "DANGEROUS_GOODS", + "DELIVERY_AREA", + "DELIVERY_CONFIRMATION", + "DELIVERY_ON_INVOICE_ACCEPTANCE", + "DEMAND", + "DEMAND_ADDITIONAL_HANDLING", + "DEMAND_OVERSIZE", + "DEMAND_RESIDENTIAL_DELIVERY", + "DETENTION", + "DOCUMENTATION_FEE", + "DRY_ICE", + "EMAIL_LABEL", + "ENHANCED_SECURITY", + "EUROPE_FIRST", + "EXCESS_VALUE", + "EXCLUSIVE_USE", + "EXHIBITION", + "EXPEDITED", + "EXPORT", + "EXTRA_LABOR", + "EXTRA_SURFACE_HANDLING_CHARGE", + "EXTREME_LENGTH", + "FEDEX_INTRACOUNTRY_FEES", + "FEDEX_TAG", + "FICE", + "FLATBED", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_DELIVERY", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_PICKUP", + "FREIGHT_DIRECT_BASIC_DELIVERY", + "FREIGHT_DIRECT_BASIC_PICKUP", + "FREIGHT_DIRECT_PREMIUM_DELIVERY", + "FREIGHT_DIRECT_PREMIUM_PICKUP", + "FREIGHT_DIRECT_STANDARD_DELIVERY", + "FREIGHT_DIRECT_STANDARD_PICKUP", + "FREIGHT_GUARANTEE", + "FREIGHT_ON_VALUE", + "FREIGHT_TO_COLLECT", + "FUEL", + "HIGH_COST_SERVICE_AREA_DESTINATION", + "HIGH_COST_SERVICE_AREA_ORIGIN", + "HIGH_DENSITY", + "HOLD_AT_LOCATION", + "HOLIDAY_DELIVERY", + "HOLIDAY_GUARANTEE", + "HOME_DELIVERY_APPOINTMENT", + "HOME_DELIVERY_DATE_CERTAIN", + "HOME_DELIVERY_EVENING", + "INSIDE_DELIVERY", + "INSIDE_PICKUP", + "INSURED_VALUE", + "INTERHAWAII", + "LIFTGATE_DELIVERY", + "LIFTGATE_PICKUP", + "LIMITED_ACCESS_DELIVERY", + "LIMITED_ACCESS_PICKUP", + "MARKING_OR_TAGGING", + "METRO_DELIVERY", + "METRO_PICKUP", + "MONITORING_AND_INTERVENTION", + "NON_BUSINESS_TIME", + "NON_MACHINABLE", + "OFFSHORE", + "ON_CALL_PICKUP", + "ON_DEMAND_CARE", + "OTHER", + "OUT_OF_DELIVERY_AREA", + "OUT_OF_PICKUP_AREA", + "OVER_DIMENSION", + "OVER_LENGTH", + "OVERSIZE", + "OVERWEIGHT", + "PALLET_SHRINKWRAP", + "PALLETS_PROVIDED", + "PEAK", + "PEAK_ADDITIONAL_HANDLING", + "PEAK_OVERSIZE", + "PEAK_RESIDENTIAL_DELIVERY", + "PERMIT", + "PIECE_COUNT_VERIFICATION", + "PORT", + "PRE_DELIVERY_NOTIFICATION", + "PRIORITY_ALERT", + "PROTECTION_FROM_FREEZING", + "REGIONAL_MALL_DELIVERY", + "REGIONAL_MALL_PICKUP", + "REROUTE", + "RESCHEDULE", + "RESIDENTIAL_DELIVERY", + "RESIDENTIAL_PICKUP", + "RETURN_LABEL", + "SATURDAY_DELIVERY", + "SATURDAY_PICKUP", + "SHIPMENT_ASSEMBLY", + "SIGNATURE_OPTION", + "SINGLE_PIECE", + "SORT_AND_SEGREGATE", + "SPECIAL_DELIVERY", + "SPECIAL_EQUIPMENT", + "STORAGE", + "SUNDAY_DELIVERY", + "TARP", + "THIRD_PARTY_BILLING", + "THIRD_PARTY_CONSIGNEE", + "TRANSMART_SERVICE_FEE", + "USPS", + "WEIGHING" + ], + "example": "COD" + }, + "level": { + "description": "The level of surcharge.", + "type": "string", + "enum": [ + "PACKAGE", + "SHIPMENT" + ], + "example": "PACKAGE" + }, + "description": { + "description": "The description of the surcharge.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "$ref": "#/components/schemas/Money" + } + } + }, + "Surcharge_2": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.
    Example: 87.5", + "format": "double", + "example": 87.5 + }, + "level": { + "type": "string", + "description": "The level of surcharge.
    Example: level", + "example": "level" + }, + "name": { + "type": "string", + "description": "The localized name of the surcharge.
    Example: name", + "example": "name" + }, + "description": { + "type": "string", + "description": "The description of the surcharge.
    Example: description", + "example": "description" + }, + "type": { + "type": "string", + "description": "The type of surcharge.
    Example: type", + "example": "type" + } + } + }, + "Tax": { + "description": "Tax surcharge details", + "type": "object", + "properties": { + "taxType": { + "description": "Specifies the type of Surcharge/Tax.", + "type": "string", + "enum": [ + "EXPORT", + "GST", + "HST", + "INTRACOUNTRY", + "OTHER", + "PST", + "SST", + "VAT" + ], + "example": "VAT" + }, + "description": { + "description": "Specifies the description of the Surcharge/Tax.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Specifies the list of tax amounts.", + "$ref": "#/components/schemas/Money" + } + } + }, + "Tax_2": { + "description": "Tax surcharge details", + "type": "object", + "properties": { + "amount": { + "description": "Tax amount.
    Example: 408.97", + "format": "double", + "type": "number", + "example": 408.97 + }, + "name": { + "description": "The localized name of the tax.
    Example: Denmark VAT", + "type": "string", + "example": "Denmark VAT" + }, + "description": { + "description": "The description of the Surcharge/Tax.
    Example: Denmark VAT", + "type": "string", + "example": "Denmark VAT" + }, + "type": { + "description": "The type of Surcharge/Tax.
    Example: VAT", + "type": "string", + "example": "VAT" + } + } + }, "Party": { "type": "object", "properties": { diff --git a/resources/models/service-availability/v1.json b/resources/models/service-availability/v1.json index 2bbeaf6c..80137d0e 100644 --- a/resources/models/service-availability/v1.json +++ b/resources/models/service-availability/v1.json @@ -942,6 +942,9 @@ "FXSP" ] } + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "TransitTimeInputVO describes the details needed in order to get the transit times for a particular shipment. " @@ -1480,6 +1483,9 @@ "IMPERIAL", "METRIC" ] + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "These are the input elements for requesting package and service options." @@ -3512,6 +3518,26 @@ }, "description": "Indicate the amount details. This is optional, but if indicated, amount and currency must be provided." }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "AvailabilitycxsResponseVO": { "type": "object", "properties": { @@ -3860,6 +3886,9 @@ "FXFR" ] } + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements for special service options availability." diff --git a/resources/models/ship-dg-hazmat/v1.json b/resources/models/ship-dg-hazmat/v1.json index 723e27aa..9c44e883 100644 --- a/resources/models/ship-dg-hazmat/v1.json +++ b/resources/models/ship-dg-hazmat/v1.json @@ -1709,6 +1709,80 @@ "accountNumberCountryCode": "CA" } }, + "ClearanceItemDetail": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "Role in producing or supplying the item/commodity", + "example": "MANUFACTURER", + "enum": [ + "MANUFACTURER" + ] + }, + "id": { + "type": "string", + "description": "Unique identifier of the manufacturer of the commodity.
    For shipments to United States, refer to U.S. Customs and Border Protection website.
    Example: USGRE98BIR", + "example": "USGRE98BIR" + }, + "contact": { + "$ref": "#/components/schemas/ClearanceItemDetail_contact" + }, + "address": { + "$ref": "#/components/schemas/ClearanceItemDetail_address" + } + } + }, + "ClearanceItemDetail_contact": { + "type": "object", + "properties": { + "companyName": { + "type": "string", + "description": "Legal name of the manufacturer of the commodity.
    Example: THE GREENHOUSE", + "example": "THE GREENHOUSE" + } + }, + "description": "Contact details of the manufacturer." + }, + "ClearanceItemDetail_address": { + "type": "object", + "properties": { + "streetLines": { + "type": "array", + "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included.
    Example: 98 Royal Crescent", + "items": { + "type": "string", + "example": "[\"98 Royal Crescent\"]" + } + }, + "city": { + "type": "string", + "description": "The name of city, town of the recipient.
    Example: Birmingham", + "example": "Birmingham" + }, + "stateOrProvinceCode": { + "type": "string", + "description": "It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country.
    Example: CA", + "example": "CA" + }, + "postalCode": { + "type": "string", + "description": "The US State and Canada Province codes. The Format and presence of this field may vary depending on the country.
    Example: 35209", + "example": "35209" + }, + "countryCode": { + "type": "string", + "description": "The two-letter code used to identify a country.
    Example: US", + "example": "US" + }, + "residential": { + "type": "boolean", + "description": "Indicate whether this address is Residential (as opposed to Commercial).
    Valid Values: True or False.", + "example": false + } + }, + "description": "Address of the manufacturer" + }, "AdditionalMeasures": { "type": "object", "properties": { @@ -2075,7 +2149,7 @@ "type": "object", "properties": { "formId": { - "type": "integer", + "type": "string", "description": "This is FedEx tracking Identifier associated with the package.
    Example: 0201", "example": 201 }, @@ -2085,7 +2159,7 @@ "example": "EXPRESS" }, "uspsApplicationId": { - "type": "integer", + "type": "string", "description": "Specify the USPS tracking Identifier associated with FedEx SmartPost shipment.
    Example: 92", "example": 92 }, @@ -2565,7 +2639,7 @@ "$ref": "#/components/schemas/VariableHandlingChargeDetail" }, "customsClearanceDetail": { - "$ref": "#/components/schemas/CustomsClearanceDetail" + "$ref": "#/components/schemas/CustomsClearanceDetail_2" }, "smartPostInfoDetail": { "$ref": "#/components/schemas/SmartPostInfoDetail" @@ -4551,8 +4625,8 @@ }, "units": { "type": "string", - "description": "The weight unit of measure for the packaging. KG or LB", - "example": "LB" + "description": "Units in which the hazardous commodity is packaged.", + "example": "HAZMATPACKAGE" } }, "description": "Indicates the Packaging details of dangerous goods." @@ -5388,99 +5462,6 @@ }, "description": "Use this object to provide Commercial Invoice details. This element is required for electronic upload of CI data. It will serve to create/transmit an electronic Commercial Invoice through the FedEx system.
    Customers are responsible for printing their own Commercial Invoice.
    If you would like FedEx to generate a Commercial Invoice and transmit it to Customs for clearance purposes, you need to specify that in the 'ETDDetail/RequesteDocumentCopies' element.
    Support consists of a maximum of 99 commodity line items." }, - "Commodity": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "unitPrice": { - "$ref": "#/components/schemas/Money" - }, - "additionalMeasures": { - "type": "array", - "description": "Optional
    Contains only additional quantitative information other than weight and quantity to calculate duties and taxes.", - "items": { - "$ref": "#/components/schemas/AdditionalMeasures" - } - }, - "numberOfPieces": { - "type": "integer", - "description": "Required.
    Indicate the number of pieces associated with the commodity. Number of pieces cannot be a negative value or exceed 9,999.
    Example: 12", - "format": "int32", - "example": 12 - }, - "quantity": { - "type": "integer", - "description": "Required
    Total number of units (using quantityUnits as the unit of measure) of this commodity present in the shipment. Used to estimate duties and taxes.
    Example: 125", - "format": "int32", - "example": 125 - }, - "quantityUnits": { - "type": "string", - "description": "Required
    Unit of measure for the above quantity. Used to estimate duties and taxes
    Example: Ea", - "example": "Ea" - }, - "customsValue": { - "$ref": "#/components/schemas/Customs_Money" - }, - "countryOfManufacture": { - "type": "string", - "description": "Required
    Maximum allowed length is 4.
    Example: US", - "example": "US" - }, - "cIMarksAndNumbers": { - "type": "string", - "description": "An identifying mark or number used on the packagingof a shipment to help customers identify a particularshipment
    Example: 87123", - "example": "87123" - }, - "harmonizedCode": { - "type": "string", - "description": "This is to specify the Harmonized Tariff System (HTS) code to meet U.S. and foreign governments' customs requirements. These are mainly used to estimate the duties and taxes.
    Example: 0613
    To research the classification for your commodity, use the FedEx Global Trade Manager online at fedex.com/gtm. You will find country-specific information to determine whether your commodity is considered to be a document or non-document for your destination.", - "example": "0613" - }, - "description": { - "type": "string", - "description": "Required
    ScrewsMaximum allowed 450 characters.
    Example: description", - "example": "description" - }, - "name": { - "type": "string", - "description": "Required
    Commodity name
    Example: non-threaded rivets", - "example": "non-threaded rivets" - }, - "weight": { - "$ref": "#/components/schemas/Weight" - }, - "exportLicenseNumber": { - "type": "string", - "description": "Specifies the export license number for the shipment
    Example: 26456", - "example": "26456" - }, - "exportLicenseExpirationDate": { - "type": "string", - "description": "Specifies the export license expiration date for the shipment
    Format YYYY-MM-DD
    Example : 2009-04-12", - "format": "date-time" - }, - "partNumber": { - "type": "string", - "description": "a part number for the item
    Example: 167", - "example": "167" - }, - "purpose": { - "type": "string", - "description": "This field is used for calculation of duties and taxes.

    Valid values are : BUSINESS and CONSUMER", - "example": "BUSINESS", - "enum": [ - "BUSINESS", - "CONSUMER" - ] - }, - "usmcaDetail": { - "$ref": "#/components/schemas/UsmcaCommodityDetail" - } - } - }, "ExportDetail": { "type": "object", "properties": { @@ -6389,96 +6370,6 @@ }, "description": "Customer-provided specifications for handling individual commodities." }, - "CustomsClearanceDetail": { - "required": [ - "commercialInvoice", - "commodities" - ], - "type": "object", - "properties": { - "regulatoryControls": { - "type": "array", - "description": "These are the regulatory controls applicable to the shipment.", - "example": "NOT_IN_FREE_CIRCULATION", - "items": { - "type": "string", - "enum": [ - "FOOD_OR_PERISHABLE", - "USMCA", - "NOT_APPLICABLE_FOR_LOW_VALUE_CUSTOMS_EXCEPTIONS", - "NOT_IN_FREE_CIRCULATION" - ] - } - }, - "brokers": { - "type": "array", - "description": "Conditional.
    Specify Broker information only if you are using Broker Select Option for your shipment.To be considered a valid, a country code must be specified in addition to one of the following address items: postal code, city, or location id.", - "items": { - "$ref": "#/components/schemas/BrokerDetail" - } - }, - "commercialInvoice": { - "$ref": "#/components/schemas/CommercialInvoice" - }, - "freightOnValue": { - "type": "string", - "description": "Specify the risk owner for the Freight shipment.This element is only mandatory or valid for Intra India shipments. ", - "example": "OWN_RISK", - "enum": [ - "CARRIER_RISK", - "OWN_RISK" - ] - }, - "dutiesPayment": { - "$ref": "#/components/schemas/Payment_2" - }, - "commodities": { - "type": "array", - "description": "Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment", - "items": { - "$ref": "#/components/schemas/Commodity" - } - }, - "recipientCustomsId": { - "$ref": "#/components/schemas/RecipientCustomsId" - }, - "customsOption": { - "$ref": "#/components/schemas/CustomsOptionDetail" - }, - "importerOfRecord": { - "description": "The descriptive data for the importer of Record for the shipment and their physical address, contact and account number information.", - "$ref": "#/components/schemas/Party" - }, - "generatedDocumentLocale": { - "type": "string", - "description": "This is the locale for generated document.
    Example: en_US
    click here to see Locales
    Note: If the locale is left blank or an invalid locale is entered, an error message is returned in response.", - "example": "US" - }, - "exportDetail": { - "$ref": "#/components/schemas/ExportDetail" - }, - "totalCustomsValue": { - "description": "This is the total customs value.", - "$ref": "#/components/schemas/Money" - }, - "partiesToTransactionAreRelated": { - "type": "boolean", - "description": "Parties To Transaction Are Related" - }, - "declarationStatementDetail": { - "$ref": "#/components/schemas/CustomsDeclarationStatementDetail" - }, - "isDocumentOnly": { - "type": "boolean", - "description": "Used to specify if a shipment is document shipment or not. Used only for International Express document shipments. Default value is false." - }, - "insuranceCharge": { - "description": "Amount paid to a third party for the purpose of insuring this shipment against damage or loss. Used to calculate estimated duties and taxes", - "$ref": "#/components/schemas/Money" - } - }, - "description": "Required for International and intra-country Shipments. Information about this package that only applies to an international (export) shipment or return." - }, "LabelSpecification": { "type": "object", "properties": { @@ -7456,7 +7347,7 @@ "$ref": "#/components/schemas/ResponsiblePartyParty" } }, - "description": "Information about the person who is paying for the shipment.
    Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT.", + "description": "Information about the person who is paying for the shipment.
    Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY.", "example": { "responsibleParty": { "address": { @@ -7723,6 +7614,379 @@ "deliveryInstructions": "deliveryInstructions" } }, + "CustomsClearanceDetail": { + "required": [ + "commercialInvoice", + "commodities" + ], + "type": "object", + "properties": { + "regulatoryControls": { + "type": "array", + "description": "These are the regulatory controls applicable to the shipment.", + "example": "NOT_IN_FREE_CIRCULATION", + "items": { + "type": "string", + "enum": [ + "FOOD_OR_PERISHABLE", + "USMCA", + "NOT_APPLICABLE_FOR_LOW_VALUE_CUSTOMS_EXCEPTIONS", + "NOT_IN_FREE_CIRCULATION" + ] + } + }, + "brokers": { + "type": "array", + "description": "Conditional.
    Specify Broker information only if you are using Broker Select Option for your shipment.To be considered a valid, a country code must be specified in addition to one of the following address items: postal code, city, or location id.", + "items": { + "$ref": "#/components/schemas/BrokerDetail" + } + }, + "commercialInvoice": { + "$ref": "#/components/schemas/CommercialInvoice" + }, + "freightOnValue": { + "type": "string", + "description": "Specify the risk owner for the Freight shipment.This element is only mandatory or valid for Intra India shipments. ", + "example": "OWN_RISK", + "enum": [ + "CARRIER_RISK", + "OWN_RISK" + ] + }, + "dutiesPayment": { + "$ref": "#/components/schemas/Payment_2" + }, + "commodities": { + "type": "array", + "description": "Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment", + "items": { + "$ref": "#/components/schemas/Commodity" + } + }, + "recipientCustomsId": { + "$ref": "#/components/schemas/RecipientCustomsId" + }, + "customsOption": { + "$ref": "#/components/schemas/CustomsOptionDetail" + }, + "importerOfRecord": { + "description": "The descriptive data for the importer of Record for the shipment and their physical address, contact and account number information.", + "$ref": "#/components/schemas/Party" + }, + "generatedDocumentLocale": { + "type": "string", + "description": "This is the locale for generated document.
    Example: en_US
    click here to see Locales
    Note: If the locale is left blank or an invalid locale is entered, an error message is returned in response.", + "example": "US" + }, + "exportDetail": { + "$ref": "#/components/schemas/ExportDetail" + }, + "totalCustomsValue": { + "description": "This is the total customs value.", + "$ref": "#/components/schemas/Money" + }, + "partiesToTransactionAreRelated": { + "type": "boolean", + "description": "Parties To Transaction Are Related" + }, + "declarationStatementDetail": { + "$ref": "#/components/schemas/CustomsDeclarationStatementDetail" + }, + "isDocumentOnly": { + "type": "boolean", + "description": "Used to specify if a shipment is document shipment or not. Used only for International Express document shipments. Default value is false." + }, + "insuranceCharge": { + "description": "Amount paid to a third party for the purpose of insuring this shipment against damage or loss. Used to calculate estimated duties and taxes", + "$ref": "#/components/schemas/Money" + } + }, + "description": "Required for International and intra-country Shipments. Information about this package that only applies to an international (export) shipment or return." + }, + "CustomsClearanceDetail_2": { + "required": [ + "commercialInvoice", + "commodities" + ], + "type": "object", + "properties": { + "regulatoryControls": { + "type": "array", + "description": "These are the regulatory controls applicable to the shipment.", + "example": "NOT_IN_FREE_CIRCULATION", + "items": { + "type": "string", + "enum": [ + "FOOD_OR_PERISHABLE", + "USMCA", + "NOT_APPLICABLE_FOR_LOW_VALUE_CUSTOMS_EXCEPTIONS", + "NOT_IN_FREE_CIRCULATION" + ] + } + }, + "brokers": { + "type": "array", + "description": "Conditional.
    Specify Broker information only if you are using Broker Select Option for your shipment.To be considered a valid, a country code must be specified in addition to one of the following address items: postal code, city, or location id.", + "items": { + "$ref": "#/components/schemas/BrokerDetail" + } + }, + "commercialInvoice": { + "$ref": "#/components/schemas/CommercialInvoice" + }, + "freightOnValue": { + "type": "string", + "description": "Specify the risk owner for the Freight shipment.This element is only mandatory or valid for Intra India shipments. ", + "example": "OWN_RISK", + "enum": [ + "CARRIER_RISK", + "OWN_RISK" + ] + }, + "dutiesPayment": { + "$ref": "#/components/schemas/Payment_2" + }, + "commodities": { + "type": "array", + "description": "Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment", + "items": { + "$ref": "#/components/schemas/Commodity_2" + } + }, + "recipientCustomsId": { + "$ref": "#/components/schemas/RecipientCustomsId" + }, + "customsOption": { + "$ref": "#/components/schemas/CustomsOptionDetail" + }, + "importerOfRecord": { + "description": "The descriptive data for the importer of Record for the shipment and their physical address, contact and account number information.", + "$ref": "#/components/schemas/Party" + }, + "generatedDocumentLocale": { + "type": "string", + "description": "This is the locale for generated document.
    Example: en_US
    click here to see Locales
    Note: If the locale is left blank or an invalid locale is entered, an error message is returned in response.", + "example": "US" + }, + "exportDetail": { + "$ref": "#/components/schemas/ExportDetail" + }, + "totalCustomsValue": { + "description": "This is the total customs value.", + "$ref": "#/components/schemas/Money" + }, + "partiesToTransactionAreRelated": { + "type": "boolean", + "description": "Parties To Transaction Are Related" + }, + "declarationStatementDetail": { + "$ref": "#/components/schemas/CustomsDeclarationStatementDetail" + }, + "isDocumentOnly": { + "type": "boolean", + "description": "Used to specify if a shipment is document shipment or not. Used only for International Express document shipments. Default value is false." + }, + "insuranceCharge": { + "description": "Amount paid to a third party for the purpose of insuring this shipment against damage or loss. Used to calculate estimated duties and taxes", + "$ref": "#/components/schemas/Money" + } + }, + "description": "Required for International and intra-country Shipments. Information about this package that only applies to an international (export) shipment or return." + }, + "Commodity": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "unitPrice": { + "$ref": "#/components/schemas/Money" + }, + "additionalMeasures": { + "type": "array", + "description": "Optional
    Contains only additional quantitative information other than weight and quantity to calculate duties and taxes.", + "items": { + "$ref": "#/components/schemas/AdditionalMeasures" + } + }, + "numberOfPieces": { + "type": "integer", + "description": "Required.
    Indicate the number of pieces associated with the commodity. Number of pieces cannot be a negative value or exceed 9,999.
    Example: 12", + "format": "int32", + "example": 12 + }, + "quantity": { + "type": "integer", + "description": "Required
    Total number of units (using quantityUnits as the unit of measure) of this commodity present in the shipment. Used to estimate duties and taxes.
    Example: 125", + "format": "int32", + "example": 125 + }, + "quantityUnits": { + "type": "string", + "description": "Required
    Unit of measure for the above quantity. Used to estimate duties and taxes
    Example: Ea", + "example": "Ea" + }, + "customsValue": { + "$ref": "#/components/schemas/Customs_Money" + }, + "countryOfManufacture": { + "type": "string", + "description": "Required
    Maximum allowed length is 4.
    Example: US", + "example": "US" + }, + "cIMarksAndNumbers": { + "type": "string", + "description": "An identifying mark or number used on the packagingof a shipment to help customers identify a particularshipment
    Example: 87123", + "example": "87123" + }, + "harmonizedCode": { + "type": "string", + "description": "This is to specify the Harmonized Tariff System (HTS) code to meet U.S. and foreign governments' customs requirements. These are mainly used to estimate the duties and taxes.
    Example: 0613
    To research the classification for your commodity, use the FedEx Global Trade Manager online at fedex.com/gtm. You will find country-specific information to determine whether your commodity is considered to be a document or non-document for your destination.", + "example": "0613" + }, + "description": { + "type": "string", + "description": "Required
    ScrewsMaximum allowed 450 characters.
    Example: description", + "example": "description" + }, + "name": { + "type": "string", + "description": "Required
    Commodity name
    Example: non-threaded rivets", + "example": "non-threaded rivets" + }, + "weight": { + "$ref": "#/components/schemas/Weight" + }, + "exportLicenseNumber": { + "type": "string", + "description": "Specifies the export license number for the shipment
    Example: 26456", + "example": "26456" + }, + "exportLicenseExpirationDate": { + "type": "string", + "description": "Specifies the export license expiration date for the shipment
    Format YYYY-MM-DD
    Example : 2009-04-12", + "format": "date-time" + }, + "partNumber": { + "type": "string", + "description": "a part number for the item
    Example: 167", + "example": "167" + }, + "purpose": { + "type": "string", + "description": "This field is used for calculation of duties and taxes.

    Valid values are : BUSINESS and CONSUMER", + "example": "BUSINESS", + "enum": [ + "BUSINESS", + "CONSUMER" + ] + }, + "usmcaDetail": { + "$ref": "#/components/schemas/UsmcaCommodityDetail" + }, + "clearanceItemDetail": { + "type": "array", + "description": "Array of clearance item details including manufacturer info for customs clearance.", + "items": { + "$ref": "#/components/schemas/ClearanceItemDetail" + } + } + } + }, + "Commodity_2": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "unitPrice": { + "$ref": "#/components/schemas/Money" + }, + "additionalMeasures": { + "type": "array", + "description": "Optional
    Contains only additional quantitative information other than weight and quantity to calculate duties and taxes.", + "items": { + "$ref": "#/components/schemas/AdditionalMeasures" + } + }, + "numberOfPieces": { + "type": "integer", + "description": "Required.
    Indicate the number of pieces associated with the commodity. Number of pieces cannot be a negative value or exceed 9,999.
    Example: 12", + "format": "int32", + "example": 12 + }, + "quantity": { + "type": "integer", + "description": "Required
    Total number of units (using quantityUnits as the unit of measure) of this commodity present in the shipment. Used to estimate duties and taxes.
    Example: 125", + "format": "int32", + "example": 125 + }, + "quantityUnits": { + "type": "string", + "description": "Required
    Unit of measure for the above quantity. Used to estimate duties and taxes
    Example: Ea", + "example": "Ea" + }, + "customsValue": { + "$ref": "#/components/schemas/Customs_Money" + }, + "countryOfManufacture": { + "type": "string", + "description": "Required
    Maximum allowed length is 4.
    Example: US", + "example": "US" + }, + "cIMarksAndNumbers": { + "type": "string", + "description": "An identifying mark or number used on the packagingof a shipment to help customers identify a particularshipment
    Example: 87123", + "example": "87123" + }, + "harmonizedCode": { + "type": "string", + "description": "This is to specify the Harmonized Tariff System (HTS) code to meet U.S. and foreign governments' customs requirements. These are mainly used to estimate the duties and taxes.
    Example: 0613
    To research the classification for your commodity, use the FedEx Global Trade Manager online at fedex.com/gtm. You will find country-specific information to determine whether your commodity is considered to be a document or non-document for your destination.", + "example": "0613" + }, + "description": { + "type": "string", + "description": "Required
    ScrewsMaximum allowed 450 characters.
    Example: description", + "example": "description" + }, + "name": { + "type": "string", + "description": "Required
    Commodity name
    Example: non-threaded rivets", + "example": "non-threaded rivets" + }, + "weight": { + "$ref": "#/components/schemas/Weight" + }, + "exportLicenseNumber": { + "type": "string", + "description": "Specifies the export license number for the shipment
    Example: 26456", + "example": "26456" + }, + "exportLicenseExpirationDate": { + "type": "string", + "description": "Specifies the export license expiration date for the shipment
    Format YYYY-MM-DD
    Example : 2009-04-12", + "format": "date-time" + }, + "partNumber": { + "type": "string", + "description": "a part number for the item
    Example: 167", + "example": "167" + }, + "purpose": { + "type": "string", + "description": "This field is used for calculation of duties and taxes.

    Valid values are : BUSINESS and CONSUMER", + "example": "BUSINESS", + "enum": [ + "BUSINESS", + "CONSUMER" + ] + }, + "usmcaDetail": { + "$ref": "#/components/schemas/UsmcaCommodityDetail" + } + } + }, "ShippingDocumentSpecification": { "type": "object", "properties": { diff --git a/resources/models/ship/v1.json b/resources/models/ship/v1.json index d33c32dd..8df1a37e 100644 --- a/resources/models/ship/v1.json +++ b/resources/models/ship/v1.json @@ -889,7 +889,7 @@ "/ship/v1/shipments/tag": { "post": { "summary": "Create Tag", - "description": "FedEx creates and delivers a returnnn shipping label to your customer and collects the item for return. Your customer needs to have the package ready for pickup when the FedEx driver arrives. Use this endpoint to create tag requests for FedEx Express and FedEx Ground shipments.
    Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", + "description": "FedEx creates and delivers a return shipping label to your customer and collects the item for return. Your customer needs to have the package ready for pickup when the FedEx driver arrives. Use this endpoint to create tag requests for FedEx Express and FedEx Ground shipments.
    Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.", "operationId": "Create Tag", "requestBody": { "content": { @@ -1395,26 +1395,90 @@ "type": "boolean", "description": "This flag is used to specify if the shipment is singleshot mps or one Label at a time, piece by piece shipment. Default is false. If true, one label at a time is processed.", "example": true + }, + "version": { + "$ref": "#/components/schemas/Version" + }, + "processingOptions": { + "type": "array", + "description": "Array of processing options for the shipment.", + "items": { + "type": "string", + "example": "INCLUDE_PICKUPRATES", + "enum": [ + "INCLUDE_PICKUPRATES" + ] + } } }, "description": "The request elements required to create a shipment." }, - "Money": { + "VariationOptions": { "type": "object", "properties": { - "amount": { - "type": "number", - "description": "This is the amount. Maximum limit is 5 digits before decimal.
    Example: 12.45", - "format": "double", - "example": 12.45 + "id": { + "type": "string", + "description": "Specifies the name or the key for the shipment variation.\n", + "example": "GLOBAL-SPOT-IDENTIFIER" }, - "currency": { + "values": { + "type": "array", + "description": "The values that are valid for the specified shipment variation in the context of the current shipment.\n", + "example": [ + "21089052", + "21089053" + ], + "items": { + "type": "string" + } + } + } + }, + "PickupDetail": { + "type": "object", + "properties": { + "readyDateTime": { "type": "string", - "description": "This is the currency code for the amount.
    Example: USD
    Click here to see Currency codes", - "example": "USD" + "format": "date", + "description": "Pickup ready date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "latestPickupDateTime": { + "type": "string", + "format": "date", + "description": "Latest pickup date in YYYY-MM-DD format", + "example": "2025-06-17" + }, + "courierInstructions": { + "type": "string", + "description": "Special instructions for the courier", + "example": "Leave package at reception" + }, + "requestType": { + "$ref": "#/components/schemas/PickupRequestType" + }, + "requestSource": { + "$ref": "#/components/schemas/PickupRequestSourceType" } - }, - "description": "This customs value is applicable for all items(or units) under the specified commodity" + } + }, + "PickupRequestType": { + "type": "string", + "description": "Type of pickup request", + "enum": [ + "FUTURE_DAY", + "SAME_DAY" + ], + "example": "FUTURE_DAY" + }, + "PickupRequestSourceType": { + "type": "string", + "description": "Source of the pickup request", + "enum": [ + "AUTOMATION", + "CUSTOMER_SERVICE" + ], + "example": "AUTOMATION" }, "Customs_Money": { "type": "object", @@ -1511,8 +1575,7 @@ "TaxpayerIdentification": { "type": "object", "required": [ - "number", - "tinType" + "number" ], "properties": { "number": { @@ -1618,9 +1681,7 @@ } }, "ResponsiblePartyParty": { - "required": [ - "accountNumber" - ], + "required": [], "type": "object", "properties": { "address": { @@ -1873,7 +1934,7 @@ "properties": { "pendingShipmentType": { "type": "string", - "description": "Specifies the pending shipment type. Must include the value: EMAIL for email return shipments.
    Not applicable for other types of shipments
    Example: EMAIL", + "description": "Specifies the pending shipment type. Must include the value: EMAIL for email return shipments.
    Not applicable for other types of shipments.

    Once the label is printed, the transaction is marked with the original print date. You can reprint the label and documents for up to 5 days from that original print date. Once the 5-day reprint window closes, the label is no longer accessible.

    Example: EMAIL", "example": "EMAIL", "enum": [ "EMAIL" @@ -1897,7 +1958,7 @@ }, "expirationTimeStamp": { "type": "string", - "description": "Specifies the Email Label expiration date. The maximum expiration date for an Email Return Label must be greater of equal to the day of the label request and not greater than 2 years in the future. Format[YYYY-MM-DD]
    Example: 2020-01-01", + "description": "Specifies the Email Label expiration date.
    The expiration date must be:
    - Greater than or equal to the label request date.
    - Not more than 2 years in the future.
    Once the label is printed, the transaction is marked with the original print date. You can reprint the label and documents for up to 5 days from that original print date. Once the 5-day reprint window closes, the label is no longer accessible.

    Format: [YYYY-MM-DD]
    Example: 2020-01-01", "example": "2020-01-01" } }, @@ -2422,7 +2483,6 @@ }, "CustomsClearanceDetail": { "required": [ - "commercialInvoice", "commodities" ], "type": "object", @@ -2721,6 +2781,47 @@ "accountNumberCountryCode": "CA" } }, + "ClearanceItemDetail": { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "Role in producing or supplying the item/commodity", + "example": "MANUFACTURER", + "enum": [ + "MANUFACTURER" + ] + }, + "id": { + "type": "string", + "description": "Unique identifier of the manufacturer of the commodity.For shipments to United States, refer to U.S. Customs and Border Protection website.", + "example": "USGRE98BIR" + }, + "contact": { + "$ref": "#/components/schemas/Contact_3" + }, + "address": { + "$ref": "#/components/schemas/Address" + } + }, + "example": { + "type": "MANUFACTURER", + "id": "USGRE98BIR", + "contact": { + "companyName": "THE GREENHOUSE" + }, + "address": { + "streetLines": [ + "98 Royal Crescent" + ], + "city": "Birmingham", + "stateOrProvinceCode": "CA", + "postalCode": "35209", + "countryCode": "US", + "residential": false + } + } + }, "AdditionalMeasures": { "type": "object", "properties": { @@ -3878,7 +3979,7 @@ "properties": { "specialServiceTypes": { "type": "array", - "description": "The list of all special services requested for the package.
    Click here to see Package Special Service Types
    Example:ALCOHOL", + "description": "The list of all special services requested for the package.
    Click here to see Package Special Service Types
    Example:ALCOHOL", "example": [ "ALCOHOL", "NON_STANDARD_CONTAINER", @@ -4106,7 +4207,7 @@ }, "LABELRESPONSEOPTIONS": { "type": "string", - "description": "Note- Label will be returned as Base64 ONLY when openShipmentAction is PROVIDE_DOCUMENTS_INCREMENTALLY.
    LabelResponseOptions specifies the label generation format.
    Example:URL_ONLY", + "description": "LABEL \u2013 Indicates request is for encoded bytecode (Base64).
    URL_ONLY \u2013 Indicates label URL request.
    Note:
    • For asynchronous shipment (more than 40 packages) requests only the value LABEL is supported.
    • With URL_ONLY option, the URL once created will be active for 12 hours.", "example": "URL_ONLY", "enum": [ "URL_ONLY", @@ -4173,7 +4274,7 @@ "type": "array", "description": "These are shipping transaction details, such as master tracking number, service type, and ship date and time.", "items": { - "$ref": "#/components/schemas/TransactionShipmentOutputVO" + "$ref": "#/components/schemas/TransactionCreateShipmentOutputVO" } }, "alerts": { @@ -4191,6 +4292,124 @@ }, "description": "This is the response received when a shipment is requested." }, + "TransactionCreateShipmentOutputVO": { + "type": "object", + "properties": { + "serviceType": { + "type": "string", + "description": "Indicate the FedEx serviceType used for this shipment. The results will be filtered by the serviceType value indicated.
      Example: STANDARD_OVERNIGHT
      click here to see Service Types", + "example": "STANDARD_OVERNIGHT" + }, + "shipDatestamp": { + "type": "string", + "description": "This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
      Format [YYYY-MM-DD].
      Example: 2019-10-14", + "example": "2010-03-04" + }, + "serviceCategory": { + "type": "string", + "description": "Indicates the Service Category.
      Example: EXPRESS", + "example": "EXPRESS" + }, + "shipmentDocuments": { + "type": "array", + "description": "These are shipping document details.", + "items": { + "$ref": "#/components/schemas/LabelResponseVO" + } + }, + "pieceResponses": { + "type": "array", + "description": "Specifies the information about the pieces, received in the response.", + "items": { + "$ref": "#/components/schemas/PieceResponse" + } + }, + "serviceName": { + "type": "string", + "description": "This is the service name associated with the shipment.
      Example: FedEx Ground", + "example": "FedEx 2 Day Freight" + }, + "alerts": { + "type": "array", + "description": "These are alert details received in the response.", + "items": { + "$ref": "#/components/schemas/Alert_3P" + } + }, + "completedShipmentDetail": { + "$ref": "#/components/schemas/CompletedCreateShipmentDetail" + }, + "shipmentAdvisoryDetails": { + "$ref": "#/components/schemas/ShipmentAdvisoryDetails" + }, + "masterTrackingNumber": { + "type": "string", + "description": "This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
      Example: 794953535000", + "example": "794953535000" + } + }, + "description": "Specifies shipping transaction output details" + }, + "CompletedCreateShipmentDetail": { + "type": "object", + "properties": { + "completedPackageDetails": { + "type": "array", + "description": "Indicates the completed package details.", + "items": { + "$ref": "#/components/schemas/CompletedPackageDetail" + } + }, + "operationalDetail": { + "$ref": "#/components/schemas/ShipmentOperationalDetail" + }, + "carrierCode": { + "type": "string", + "description": "Specify the four letter code of a FedEx operating company that meets your requirements
      Examples of FedEx Operating Companies are:
      • FDXE - FedEx Express
      • FDXG - FedEx Ground
      • FXSP - FedEx SmartPost
      • FXCC - FedEx Custom Critical.
      ", + "example": "FDXE" + }, + "completedHoldAtLocationDetail": { + "$ref": "#/components/schemas/CompletedHoldAtLocationDetail" + }, + "completedEtdDetail": { + "$ref": "#/components/schemas/CompletedEtdDetail" + }, + "packagingDescription": { + "type": "string", + "description": "Specifies packaging description
      Example: Customer Packaging", + "example": "Customer Packaging" + }, + "masterTrackingId": { + "$ref": "#/components/schemas/TrackingId" + }, + "serviceDescription": { + "$ref": "#/components/schemas/ServiceDescription" + }, + "usDomestic": { + "type": "boolean", + "description": "Indicates whether or not this is an intra-U.S. shipment.", + "example": true + }, + "hazardousShipmentDetail": { + "$ref": "#/components/schemas/CompletedHazardousShipmentDetail" + }, + "shipmentRating": { + "$ref": "#/components/schemas/Create_ShipmentRating" + }, + "documentRequirements": { + "$ref": "#/components/schemas/DocumentRequirementsDetail" + }, + "exportComplianceStatement": { + "type": "string", + "description": "For US export shipments requiring an EEI, enter the ITN number received from AES when you filed your shipment or the FTR (Foreign Trade Regulations) exemption number.The proper format for an ITN number is AES XYYYYMMDDNNNNNN where YYYYMMDD is date and NNNNNN are numbers generated by the AES.
      Example: AESX20220714987654
      Note: The ITN or FTR exemption number you submit in the ship request prints on the international shipping label.

      For CA export shipments,it can be Proof of report number(15-32 alphanumeric) , Summary proof of report number(7-32 alphanumeric) or Exemption number(2 digit) based on the selected b13AFilingOption.
      Example: 98765432107654321(POR number), 7654321(Summary POR number) and 02(Exemption number).
      For FTR exemption number you need provide a predefined value as NO_EEI_30_37_A.", + "example": "12345678901234567" + }, + "accessDetail": { + "$ref": "#/components/schemas/PendingShipmentAccessDetail" + } + }, + "description": "Returns the result of processing the desired package as a single-package shipment." + }, "TransactionShipmentOutputVO": { "type": "object", "properties": { @@ -4808,33 +5027,6 @@ }, "description": "These are package rate details, as calculated per a specific rate type." }, - "Surcharge": { - "type": "object", - "properties": { - "amount": { - "type": "number", - "format": "double", - "example": "56.22", - "description": "This is the surcharge amount.
      Example: 15.35" - }, - "surchargeType": { - "type": "string", - "description": "This is the surcharge type.
      Example: APPOINTMENT_DELIVERY", - "example": "APPOINTMENT_DELIVERY" - }, - "level": { - "type": "string", - "description": "Specifies if the surcharge applies to the entire shipment, or to an individual package.
      Example: PACKAGE", - "example": "PACKAGE, or SHIPMENT" - }, - "description": { - "type": "string", - "description": "Specifies the description of the surcharge. Indicates delivery and returns information for FedEx Ground Economy services.
      Example: Fuel Surcharge", - "example": "description" - } - }, - "description": "These are surcharges details.
      click here to see Surcharges" - }, "CompletedHazardousPackageDetail": { "type": "object", "properties": { @@ -4949,6 +5141,12 @@ "type": "string", "description": "Indicate the unit of measure.
      Example: KG", "example": "Kg" + }, + "value": { + "type": "number", + "description": "Weight Value.
      Example: 68.25
      Click here to see Weight Values.", + "format": "double", + "example": 68.25 } }, "description": "Specify the Hazardous commodity quantity details." @@ -5168,7 +5366,7 @@ }, "stateOrProvinceCode": { "type": "string", - "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.
      Example: CA
      click here to see State or Province Code", + "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional.
      Example: CA
      click here to see State or Province Code", "example": "GA" }, "destinationLocationNumber": { @@ -5431,34 +5629,435 @@ "$ref": "#/components/schemas/ShipmentRateDetail" } } - }, - "description": "All shipment-level rating data for this shipment, which may include data for multiple rate types." + } }, - "ShipmentRateDetail": { + "Create_ShipmentRating": { "type": "object", "properties": { - "rateZone": { + "actualRateType": { "type": "string", - "description": "Indicates the rate zone used (based on origin and destination).
      Example: US001O", - "example": "US001O" + "description": "This rate type identifies which entry in the following array is considered as presenting the \"actual\" rates for the shipment.
      Example: PAYOR_LIST_SHIPMENT", + "example": "PAYOR_LIST_SHIPMENT" }, - "ratedWeightMethod": { - "type": "string", - "description": "Indicates which weight was used.
      Example: ACTUAL", - "example": "ACTUAL" + "shipmentRateDetails": { + "type": "array", + "description": "Each element of this field provides shipment-level rate totals for a specific rate type.", + "items": { + "$ref": "#/components/schemas/ShipmentRateDetail" + } }, - "totalDutiesTaxesAndFees": { - "type": "number", - "description": "The total of the total duties & taxes and the total ancillary fees & taxes.
      Example: 24.56", - "format": "double", - "example": 24.56 + "totalNetTransportationAndPickupCharge": { + "description": "Sum of totalNetCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of pickup.", + "$ref": "#/components/schemas/Money_2" }, - "pricingCode": { - "type": "string", - "description": "Specifies pricing Code.
      Example: PACKAGE", - "example": "LTL_FREIGHT" + "totalNetFedExTransportationAndPickupCharge": { + "description": "Sum of totalNetFedExCharge from pickupRateDetail and shipmentRateDetail. This charge will be populated regardless of a pickup.", + "$ref": "#/components/schemas/Money_2" }, - "totalFreightDiscounts": { + "pickupRateDetail": { + "description": "Charges associated with a scheduled shipment pickup", + "type": "object", + "properties": { + "rateType": { + "description": "Type used for this specific set of rate data.", + "type": "string", + "enum": [ + "INCENTIVE", + "NEGOTIATED", + "PAYOR_ACCOUNT_PACKAGE", + "PAYOR_ACCOUNT_SHIPMENT", + "PAYOR_CUSTOM_PACKAGE", + "PAYOR_CUSTOM_SHIPMENT", + "PAYOR_LIST_PACKAGE", + "PAYOR_LIST_SHIPMENT", + "PAYOR_RETAIL_PACKAGE", + "PAYOR_RETAIL_SHIPMENT", + "PREFERRED_ACCOUNT_PACKAGE", + "PREFERRED_ACCOUNT_SHIPMENT", + "PREFERRED_CUSTOM_PACKAGE", + "PREFERRED_CUSTOM_SHIPMENT", + "PREFERRED_INCENTIVE", + "PREFERRED_LIST_PACKAGE", + "PREFERRED_LIST_SHIPMENT", + "PREFERRED_NEGOTIATED", + "PREFERRED_RETAIL_PACKAGE", + "PREFERRED_RETAIL_SHIPMENT", + "RATED_ACCOUNT_PACKAGE", + "RATED_ACCOUNT_SHIPMENT", + "RATED_CUSTOM_PACKAGE", + "RATED_CUSTOM_SHIPMENT", + "RATED_LIST_PACKAGE", + "RATED_LIST_SHIPMENT", + "RATED_RETAIL_PACKAGE", + "RATED_RETAIL_SHIPMENT", + "UNKNOWN" + ], + "example": "PAYOR_ACCOUNT_PACKAGE" + }, + "rateScale": { + "type": "string", + "description": "Indicates the rate scale used.", + "example": "*USER IMS20160104 LD067110" + }, + "rateZone": { + "description": "Indicates the rate zone used (based on origin and destination).", + "type": "string", + "example": "CA003O" + }, + "ratingBasis": { + "description": "Allows clients to determine whether to add charges at the package level when Per Piece Rating details are returned.
      • SHIPMENT_WEIGHT_BASED - Indicates shipment weight is used to calculate the rate.

      • FLAT_RATE_PER_PAK - Indicates shipment is rated based on number of packs, weight would be considered for overweight surcharge but not for calculating shipment rate.

      • PACK_WEIGHT_BASED - Indicates individual package weight would be rated and aggregated to get shipment rate weight.
      ", + "type": "string", + "enum": [ + "SHIPMENT_WEIGHT_BASED", + "FLAT_RATE_PER_PAK", + "PACK_WEIGHT_BASED", + "UNKNOWN" + ], + "example": "SHIPMENT_WEIGHT_BASED" + }, + "pricingCode": { + "description": "Identifies the type of pricing used for this shipment.", + "type": "string", + "enum": [ + "ACTUAL", + "ALTERNATE", + "BASE", + "HUNDREDWEIGHT", + "HUNDREDWEIGHT_ALTERNATE", + "INTERNATIONAL_DISTRIBUTION", + "INTERNATIONAL_ECONOMY_SERVICE", + "LTL_FREIGHT", + "PACKAGE", + "SHIPMENT", + "SHIPMENT_FIVE_POUND_OPTIONAL", + "SHIPMENT_OPTIONAL", + "SPECIAL", + "UNKNOWN" + ], + "example": "ACTUAL" + }, + "minimumChargeType": { + "description": "provides the minimum charge type applicable to the rates.", + "type": "string", + "enum": [ + "CUSTOMER", + "CUSTOMER_FREIGHT_WEIGHT", + "EARNED_DISCOUNT", + "MIXED", + "RATE_SCALE", + "UNKNOWN" + ], + "example": "EARNED_DISCOUNT" + }, + "currencyExchangeRate": { + "$ref": "#/components/schemas/CurrencyExchangeRate" + }, + "specialRatingApplied": { + "type": "array", + "description": "Indicates which special rating cases applied to this shipment.", + "items": { + "type": "string", + "enum": [ + "FEDEX_ONE_RATE", + "FIXED_FUEL_SURCHARGE", + "IMPORT_PRICING" + ] + }, + "example": "FEDEX_ONE_RATE" + }, + "fuelSurchargePercent": { + "description": "Specify a fuel surcharge percentage.", + "format": "double", + "type": "number", + "example": 121 + }, + "pickupBaseChargeDescription": { + "description": "Will indicate the pickup charge description of the on call pickup", + "type": "string", + "enum": [ + "Regularly Scheduled Pickup Mon-Fri", + "Automated Pickup Mon-Fri", + "Same Day OC Pickup Mon-Fri (CS)", + "Same Day OC Pickup Mon-Fri (Online)", + "Fut. Day OC Pickup Mon-Fri (CS)", + "Fut. Day OC Pickup Mon-Fri (Online)", + "Regularly Scheduled Pickup Sat", + "Automated Pickup Sat", + "Same Day OC Pickup Sat (CS)", + "Same Day OC Pickup Sat (Online)", + "Fut. Day OC Pickup Sat (CS)", + "Fut. Day OC Pickup Sat (Online)", + "Regularly Scheduled Pickup Sun", + "Automated Pickup Sun", + "Same Day OC Pickup Sun (CS)", + "Same Day OC Pickup Sun (Online)", + "Fut. Day OC Pickup Sun (CS)", + "Fut. Day OC Pickup Sun (Online)", + "Residential On-Call Pickup Surcharge", + "Pickup Area Surcharge", + "Extended Pickup Area Surcharge", + "Remote Pickup Area Surcharge", + "Fuel Surcharge" + ], + "example": "Pickup Area Surcharge" + }, + "totalBaseCharge": { + "description": "Total base charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalFreightDiscounts": { + "description": "The total discounts used in the rate calculation.
      Example: 1257.26", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalNetFreight": { + "description": "This shipment's totalNetFreight.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalSurcharges": { + "description": "The sum of all surcharges on the package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalNetFedExCharge": { + "description": "This shipment's totalNetFedExCharge, which is totalNetFreight plus totalSurcharges (not including totalTaxes).", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalTaxes": { + "description": "The sum of all taxes on this package.
      Example: 1257.25", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalNetCharge": { + "description": "Total net charges for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalRebates": { + "description": "The total sum of all rebates applied to this package.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalDutiesAndTaxes": { + "description": "The sum of shipment/package Duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalAncillaryFeesAndTaxes": { + "description": "Identifies the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalDutiesTaxesAndFees": { + "description": "The total amount of the duties and taxes plus the total ancillary fees and taxes.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "totalNetChargeWithDutiesAndTaxes": { + "description": "Total netChargesWithDutiesAndTaxes for the shipment.", + "allOf": [ + { + "$ref": "#/components/schemas/Money_2" + } + ] + }, + "freightDiscounts": { + "description": "All rate discounts that apply to this shipment", + "type": "array", + "items": { + "$ref": "#/components/schemas/RateDiscount" + } + }, + "rebates": { + "description": "The all rebates applied to this package.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Rebate" + } + }, + "surcharges": { + "description": "The amount of surcharges applied to this shipment.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Surcharge_2" + } + }, + "taxes": { + "description": "List of taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tax" + } + }, + "dutiesAndTaxes": { + "description": "List of The shipment/package Duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdtCommodityTax" + } + }, + "ancillaryFeesAndTaxes": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AncillaryFeeAndTax" + } + }, + "variableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges" + } + ] + }, + "totalVariableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "allOf": [ + { + "$ref": "#/components/schemas/VariableHandlingCharges" + } + ] + } + } + } + }, + "description": "All shipment-level rating data for this shipment, which may include data for multiple rate types." + }, + "EdtCommodityTax": { + "description": "The shipment/package Duties and taxes.", + "type": "object", + "properties": { + "harmonizedCode": { + "description": "Harmonized code is used by customer to classify the product being shipped and define the duties and taxes to be paid.", + "type": "string", + "example": "harmonizedCode" + }, + "taxes": { + "$ref": "#/components/schemas/EdtTaxDetail" + }, + "total": { + "description": "Total of Duties and taxes", + "$ref": "#/components/schemas/Money_2" + } + } + }, + "AncillaryFeeAndTax": { + "description": "Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes.", + "type": "object", + "properties": { + "type": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "enum": [ + "CLEARANCE_ENTRY_FEE", + "GOODS_AND_SERVICES_TAX", + "HARMONIZED_SALES_TAX", + "OTHER" + ], + "example": "CLEARANCE_ENTRY_FEE" + }, + "description": { + "description": "Identifies the amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "list of AncillaryFees And Taxes", + "$ref": "#/components/schemas/Money_2" + } + } + }, + "Rebate": { + "type": "object", + "properties": { + "rebateType": { + "description": "The type of rebate.", + "type": "string", + "enum": [ + "BONUS", + "EARNED", + "OTHER" + ], + "example": "EARNED" + }, + "description": { + "description": "The description of the rebate", + "type": "string", + "example": "description" + }, + "amount": { + "description": "provides the calculated rebate amount based on customer details, transaction information, and applicable rules. ", + "$ref": "#/components/schemas/Money_2" + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "ShipmentRateDetail": { + "type": "object", + "properties": { + "rateZone": { + "type": "string", + "description": "Indicates the rate zone used (based on origin and destination).
      Example: US001O", + "example": "US001O" + }, + "ratedWeightMethod": { + "type": "string", + "description": "Indicates which weight was used.
      Example: ACTUAL", + "example": "ACTUAL" + }, + "totalDutiesTaxesAndFees": { + "type": "number", + "description": "The total of the total duties & taxes and the total ancillary fees & taxes.
      Example: 24.56", + "format": "double", + "example": 24.56 + }, + "pricingCode": { + "type": "string", + "description": "Specifies pricing Code.
      Example: PACKAGE", + "example": "LTL_FREIGHT" + }, + "totalFreightDiscounts": { "type": "number", "description": "The total discounts used in the rate calculation.
      Example: 1.56", "format": "double", @@ -5488,7 +6087,7 @@ "items": { "type": "object", "schema": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax_2" } } }, @@ -5558,7 +6157,7 @@ "type": "array", "description": "Indicates the freight discounts.", "items": { - "$ref": "#/components/schemas/RateDiscount" + "$ref": "#/components/schemas/RateDiscount_2" } }, "rateScale": { @@ -5592,33 +6191,6 @@ }, "description": "This is a placeholder for shipment total/summary rates details, as calculated per a specific rate type. The totals may differ from the sum of corresponding package data for Multiweight or Express MPS." }, - "Tax": { - "type": "object", - "properties": { - "amount": { - "type": "number", - "description": "Indicates the amount of tax.
      Example: 10.0", - "format": "double", - "example": 10 - }, - "level": { - "type": "string", - "description": "Indicates the Level of Tax.
      Example: level", - "example": "level" - }, - "description": { - "type": "string", - "description": "Placeholder for the tax description.
      Example: descrption", - "example": "description" - }, - "type": { - "type": "string", - "description": "Placeholder for the Type of the Tax.
      Example:type", - "example": "type" - } - }, - "description": "Specifies the tax for the shipment." - }, "CurrencyExchangeRate": { "type": "object", "properties": { @@ -5658,7 +6230,7 @@ "type": "array", "description": "Specifies the taxes.", "items": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax_2" } }, "totalDimWeight": { @@ -5768,7 +6340,7 @@ "freightDiscounts": { "type": "array", "items": { - "$ref": "#/components/schemas/RateDiscount" + "$ref": "#/components/schemas/RateDiscount_2" } }, "rateScale": { @@ -5796,34 +6368,6 @@ }, "description": "This is a placeholder for single leg of a shipment rates details, as calculated per a specific rate type." }, - "RateDiscount": { - "type": "object", - "properties": { - "amount": { - "type": "number", - "description": "Specifies the amount.
      Example: 8.9", - "format": "double", - "example": 8.9 - }, - "rateDiscountType": { - "type": "string", - "description": "The type of rate discount.
      Valid Values are BONUS, COUPON,EARNED,OTHER,VOLUME.
      Example: COUPON", - "example": "COUPON" - }, - "percent": { - "type": "number", - "description": "Specifies the percentage of Rate discount.
      Example: 28.9", - "format": "double", - "example": 28.9 - }, - "description": { - "type": "string", - "description": "Specifies the description of the discounted rate.
      Example: description", - "example": "description" - } - }, - "description": "Specifies discount Rate for Shipment." - }, "DocumentRequirementsDetail": { "type": "object", "properties": { @@ -6108,6 +6652,9 @@ "type": "string", "description": "This is an unique number assigned by FedEx to the packages for tracking.
      Example: \"794953555571\"", "example": "794953555571" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to cancel a shipment. " @@ -6173,6 +6720,9 @@ "type": "string", "description": "Indicates the job under which the deferred shipment artifacts must be identified in the subsequent retrieval request.
      Example: 89sxxxxx233ae24ff31xxxxx", "example": "89sxxxxx233ae24ff31xxxxx" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -6225,6 +6775,9 @@ }, "accountNumber": { "$ref": "#/components/schemas/ShipperAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } }, "description": "The request elements required to create a shipment." @@ -6429,7 +6982,7 @@ }, "phoneNumber": { "type": "string", - "description": "Specify contact phone number.
      Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
      Example: 918xxxxx890", + "description": "Specify contact phone number.
      Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
      Example: 918xxxxx890", "example": "1234567890" }, "phoneExtension": { @@ -6660,6 +7213,26 @@ } } }, + "Version": { + "type": "object", + "properties": { + "major": { + "description": "This version is incremented when significant changes are made to the API functionality. These could be breaking changes and might require code-adjustments from clients. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "minor": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the second number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + }, + "patch": { + "description": "This represents a backward-compatible bug fix or minor adjustment to an existing API functionality. This is the third number in API versioning scheme. Accepts only numbers", + "example": "1", + "type": "integer" + } + } + }, "Full_Schema_Create_Tag": { "required": [ "accountNumber", @@ -6674,6 +7247,9 @@ "accountNumber": { "description": "The specific FedEx customer account number (account value) associated with the shipment.", "$ref": "#/components/schemas/PartyAccountNumber" + }, + "version": { + "$ref": "#/components/schemas/Version" } } }, @@ -6815,7 +7391,7 @@ }, "totalWeight": { "type": "number", - "description": "Indicate the shipment total weight in pounds.
      Example: 10.6
      Note:
      • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
      • This value contains 1 explicit decimal position.
      • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
      ", + "description": "Indicate the shipment total weight in Metric or US.
      Example: 10.6
      Note:
      • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
      • This value contains 1 explicit decimal position.
      • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
      ", "format": "double", "example": 20.6 }, @@ -6962,7 +7538,7 @@ "type": "array", "description": "Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment.", "items": { - "$ref": "#/components/schemas/Commodity" + "$ref": "#/components/schemas/Commodity_2" } }, "isDocumentOnly": { @@ -7267,6 +7843,9 @@ "description": "The tracking number for the Express or Ground Tag to the cancelled.
      Example: 301025281523
      Click here to see mock tracking numbers for FedEx Express and FedEx Ground.", "example": "301025281523" }, + "version": { + "$ref": "#/components/schemas/Version" + }, "completedTagDetail": { "description": "The details of the package for which shipping has been completed. The details include dispatch confirmation number, dispatch date, location, and the cxs alerts associated with the process.", "$ref": "#/components/schemas/CompletedTagDetail" @@ -7318,8 +7897,7 @@ "requestedPackageLineItems", "serviceType", "shipper", - "shippingChargesPayment", - "totalWeight" + "shippingChargesPayment" ], "type": "object", "properties": { @@ -7372,6 +7950,9 @@ "$ref": "#/components/schemas/RecipientsParty" } }, + "pickupDetail": { + "$ref": "#/components/schemas/PickupDetail" + }, "soldTo": { "description": "Will indicate the party responsible for purchasing the goods shipped from the shipper to the recipient. The sold to party is not necessarily the recipient or the importer of record. The sold to party is relevant when the purchaser, rather than the recipient determines when certain customs regulations apply.", "$ref": "#/components/schemas/SoldToParty" @@ -7403,7 +7984,7 @@ }, "totalWeight": { "type": "number", - "description": "Indicate the shipment total weight in pounds.
      Example: 10.6
      Note:
      • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
      • This value contains 1 explicit decimal position.
      • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
      ", + "description": "Indicate the shipment total weight in Metric or US.
      Example: 10.6
      Note:
      • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
      • This value contains 1 explicit decimal position.
      • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
      ", "format": "double", "example": 20.6 }, @@ -7476,6 +8057,13 @@ "masterTrackingId": { "$ref": "#/components/schemas/MasterTrackingId" }, + "variationOptions": { + "type": "array", + "description": "The shipment variations for the current shipment expressed in key-value pairs", + "items": { + "$ref": "#/components/schemas/VariationOptions" + } + }, "requestedPackageLineItems": { "type": "array", "description": "These are one or more package-attribute descriptions, each of which describes an individual package, a group of identical packages, or (for the total-piece-total-weight case) common characteristics of all packages in the shipment.
      • At least one instance containing the weight for at least one package is required for EXPRESS and GROUND shipments.
      • Single piece requests will have one RequestedPackageLineItem.
      • Multiple piece requests will have multiple RequestedPackageLineItems.
      • Maximum occurrences is 30.
      ", @@ -7488,46 +8076,43 @@ }, "Address": { "type": "object", + "description": "Address of the manufacturer", "properties": { "streetLines": { "type": "array", - "description": "This is the combination of number, street name, etc.
      Note: At least one line is required and streetlines more than 3 will be ignored. Empty lines should not be included. Maximum length per line is 35.
      Example: [10 FedEx Parkway, Suite 302, .etc.]", + "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included.98 Royal Crescent", + "example": [ + "98 Royal Crescent" + ], "items": { "type": "string" } }, "city": { "type": "string", - "description": "This is a placeholder for City Name.
      Note: This is conditional and not required in all the requests.
      Note: It is recommended for Express shipments for the most accurate ODA and OPA surcharges.
      Example: Beverly Hills" + "description": "The name of city, town of the recipient.Example: Birmingham", + "example": "Birmingham" }, "stateOrProvinceCode": { "type": "string", - "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.
      Example: CA
      click here to see State or Province Code" + "description": "It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country. Example: CA.click here to see State or Province Code", + "example": "CA" }, "postalCode": { "type": "string", - "description": "Indicate the Postal code. This is Optional for non postal-aware countries. Maximum length is 10.
      Example: 65247
      click here to see Postal aware countries" + "description": "The US State and Canada Province codes. The Format and presence of this field may vary depending on the country. Example: 35209click here to see Postal aware countries", + "example": "35209" }, "countryCode": { "type": "string", - "description": "This is the two-letter country code.
      Maximum length is 2.
      Example: US
      click here to see Country codes" + "description": "The two-letter code used to identify a country.Example: USclick here to see Country codes", + "example": "US" }, "residential": { "type": "boolean", - "description": "Indicate whether this address is residential (as opposed to commercial)." + "description": "Indicate whether this address is residential (as opposed to commercial).Valid Values: True or False.", + "example": false } - }, - "description": "Descriptive data for a physical location. May be used as an actual physical address (place to which one could go), or as a container of \"address parts\" which should be handled as a unit (such as a city-state-ZIP combination within the US).", - "example": { - "streetLines": [ - "10 FedEx Parkway", - "Suite 302" - ], - "city": "Beverly Hills", - "stateOrProvinceCode": "CA", - "postalCode": "38127", - "countryCode": "US", - "residential": false } }, "PartyAccountNumber": { @@ -7663,113 +8248,147 @@ } } }, - "Commodity": { - "required": [ - "description" - ], + "DocTabContentZone": { "type": "object", "properties": { - "unitPrice": { - "description": "This is the unit price.", - "$ref": "#/components/schemas/Money" - }, - "additionalMeasures": { + "docTabZoneSpecifications": { "type": "array", - "description": "This object contains additional quantitative information other than weight and quantity to calculate duties and taxes.", + "description": "Indicate the doc tab specifications for the individual doc tab zone on the label.", "items": { - "$ref": "#/components/schemas/AdditionalMeasures" + "$ref": "#/components/schemas/DocTabZoneSpecification" } + } + }, + "description": "Indicate the doc tab specification for different zones on the label. The specification includes zone number, header and data field to be displayed on the label." + }, + "EdtTaxDetail": { + "description": "Estimated duties and taxes detail.", + "type": "object", + "properties": { + "taxType": { + "description": "Estimated taxes type", + "type": "string", + "enum": [ + "ADDITIONAL_TAXES", + "CONSULAR_INVOICE_FEE", + "CUSTOMS_SURCHARGES", + "DUTY", + "EXCISE_TAX", + "FOREIGN_EXCHANGE_TAX", + "GENERAL_SALES_TAX", + "IMPORT_LICENSE_FEE", + "INTERNAL_ADDITIONAL_TAXES", + "INTERNAL_SENSITIVE_PRODUCTS_TAX", + "OTHER", + "SENSITIVE_PRODUCTS_TAX", + "STAMP_TAX", + "STATISTICAL_TAX", + "TRANSPORT_FACILITIES_TAX" + ], + "example": "INCENTIVE" }, - "numberOfPieces": { - "type": "integer", - "description": "Indicate the number of pieces associated with the commodity. The value can neither be negative nor exceed 9,999.
      Example: 12", - "format": "int32", - "example": 12 + "taxcode": { + "type": "string", + "example": "taxcode" }, - "quantity": { - "type": "integer", - "description": "This is the units quantity (using quantityUnits as the unit of measure) per commodity. This is used to estimate duties and taxes.
      Example: 125", - "format": "int32", - "example": 125 - }, - "quantityUnits": { - "type": "string", - "description": "This is the unit of measure for the units quantity. This is used to estimate duties and taxes.
      Example: EA
      click here to see Commodity Unit Measures", - "example": "Ea" - }, - "customsValue": { - "description": "This customs value is applicable for all items(or units) under the specified commodity.", - "$ref": "#/components/schemas/Customs_Money" - }, - "countryOfManufacture": { - "type": "string", - "description": "This is commodity country of manufacture. This is required for International shipments. Maximum allowed length is 4.
      Example: US
      click here to see Country codes", - "example": "US" - }, - "cIMarksAndNumbers": { - "type": "string", - "description": "This is an identifying mark or number used on the packaging of a shipment to help customers identify a particular shipment
      Example: 87123", - "example": "87123" - }, - "harmonizedCode": { - "type": "string", - "description": "This is to specify the Harmonized Tariff System (HTS) code to meet U.S. and foreign governments' customs requirements. These are mainly used to estimate the duties and taxes.
      Example: 0613
      To research the classification for your commodity, use the FedEx Global Trade Manager online at fedex.com/gtm. You will find country-specific information to determine whether your commodity is considered to be a document or non-document for your destination.", - "example": "0613" - }, - "description": { + "effectiveDate": { + "description": "Estimated duties and taxes effective date. Format [YYYY-MM-DD].", "type": "string", - "description": "Required
      ScrewsMaximum allowed 450 characters.
      Example: description", - "example": "description" + "example": "2019-12-06" }, "name": { + "description": "The localized name of the surcharge.", "type": "string", - "description": "This is Commodity name.
      Example: Non-Threaded Rivets", - "example": "non-threaded rivets" + "example": "VAT" }, - "weight": { - "$ref": "#/components/schemas/Weight" + "taxableValue": { + "description": "Estimated duties and taxes taxable Value.", + "$ref": "#/components/schemas/Money_2" }, - "exportLicenseNumber": { + "description": { + "description": "FedEx pays the Duty and Tax charges on your behalf to ensure we can deliver your shipment as quickly as possible", "type": "string", - "description": "This is the export license number for the shipment.
      Example: 26456", - "example": "26456" + "example": "Christmas" }, - "exportLicenseExpirationDate": { + "formula": { + "description": "Indicates the formula.", "type": "string", - "description": "Specify the export license expiration date for the shipment.
      Format YYYY-MM-DD
      Example : 2009-04-12", - "format": "date-time" + "example": "VAT Payable = Output VAT \u2013 Input VAT" }, - "partNumber": { - "type": "string", - "description": "This is a part number.
      Example: 167", - "example": "167" + "amount": { + "description": "Amount for the estimated duties and taxes type.", + "$ref": "#/components/schemas/Money_2" }, - "purpose": { - "type": "string", - "description": "This field is used for calculation of duties and taxes.

      Valid values are : BUSINESS and CONSUMER.
      Example:BUSINESS", - "example": "BUSINESS", - "enum": [ - "BUSINESS", - "CONSUMER" - ] + "taxRates": { + "description": "Estimated duties and taxes taxRates", + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "example": null + }, + "currency": { + "type": "string", + "example": null + }, + "quantity": { + "format": "double", + "type": "number", + "example": null + }, + "unitOfMeasure": { + "type": "string", + "example": null + } + } + } }, - "usmcaDetail": { - "$ref": "#/components/schemas/UsmcaDetail" + "appliedPreferentialTradeAgreement": { + "description": "provides details about PTA applied between countries for specific product. ", + "type": "object", + "properties": { + "id": { + "description": "", + "type": "string", + "example": "description" + }, + "name": { + "description": "", + "type": "string", + "example": "description" + }, + "description": { + "description": "", + "type": "string", + "example": "description" + } + } } } }, - "DocTabContentZone": { + "VariableHandlingCharges": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", "type": "object", "properties": { - "docTabZoneSpecifications": { - "type": "array", - "description": "Indicate the doc tab specifications for the individual doc tab zone on the label.", - "items": { - "$ref": "#/components/schemas/DocTabZoneSpecification" - } + "variableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "$ref": "#/components/schemas/Money_2" + }, + "fixedVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail.", + "$ref": "#/components/schemas/Money_2" + }, + "percentVariableHandlingCharge": { + "description": "Optional. The variable handling charge amount calculated based on the requested variable handling charge detail", + "$ref": "#/components/schemas/Money_2" + }, + "totalCustomerCharge": { + "description": "Specifies the total customer assessed handling charges.
      Example: 445.54", + "$ref": "#/components/schemas/Money_2" } - }, - "description": "Indicate the doc tab specification for different zones on the label. The specification includes zone number, header and data field to be displayed on the label." + } }, "CXSError": { "type": "object", @@ -7849,12 +8468,52 @@ } } }, + "Money": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "This is the amount. Maximum limit is 5 digits before decimal.
      Example: 12.45", + "format": "double", + "example": 12.45 + }, + "currency": { + "type": "string", + "description": "This is the currency code for the amount.
      Example: USD
      Click here to see Currency codes", + "example": "USD" + } + }, + "description": "This customs value is applicable for all items(or units) under the specified commodity" + }, + "Money_2": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "Three-character currency code (e.g. USD, CAD, EUR, JPY, etc.)
      Click here to see Currency Codes", + "example": "USD" + }, + "value": { + "type": "string", + "description": "Specify the value.", + "example": "CUSTOMS_VALUE", + "enum": [ + "CUSTOMS_VALUE", + "INSURED_VALUE" + ] + } + }, + "description": "This is commodity value used for Customs declaration." + }, "PartyAddress": { "type": "object", "properties": { "streetLines": { "type": "array", - "description": "Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
      Example: [1550 Union Blvd,Suite 302]", + "description": "This is the Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
      Note - For FedEx Ground Economy, a maximum of 30 characters will be printed on the label, excess characters will be truncated.
      Example: [1550 Union Blvd,Suite 302]", "example": "1550 Union Blvd, Suite 302", "items": { "type": "string" @@ -7921,7 +8580,7 @@ }, "stateOrProvinceCode": { "type": "string", - "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.
      Example: CA.
      click here to see State or Province Code", + "description": "This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional.
      Example: CA.
      click here to see State or Province Code", "example": "CA" }, "postalCode": { @@ -7963,7 +8622,7 @@ "properties": { "personName": { "type": "string", - "description": "Specify contact name. Maximum length is 70.
      Note: Either the companyName or personName is mandatory.
      Example: John Taylor", + "description": "Specify contact name. First 35 chars will be printed on the label, excess characters will be truncated.
      Note: Either the companyName or personName is manadatory.
      Example : John Taylor", "example": "John Taylor" }, "emailAddress": { @@ -7978,7 +8637,7 @@ }, "phoneNumber": { "type": "string", - "description": "The shipper's phone number.
      Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
      Example: 918xxxxx890", + "description": "The shipper's phone number.
      Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
      Example: 918xxxxx890", "example": "918xxxxx890" }, "companyName": { @@ -8053,7 +8712,7 @@ }, "phoneNumber": { "type": "string", - "description": "Contact person's phone number.
      Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
      Example: 918xxxxx890", + "description": "Contact person's phone number.
      Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
      Example: 918xxxxx890", "example": "918xxxxx890" }, "phoneExtension": { @@ -8096,7 +8755,7 @@ }, "phoneNumber": { "type": "string", - "description": "The shippers phone number.
      Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of 1 or +1.
      Example: 918xxxxx890" + "description": "The shippers phone number.
      Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of 1 or +1.
      Example: 918xxxxx890" }, "phoneExtension": { "type": "string", @@ -8109,6 +8768,16 @@ }, "description": "Specify the contact information." }, + "Contact_3": { + "type": "object", + "properties": { + "companyName": { + "type": "string", + "description": "Legal name of the manufacturer of the commodity.", + "example": "THE GREENHOUSE" + } + } + }, "Payment": { "required": [ "paymentType" @@ -8247,7 +8916,7 @@ "$ref": "#/components/schemas/ResponsiblePartyParty" } }, - "description": "Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT.", + "description": "Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY.", "example": { "responsibleParty": { "address": { @@ -8516,7 +9185,7 @@ "type": "object", "properties": { "totalWeight": { - "description": "Specify total dry ice weight for the shipment.", + "description": "This is the total dry ice weight in all packages of this shipment", "$ref": "#/components/schemas/Weight" }, "packageCount": { @@ -8531,6 +9200,494 @@ }, "description": "Specifies the shipment level totals of dry ice data across all packages." }, + "Commodity": { + "required": [ + "description" + ], + "type": "object", + "properties": { + "clearanceItemDetail": { + "type": "array", + "description": "These are commodities clearance item detail", + "items": { + "$ref": "#/components/schemas/ClearanceItemDetail" + } + }, + "unitPrice": { + "description": "This is the unit price.", + "$ref": "#/components/schemas/Money" + }, + "additionalMeasures": { + "type": "array", + "description": "This object contains additional quantitative information other than weight and quantity to calculate duties and taxes.", + "items": { + "$ref": "#/components/schemas/AdditionalMeasures" + } + }, + "numberOfPieces": { + "type": "integer", + "description": "Indicate the number of pieces associated with the commodity. The value can neither be negative nor exceed 9,999.
      Example: 12", + "format": "int32", + "example": 12 + }, + "quantity": { + "type": "integer", + "description": "This is the units quantity (using quantityUnits as the unit of measure) per commodity. This is used to estimate duties and taxes.
      Example: 125", + "format": "int32", + "example": 125 + }, + "quantityUnits": { + "type": "string", + "description": "This is the unit of measure for the units quantity. This is used to estimate duties and taxes.
      Example: EA
      click here to see Commodity Unit Measures", + "example": "Ea" + }, + "customsValue": { + "description": "This customs value is applicable for all items(or units) under the specified commodity.", + "$ref": "#/components/schemas/Customs_Money" + }, + "countryOfManufacture": { + "type": "string", + "description": "This is commodity country of manufacture. This is required for International shipments. Maximum allowed length is 4.
      Example: US
      click here to see Country codes", + "example": "US" + }, + "cIMarksAndNumbers": { + "type": "string", + "description": "This is an identifying mark or number used on the packaging of a shipment to help customers identify a particular shipment
      Example: 87123", + "example": "87123" + }, + "harmonizedCode": { + "type": "string", + "description": "This is to specify the Harmonized Tariff System (HTS) code to meet U.S. and foreign governments' customs requirements. These are mainly used to estimate the duties and taxes.
      Example: 0613
      To research the classification for your commodity, use the FedEx Global Trade Manager online at fedex.com/gtm. You will find country-specific information to determine whether your commodity is considered to be a document or non-document for your destination.", + "example": "0613" + }, + "description": { + "type": "string", + "description": "Required
      ScrewsMaximum allowed 450 characters.
      Example: description", + "example": "description" + }, + "name": { + "type": "string", + "description": "This is Commodity name.
      Example: Non-Threaded Rivets", + "example": "non-threaded rivets" + }, + "weight": { + "$ref": "#/components/schemas/Weight" + }, + "exportLicenseNumber": { + "type": "string", + "description": "This is the export license number for the shipment.
      Example: 26456", + "example": "26456" + }, + "exportLicenseExpirationDate": { + "type": "string", + "description": "Specify the export license expiration date for the shipment.
      Format YYYY-MM-DD
      Example : 2009-04-12", + "format": "date-time" + }, + "partNumber": { + "type": "string", + "description": "This is a part number.
      Example: 167", + "example": "167" + }, + "purpose": { + "type": "string", + "description": "This field is used for calculation of duties and taxes.

      Valid values are : BUSINESS and CONSUMER.
      Example:BUSINESS", + "example": "BUSINESS", + "enum": [ + "BUSINESS", + "CONSUMER" + ] + }, + "usmcaDetail": { + "$ref": "#/components/schemas/UsmcaDetail" + } + } + }, + "Commodity_2": { + "required": [ + "description" + ], + "type": "object", + "properties": { + "unitPrice": { + "description": "This is the unit price.", + "$ref": "#/components/schemas/Money" + }, + "additionalMeasures": { + "type": "array", + "description": "This object contains additional quantitative information other than weight and quantity to calculate duties and taxes.", + "items": { + "$ref": "#/components/schemas/AdditionalMeasures" + } + }, + "numberOfPieces": { + "type": "integer", + "description": "Indicate the number of pieces associated with the commodity. The value can neither be negative nor exceed 9,999.
      Example: 12", + "format": "int32", + "example": 12 + }, + "quantity": { + "type": "integer", + "description": "This is the units quantity (using quantityUnits as the unit of measure) per commodity. This is used to estimate duties and taxes.
      Example: 125", + "format": "int32", + "example": 125 + }, + "quantityUnits": { + "type": "string", + "description": "This is the unit of measure for the units quantity. This is used to estimate duties and taxes.
      Example: EA
      click here to see Commodity Unit Measures", + "example": "Ea" + }, + "customsValue": { + "description": "This customs value is applicable for all items(or units) under the specified commodity.", + "$ref": "#/components/schemas/Customs_Money" + }, + "countryOfManufacture": { + "type": "string", + "description": "This is commodity country of manufacture. This is required for International shipments. Maximum allowed length is 4.
      Example: US
      click here to see Country codes", + "example": "US" + }, + "cIMarksAndNumbers": { + "type": "string", + "description": "This is an identifying mark or number used on the packaging of a shipment to help customers identify a particular shipment
      Example: 87123", + "example": "87123" + }, + "harmonizedCode": { + "type": "string", + "description": "This is to specify the Harmonized Tariff System (HTS) code to meet U.S. and foreign governments' customs requirements. These are mainly used to estimate the duties and taxes.
      Example: 0613
      To research the classification for your commodity, use the FedEx Global Trade Manager online at fedex.com/gtm. You will find country-specific information to determine whether your commodity is considered to be a document or non-document for your destination.", + "example": "0613" + }, + "description": { + "type": "string", + "description": "Required
      ScrewsMaximum allowed 450 characters.
      Example: description", + "example": "description" + }, + "name": { + "type": "string", + "description": "This is Commodity name.
      Example: Non-Threaded Rivets", + "example": "non-threaded rivets" + }, + "weight": { + "$ref": "#/components/schemas/Weight" + }, + "exportLicenseNumber": { + "type": "string", + "description": "This is the export license number for the shipment.
      Example: 26456", + "example": "26456" + }, + "exportLicenseExpirationDate": { + "type": "string", + "description": "Specify the export license expiration date for the shipment.
      Format YYYY-MM-DD
      Example : 2009-04-12", + "format": "date-time" + }, + "partNumber": { + "type": "string", + "description": "This is a part number.
      Example: 167", + "example": "167" + }, + "purpose": { + "type": "string", + "description": "This field is used for calculation of duties and taxes.

      Valid values are : BUSINESS and CONSUMER.
      Example:BUSINESS", + "example": "BUSINESS", + "enum": [ + "BUSINESS", + "CONSUMER" + ] + }, + "usmcaDetail": { + "$ref": "#/components/schemas/UsmcaDetail" + } + } + }, + "Surcharge": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "format": "double", + "example": "56.22", + "description": "This is the surcharge amount.
      Example: 15.35" + }, + "surchargeType": { + "type": "string", + "description": "This is the surcharge type.
      Example: APPOINTMENT_DELIVERY", + "example": "APPOINTMENT_DELIVERY" + }, + "level": { + "type": "string", + "description": "Specifies if the surcharge applies to the entire shipment, or to an individual package.
      Example: PACKAGE", + "example": "PACKAGE, or SHIPMENT" + }, + "description": { + "type": "string", + "description": "Specifies the description of the surcharge. Indicates delivery and returns information for FedEx Ground Economy services.
      Example: Fuel Surcharge", + "example": "description" + } + }, + "description": "These are surcharges details.
      click here to see Surcharges" + }, + "Surcharge_2": { + "type": "object", + "properties": { + "surchargeType": { + "description": "The type of surcharge.", + "type": "string", + "enum": [ + "ACCOUNT_NUMBER_PROCESSING_FEE", + "ADDITIONAL_HANDLING", + "ADDRESS_CORRECTION", + "ANCILLARY_FEE", + "APPOINTMENT_DELIVERY", + "BLIND_SHIPMENT", + "BROKER_SELECT_OPTION", + "CANADIAN_DESTINATION", + "CHARGEABLE_PALLET_WEIGHT", + "COD", + "CUT_FLOWERS", + "DANGEROUS_GOODS", + "DELIVERY_AREA", + "DELIVERY_CONFIRMATION", + "DELIVERY_ON_INVOICE_ACCEPTANCE", + "DEMAND", + "DEMAND_ADDITIONAL_HANDLING", + "DEMAND_OVERSIZE", + "DEMAND_RESIDENTIAL_DELIVERY", + "DETENTION", + "DOCUMENTATION_FEE", + "DRY_ICE", + "EMAIL_LABEL", + "ENHANCED_SECURITY", + "EUROPE_FIRST", + "EXCESS_VALUE", + "EXCLUSIVE_USE", + "EXHIBITION", + "EXPEDITED", + "EXPORT", + "EXTRA_LABOR", + "EXTRA_SURFACE_HANDLING_CHARGE", + "EXTREME_LENGTH", + "FEDEX_INTRACOUNTRY_FEES", + "FEDEX_TAG", + "FICE", + "FLATBED", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_DELIVERY", + "FREIGHT_DIRECT_BASIC_BY_APPOINTMENT_PICKUP", + "FREIGHT_DIRECT_BASIC_DELIVERY", + "FREIGHT_DIRECT_BASIC_PICKUP", + "FREIGHT_DIRECT_PREMIUM_DELIVERY", + "FREIGHT_DIRECT_PREMIUM_PICKUP", + "FREIGHT_DIRECT_STANDARD_DELIVERY", + "FREIGHT_DIRECT_STANDARD_PICKUP", + "FREIGHT_GUARANTEE", + "FREIGHT_ON_VALUE", + "FREIGHT_TO_COLLECT", + "FUEL", + "HIGH_COST_SERVICE_AREA_DESTINATION", + "HIGH_COST_SERVICE_AREA_ORIGIN", + "HIGH_DENSITY", + "HOLD_AT_LOCATION", + "HOLIDAY_DELIVERY", + "HOLIDAY_GUARANTEE", + "HOME_DELIVERY_APPOINTMENT", + "HOME_DELIVERY_DATE_CERTAIN", + "HOME_DELIVERY_EVENING", + "INSIDE_DELIVERY", + "INSIDE_PICKUP", + "INSURED_VALUE", + "INTERHAWAII", + "LIFTGATE_DELIVERY", + "LIFTGATE_PICKUP", + "LIMITED_ACCESS_DELIVERY", + "LIMITED_ACCESS_PICKUP", + "MARKING_OR_TAGGING", + "METRO_DELIVERY", + "METRO_PICKUP", + "MONITORING_AND_INTERVENTION", + "NON_BUSINESS_TIME", + "NON_MACHINABLE", + "OFFSHORE", + "ON_CALL_PICKUP", + "ON_DEMAND_CARE", + "OTHER", + "OUT_OF_DELIVERY_AREA", + "OUT_OF_PICKUP_AREA", + "OVER_DIMENSION", + "OVER_LENGTH", + "OVERSIZE", + "OVERWEIGHT", + "PALLET_SHRINKWRAP", + "PALLETS_PROVIDED", + "PEAK", + "PEAK_ADDITIONAL_HANDLING", + "PEAK_OVERSIZE", + "PEAK_RESIDENTIAL_DELIVERY", + "PERMIT", + "PIECE_COUNT_VERIFICATION", + "PORT", + "PRE_DELIVERY_NOTIFICATION", + "PRIORITY_ALERT", + "PROTECTION_FROM_FREEZING", + "REGIONAL_MALL_DELIVERY", + "REGIONAL_MALL_PICKUP", + "REROUTE", + "RESCHEDULE", + "RESIDENTIAL_DELIVERY", + "RESIDENTIAL_PICKUP", + "RETURN_LABEL", + "SATURDAY_DELIVERY", + "SATURDAY_PICKUP", + "SHIPMENT_ASSEMBLY", + "SIGNATURE_OPTION", + "SINGLE_PIECE", + "SORT_AND_SEGREGATE", + "SPECIAL_DELIVERY", + "SPECIAL_EQUIPMENT", + "STORAGE", + "SUNDAY_DELIVERY", + "TARP", + "THIRD_PARTY_BILLING", + "THIRD_PARTY_CONSIGNEE", + "TRANSMART_SERVICE_FEE", + "USPS", + "WEIGHING" + ], + "example": "COD" + }, + "level": { + "description": "The level of surcharge.", + "type": "string", + "enum": [ + "PACKAGE", + "SHIPMENT" + ], + "example": "PACKAGE" + }, + "description": { + "description": "The description of the surcharge.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.", + "$ref": "#/components/schemas/Money_2" + } + } + }, + "RateDiscount": { + "type": "object", + "properties": { + "rateDiscountType": { + "description": "Indicates the type.", + "type": "string", + "enum": [ + "BONUS", + "COUPON", + "EARNED", + "INCENTIVE", + "OTHER", + "VOLUME" + ], + "example": "INCENTIVE" + }, + "description": { + "description": "Indicates the description for the rate discount.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Indicates the amount for the rate discount.", + "$ref": "#/components/schemas/Money_2" + }, + "percent": { + "format": "double", + "type": "number", + "example": 0 + } + } + }, + "RateDiscount_2": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Specifies the amount.
      Example: 8.9", + "format": "double", + "example": 8.9 + }, + "rateDiscountType": { + "type": "string", + "description": "The type of rate discount.
      Valid Values are BONUS, COUPON,EARNED,OTHER,VOLUME.
      Example: COUPON", + "example": "COUPON" + }, + "percent": { + "type": "number", + "description": "Specifies the percentage of Rate discount.
      Example: 28.9", + "format": "double", + "example": 28.9 + }, + "description": { + "type": "string", + "description": "Specifies the description of the discounted rate.
      Example: description", + "example": "description" + } + }, + "description": "Specifies discount Rate for Shipment." + }, + "Tax": { + "description": "Tax surcharge details", + "type": "object", + "properties": { + "taxType": { + "description": "Specifies the type of Surcharge/Tax.", + "type": "string", + "enum": [ + "EXPORT", + "GST", + "HST", + "INTRACOUNTRY", + "OTHER", + "PST", + "SST", + "VAT" + ], + "example": "VAT" + }, + "description": { + "description": "Specifies the description of the Surcharge/Tax.", + "type": "string", + "example": "description" + }, + "amount": { + "description": "Specifies the list of tax amounts.", + "$ref": "#/components/schemas/Money_2" + } + } + }, + "Tax_2": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Indicates the amount of tax.
      Example: 10.0", + "format": "double", + "example": 10 + }, + "level": { + "type": "string", + "description": "Indicates the Level of Tax.
      Example: level", + "example": "level" + }, + "description": { + "type": "string", + "description": "Placeholder for the tax description.
      Example: descrption", + "example": "description" + }, + "type": { + "type": "string", + "description": "Placeholder for the Type of the Tax.
      Example:type", + "example": "type" + } + }, + "description": "Specifies the tax for the shipment." + }, "ErrorResponseVO": { "type": "object", "properties": { diff --git a/resources/models/track/v1.json b/resources/models/track/v1.json index 009de13d..d1c42cb4 100644 --- a/resources/models/track/v1.json +++ b/resources/models/track/v1.json @@ -2548,7 +2548,10 @@ "ESTIMATED_PICKUP", "ESTIMATED_RETURN_TO_STATION", "SHIP", - "SHIPMENT_DATA_RECEIVED" + "SHIPMENT_DATA_RECEIVED", + "TYPICAL", + "PROJECTED", + "PRE_DELIVERY" ] } } diff --git a/resources/models/trade-documents-upload/v1.json b/resources/models/trade-documents-upload/v1.json index 77647082..d55d4909 100644 --- a/resources/models/trade-documents-upload/v1.json +++ b/resources/models/trade-documents-upload/v1.json @@ -252,7 +252,7 @@ "name": "x-customer-transaction-id", "in": "header", "description": "Identifies the transaction ID of the request.
      Example: \"771407-1\"", - "required": true, + "required": false, "schema": { "type": "string", "example": "771407-1" @@ -1135,11 +1135,9 @@ "example": "090493e181586308" }, "folderId": { - "type": "array", + "type": "string", "description": "This is the reference server folder id, where the document is uploaded. ", - "example": [ - "0b0493e1812f8921" - ], + "example": "0b0493e1812f8921", "items": { "type": "string" } @@ -1265,7 +1263,7 @@ }, "originLocationCode": { "type": "string", - "description": "Provide origin FedEx location code for the shipment.

      Example: GVTKK", + "description": "Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.

      Example: GVTKK", "example": "GVTKK" }, "originCountryCode": { @@ -1275,7 +1273,7 @@ }, "destinationLocationCode": { "type": "string", - "description": "Provide destination FedEx location code for the shipment.

      Example: JNUA", + "description": "Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.

      Example: JNUA", "example": "JNUA" }, "destinationCountryCode": { @@ -1347,17 +1345,17 @@ "properties": { "referenceId": { "type": "string", - "description": "Specify reference ID for the image to be uploaded.

      Example: SIGNA202103", + "description": "Specify reference ID for the image to be uploaded.

      Example: 1234", "example": "1234" }, "name": { "type": "string", - "description": "Specify file name to be uploaded.

      Example: Signature.PNG", - "example": "FedExImages.PNG" + "description": "Specify file name to be uploaded.

      Example: LH2.PNG", + "example": "LH2.PNG" }, "contentType": { "type": "string", - "description": "Specify the file type or image type of the to be uploaded.

      Valid Values are:
      • image/png
      • image/gif
      ", + "description": "Specify the file type or image type of the to be uploaded.
      Example: image/png.

      Valid Values are:
      • image/png
      • image/gif
      ", "example": "image/png" }, "meta": { @@ -1400,7 +1398,7 @@ "example": "D0l5gsn6inat9IiB" }, "folderId": { - "type": "array", + "type": "string", "description": "This is the reference server folder id, where the document is uploaded. Note that, this data is returned only for Post-Shipment Upload scenario", "items": { "type": "string", @@ -1469,7 +1467,7 @@ "carrierCode", "destinationCountryCode", "metaData", - "orginCountryCode", + "originCountryCode", "workflowName" ], "type": "object", @@ -1492,7 +1490,7 @@ "FDXG" ] }, - "orginCountryCode": { + "originCountryCode": { "type": "string", "description": "Provide origin country code for the shipment", "example": "US" @@ -1528,7 +1526,7 @@ "carrierCode", "destinationCountryCode", "metaData", - "orginCountryCode", + "originCountryCode", "workflowName" ], "type": "object", @@ -1551,7 +1549,7 @@ "FDXG" ] }, - "orginCountryCode": { + "originCountryCode": { "type": "string", "description": "Origin country code for the shipment.

      Example: US
      Click here to see Country Codes", "example": "US" @@ -1606,7 +1604,7 @@ "properties": { "workflowName": { "type": "string", - "description": "Specify workflow name. To upload custom signature and letterhead images/company logo use value LetterheadSignature", + "description": "Specify workflow name. To upload custom signature and letterhead images/company logo use value

      Example:LetterheadSignature", "example": "LetterheadSignature" } }, @@ -1621,12 +1619,12 @@ "properties": { "imageType": { "type": "string", - "description": "Specify the type of image to be uploaded.

      Valid Values are:
      • SIGNATURE
      • LETTERHEAD
      ", + "description": "Specify the type of image to be uploaded.
      Example:SIGNATURE

      Valid Values are:
      • SIGNATURE
      • LETTERHEAD
      ", "example": "SIGNATURE" }, "imageIndex": { "type": "string", - "description": "Specify the index for the uploaded image.

      Valid Values are:
      • IMAGE_1
      • IMAGE_2
      • IMAGE_3
      • IMAGE_4
      • IMAGE_5
      ", + "description": "Specify the index for the uploaded image.
      Example: IMAGE_1

      Valid Values are:
      • IMAGE_1
      • IMAGE_2
      • IMAGE_3
      • IMAGE_4
      • IMAGE_5
      ", "example": "IMAGE_1" } }, @@ -1887,12 +1885,12 @@ }, "originLocationCode": { "type": "string", - "description": "Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response.", + "description": "Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.", "example": "BSLA" }, "destinationLocationCode": { "type": "string", - "description": "Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response.", + "description": "Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.", "example": "SFOA" }, "shipDocumentType": { @@ -1937,12 +1935,12 @@ }, "originLocationCode": { "type": "string", - "description": "Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response.", + "description": "Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.", "example": "BSLA" }, "destinationLocationCode": { "type": "string", - "description": "Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response.", + "description": "Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don\u2019t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.", "example": "SFOA" }, "shipDocumentType": { diff --git a/src/Api/AccountRegistrationV1/Dto/BaseProcessOutputVo.php b/src/Api/AccountRegistrationV1/Dto/BaseProcessOutputVo.php index c2e5376a..32395c84 100644 --- a/src/Api/AccountRegistrationV1/Dto/BaseProcessOutputVo.php +++ b/src/Api/AccountRegistrationV1/Dto/BaseProcessOutputVo.php @@ -14,18 +14,14 @@ final class BaseProcessOutputVo extends Dto { - protected static array $attributeMap = ['childKey' => 'child_Key', 'childSecret' => 'child_secret']; - protected static array $complexArrayTypes = ['mfaOptions' => MfaOptionsInner::class]; /** * @param MfaOptionsInner[]|null $mfaOptions It provide options to generate the secure pin or validate invoice - * @param ?string $childKey Child Key is a JSON Web Token provided for each of your customers. You must use the Child Key along with the Client Key, Client Secret and Customer Secret to get oAuth token, which should be used as credentials with each API transaction. - * @param ?string $childSecret Child secret, also referred to as Customer Secret, is provided for each of your customers. You must use the Customer Secret along with the Client Key, Client Secret and Child Key to get the oAuth token, which should be used as credentials with each API transaction. + * @param ?Credentials $credentials It provide Child key and child secret to generate the token */ public function __construct( public ?array $mfaOptions = null, - public ?string $childKey = null, - public ?string $childSecret = null, + public ?Credentials $credentials = null, ) {} } diff --git a/src/Api/AccountRegistrationV1/Dto/Credentials.php b/src/Api/AccountRegistrationV1/Dto/Credentials.php new file mode 100644 index 00000000..05fcae73 --- /dev/null +++ b/src/Api/AccountRegistrationV1/Dto/Credentials.php @@ -0,0 +1,27 @@ + 'child_Key', 'childSecret' => 'child_secret']; + + /** + * @param ?string $childKey Child Key is a JSON Web Token provided for each of your customers. You must use the Child Key along with the Client Key, Client Secret and Customer Secret to get oAuth token, which should be used as credentials with each API transaction. + * @param ?string $childSecret Child secret, also referred to as Customer Secret, is provided for each of your customers. You must use the Customer Secret along with the Client Key, Client Secret and Child Key to get the oAuth token, which should be used as credentials with each API transaction. + */ + public function __construct( + public ?string $childKey = null, + public ?string $childSecret = null, + ) {} +} diff --git a/src/Api/AccountRegistrationV1/Dto/CustomerKeyInputVo.php b/src/Api/AccountRegistrationV1/Dto/CustomerKeyInputVo.php index 895258e1..8eb9bed5 100644 --- a/src/Api/AccountRegistrationV1/Dto/CustomerKeyInputVo.php +++ b/src/Api/AccountRegistrationV1/Dto/CustomerKeyInputVo.php @@ -15,7 +15,7 @@ final class CustomerKeyInputVo extends Dto { /** - * @param AddressVo $address Indicates the customer's address you are attempting to get the Customer Key and Customer Secret for. Note that address information needs to match the shipping or billing address as loaded in FedEx systems. Contact FedEx support team for any address-related issues or questions. + * @param AddressVo $address Indicates the customer's address you are attempting to get the Customer Key and Customer Secret for. Note that address information needs to match the billing address as loaded in FedEx systems. Contact FedEx support team for any address-related issues or questions. * @param AccountNumber $accountNumber This field indicates Account Number object with encoded key and value. * @param string $customerName Name of the customer or company requesting authentication details. It accepts upto 50 characters of customerName. */ diff --git a/src/Api/AccountRegistrationV1/Responses/IrcpResponseVo.php b/src/Api/AccountRegistrationV1/Responses/IrcpResponseVo.php index b112d8a9..5af03d81 100644 --- a/src/Api/AccountRegistrationV1/Responses/IrcpResponseVo.php +++ b/src/Api/AccountRegistrationV1/Responses/IrcpResponseVo.php @@ -17,7 +17,7 @@ final class IrcpResponseVo extends Response { /** * @param ?string $transactionId The transaction ID is a special set of numbers that defines each transaction.
      Example: 624deea6-b709-470c-8c39-4b5511281492 - * @param ?BaseProcessOutputVo $output This is the response object providing Customer Key and secret key as a output. + * @param ?BaseProcessOutputVo $output This is the response object providing as output MFA options or Customer Key and Secret Key if MFA bypass has been applied. */ public function __construct( public readonly ?string $transactionId = null, diff --git a/src/Api/AddressValidationV1/Requests/ValidateAddress.php b/src/Api/AddressValidationV1/Requests/ValidateAddress.php index a5365f4d..64877e1b 100644 --- a/src/Api/AddressValidationV1/Requests/ValidateAddress.php +++ b/src/Api/AddressValidationV1/Requests/ValidateAddress.php @@ -24,9 +24,9 @@ /** * Validate Address * - * Use this endpointtt to get address resolution details. These details areee the outcome of validation - * and resolution of the input address. An address is stated as resolved when the input address matches - * the known reference data.
      Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) + * Use this endpoint to get address resolution details. These details are the outcome of validation and + * resolution of the input address. An address is stated as resolved when the input address matches the + * known reference data.
      Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) * mechanism. */ class ValidateAddress extends Request implements HasBody diff --git a/src/Api/ConsolidationV1/Dto/AncillaryFeeAndTax.php b/src/Api/ConsolidationV1/Dto/AncillaryFeeAndTax.php new file mode 100644 index 00000000..f24c8158 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/AncillaryFeeAndTax.php @@ -0,0 +1,27 @@ + For shipments to United States, refer to U.S. Customs and Border Protection website.
      Example: USGRE98BIR + * @param ?ClearanceItemDetailContact $contact Contact details of the manufacturer. + * @param ?ClearanceItemDetailAddress $address Address of the manufacturer. + */ + public function __construct( + public ?string $role = null, + public ?string $id = null, + public ?ClearanceItemDetailContact $contact = null, + public ?ClearanceItemDetailAddress $address = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/ClearanceItemDetailAddress.php b/src/Api/ConsolidationV1/Dto/ClearanceItemDetailAddress.php new file mode 100644 index 00000000..c0a8a723 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/ClearanceItemDetailAddress.php @@ -0,0 +1,33 @@ +Example: 98 Royal Crescent + * @param ?string $city The name of city, town of the recipient.
      Example: Birmingham + * @param ?string $stateOrProvinceCode It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country.
      Example: CA + * @param ?string $postalCode The US State and Canada Province codes. The Format and presence of this field may vary depending on the country.
      Example: 35209 + * @param ?string $countryCode The two-letter code used to identify a country.
      Example: US + * @param ?bool $residential Indicate whether this address is Residential (as opposed to Commercial).
      Valid Values: True or False. + */ + public function __construct( + public ?array $streetLines = null, + public ?string $city = null, + public ?string $stateOrProvinceCode = null, + public ?string $postalCode = null, + public ?string $countryCode = null, + public ?bool $residential = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/ClearanceItemDetailContact.php b/src/Api/ConsolidationV1/Dto/ClearanceItemDetailContact.php new file mode 100644 index 00000000..48227699 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/ClearanceItemDetailContact.php @@ -0,0 +1,23 @@ +Example: THE GREENHOUSE + */ + public function __construct( + public ?string $companyName = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/Commodity.php b/src/Api/ConsolidationV1/Dto/Commodity.php index b006eab3..5207d4b8 100644 --- a/src/Api/ConsolidationV1/Dto/Commodity.php +++ b/src/Api/ConsolidationV1/Dto/Commodity.php @@ -14,10 +14,15 @@ final class Commodity extends Dto { + protected static array $attributeMap = ['cImarksAndNumbers' => 'cIMarksAndNumbers']; + + protected static array $complexArrayTypes = ['clearanceItemDetail' => ClearanceItemDetail::class]; + /** * @param int $numberOfPieces Indicates the number of pieces associated with the commodity. Number of pieces cannot be a negative value or exceed 9,999. * @param string $description This is the commodity description. Maximum allowed 450 characters. * @param ?string $name Specify the commodity name + * @param ?string $cImarksAndNumbers This is an identifying mark or number used on the packaging of a shipment to help customers identify a particular shipment
      Example: 125SU212061F7 * @param ?string $countryOfManufacture This is commodity country of manufacture. This is required for International shipments. Maximum allowed length is 4. * @param ?Weight $weight Indicate the shipment total weight in pounds.
      Example: 10.6
      Note:
      • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
      • This value contains 1 explicit decimal position.
      • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
      * @param ?int $quantity This is the units quantity (using quantityUnits as the unit of measure) per commodity. This is used to estimate duties and taxes. @@ -25,11 +30,13 @@ final class Commodity extends Dto * @param ?Money2 $unitPrice This is commodity value used for Customs declaration. * @param ?Money2 $customsValue This is commodity value used for Customs declaration. * @param ?string $commodityId Value used to identify a commodity description; must be unique within the containing shipment. + * @param ClearanceItemDetail[]|null $clearanceItemDetail Array of clearance item details including manufacturer info for customs clearance. */ public function __construct( public int $numberOfPieces, public string $description, public ?string $name = null, + public ?string $cImarksAndNumbers = null, public ?string $countryOfManufacture = null, public ?Weight $weight = null, public ?int $quantity = null, @@ -37,5 +44,6 @@ public function __construct( public ?Money2 $unitPrice = null, public ?Money2 $customsValue = null, public ?string $commodityId = null, + public ?array $clearanceItemDetail = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/Commodity2.php b/src/Api/ConsolidationV1/Dto/Commodity2.php new file mode 100644 index 00000000..84eb05be --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/Commodity2.php @@ -0,0 +1,45 @@ + ClearanceItemDetail::class]; + + /** + * @param string $name Specify the commodity name + * @param int $numberOfPieces Indicates the number of pieces associated with the commodity. Number of pieces cannot be a negative value or exceed 9,999. + * @param string $description This is the commodity description. Maximum allowed 450 characters. + * @param ?string $countryOfManufacture This is commodity country of manufacture. This is required for International shipments. Maximum allowed length is 4. + * @param ?Weight $weight Indicate the shipment total weight in pounds.
      Example: 10.6
      Note:
      • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
      • This value contains 1 explicit decimal position.
      • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
      + * @param ?int $quantity This is the units quantity (using quantityUnits as the unit of measure) per commodity. This is used to estimate duties and taxes. + * @param ?string $quantityUnits This is the unit of measure for the units quantity. This is used to estimate duties and taxes. + * @param ?Money2 $unitPrice This is commodity value used for Customs declaration. + * @param ?Money2 $customsValue This is commodity value used for Customs declaration. + * @param ?string $commodityId Value used to identify a commodity description; must be unique within the containing shipment. + * @param ClearanceItemDetail[]|null $clearanceItemDetail Array of clearance item details including manufacturer info for customs clearance. + */ + public function __construct( + public string $name, + public int $numberOfPieces, + public string $description, + public ?string $countryOfManufacture = null, + public ?Weight $weight = null, + public ?int $quantity = null, + public ?string $quantityUnits = null, + public ?Money2 $unitPrice = null, + public ?Money2 $customsValue = null, + public ?string $commodityId = null, + public ?array $clearanceItemDetail = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/ConsolidationShipmentResultsInputVo.php b/src/Api/ConsolidationV1/Dto/ConsolidationShipmentResultsInputVo.php index d3e9559c..8af7402f 100644 --- a/src/Api/ConsolidationV1/Dto/ConsolidationShipmentResultsInputVo.php +++ b/src/Api/ConsolidationV1/Dto/ConsolidationShipmentResultsInputVo.php @@ -21,5 +21,6 @@ final class ConsolidationShipmentResultsInputVo extends Dto public function __construct( public string $jobId, public PartyAccountNumber $accountNumber, + public ?Version $version = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/CreateConsolidationCompletedShipmentDetail.php b/src/Api/ConsolidationV1/Dto/CreateConsolidationCompletedShipmentDetail.php new file mode 100644 index 00000000..1f0c4136 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/CreateConsolidationCompletedShipmentDetail.php @@ -0,0 +1,55 @@ + CompletedPackageDetail::class]; + + /** + * @param CompletedPackageDetail[]|null $completedPackageDetails + * @param ?ShipmentOperationalDetail $operationalDetail Shipment level operational information. + * @param ?string $carrierCode Specify the four letter code of a FedEx operating company that meets your requirements
      Examples of FedEx Operating Companies are:
      • FDXE - FedEx Express
      • FDXG - FedEx Ground
      • FXSP - FedEx SmartPost
      • FXCC - FedEx Custom Critical.
      + * @param ?CompletedHoldAtLocationDetail $completedHoldAtLocationDetail Returns the default holding location information when HOLD_AT_LOCATION special service is requested and the client does not specify the hold location address. + * @param ?CompletedEtdDetail $completedEtdDetail These are completed ETD details when ELECTRONIC_TRADE_DOCUMENTS Special service type is requested + * @param ?string $packagingDescription Specifies packaging description. + * @param ?TrackingId $masterTrackingId The field is present to allow use of preassigned Master Airway Bill tracking number. + * @param ?ServiceDescription $serviceDescription Provides Service Description. + * @param ?bool $usDomestic Indicates whether or not this is an intra-U.S. shipment. + * @param ?CompletedHazardousShipmentDetail $hazardousShipmentDetail Completed shipment level hazardous commodity information. + * @param ?ShipmentRating $shipmentRating All shipment-level rating data for this shipment, which may include data for multiple rate types. + * @param ?DocumentRequirementsDetail $documentRequirements Provides the document requirements detail. + * @param ?string $exportComplianceStatement Specifies export Compliance Statement. + * @param ?PendingShipmentAccessDetail $accessDetail This information describes how and when a online email return label shipment may be accessed for completion. + * @param ?ShipmentConsolidationDetail $shipmentConsolidationDetail Provides the shipment consolidation details. + * @param ?CompletedCodDetail $completedCodDetail Provides the complete collection detail. + */ + public function __construct( + public ?array $completedPackageDetails = null, + public ?ShipmentOperationalDetail $operationalDetail = null, + public ?string $carrierCode = null, + public ?CompletedHoldAtLocationDetail $completedHoldAtLocationDetail = null, + public ?CompletedEtdDetail $completedEtdDetail = null, + public ?string $packagingDescription = null, + public ?TrackingId $masterTrackingId = null, + public ?ServiceDescription $serviceDescription = null, + public ?bool $usDomestic = null, + public ?CompletedHazardousShipmentDetail $hazardousShipmentDetail = null, + public ?ShipmentRating $shipmentRating = null, + public ?DocumentRequirementsDetail $documentRequirements = null, + public ?string $exportComplianceStatement = null, + public ?PendingShipmentAccessDetail $accessDetail = null, + public ?ShipmentConsolidationDetail $shipmentConsolidationDetail = null, + public ?CompletedCodDetail $completedCodDetail = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/CreateConsolidationShipmentOutputVoDetails.php b/src/Api/ConsolidationV1/Dto/CreateConsolidationShipmentOutputVoDetails.php index f55c8336..d59a844f 100644 --- a/src/Api/ConsolidationV1/Dto/CreateConsolidationShipmentOutputVoDetails.php +++ b/src/Api/ConsolidationV1/Dto/CreateConsolidationShipmentOutputVoDetails.php @@ -15,11 +15,11 @@ final class CreateConsolidationShipmentOutputVoDetails extends Dto { protected static array $complexArrayTypes = [ - 'transactionShipments' => TransactionConsolidationShipmentResultsOutputVo::class, + 'transactionShipments' => TransactionCreateConsolidationShipmentResultsOutputVo::class, ]; /** - * @param TransactionConsolidationShipmentResultsOutputVo[]|null $transactionShipments a list of consolidation shipments within the open shipment + * @param TransactionCreateConsolidationShipmentResultsOutputVo[]|null $transactionShipments a list of consolidation shipments within the open shipment */ public function __construct( public ?array $transactionShipments = null, diff --git a/src/Api/ConsolidationV1/Dto/CustomsClearanceDetail2.php b/src/Api/ConsolidationV1/Dto/CustomsClearanceDetail2.php index bd1845a2..a64be993 100644 --- a/src/Api/ConsolidationV1/Dto/CustomsClearanceDetail2.php +++ b/src/Api/ConsolidationV1/Dto/CustomsClearanceDetail2.php @@ -14,7 +14,7 @@ final class CustomsClearanceDetail2 extends Dto { - protected static array $complexArrayTypes = ['commodities' => Commodity::class, 'brokers' => BrokerDetail2::class]; + protected static array $complexArrayTypes = ['commodities' => Commodity2::class, 'brokers' => BrokerDetail2::class]; /** * @param ?CustomsOptionDetail $customsOption Customs Option Detail, type must be indicated for each occurrence @@ -28,7 +28,7 @@ final class CustomsClearanceDetail2 extends Dto * @param ?ConsolidationCustomsDeclarationStatementDetail $declarationStatementDetail This provides the information necessary to identify the different statements,declarations, acts, and/or certifications that apply to this shipment. * @param ?CustomsClearanceDetail1CommercialInvoice $commercialInvoice Use this object to provide Commercial Invoice details.
      This element is required if a FedEx generated Consolidated Commercial Invoice is requested.
      To request a FedEx generated Consolidated Commercial Invoice include "CONSOLIDATED_COMMERCIAL_INVOICE" value in the "consolidationDocumentTypes" array, in the "consolidationDocumentSpecification" object.
      Customers are responsible for printing the Consolidated Commercial Invoice. * @param ?ExportDetail $exportDetail Conditional. Export Detail Used for US or CA exports. - * @param Commodity[]|null $commodities Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment. + * @param Commodity2[]|null $commodities Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment. * @param BrokerDetail2[]|null $brokers Conditional.
      Specify Broker information only if you are using Broker Select Option for your shipment.To be considered a valid, a country code must be specified in addition to one of the following address items: postal code, city, or location id. * @param ?string $clearanceBrokerage Specifies the type of brokerage to be applied to a shipment. * @param ?string $freightOnValue Identifies responsibilities with respect to loss, damage, etc. diff --git a/src/Api/ConsolidationV1/Dto/DistributionLocations.php b/src/Api/ConsolidationV1/Dto/DistributionLocations.php index 028020e2..ccef4c78 100644 --- a/src/Api/ConsolidationV1/Dto/DistributionLocations.php +++ b/src/Api/ConsolidationV1/Dto/DistributionLocations.php @@ -19,7 +19,7 @@ final class DistributionLocations extends Dto * @param ?int $locationNumber Specifies the location number. * @param ?string $id This is a customer-specified or system-assigned identifier that uniquely identifies the specific distibution location within a collection of distribution locations. This is not the same as the FedEx locationId or locationNumber..
      Example: 123 * @param ?string $locationId The unique location identifier
      Example: YBZA - * @param ?ContactAndAddress $locationContactAndAddress Idicates the contact and address details of a location. + * @param ?ContactAndAddress $locationContactAndAddress Indicate the contact and address details of a location. * @param ?string $clearanceNumber This specifies the clearance number associated with the distribution location.
      Example: 123 * @param ?string[] $inclusionSpecifications Specifies which kinds of shipments will be processed by this distribution location. */ diff --git a/src/Api/ConsolidationV1/Dto/EdtCommodityTax.php b/src/Api/ConsolidationV1/Dto/EdtCommodityTax.php new file mode 100644 index 00000000..85ea91d7 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/EdtCommodityTax.php @@ -0,0 +1,27 @@ + TaxRates::class]; + + /** + * @param ?string $taxType Estimated taxes type + * @param ?string $effectiveDate Estimated duties and taxes effective date. Format [YYYY-MM-DD]. + * @param ?string $name The localized name of the surcharge. + * @param ?Money $taxableValue This is commodity value used for Customs declaration. + * @param ?string $description FedEx pays the Duty and Tax charges on your behalf to ensure we can deliver your shipment as quickly as possible + * @param ?string $formula Indicates the formula. + * @param ?Money $amount This is commodity value used for Customs declaration. + * @param TaxRates[]|null $taxRates Estimated duties and taxes taxRates + * @param ?AppliedPreferentialTradeAgreement $appliedPreferentialTradeAgreement provides details about PTA applied between countries for specific product. + */ + public function __construct( + public ?string $taxType = null, + public ?string $taxcode = null, + public ?string $effectiveDate = null, + public ?string $name = null, + public ?Money $taxableValue = null, + public ?string $description = null, + public ?string $formula = null, + public ?Money $amount = null, + public ?array $taxRates = null, + public ?AppliedPreferentialTradeAgreement $appliedPreferentialTradeAgreement = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/EmailNotificationDetail.php b/src/Api/ConsolidationV1/Dto/EmailNotificationDetail.php new file mode 100644 index 00000000..c8c258ed --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/EmailNotificationDetail.php @@ -0,0 +1,29 @@ + EmailNotificationRecipient::class]; + + /** + * @param ?string $aggregationType Consolidation Shipment Notification Aggregation Type.
      Example:PER_PACKAGE + * @param EmailNotificationRecipient[]|null $emailNotificationRecipients These are email notification recipient details. + * @param ?string $personalMessage This is your personal message for the email.
      Note: The maximum personal message character limit depends on the element emailNotificationDetail\emailNotificationRecipients\notificationFormatType values:
      • If notificationFormatType is TEXT, then only 120 characters printed on the email
      • If notificationFormatType is HTML, then 500 characters printed on the email

      Example: This is concerning the order 123456 of 26 Nov 2025 - art no 34324-23 Teddy Bear, brown + */ + public function __construct( + public ?string $aggregationType = null, + public ?array $emailNotificationRecipients = null, + public ?string $personalMessage = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/EmailNotificationRecipient.php b/src/Api/ConsolidationV1/Dto/EmailNotificationRecipient.php new file mode 100644 index 00000000..26a922f2 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/EmailNotificationRecipient.php @@ -0,0 +1,35 @@ +Example: SHIPPER + * @param ?string $name Specify the recipient name.
      Example: Dispatch + * @param ?string $emailAddress Specify the recipient email address.
      Example: xyz@aol.com + * @param ?string $notificationFormatType This is the format for the email notification. Either HTML or plain text can be provided. + * @param ?string $notificationType Indicate the type of notification that will be sent as an email. + * @param ?string $locale These are the locale details for email.
      click here to see Locales
      Note: If the locale is left blank or an invalid locale is entered, an error message is returned in response. + * @param ?string[] $notificationEventType Specify notification event types.
      Click here for more information on Notification Event Types. + */ + public function __construct( + public string $emailNotificationRecipientType, + public ?string $name = null, + public ?string $emailAddress = null, + public ?string $notificationFormatType = null, + public ?string $notificationType = null, + public ?string $locale = null, + public ?array $notificationEventType = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/FullSchemaConfirmConsolidation.php b/src/Api/ConsolidationV1/Dto/FullSchemaConfirmConsolidation.php index dba9d929..270de48f 100644 --- a/src/Api/ConsolidationV1/Dto/FullSchemaConfirmConsolidation.php +++ b/src/Api/ConsolidationV1/Dto/FullSchemaConfirmConsolidation.php @@ -31,5 +31,6 @@ public function __construct( public ?string $edtRequestType = null, public ?string $rateRequestType = null, public ?ConsolidationDocumentSpec $consolidationDocumentSpecification = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/FullSchemaConfirmConsolidationResults.php b/src/Api/ConsolidationV1/Dto/FullSchemaConfirmConsolidationResults.php index 37672e22..767c2951 100644 --- a/src/Api/ConsolidationV1/Dto/FullSchemaConfirmConsolidationResults.php +++ b/src/Api/ConsolidationV1/Dto/FullSchemaConfirmConsolidationResults.php @@ -21,5 +21,6 @@ final class FullSchemaConfirmConsolidationResults extends Dto public function __construct( public PartyAccountNumber $accountNumber, public string $jobId, + public ?Version $version = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/FullSchemaCreateConsolidation.php b/src/Api/ConsolidationV1/Dto/FullSchemaCreateConsolidation.php index 7639bac6..7cb367dc 100644 --- a/src/Api/ConsolidationV1/Dto/FullSchemaCreateConsolidation.php +++ b/src/Api/ConsolidationV1/Dto/FullSchemaCreateConsolidation.php @@ -23,5 +23,6 @@ public function __construct( public RequestedConsolidation $requestedConsolidation, public PartyAccountNumber $accountNumber, public ?string $consolidationIndex = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/FullSchemaCreateConsolidationShipment.php b/src/Api/ConsolidationV1/Dto/FullSchemaCreateConsolidationShipment.php index 61a2bd08..f7d1765f 100644 --- a/src/Api/ConsolidationV1/Dto/FullSchemaCreateConsolidationShipment.php +++ b/src/Api/ConsolidationV1/Dto/FullSchemaCreateConsolidationShipment.php @@ -22,6 +22,7 @@ final class FullSchemaCreateConsolidationShipment extends Dto * @param ?string $index This is a unique value for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provide). * 'Note: If index is not provided while create Consolidation then the master tracking id of create Consolidation will act as index for the shipment. * @param ?string $shipAction Indicates the optional actions that can be performed during create consolidation shipment + * @param ?string[] $processingOptions Array of processing options for the shipment. * @param ?string $labelResponseOptions This is to specify whether the encoded bytecode or the Label URL to be returned in the response.

      Valid values:

      • LABEL – Indicates request is for encoded bytecode.
      • URL_ONLY – Indicates label URL request.
      Note: For asynchronous shipment (More than 40 packages) request only the value LABEL is suported.


      Note: With URL_ONLY option, the URL once created will be active for 12 hours. */ public function __construct( @@ -31,6 +32,8 @@ public function __construct( public ?string $processingOptionType = null, public ?string $index = null, public ?string $shipAction = null, + public ?array $processingOptions = null, public ?string $labelResponseOptions = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/FullSchemaDeleteConsolidation.php b/src/Api/ConsolidationV1/Dto/FullSchemaDeleteConsolidation.php index 9e64aa29..acca9d38 100644 --- a/src/Api/ConsolidationV1/Dto/FullSchemaDeleteConsolidation.php +++ b/src/Api/ConsolidationV1/Dto/FullSchemaDeleteConsolidation.php @@ -23,5 +23,6 @@ public function __construct( public PartyAccountNumber $accountNumber, public ConsolidationKey $consolidationKey, public TrackingIds $trackingId, + public ?Version $version = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/FullSchemaDeleteShipment.php b/src/Api/ConsolidationV1/Dto/FullSchemaDeleteShipment.php index 5653ef31..195cb0ab 100644 --- a/src/Api/ConsolidationV1/Dto/FullSchemaDeleteShipment.php +++ b/src/Api/ConsolidationV1/Dto/FullSchemaDeleteShipment.php @@ -25,5 +25,6 @@ public function __construct( public string $trackingNumber, public ?string $deletionControl = null, public ?string $resourceKey = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/FullSchemaModifyConsolidation.php b/src/Api/ConsolidationV1/Dto/FullSchemaModifyConsolidation.php index 896a37a0..43178af3 100644 --- a/src/Api/ConsolidationV1/Dto/FullSchemaModifyConsolidation.php +++ b/src/Api/ConsolidationV1/Dto/FullSchemaModifyConsolidation.php @@ -23,5 +23,6 @@ public function __construct( public ConsolidationKey $consolidationKey, public RequestedConsolidation $requestedConsolidation, public PartyAccountNumber $accountNumber, + public ?Version $version = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/FullSchemaRetrieveConsolidation.php b/src/Api/ConsolidationV1/Dto/FullSchemaRetrieveConsolidation.php index 9c23e83a..53a21a77 100644 --- a/src/Api/ConsolidationV1/Dto/FullSchemaRetrieveConsolidation.php +++ b/src/Api/ConsolidationV1/Dto/FullSchemaRetrieveConsolidation.php @@ -21,5 +21,6 @@ final class FullSchemaRetrieveConsolidation extends Dto public function __construct( public PartyAccountNumber $accountNumber, public ConsolidationKey $consolidationKey, + public ?Version $version = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/InternationalDistributionDetail.php b/src/Api/ConsolidationV1/Dto/InternationalDistributionDetail.php index ff930f90..1b143714 100644 --- a/src/Api/ConsolidationV1/Dto/InternationalDistributionDetail.php +++ b/src/Api/ConsolidationV1/Dto/InternationalDistributionDetail.php @@ -14,9 +14,11 @@ final class InternationalDistributionDetail extends Dto { + protected static array $complexArrayTypes = ['declarationCurrencies' => Money::class]; + /** * @param Dimensions $totalDimensions Conditional.
      The dimensions of the package; length, width & height. All three dimensions must be indicated.
      Note: Dimensions are required with YOUR_PACKAGING package type. - * @param Money $declaredCurrencies This is commodity value used for Customs declaration. + * @param Money[] $declarationCurrencies * @param string $clearanceFacilityLocationId Specifies the clearance facility location id. * @param ?string $dropOffType Specifies drop off type. * @param ?TotalInsuredMoney $totalInsuredValue This is commodity value used for Customs declaration. @@ -24,7 +26,7 @@ final class InternationalDistributionDetail extends Dto */ public function __construct( public Dimensions $totalDimensions, - public Money $declaredCurrencies, + public array $declarationCurrencies, public string $clearanceFacilityLocationId, public ?string $dropOffType = null, public ?TotalInsuredMoney $totalInsuredValue = null, diff --git a/src/Api/ConsolidationV1/Dto/LabelSpecification.php b/src/Api/ConsolidationV1/Dto/LabelSpecification.php index de1d4970..d5d9bf02 100644 --- a/src/Api/ConsolidationV1/Dto/LabelSpecification.php +++ b/src/Api/ConsolidationV1/Dto/LabelSpecification.php @@ -17,7 +17,7 @@ final class LabelSpecification extends Dto protected static array $complexArrayTypes = ['dispositions' => ShippingDocumentDispositionDetail::class]; /** - * @param ContactAndAddress $printedLabelOrigin Idicates the contact and address details of a location. + * @param ContactAndAddress $printedLabelOrigin Indicate the contact and address details of a location. * @param ?string $labelFormatType Specify the label Format Type.
      click here to see label format types * @param ?string $labelStockType Indicate the label stock type used.
      click here to see label format types * @param ?string $imageType Specify the image format used for a shipping document.
      click here to see label format types diff --git a/src/Api/ConsolidationV1/Dto/PartyContact.php b/src/Api/ConsolidationV1/Dto/PartyContact.php index f298d812..4b8cfca4 100644 --- a/src/Api/ConsolidationV1/Dto/PartyContact.php +++ b/src/Api/ConsolidationV1/Dto/PartyContact.php @@ -15,8 +15,8 @@ final class PartyContact extends Dto { /** - * @param string $phoneNumber The shipper's phone number.
      Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
      Example: 918xxxxx890 - * @param ?string $personName Specify contact name. Maximum length is 70.
      Note: Either the companyName or personName is mandatory.
      Example: John Taylor + * @param string $phoneNumber The shipper's phone number.
      Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
      Example: 918xxxxx890 + * @param ?string $personName Specify contact name. First 35 chars will be printed on the label, excess characters will be truncated.
      Note: Either the companyName or personName is mandatory.
      Example: John Taylor * @param ?string $emailAddress Specify contact email address. Maximum length is 80.
      Example: sample@company.com * @param ?string $phoneExtension The shipper's phone extension. Max length is 6.
      Example: 91 * @param ?string $companyName Specify contact company name. Maximum length is 35.
      Note: Either the companyName or personName is mandatory. diff --git a/src/Api/ConsolidationV1/Dto/PartyContactSoldTo.php b/src/Api/ConsolidationV1/Dto/PartyContactSoldTo.php index 14a5fce0..38a80fd8 100644 --- a/src/Api/ConsolidationV1/Dto/PartyContactSoldTo.php +++ b/src/Api/ConsolidationV1/Dto/PartyContactSoldTo.php @@ -16,7 +16,7 @@ final class PartyContactSoldTo extends Dto { /** * @param string $personName Identifies the contact person's name. Max Length is 70.
      Example: John Taylor - * @param string $phoneNumber The shipper's phone number.
      Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
      Example: 918xxxxx890 + * @param string $phoneNumber The shipper's phone number.
      Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
      Example: 918xxxxx890 * @param string $companyName The shipper's company name. Max length is 35.
      Example: FedEx * @param ?string $emailAddress Shipper's email address. Max length is 80.
      Example: sample@company.com * @param ?string $phoneExtension The shipper's phone extension. Max length is 6.
      Example: 91 diff --git a/src/Api/ConsolidationV1/Dto/PartyContactSoldTo2.php b/src/Api/ConsolidationV1/Dto/PartyContactSoldTo2.php index c80f1ca9..2cc36e2e 100644 --- a/src/Api/ConsolidationV1/Dto/PartyContactSoldTo2.php +++ b/src/Api/ConsolidationV1/Dto/PartyContactSoldTo2.php @@ -16,7 +16,7 @@ final class PartyContactSoldTo2 extends Dto { /** * @param string $personName Specify contact person name.
      Recommended length is 70.
      Note: There's no specific validation for the person name.
      Example: John Taylor - * @param string $phoneNumber Specify contact phone number.
      Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
      Example: 918xxxxx890 + * @param string $phoneNumber Specify contact phone number.
      Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
      Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
      Example: 918xxxxx890 * @param string $companyName Specify contact company name.
      Recommended length is 35.
      Note: There's no specific validation for the company name. * @param ?string $emailAddress Specify contact email address. Maximum length is 80.
      Example: sample@company.com */ diff --git a/src/Api/ConsolidationV1/Dto/PickupDetail.php b/src/Api/ConsolidationV1/Dto/PickupDetail.php new file mode 100644 index 00000000..e9ad2cc3 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/PickupDetail.php @@ -0,0 +1,31 @@ + RateDiscount::class, + 'rebates' => Rebate::class, + 'surcharges' => Surcharge2::class, + 'taxes' => Tax::class, + 'dutiesAndTaxes' => EdtCommodityTax::class, + 'ancillaryFeesAndTaxes' => AncillaryFeeAndTax::class, + ]; + + /** + * @param ?string $rateType Type used for this specific set of rate data. + * @param ?string $rateScale Indicates the rate scale used. + * @param ?string $rateZone Indicates the rate zone used (based on origin and destination). + * @param ?string $ratingBasis Allows clients to determine whether to add charges at the package level when Per Piece Rating details are returned.
      • SHIPMENT_WEIGHT_BASED - Indicates shipment weight is used to calculate the rate.

      • FLAT_RATE_PER_PAK - Indicates shipment is rated based on number of packs, weight would be considered for overweight surcharge but not for calculating shipment rate.

      • PACK_WEIGHT_BASED - Indicates individual package weight would be rated and aggregated to get shipment rate weight.
      + * @param ?string $pricingCode Identifies the type of pricing used for this shipment. + * @param ?string $minimumChargeType provides the minimum charge type applicable to the rates. + * @param ?CurrencyExchangeRate $currencyExchangeRate Specifies the currency exchange performed on financial amounts on this rate. + * @param ?string[] $specialRatingApplied Indicates which special rating cases applied to this shipment. + * @param ?float $fuelSurchargePercent Specify a fuel surcharge percentage. + * @param ?string $pickupBaseChargeDescription Will indicate the pickup charge description of the on call pickup + * @param ?TotalBaseCharge $totalBaseCharge Total base charges for the shipment. + * @param ?TotalFreightDiscounts $totalFreightDiscounts The total discounts used in the rate calculation.
      Example: 1257.26 + * @param ?TotalNetFreight $totalNetFreight This shipment's totalNetFreight. + * @param ?TotalSurcharges $totalSurcharges The sum of all surcharges on the package. + * @param ?TotalNetFedExCharge $totalNetFedExCharge This shipment's totalNetFedExCharge, which is totalNetFreight plus totalSurcharges (not including totalTaxes). + * @param ?TotalTaxes $totalTaxes The sum of all taxes on this package.
      Example: 1257.25 + * @param ?TotalNetCharge $totalNetCharge Total net charges for the shipment. + * @param ?TotalRebates $totalRebates The total sum of all rebates applied to this package. + * @param ?TotalDutiesAndTaxes $totalDutiesAndTaxes The sum of shipment/package Duties and taxes. + * @param ?TotalAncillaryFeesAndTaxes $totalAncillaryFeesAndTaxes Identifies the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes. + * @param ?TotalDutiesTaxesAndFees $totalDutiesTaxesAndFees The total amount of the duties and taxes plus the total ancillary fees and taxes. + * @param ?TotalNetChargeWithDutiesAndTaxes $totalNetChargeWithDutiesAndTaxes Total netChargesWithDutiesAndTaxes for the shipment. + * @param RateDiscount[]|null $freightDiscounts All rate discounts that apply to this shipment + * @param Rebate[]|null $rebates The all rebates applied to this package. + * @param Surcharge2[]|null $surcharges The amount of surcharges applied to this shipment. + * @param Tax[]|null $taxes List of taxes. + * @param EdtCommodityTax[]|null $dutiesAndTaxes List of The shipment/package Duties and taxes. + * @param AncillaryFeeAndTax[]|null $ancillaryFeesAndTaxes Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes. + * @param ?VariableHandlingCharges $variableHandlingCharges Optional. The variable handling charge amount calculated based on the requested variable handling charge detail. + * @param ?TotalVariableHandlingCharges $totalVariableHandlingCharges Optional. The variable handling charge amount calculated based on the requested variable handling charge detail. + */ + public function __construct( + public ?string $rateType = null, + public ?string $rateScale = null, + public ?string $rateZone = null, + public ?string $ratingBasis = null, + public ?string $pricingCode = null, + public ?string $minimumChargeType = null, + public ?CurrencyExchangeRate $currencyExchangeRate = null, + public ?array $specialRatingApplied = null, + public ?float $fuelSurchargePercent = null, + public ?string $pickupBaseChargeDescription = null, + public ?TotalBaseCharge $totalBaseCharge = null, + public ?TotalFreightDiscounts $totalFreightDiscounts = null, + public ?TotalNetFreight $totalNetFreight = null, + public ?TotalSurcharges $totalSurcharges = null, + public ?TotalNetFedExCharge $totalNetFedExCharge = null, + public ?TotalTaxes $totalTaxes = null, + public ?TotalNetCharge $totalNetCharge = null, + public ?TotalRebates $totalRebates = null, + public ?TotalDutiesAndTaxes $totalDutiesAndTaxes = null, + public ?TotalAncillaryFeesAndTaxes $totalAncillaryFeesAndTaxes = null, + public ?TotalDutiesTaxesAndFees $totalDutiesTaxesAndFees = null, + public ?TotalNetChargeWithDutiesAndTaxes $totalNetChargeWithDutiesAndTaxes = null, + public ?array $freightDiscounts = null, + public ?array $rebates = null, + public ?array $surcharges = null, + public ?array $taxes = null, + public ?array $dutiesAndTaxes = null, + public ?array $ancillaryFeesAndTaxes = null, + public ?VariableHandlingCharges $variableHandlingCharges = null, + public ?TotalVariableHandlingCharges $totalVariableHandlingCharges = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/RateDiscount.php b/src/Api/ConsolidationV1/Dto/RateDiscount.php index cd06eabd..79203e94 100644 --- a/src/Api/ConsolidationV1/Dto/RateDiscount.php +++ b/src/Api/ConsolidationV1/Dto/RateDiscount.php @@ -15,15 +15,14 @@ final class RateDiscount extends Dto { /** - * @param ?float $amount Specifies the amount. - * @param ?string $rateDiscountType The type of rate discount.
      Valid Values are BONUS, COUPON,EARNED,OTHER,VOLUME. - * @param ?float $percent Specifies the percentage of Rate discount. - * @param ?string $description Specifies the description of the discounted rate. + * @param ?string $rateDiscountType Indicates the type. + * @param ?string $description Indicates the description for the rate discount. + * @param ?Money $amount This is commodity value used for Customs declaration. */ public function __construct( - public ?float $amount = null, public ?string $rateDiscountType = null, - public ?float $percent = null, public ?string $description = null, + public ?Money $amount = null, + public ?float $percent = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/RateDiscount2.php b/src/Api/ConsolidationV1/Dto/RateDiscount2.php new file mode 100644 index 00000000..e692730a --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/RateDiscount2.php @@ -0,0 +1,29 @@ + Valid Values are BONUS, COUPON,EARNED,OTHER,VOLUME. + * @param ?float $percent Specifies the percentage of Rate discount. + * @param ?string $description Specifies the description of the discounted rate. + */ + public function __construct( + public ?float $amount = null, + public ?string $rateDiscountType = null, + public ?float $percent = null, + public ?string $description = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/Rebate.php b/src/Api/ConsolidationV1/Dto/Rebate.php new file mode 100644 index 00000000..5332d808 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/Rebate.php @@ -0,0 +1,28 @@ + Example: 2019-10-01 + * @param ?string $shipDateStamp This is the ship date for the outbound shipment associated with a return shipment. The format is YYYY-MM-DD.
      Example: 2019-10-01 * @param ?Origin2 $origin The descriptive information for the customer origin. * @param ?SoldToParty2 $soldTo Will indicate the party responsible for purchasing the goods shipped from the shipper to the recipient. The sold to party is not necessarily the recipient or the importer of record. The sold to party is relevant when the purchaser, rather than the recipient determines when certain customs regulations apply. * @param ?string $bookingNumber Specifies the booking number. @@ -45,7 +45,7 @@ public function __construct( public ShipperParty2 $shipper, public InternationalDistributionDetail $internationalDistributionDetail, public CustomsClearanceDetail2 $customsClearanceDetail, - public ?string $shipDate = null, + public ?string $shipDateStamp = null, public ?Origin2 $origin = null, public ?SoldToParty2 $soldTo = null, public ?string $bookingNumber = null, diff --git a/src/Api/ConsolidationV1/Dto/RequestedConsolidationShipment.php b/src/Api/ConsolidationV1/Dto/RequestedConsolidationShipment.php index df714289..13128d93 100644 --- a/src/Api/ConsolidationV1/Dto/RequestedConsolidationShipment.php +++ b/src/Api/ConsolidationV1/Dto/RequestedConsolidationShipment.php @@ -31,6 +31,7 @@ final class RequestedConsolidationShipment extends Dto * @param ?RequestedConsolidationShipmentSpecialServicesRequested $specialServicesRequested These special services are available at the shipment level for some or all service types.
      If the shipper is requesting a special service which requires additional data (such as the COD amount), the shipment special service type must be present in the specialServiceTypes collection, and the supporting detail must be provided in the appropriate sub-object below.
      RETURN_SHIPMENT is required for creating return shipments. * @param ?Weight $totalWeight Indicate the shipment total weight in pounds.
      Example: 10.6
      Note:
      • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
      • This value contains 1 explicit decimal position.
      • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
      * @param RecipientParty[]|null $recipients + * @param ?EmailNotificationDetail $emailNotificationDetail These are email details. Provides the type and email addresses of e-mail recipients. * @param ?CustomsClearanceDetail $customsClearanceDetail Required for International and intra-country Shipments. Information about this package that only applies to an international (export) shipment or return. */ public function __construct( @@ -47,6 +48,8 @@ public function __construct( public ?string $dropOffType = null, public ?Weight $totalWeight = null, public ?array $recipients = null, + public ?PickupDetail $pickupDetail = null, + public ?EmailNotificationDetail $emailNotificationDetail = null, public ?RequestedConsolidationShipmentProcessingOption $processingOption = null, public ?CustomsClearanceDetail $customsClearanceDetail = null, public ?string $rateRequestTypes = null, diff --git a/src/Api/ConsolidationV1/Dto/RetrievedConsolidation.php b/src/Api/ConsolidationV1/Dto/RetrievedConsolidation.php index 004d3977..791ecd73 100644 --- a/src/Api/ConsolidationV1/Dto/RetrievedConsolidation.php +++ b/src/Api/ConsolidationV1/Dto/RetrievedConsolidation.php @@ -21,7 +21,7 @@ final class RetrievedConsolidation extends Dto /** * @param ?string $consolidationType Specifies the consolidation type. - * @param ?string $shipDate This field indicates the shipping date of the LTL Shipment + * @param ?string $shipDateStamp This field indicates the shipping date of the LTL Shipment * @param TrackingIds[]|null $trackingIds The field is present to allow use of preassigned Master Airway Bill tracking number. * @param ?ShipperParty $shipper The descriptive information for the customer shipping the package along with the physical location from where the shipment originates. * @param ?Origin $origin The descriptive information for the customer origin. @@ -40,7 +40,7 @@ final class RetrievedConsolidation extends Dto */ public function __construct( public ?string $consolidationType = null, - public ?string $shipDate = null, + public ?string $shipDateStamp = null, public ?array $trackingIds = null, public ?ShipperParty $shipper = null, public ?Origin $origin = null, diff --git a/src/Api/ConsolidationV1/Dto/ShipmentLegRateDetail.php b/src/Api/ConsolidationV1/Dto/ShipmentLegRateDetail.php index 0b3eab41..a25cf777 100644 --- a/src/Api/ConsolidationV1/Dto/ShipmentLegRateDetail.php +++ b/src/Api/ConsolidationV1/Dto/ShipmentLegRateDetail.php @@ -15,15 +15,15 @@ final class ShipmentLegRateDetail extends Dto { protected static array $complexArrayTypes = [ - 'taxes' => Tax::class, + 'taxes' => Tax2::class, 'surcharges' => Surcharge::class, - 'freightDiscounts' => RateDiscount::class, + 'freightDiscounts' => RateDiscount2::class, ]; /** * @param ?string $rateZone Indicates the rate zone used (based on origin and destination). * @param ?string $pricingCode Specifies the Pricing Code. - * @param Tax[]|null $taxes Specifies the taxes. + * @param Tax2[]|null $taxes Specifies the taxes. * @param ?Weight $totalDimWeight Indicate the shipment total weight in pounds.
      Example: 10.6
      Note:
      • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
      • This value contains 1 explicit decimal position.
      • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
      * @param ?float $totalRebates Specifies the total rebate. * @param ?float $fuelSurchargePercent Specifies a fuel surcharge percentage. @@ -43,7 +43,7 @@ final class ShipmentLegRateDetail extends Dto * @param Surcharge[]|null $surcharges All surcharges that apply to this shipment. * @param ?float $totalSurcharges The total of all surcharges. * @param ?Weight $totalBillingWeight Indicate the shipment total weight in pounds.
      Example: 10.6
      Note:
      • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
      • This value contains 1 explicit decimal position.
      • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
      - * @param RateDiscount[]|null $freightDiscounts + * @param RateDiscount2[]|null $freightDiscounts * @param ?string $rateScale Indicates the rate scale used. * @param ?float $totalNetCharge The net charge after applying all discounts and surcharges. * @param ?float $totalNetChargeWithDutiesAndTaxes Sum of total net charge, total duties and taxes; only provided if estimated duties and taxes were calculated for this shipment and duties, taxes and transportation charges are all paid by the same sender account. diff --git a/src/Api/ConsolidationV1/Dto/ShipmentRateDetail.php b/src/Api/ConsolidationV1/Dto/ShipmentRateDetail.php index a3c21373..f5b76b99 100644 --- a/src/Api/ConsolidationV1/Dto/ShipmentRateDetail.php +++ b/src/Api/ConsolidationV1/Dto/ShipmentRateDetail.php @@ -17,7 +17,7 @@ final class ShipmentRateDetail extends Dto protected static array $complexArrayTypes = [ 'shipmentLegRateDetails' => ShipmentLegRateDetail::class, 'surcharges' => Surcharge::class, - 'freightDiscounts' => RateDiscount::class, + 'freightDiscounts' => RateDiscount2::class, ]; /** @@ -41,7 +41,7 @@ final class ShipmentRateDetail extends Dto * @param Surcharge[]|null $surcharges All surcharges that apply to this shipment. * @param ?float $totalSurcharges The total amount of all surcharges applied to this shipment. * @param ?Weight $totalBillingWeight Indicate the shipment total weight in pounds.
      Example: 10.6
      Note:
      • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
      • This value contains 1 explicit decimal position.
      • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
      - * @param RateDiscount[]|null $freightDiscounts + * @param RateDiscount2[]|null $freightDiscounts * @param ?string $rateScale Indicates the rate scale used. * @param ?float $totalNetCharge The net charge after applying all discounts and surcharges. * @param ?float $totalBaseCharge The total freight charge that was calculated before surcharges, discounts and taxes. diff --git a/src/Api/ConsolidationV1/Dto/ShipmentRating.php b/src/Api/ConsolidationV1/Dto/ShipmentRating.php index f707599a..d4833a4c 100644 --- a/src/Api/ConsolidationV1/Dto/ShipmentRating.php +++ b/src/Api/ConsolidationV1/Dto/ShipmentRating.php @@ -19,9 +19,15 @@ final class ShipmentRating extends Dto /** * @param ?string $actualRateType This rate type identifies which entry in the following array is considered as presenting the "actual" rates for the shipment. * @param ShipmentRateDetail[]|null $shipmentRateDetails Each element of this field provides shipment-level rate totals for a specific rate type. + * @param ?Money $totalNetTransportationAndPickupCharge This is commodity value used for Customs declaration. + * @param ?Money $totalNetFedExTransportationAndPickupCharge This is commodity value used for Customs declaration. + * @param ?PickupRateDetail $pickupRateDetail Charges associated with a scheduled shipment pickup */ public function __construct( public ?string $actualRateType = null, public ?array $shipmentRateDetails = null, + public ?Money $totalNetTransportationAndPickupCharge = null, + public ?Money $totalNetFedExTransportationAndPickupCharge = null, + public ?PickupRateDetail $pickupRateDetail = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/Surcharge2.php b/src/Api/ConsolidationV1/Dto/Surcharge2.php new file mode 100644 index 00000000..39243a21 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/Surcharge2.php @@ -0,0 +1,29 @@ +Example: descrption - * @param ?string $type Specifies the type of the tax. + * @param ?string $taxType Specifies the type of Surcharge/Tax. + * @param ?string $description Specifies the description of the Surcharge/Tax. + * @param ?Money $amount This is commodity value used for Customs declaration. */ public function __construct( - public ?float $amount = null, - public ?string $level = null, + public ?string $taxType = null, public ?string $description = null, - public ?string $type = null, + public ?Money $amount = null, ) {} } diff --git a/src/Api/ConsolidationV1/Dto/Tax2.php b/src/Api/ConsolidationV1/Dto/Tax2.php new file mode 100644 index 00000000..b0e0e03e --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/Tax2.php @@ -0,0 +1,29 @@ +Example: descrption + * @param ?string $type Specifies the type of the tax. + */ + public function __construct( + public ?float $amount = null, + public ?string $level = null, + public ?string $description = null, + public ?string $type = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/TaxRates.php b/src/Api/ConsolidationV1/Dto/TaxRates.php new file mode 100644 index 00000000..7af23350 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/TaxRates.php @@ -0,0 +1,23 @@ + LabelResponseVo::class, + 'pieceResponses' => PieceResponse::class, + ]; + + /** + * @param ?string $serviceType Identifies the service for this shipment
      Example: FEDEX_2_DAY_FREIGHT
      Click here to see Service Types + * @param ?string $shipDateStamp Specifies shipment date. Format [YYYY-MM-DD]
      Example: 2010-03-04 + * @param ?string $serviceCategory Specifies Service Category.
      Example: EXPRESS + * @param LabelResponseVo[]|null $shipmentDocuments + * @param PieceResponse[]|null $pieceResponses + * @param ?string $serviceName Describes the service name for the shipment
      Example: FedEx 2 Day Freight + * @param ?CreateConsolidationCompletedShipmentDetail $completedShipmentDetail Returns the result of processing the desired package as a single-package shipment. + * @param ?ShipmentAdvisoryDetails $shipmentAdvisoryDetails These are shipment advisory details. + * @param ?string $masterTrackingNumber Indicates the TrackingNumber for the single or multiple-package shipment
      Example: 794953535000 + */ + public function __construct( + public ?string $serviceType = null, + public ?string $shipDateStamp = null, + public ?string $serviceCategory = null, + public ?array $shipmentDocuments = null, + public ?array $pieceResponses = null, + public ?string $serviceName = null, + public ?CreateConsolidationCompletedShipmentDetail $completedShipmentDetail = null, + public ?ShipmentAdvisoryDetails $shipmentAdvisoryDetails = null, + public ?string $masterTrackingNumber = null, + ) {} +} diff --git a/src/Api/ConsolidationV1/Dto/TransborderDistributionDetail1SpecialServicesRequestedTransborderDistributionLtlDetailPayment.php b/src/Api/ConsolidationV1/Dto/TransborderDistributionDetail1SpecialServicesRequestedTransborderDistributionLtlDetailPayment.php index afe3c055..db7804ed 100644 --- a/src/Api/ConsolidationV1/Dto/TransborderDistributionDetail1SpecialServicesRequestedTransborderDistributionLtlDetailPayment.php +++ b/src/Api/ConsolidationV1/Dto/TransborderDistributionDetail1SpecialServicesRequestedTransborderDistributionLtlDetailPayment.php @@ -16,7 +16,7 @@ final class TransborderDistributionDetail1SpecialServicesRequestedTransborderDis { /** * @param ?string $paymentType Payment type for LTL transportation - * @param ?TransborderDistributionDetail1SpecialServicesRequestedTransborderDistributionLtlDetailPaymentPayor $payor Information about the person who is paying for the shipment.
      Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT. + * @param ?TransborderDistributionDetail1SpecialServicesRequestedTransborderDistributionLtlDetailPaymentPayor $payor Information about the person who is paying for the shipment.
      Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY. * @param ?TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPaymentEPaymentDetail $ePaymentDetail e-payment detail * @param ?TransborderDistributionDetail1SpecialServicesRequestedTransborderDistributionLtlDetailPaymentCreditCard $creditCard Credit card details * @param ?TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPaymentCreditCardTransactionDetail $creditCardTransactionDetail Details for the credit card transaction diff --git a/src/Api/ConsolidationV1/Dto/TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPayment.php b/src/Api/ConsolidationV1/Dto/TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPayment.php index 509a5f81..bddcde27 100644 --- a/src/Api/ConsolidationV1/Dto/TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPayment.php +++ b/src/Api/ConsolidationV1/Dto/TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPayment.php @@ -16,7 +16,7 @@ final class TransborderDistributionDetailSpecialServicesRequestedTransborderDist { /** * @param ?string $paymentType Payment type for LTL transportation - * @param ?TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPaymentPayor $payor Information about the person who is paying for the shipment.
      Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT. + * @param ?TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPaymentPayor $payor Information about the person who is paying for the shipment.
      Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY. * @param ?TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPaymentEPaymentDetail $ePaymentDetail e-payment detail * @param ?TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPaymentCreditCard $creditCard Credit card details * @param ?TransborderDistributionDetailSpecialServicesRequestedTransborderDistributionLtlDetailPaymentCreditCardTransactionDetail $creditCardTransactionDetail Details for the credit card transaction diff --git a/src/Api/ConsolidationV1/Dto/VariableHandlingCharges.php b/src/Api/ConsolidationV1/Dto/VariableHandlingCharges.php new file mode 100644 index 00000000..7a009960 --- /dev/null +++ b/src/Api/ConsolidationV1/Dto/VariableHandlingCharges.php @@ -0,0 +1,29 @@ + Example: 5 * @param ?string $remarks This is a placeholder for any message to be passed to the FedEx pickup. courier.
      Example: Please ring bell at loading dock. * @param ?string $countryRelationships Describes the country relationship among the shipments being picked up.
      'DOMESTIC' indicates intra-country shipping; origin and destination country are the same.
      'INTERNATIONAL' indicates inter-country shipping; origin and destination countries are different.
      Not applicable for FedEx Ground shipments
      Example: DOMESTIC diff --git a/src/Api/FreightLTLV1/Dto/FullSchemaFreightShipment.php b/src/Api/FreightLTLV1/Dto/FullSchemaFreightShipment.php index a0bbd5f4..7b1f811a 100644 --- a/src/Api/FreightLTLV1/Dto/FullSchemaFreightShipment.php +++ b/src/Api/FreightLTLV1/Dto/FullSchemaFreightShipment.php @@ -28,5 +28,6 @@ public function __construct( public string $labelResponseOptions, public ShipperAccountNumber $accountNumber, public ?bool $oneLabelAtAtime = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/FreightLTLV1/Dto/Version.php b/src/Api/FreightLTLV1/Dto/Version.php new file mode 100644 index 00000000..98b40b26 --- /dev/null +++ b/src/Api/FreightLTLV1/Dto/Version.php @@ -0,0 +1,27 @@ +Example:KG + * @param string $units Specifies the shipment weight unit type.
      Example:KG * @param float $value Weight Value.
      Example: 68.25 */ public function __construct( diff --git a/src/Api/GlobalTradeV1/Dto/ShipmentRegulatoryDetailsOutputVo.php b/src/Api/GlobalTradeV1/Dto/BaseProcessOutputVo.php similarity index 92% rename from src/Api/GlobalTradeV1/Dto/ShipmentRegulatoryDetailsOutputVo.php rename to src/Api/GlobalTradeV1/Dto/BaseProcessOutputVo.php index 6b9ff727..06a0eb33 100644 --- a/src/Api/GlobalTradeV1/Dto/ShipmentRegulatoryDetailsOutputVo.php +++ b/src/Api/GlobalTradeV1/Dto/BaseProcessOutputVo.php @@ -12,7 +12,7 @@ use ShipStream\FedEx\Dto; -final class ShipmentRegulatoryDetailsOutputVo extends Dto +final class BaseProcessOutputVo extends Dto { protected static array $complexArrayTypes = ['userMessages' => RegulatoryMessage::class, 'cxsalerts' => CxsAlert::class]; diff --git a/src/Api/GlobalTradeV1/Dto/CommodityComplianceTypeDetail.php b/src/Api/GlobalTradeV1/Dto/CommodityComplianceTypeDetail.php new file mode 100644 index 00000000..de9cbad3 --- /dev/null +++ b/src/Api/GlobalTradeV1/Dto/CommodityComplianceTypeDetail.php @@ -0,0 +1,24 @@ + RegulatoryComplianceCommodityDetail::class, + ]; + + /** + * @param ?string $countryCode The ISO country code for the country. + * @param ?string $category Describes the type of category + * @param RegulatoryComplianceCommodityDetail[]|null $regulatoryComplianceCommodityDetails This is an array of nonnegative-Integer identifying the associated commodities. + */ + public function __construct( + public ?string $countryCode = null, + public ?string $category = null, + public ?array $regulatoryComplianceCommodityDetails = null, + ) {} +} diff --git a/src/Api/GlobalTradeV1/Dto/RegulatoryComplianceTypeDetail.php b/src/Api/GlobalTradeV1/Dto/RegulatoryComplianceTypeDetail.php new file mode 100644 index 00000000..624d46cd --- /dev/null +++ b/src/Api/GlobalTradeV1/Dto/RegulatoryComplianceTypeDetail.php @@ -0,0 +1,25 @@ +Example: 624deea6-b709-470c-8c39-4b5511281492 * @param ?string $customerTransactionId This element allows you to assign a unique identifier to your transaction. This element is also returned in the reply and helps you match the request to the reply.
      Example: AnyCo_order123456789 - * @param ?ShipmentRegulatoryDetailsOutputVo $output ShipmentRegulatoryDetailsOutputVO Model + * @param ?BaseProcessOutputVo $output ShipmentRegulatoryDetailsOutputVO Model */ public function __construct( public readonly ?string $transactionId = null, public readonly ?string $customerTransactionId = null, - public readonly ?ShipmentRegulatoryDetailsOutputVo $output = null, + public readonly ?BaseProcessOutputVo $output = null, ) {} } diff --git a/src/Api/GroundEODCloseV1/Dto/FullSchemaGeodPut.php b/src/Api/GroundEODCloseV1/Dto/FullSchemaGeodPut.php index 09045fc1..8ae09495 100644 --- a/src/Api/GroundEODCloseV1/Dto/FullSchemaGeodPut.php +++ b/src/Api/GroundEODCloseV1/Dto/FullSchemaGeodPut.php @@ -31,5 +31,6 @@ public function __construct( public ?string $trackingNumber = null, public ?string $reprintOption = null, public ?CloseDocumentSpecification $closeDocumentSpecification = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/GroundEODCloseV1/Dto/FullSchemaReprintPost.php b/src/Api/GroundEODCloseV1/Dto/FullSchemaReprintPost.php index f979d0e3..fd69d094 100644 --- a/src/Api/GroundEODCloseV1/Dto/FullSchemaReprintPost.php +++ b/src/Api/GroundEODCloseV1/Dto/FullSchemaReprintPost.php @@ -31,5 +31,6 @@ public function __construct( public ?string $trackingNumber = null, public ?string $reprintOption = null, public ?CloseDocumentSpecification $closeDocumentSpecification = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/GroundEODCloseV1/Dto/Version.php b/src/Api/GroundEODCloseV1/Dto/Version.php new file mode 100644 index 00000000..9a4354cc --- /dev/null +++ b/src/Api/GroundEODCloseV1/Dto/Version.php @@ -0,0 +1,27 @@ +Example: FedEx Ground. * @param ?string[] $carrierCodes Unique code to identify the transporter. * @param ?bool $getCall Get a call.
      Valid values: True, False. + * @param ?string $packagingType The FedEx Package Type + * @param ?Amounts $totalDeclaredValue The package dimension limits supported at the location. + * @param ?Amounts $totalCustomsValue The package dimension limits supported at the location. + * @param ?string $paymentType Duties and Taxes Payor Payment Type */ public function __construct( public Location $location, @@ -59,5 +63,9 @@ public function __construct( public ?string $dropOffServiceType = null, public ?array $carrierCodes = null, public ?bool $getCall = null, + public ?string $packagingType = null, + public ?Amounts $totalDeclaredValue = null, + public ?Amounts $totalCustomsValue = null, + public ?string $paymentType = null, ) {} } diff --git a/src/Api/LocationsSearchV1/Dto/PackageAttribute.php b/src/Api/LocationsSearchV1/Dto/PackageAttribute.php index d249036a..b5c7d2b9 100644 --- a/src/Api/LocationsSearchV1/Dto/PackageAttribute.php +++ b/src/Api/LocationsSearchV1/Dto/PackageAttribute.php @@ -17,9 +17,11 @@ final class PackageAttribute extends Dto /** * @param ?Weight $weight These are the package weight details. * @param ?Dimensions $dimensions Indicate the dimensions of the package.
      Following conditions will apply:
      • Dimensions are optional but when added, then all three dimensions must be indicated.
      • Dimensions are required with YOUR_PACKAGING package type.
      Note: The maximum/minimum dimension values varies based on the services and the packaging types.
      Refer FedEx Service Guide for service details related to DIM Weighting for FedEx Express and oversize conditions for FedEx Express and FedEx Ground. + * @param ?string[] $serviceOptions Provide all the service Options for this package */ public function __construct( public ?Weight $weight = null, public ?Dimensions $dimensions = null, + public ?array $serviceOptions = null, ) {} } diff --git a/src/Api/LocationsSearchV1/Requests/FindLocation.php b/src/Api/LocationsSearchV1/Requests/FindLocation.php index dfd2f629..2aa77730 100644 --- a/src/Api/LocationsSearchV1/Requests/FindLocation.php +++ b/src/Api/LocationsSearchV1/Requests/FindLocation.php @@ -24,14 +24,13 @@ /** * Find Location * - * Use this endpoint to search for nearest FedEx locations by address, geographicccc coordinates, or - * phone numberrrr. You can also narrow your search by type of location and services offered. It - * returns up to 75 locations within a 50-mile radius for the address used in the search criteria. - * Results are based on current date and time. Supports all FedEx operating companies and countries, - * dependent upon being able to get a valid geolocation for a given set of criteria.
      Note: You - * must specify landline numbers only, when searching for the nearest FedEx locations using phone - * number.
      Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) - * mechanism. + * Use this endpoint to search for FedEx locations by address, geographic coordinates, or phone number. + * You can also narrow your search by type of location and services offered. It returns up to 75 + * locations within a 50-mile radius for the address used in the search criteria. Results are based on + * current date and time. Supports all FedEx operating companies and countries, dependent upon being + * able to get a valid geolocation for a given set of criteria.
      Note: You must specify landline + * numbers only, when searching for the nearest FedEx locations using phone number.
      Note: + * FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism. */ class FindLocation extends Request implements HasBody { diff --git a/src/Api/OpenShipV1/Dto/ClearanceItemDetail.php b/src/Api/OpenShipV1/Dto/ClearanceItemDetail.php new file mode 100644 index 00000000..9b822c38 --- /dev/null +++ b/src/Api/OpenShipV1/Dto/ClearanceItemDetail.php @@ -0,0 +1,29 @@ + For shipments to United States, refer to U.S. Customs and Border Protection website.
      Example: USGRE98BIR + * @param ?ClearanceItemDetailContact $contact Contact details of the manufacturer. + * @param ?ClearanceItemDetailAddress $address Address of the manufacturer + */ + public function __construct( + public ?string $role = null, + public ?string $id = null, + public ?ClearanceItemDetailContact $contact = null, + public ?ClearanceItemDetailAddress $address = null, + ) {} +} diff --git a/src/Api/OpenShipV1/Dto/ClearanceItemDetailAddress.php b/src/Api/OpenShipV1/Dto/ClearanceItemDetailAddress.php new file mode 100644 index 00000000..5a7df04e --- /dev/null +++ b/src/Api/OpenShipV1/Dto/ClearanceItemDetailAddress.php @@ -0,0 +1,33 @@ +Example: 98 Royal Crescent + * @param ?string $city The name of city, town of the recipient.
      Example: Birmingham + * @param ?string $stateOrProvinceCode It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country.
      Example: CA + * @param ?string $postalCode The US State and Canada Province codes. The Format and presence of this field may vary depending on the country.
      Example: 35209 + * @param ?string $countryCode The two-letter code used to identify a country.
      Example: US + * @param ?bool $residential Indicate whether this address is Residential (as opposed to Commercial).
      Valid Values: True or False. + */ + public function __construct( + public ?array $streetLines = null, + public ?string $city = null, + public ?string $stateOrProvinceCode = null, + public ?string $postalCode = null, + public ?string $countryCode = null, + public ?bool $residential = null, + ) {} +} diff --git a/src/Api/OpenShipV1/Dto/ClearanceItemDetailContact.php b/src/Api/OpenShipV1/Dto/ClearanceItemDetailContact.php new file mode 100644 index 00000000..fb558aa5 --- /dev/null +++ b/src/Api/OpenShipV1/Dto/ClearanceItemDetailContact.php @@ -0,0 +1,23 @@ +Example: THE GREENHOUSE + */ + public function __construct( + public ?string $companyName = null, + ) {} +} diff --git a/src/Api/OpenShipV1/Dto/Commodity.php b/src/Api/OpenShipV1/Dto/Commodity.php index f2f34366..310ea3c3 100644 --- a/src/Api/OpenShipV1/Dto/Commodity.php +++ b/src/Api/OpenShipV1/Dto/Commodity.php @@ -16,7 +16,10 @@ final class Commodity extends Dto { protected static array $attributeMap = ['cImarksAndNumbers' => 'cIMarksAndNumbers']; - protected static array $complexArrayTypes = ['additionalMeasures' => AdditionalMeasures::class]; + protected static array $complexArrayTypes = [ + 'additionalMeasures' => AdditionalMeasures::class, + 'clearanceItemDetail' => ClearanceItemDetail::class, + ]; /** * @param string $description This is the commodity description. Maximum allowed 450 characters.
      click here to see Vague commodity descriptions @@ -36,6 +39,7 @@ final class Commodity extends Dto * @param ?string $partNumber This is a part number.
      Example: 167 * @param ?string $purpose This is the purpose of this shipment. This is used for calculation of duties and taxes. * @param ?UsmcaDetail $usmcaDetail Indicates the USMCA detail + * @param ClearanceItemDetail[]|null $clearanceItemDetail Array of clearance item details including manufacturer info for customs clearance. */ public function __construct( public string $description, @@ -55,5 +59,6 @@ public function __construct( public ?string $partNumber = null, public ?string $purpose = null, public ?UsmcaDetail $usmcaDetail = null, + public ?array $clearanceItemDetail = null, ) {} } diff --git a/src/Api/OpenShipV1/Dto/FullSchemaAddPackagesToOpenShipment.php b/src/Api/OpenShipV1/Dto/FullSchemaAddPackagesToOpenShipment.php index c8ce4440..fc5efa7d 100644 --- a/src/Api/OpenShipV1/Dto/FullSchemaAddPackagesToOpenShipment.php +++ b/src/Api/OpenShipV1/Dto/FullSchemaAddPackagesToOpenShipment.php @@ -14,18 +14,21 @@ final class FullSchemaAddPackagesToOpenShipment extends Dto { + protected static array $attributeMap = ['openShipAction' => 'OpenShipAction']; + protected static array $complexArrayTypes = ['requestedPackageLineItems' => RequestedPackageLineItem::class]; /** * @param string $index This is a unique value assigned to the already created Open Shipment. If this isn’t available then provide the master tracking number.
      Example: Test1234 * @param PartyAccountNumber $accountNumber This is FedEx Account number details. * @param RequestedPackageLineItem[] $requestedPackageLineItems These are package line item details in the shipment. - * @param ?string $shipAction Indicate shipment action for the Shipment.
      • CONFIRM – used in case of shipment submission
      • TRANSFER – used in case of Email Label Shipment or Pending Shipment submission. + * @param ?string $openShipAction Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

        Here are the values:

        • CREATE_PACKAGE - Use CREATE_PACKAGE option to create Open Shipment.
        • STRONG_VALIDATION – Full shipment edits: any edit that fails will cause the transaction to fail. If the transaction is successful, a tracking number may be returned and the transaction will be saved to the database (committed).
        • WEAK_VALIDATION - Full shipment edits: any edit that fails will return errors but the transaction does not fail. The tracking number is returned and the transaction is saved in the database if the core edits are passed. Fix errors with the ModifyRequests transaction using the Index and returned tracking number.

        */ public function __construct( public string $index, public PartyAccountNumber $accountNumber, public array $requestedPackageLineItems, - public ?string $shipAction = null, + public ?string $openShipAction = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/OpenShipV1/Dto/FullSchemaConfirmOpenShipment.php b/src/Api/OpenShipV1/Dto/FullSchemaConfirmOpenShipment.php index 2f08c6ed..fd7207a1 100644 --- a/src/Api/OpenShipV1/Dto/FullSchemaConfirmOpenShipment.php +++ b/src/Api/OpenShipV1/Dto/FullSchemaConfirmOpenShipment.php @@ -15,12 +15,13 @@ final class FullSchemaConfirmOpenShipment extends Dto { /** - * @param string $labelResponseOptions Specify whether the encoded bytecode or the label URL to be returned in the response.

        Valid values:

        • LABEL – Indicates request is for encoded bytecode.
        • URL_ONLY – Indicates label URL request.
        Note: For asynchronous shipment (More than 40 packages) request only the value LABEL is suported.



        Note: With URL_ONLY option, the URL once created will be active for 12 hours. + * @param string $labelResponseOptions Specify whether the encoded bytecode or the label URL to be returned in the response.

        Valid values:

        • LABEL – Indicates request is for encoded bytecode.
        • URL_ONLY – Indicates label URL request.

        Note:

        • For asynchronous shipment (More than 40 packages) request only the value LABEL is supported.
        • With URL_ONLY option, the URL once created will be active for 12 hours.
        • Label will be returned as Base64 ONLY when openShipmentAction is PROVIDE_DOCUMENTS_INCREMENTALLY

        * @param LabelSpecification $labelSpecification These are label specification details includes the image type, printer format, and label stock for label. Can also specify specific details such as doc-tab content, regulatory labels, and masking data on the label. * @param string $index This is a unique value assigned to the already created Open Shipment. If this isn’t available then provide the master tracking number.
        Example: Test1234 * @param PartyAccountNumber $accountNumber This is FedEx Account number details. * @param ?string $edtRequestType Indicate whether to have estimated duties and taxes provided with the rate quotes on this shipment. Only applies for International Shipment. * @param ?ShippingDocumentSpecification $shippingDocumentSpecification Use this object to provide all data required for additional (non-label) shipping documents to be produced. + * @param ?string $openShipmentAction Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

        Here are the value:

        • PROVIDE_DOCUMENTS_INCREMENTALLY- Used in the Print as You Go (PASGO) flow to print labels incrementally as packages are added to an open shipment.

        */ public function __construct( public string $labelResponseOptions, @@ -29,5 +30,7 @@ public function __construct( public PartyAccountNumber $accountNumber, public ?string $edtRequestType = null, public ?ShippingDocumentSpecification $shippingDocumentSpecification = null, + public ?Version $version = null, + public ?string $openShipmentAction = null, ) {} } diff --git a/src/Api/OpenShipV1/Dto/FullSchemaCreateOpenShipment.php b/src/Api/OpenShipV1/Dto/FullSchemaCreateOpenShipment.php index 67e4fe24..49080e3f 100644 --- a/src/Api/OpenShipV1/Dto/FullSchemaCreateOpenShipment.php +++ b/src/Api/OpenShipV1/Dto/FullSchemaCreateOpenShipment.php @@ -17,12 +17,13 @@ final class FullSchemaCreateOpenShipment extends Dto /** * @param OpenshipmentRequestedShipment $requestedShipment The detailed transaction data for the requested Open Shipment. * @param PartyAccountNumber $accountNumber This is FedEx Account number details. - * @param ?string $openShipmentAction Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

        Here are the values:

        • CREATE_PACKAGE - Use CREATE_PACKAGE option to create Open Shipment.
        • STRONG_VALIDATION – Full shipment edits: any edit that fails will cause the transaction to fail. If the transaction is successful, a tracking number may be returned and the transaction will be saved to the database (committed).
        • WEAK_VALIDATION - Full shipment edits: any edit that fails will return errors but the transaction does not fail. The tracking number is returned and the transaction is saved in the database if the core edits are passed. Fix errors with the ModifyRequests transaction using the Index and returned tracking number.

        + * @param ?string $openShipmentAction Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

        Here are the values:

        • CREATE_PACKAGE - Use CREATE_PACKAGE option to create Open Shipment.
        • STRONG_VALIDATION – Full shipment edits: any edit that fails will cause the transaction to fail. If the transaction is successful, a tracking number may be returned and the transaction will be saved to the database (committed).
        • WEAK_VALIDATION - Full shipment edits: any edit that fails will return errors but the transaction does not fail. The tracking number is returned and the transaction is saved in the database if the core edits are passed. Fix errors with the ModifyRequests transaction using the Index and returned tracking number.
        • PROVIDE_DOCUMENTS_INCREMENTALLY - Used in the Print as You Go (PASGO) flow to print labels incrementally as packages are added to an open shipment.

        * @param ?string $index This is a unique value assigned to the already created Open Shipment. If this isn’t available then provide the master tracking number.
        Note: If index is not provided while create open shipment then the master tracking id of create open ship will act as index for the shipment.
        Example: Test1234 */ public function __construct( public OpenshipmentRequestedShipment $requestedShipment, public PartyAccountNumber $accountNumber, + public ?Version $version = null, public ?string $openShipmentAction = null, public ?string $index = null, ) {} diff --git a/src/Api/OpenShipV1/Dto/FullSchemaDeleteOpenShipment.php b/src/Api/OpenShipV1/Dto/FullSchemaDeleteOpenShipment.php index 8f4cd86d..b9332728 100644 --- a/src/Api/OpenShipV1/Dto/FullSchemaDeleteOpenShipment.php +++ b/src/Api/OpenShipV1/Dto/FullSchemaDeleteOpenShipment.php @@ -21,5 +21,6 @@ final class FullSchemaDeleteOpenShipment extends Dto public function __construct( public string $index, public PartyAccountNumber $accountNumber, + public ?Version $version = null, ) {} } diff --git a/src/Api/OpenShipV1/Dto/FullSchemaDeletePackagesFromOpenShipment.php b/src/Api/OpenShipV1/Dto/FullSchemaDeletePackagesFromOpenShipment.php index e3345c70..b8db3ebe 100644 --- a/src/Api/OpenShipV1/Dto/FullSchemaDeletePackagesFromOpenShipment.php +++ b/src/Api/OpenShipV1/Dto/FullSchemaDeletePackagesFromOpenShipment.php @@ -25,5 +25,6 @@ public function __construct( public string $index, public PartyAccountNumber $accountNumber, public array $trackingIds, + public ?Version $version = null, ) {} } diff --git a/src/Api/OpenShipV1/Dto/FullSchemaGetOpenShipmentResults.php b/src/Api/OpenShipV1/Dto/FullSchemaGetOpenShipmentResults.php index 3ceb6e67..4d96d0d6 100644 --- a/src/Api/OpenShipV1/Dto/FullSchemaGetOpenShipmentResults.php +++ b/src/Api/OpenShipV1/Dto/FullSchemaGetOpenShipmentResults.php @@ -23,5 +23,6 @@ public function __construct( public string $resultMethodType, public string $jobId, public PartyAccountNumber $accountNumber, + public ?Version $version = null, ) {} } diff --git a/src/Api/OpenShipV1/Dto/FullSchemaModifyOpenShipment.php b/src/Api/OpenShipV1/Dto/FullSchemaModifyOpenShipment.php index afa9cae1..50e12e5c 100644 --- a/src/Api/OpenShipV1/Dto/FullSchemaModifyOpenShipment.php +++ b/src/Api/OpenShipV1/Dto/FullSchemaModifyOpenShipment.php @@ -25,5 +25,6 @@ public function __construct( public OpenshipmentRequestedShipment $requestedShipment, public PartyAccountNumber $accountNumber, public ?string $openShipmentAction = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/OpenShipV1/Dto/FullSchemaModifyPackageInOpenShipment.php b/src/Api/OpenShipV1/Dto/FullSchemaModifyPackageInOpenShipment.php index b22a79ac..0d7f59f9 100644 --- a/src/Api/OpenShipV1/Dto/FullSchemaModifyPackageInOpenShipment.php +++ b/src/Api/OpenShipV1/Dto/FullSchemaModifyPackageInOpenShipment.php @@ -14,18 +14,21 @@ final class FullSchemaModifyPackageInOpenShipment extends Dto { + protected static array $attributeMap = ['openShipAction' => 'OpenShipAction']; + /** * @param RequestedPackageLineItem $requestedPackageLineItem These are one or more package-attribute descriptions, each of which describes an individual package, a group of identical packages, or (for the total-piece-total-weight case) common characteristics of all packages in the shipment.
        • At least one instance containing the weight for at least one package is required for EXPRESS and GROUND shipments.
        • Single piece requests will have one RequestedPackageLineItem.
        • Multiple piece requests will have multiple RequestedPackageLineItems.
        • Maximum occurrences is 30.
        * @param string $index This is a unique value assigned to the already created Open Shipment. If this isn’t available then provide the master tracking number.
        Example: Test1234 * @param PartyAccountNumber $accountNumber This is FedEx Account number details. * @param TrackingId $trackingId Indicates the tracking details for the package. - * @param ?string $shipAction Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

        Here are the values:

        • CREATE_PACKAGE - Use CREATE_PACKAGE option to create Open Shipment.
        • STRONG_VALIDATION – Full shipment edits: any edit that fails will cause the transaction to fail. If the transaction is successful, a tracking number may be returned and the transaction will be saved to the database (committed).
        • WEAK_VALIDATION - Full shipment edits: any edit that fails will return errors but the transaction does not fail. The tracking number is returned and the transaction is saved in the database if the core edits are passed. Fix errors with the ModifyRequests transaction using the Index and returned tracking number.

        + * @param ?string $openShipAction Indicates the optional actions that can be performed during the modification of packages in Open Shipment.

        Here are the values:

        • CREATE_PACKAGE - Use CREATE_PACKAGE option to create Open Shipment.
        • STRONG_VALIDATION – Full shipment edits: any edit that fails will cause the transaction to fail. If the transaction is successful, a tracking number may be returned and the transaction will be saved to the database (committed).
        • WEAK_VALIDATION - Full shipment edits: any edit that fails will return errors but the transaction does not fail. The tracking number is returned and the transaction is saved in the database if the core edits are passed. Fix errors with the ModifyRequests transaction using the Index and returned tracking number.

        */ public function __construct( public RequestedPackageLineItem $requestedPackageLineItem, public string $index, public PartyAccountNumber $accountNumber, public TrackingId $trackingId, - public ?string $shipAction = null, + public ?string $openShipAction = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/OpenShipV1/Dto/FullSchemaRetrieveOpenShipment.php b/src/Api/OpenShipV1/Dto/FullSchemaRetrieveOpenShipment.php index 70ee68b6..f797d824 100644 --- a/src/Api/OpenShipV1/Dto/FullSchemaRetrieveOpenShipment.php +++ b/src/Api/OpenShipV1/Dto/FullSchemaRetrieveOpenShipment.php @@ -21,5 +21,6 @@ final class FullSchemaRetrieveOpenShipment extends Dto public function __construct( public string $index, public PartyAccountNumber $accountNumber, + public ?Version $version = null, ) {} } diff --git a/src/Api/OpenShipV1/Dto/FullSchemaRetrievePackageInOpenShipment.php b/src/Api/OpenShipV1/Dto/FullSchemaRetrievePackageInOpenShipment.php index 054ba2ce..43c8f6b8 100644 --- a/src/Api/OpenShipV1/Dto/FullSchemaRetrievePackageInOpenShipment.php +++ b/src/Api/OpenShipV1/Dto/FullSchemaRetrievePackageInOpenShipment.php @@ -23,5 +23,6 @@ public function __construct( public string $index, public PartyAccountNumber $accountNumber, public TrackingId $trackingId, + public ?Version $version = null, ) {} } diff --git a/src/Api/OpenShipV1/Dto/OpenshipmentRequestedShipment.php b/src/Api/OpenShipV1/Dto/OpenshipmentRequestedShipment.php index 20c6fe3d..98ca059b 100644 --- a/src/Api/OpenShipV1/Dto/OpenshipmentRequestedShipment.php +++ b/src/Api/OpenShipV1/Dto/OpenshipmentRequestedShipment.php @@ -27,6 +27,7 @@ final class OpenshipmentRequestedShipment extends Dto * @param RecipientsParty[] $recipients Specify recipient information and/ the physical destination location for the package. * @param Payment $shippingChargesPayment Specifies the payment details specifying the method and means of payment to FedEx for providing shipping services. * @param RequestedPackageLineItem[] $requestedPackageLineItems These are one or more package-attribute descriptions, each of which describes an individual package, a group of identical packages, or (for the total-piece-total-weight case) common characteristics of all packages in the shipment.
        • At least one instance containing the weight for at least one package is required for EXPRESS and GROUND shipments.
        • Single piece requests will have one RequestedPackageLineItem.
        • Multiple piece requests will have multiple RequestedPackageLineItems.
        • Maximum occurrences is 30.
        + * @param LabelSpecification $labelSpecification These are label specification details includes the image type, printer format, and label stock for label. Can also specify specific details such as doc-tab content, regulatory labels, and masking data on the label. * @param ?string $shipDatestamp This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
        Format [YYYY-MM-DD].
        Example: 2019-10-14 * @param ?float $totalWeight shipment total weight should be in Kg or in Lbs

        Example: 20.6. * @param ?SoldToParty $soldTo Will indicate the party responsible for purchasing the goods shipped from the shipper to the recipient. The sold to party is not necessarily the recipient or the importer of record. The sold to party is relevant when the purchaser, rather than the recipient determines when certain customs regulations apply. @@ -49,6 +50,7 @@ public function __construct( public array $recipients, public Payment $shippingChargesPayment, public array $requestedPackageLineItems, + public LabelSpecification $labelSpecification, public ?string $shipDatestamp = null, public ?float $totalWeight = null, public ?SoldToParty $soldTo = null, diff --git a/src/Api/OpenShipV1/Dto/PartyAccountNumber.php b/src/Api/OpenShipV1/Dto/PartyAccountNumber.php index e9cd603a..cffca8eb 100644 --- a/src/Api/OpenShipV1/Dto/PartyAccountNumber.php +++ b/src/Api/OpenShipV1/Dto/PartyAccountNumber.php @@ -15,7 +15,7 @@ final class PartyAccountNumber extends Dto { /** - * @param ?string $value Conditional.
        The account number value.
        Max Length is 9.
        Example: 12XXXXX89

        NOTE:- FedEx Account number is required for FedEx International Connect Plus (FICP) service shipments from APAC to US or PR with duty & tax Bill-to recipient:
        if any of the shipment commodities’ Country of Manufacture is CN/HK + * @param ?string $value Conditional.
        The account number value.
        Max Length is 9.
        Example: 12XXXXX89
        NOTE: A FedEx account number is required for FedEx International Connect Plus (FICP) service non-document shipments. This applies to shipments from APAC countries and territories to U.S. or PR with duty and tax bill-to recipient if any shipment commodities’ country of manufacture is AU, CN, HK, ID, JP, KR, MO, MY, NZ, PH, SG, TH, TW, VN (APAC countries and territories). */ public function __construct( public ?string $value = null, diff --git a/src/Api/OpenShipV1/Dto/PartyAddress.php b/src/Api/OpenShipV1/Dto/PartyAddress.php index 1142bb21..f09d4eb4 100644 --- a/src/Api/OpenShipV1/Dto/PartyAddress.php +++ b/src/Api/OpenShipV1/Dto/PartyAddress.php @@ -15,7 +15,7 @@ final class PartyAddress extends Dto { /** - * @param string[] $streetLines This is the combination of number, street name, etc. Maximum length per line is 35.
        Example: 10 FedEx Parkway, Suite 302.

        Note:

        • At least one line is required.
        • Streetlines more than 3 will be ignored.
        • Empty lines should not be included
        • For SmartPost Shipments, only 30 characters from the individual street lines will be printed on the labels.

        + * @param string[] $streetLines This is the Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
        Note - For FedEx Ground Economy, a maximum of 30 characters will be printed on the label, excess characters will be truncated. * @param string $city This is a placeholder for City Name.

        Note: This is conditional and not required in all the requests.

        Note: It is recommended for Express shipments for the most accurate ODA and OPA surcharges.

        Example: Beverly Hills * @param string $stateOrProvinceCode This is a placeholder for state or province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.

        Example: CA.
        click here to see State or Province Code * @param string $countryCode This is the two-letter country code.

        Maximum length is 2.

        Example: US
        click here to see Country codes diff --git a/src/Api/OpenShipV1/Dto/Payment.php b/src/Api/OpenShipV1/Dto/Payment.php index 30ef87ab..455de963 100644 --- a/src/Api/OpenShipV1/Dto/Payment.php +++ b/src/Api/OpenShipV1/Dto/Payment.php @@ -16,7 +16,7 @@ final class Payment extends Dto { /** * @param string $paymentType Specifies the payment Type.
        Note: This is required for Express, Ground and SmartPost shipments.
        The payment type COLLECT is applicable only for Ground shipments. - * @param ?Payor $payor Indicate the payer Information responsible for paying for the shipment.
        Note: credit card payment is not applicable.
        Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT. + * @param ?Payor $payor Indicate the payer Information responsible for paying for the shipment.
        Note: credit card payment is not applicable.
        Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY. */ public function __construct( public string $paymentType, diff --git a/src/Api/OpenShipV1/Dto/TransactionOpenShipmentOutputVo.php b/src/Api/OpenShipV1/Dto/TransactionOpenShipmentOutputVo.php index 54d2e766..b9f6e515 100644 --- a/src/Api/OpenShipV1/Dto/TransactionOpenShipmentOutputVo.php +++ b/src/Api/OpenShipV1/Dto/TransactionOpenShipmentOutputVo.php @@ -14,12 +14,13 @@ final class TransactionOpenShipmentOutputVo extends Dto { - protected static array $complexArrayTypes = ['alerts' => Alert::class]; + protected static array $complexArrayTypes = ['pieceResponses' => PieceResponse::class, 'alerts' => Alert::class]; /** * @param ?string $serviceType Indicate the FedEx serviceType used for this shipment. The results will be filtered by the serviceType value indicated.
        Example: STANDARD_OVERNIGHT
        click here to see Service Types * @param ?string $shipDatestamp This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
        Format [YYYY-MM-DD].
        Example: 2019-10-14 * @param ?string $serviceCategory Indicates service category.
        Example: EXPRESS + * @param PieceResponse[]|null $pieceResponses These are pieces information received in the response. * @param ?string $serviceName Describes the service name for the shipment.
        Example: FedEx Ground * @param Alert[]|null $alerts These are alert details received in the response. * @param ?CompletedShipmentDetail $completedShipmentDetail Returns the result of processing the desired package as a single-package shipment. @@ -30,6 +31,7 @@ public function __construct( public ?string $serviceType = null, public ?string $shipDatestamp = null, public ?string $serviceCategory = null, + public ?array $pieceResponses = null, public ?string $serviceName = null, public ?array $alerts = null, public ?CompletedShipmentDetail $completedShipmentDetail = null, diff --git a/src/Api/OpenShipV1/Dto/Version.php b/src/Api/OpenShipV1/Dto/Version.php new file mode 100644 index 00000000..c1b7d921 --- /dev/null +++ b/src/Api/OpenShipV1/Dto/Version.php @@ -0,0 +1,27 @@ +Example: Your account number + * @param ?string $value Conditional.
        The account number value. Max Length is 9. + * @param ?string $key The account key associated with this account number. */ public function __construct( public ?string $value = null, + public ?string $key = null, ) {} } diff --git a/src/Api/PickupRequestV1/Dto/Address.php b/src/Api/PickupRequestV1/Dto/Address.php index 2c0194e5..80c7d3b4 100644 --- a/src/Api/PickupRequestV1/Dto/Address.php +++ b/src/Api/PickupRequestV1/Dto/Address.php @@ -15,7 +15,7 @@ final class Address extends Dto { /** - * @param ?string[] $streetLines This is a combination of number, street name, etc.
        Note: At least one line is required and streetlines more than 3 will be ignored. Empty lines should not be included.
        Example: [\"10 FedEx Parkway\", \"Suite 302\"] + * @param ?string[] $streetLines This is a combination of number, street name, etc.
        Note: At least one line is required. Empty lines should not be included. Minimum length is 3 and maximum length is 35.
        Example: [\"10 FedEx Parkway\", \"Suite 302\"] * @param ?string $urbanizationCode Optional
        In Puerto Rico, identical street names and address number ranges can be found within the same ZIP Code. In these cases, the urbanization name is the only element that correctly identifies the location of a particular address.
        Example: URB FAIR OAKS * @param ?string $city This is a placeholder for City Name.
        Note: This is conditional and not required in all the shipping requests.
        Example: Beverly Hills * @param ?string $stateOrProvinceCode This is a placeholder for State or Province code.Maximum length is 2. Maximum length is 2
        Example: CA
        Click here to see State/Province Code diff --git a/src/Api/PickupRequestV1/Dto/Address2.php b/src/Api/PickupRequestV1/Dto/Address2.php index db574a6f..e0d00e58 100644 --- a/src/Api/PickupRequestV1/Dto/Address2.php +++ b/src/Api/PickupRequestV1/Dto/Address2.php @@ -15,7 +15,7 @@ final class Address2 extends Dto { /** - * @param ?string[] $streetLines Specify Street line details for the given address
        Example :[\"10 FedEx Parkway\", \"Suite 302\"] + * @param ?string[] $streetLines This is a combination of number, street name, etc.
        Note: At least one line is required. Empty lines should not be included. Minimum length is 3 and maximum length is 35.
        Example :[\"10 FedEx Parkway\", \"Suite 302\"] * @param ?string $city Conditional
        The name of city, town, etc.
        Example: Memphis * @param ?string $stateOrProvinceCode This is state or province code. Maximum length is 2.
        Example: ON
        Click here to see State/Province Code * @param ?string $postalCode Specify the postal code. This is optional for non postal-aware countries. Maximum length is 10.
        Example: 38017
        Click here to see Postal aware countries diff --git a/src/Api/PickupRequestV1/Dto/CreatePickupOutputVo.php b/src/Api/PickupRequestV1/Dto/CreatePickupOutputVo.php index d9419d43..75f7e6db 100644 --- a/src/Api/PickupRequestV1/Dto/CreatePickupOutputVo.php +++ b/src/Api/PickupRequestV1/Dto/CreatePickupOutputVo.php @@ -18,13 +18,11 @@ final class CreatePickupOutputVo extends Dto /** * @param ?string $pickupConfirmationCode The confirmation number provided to the customer when a pickup is requested
        Example : 3001 - * @param ?string $message Human-readable text that explains pickup notification
        Example: Courier on the way * @param ?string $location The location from where the package will be picked up.

        Note: The location will only be returned for Express Pickup.

        Example: COSA * @param Alert[]|null $alerts These are optional alerts received when a Create pickup is requested. This includes an alert code, type, and message. */ public function __construct( public ?string $pickupConfirmationCode = null, - public ?string $message = null, public ?string $location = null, public ?array $alerts = null, ) {} diff --git a/src/Api/PickupRequestV1/Dto/FullSchemaCancelPickup.php b/src/Api/PickupRequestV1/Dto/FullSchemaCancelPickup.php index adf37fdf..1a163deb 100644 --- a/src/Api/PickupRequestV1/Dto/FullSchemaCancelPickup.php +++ b/src/Api/PickupRequestV1/Dto/FullSchemaCancelPickup.php @@ -20,7 +20,6 @@ final class FullSchemaCancelPickup extends Dto * @param string $scheduledDate Indicates the date the pickup dispatch occurs.
        Format YYYY-MM-DD
        Example: 2019-10-15 * @param ?string $remarks Placeholder for any message to be passed to the FedEx pickup courier.
        Note:Maximum length is 60 characters.
        Example: Please ring bell at loading dock. * @param ?string $carrierCode This is a placeholder to provide the FedEx operating company (transportation) code used for package delivery. Required for FedEx Ground.
        Optional for FedEx Express.
        The Default is FedEx Express i.e. FDXE. - * @param ?Address $accountAddressOfRecord Descriptive data for a physical location. May be used as an actual physical address (place to which one could go), or as a container of "address parts" which should be handled as a unit (such as a city-state-ZIP combination within the US). * @param ?string $location The FedEx Express location identifier responsible for processing the pickup request. This is returned in the CreatePickup response and is required to cancel a FedEx Express dispatch.Required only for FedEx Express Pickups. Optional for FedEx Ground. Example: LOSA */ public function __construct( @@ -29,7 +28,7 @@ public function __construct( public string $scheduledDate, public ?string $remarks = null, public ?string $carrierCode = null, - public ?Address $accountAddressOfRecord = null, public ?string $location = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/PickupRequestV1/Dto/FullSchemaCreatePickup.php b/src/Api/PickupRequestV1/Dto/FullSchemaCreatePickup.php index c4b2771f..f8876701 100644 --- a/src/Api/PickupRequestV1/Dto/FullSchemaCreatePickup.php +++ b/src/Api/PickupRequestV1/Dto/FullSchemaCreatePickup.php @@ -29,6 +29,7 @@ final class FullSchemaCreatePickup extends Dto * @param ?string $commodityDescription Description of the commodity being shipped.
        Example:This field contains Commodity Description.
        Click here to see Vague commodity descriptions * @param ?ExpressFreightPickupDetail $expressFreightDetail Provides the Express Freight pickup detailed information. * @param ?int $oversizePackageCount Specify the number of oversize packages that are tendered to FedEx Ground. + * @param ?PickupChargesPayment $pickupChargesPayment Specifies how the pickup charges will be paid. */ public function __construct( public AccountNumber $associatedAccountNumber, @@ -46,5 +47,7 @@ public function __construct( public ?ExpressFreightPickupDetail $expressFreightDetail = null, public ?int $oversizePackageCount = null, public ?PickupNotificationDetail $pickupNotificationDetail = null, + public ?PickupChargesPayment $pickupChargesPayment = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/PickupRequestV1/Dto/FullSchemaPickupAvailability.php b/src/Api/PickupRequestV1/Dto/FullSchemaPickupAvailability.php index 1f668933..fc59ec08 100644 --- a/src/Api/PickupRequestV1/Dto/FullSchemaPickupAvailability.php +++ b/src/Api/PickupRequestV1/Dto/FullSchemaPickupAvailability.php @@ -45,5 +45,6 @@ public function __construct( public ?array $packageDetails = null, public ?string $associatedAccountNumber = null, public ?string $associatedAccountNumberType = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/PickupRequestV1/Dto/Payor.php b/src/Api/PickupRequestV1/Dto/Payor.php new file mode 100644 index 00000000..7268607c --- /dev/null +++ b/src/Api/PickupRequestV1/Dto/Payor.php @@ -0,0 +1,23 @@ +Example: A six digit code for Almonds fresh or dried is 080211. The HTS code for pistachios in shell is 080251. The HTS code for fish is HS203.
        To research the classification for your commodity, use the FedEx Global Trade Manager online at fedex.com/gtm. You can find the commodities and its respective codes by logging into FedEx and selecting harmonized code option. You will find country-specific information to determine whether your commodity is considered to be a document or non-document for your destination.
        For additional information about harmonized code, refer to harmonized code. */ public function __construct( - public ?EdtTaxDetail $edtTaxDetail = null, + public ?EdtTaxDetail2 $edtTaxDetail = null, public ?string $harmonizedCode = null, ) {} } diff --git a/src/Api/RatesAndTransitTimesV1/Dto/EdtCommodityTax.php b/src/Api/RatesAndTransitTimesV1/Dto/EdtCommodityTax.php new file mode 100644 index 00000000..52df02de --- /dev/null +++ b/src/Api/RatesAndTransitTimesV1/Dto/EdtCommodityTax.php @@ -0,0 +1,27 @@ + TaxRates::class]; + /** - * @param ?string $edtTaxType Specifies the Estimated duties and taxes type.
        Example: TaxType - * @param ?float $amount Specifies the amount for the estimated duties and taxes type.
        Example: 785.12 - * @param ?float $taxableValue Specifies the Estimated duties and taxes taxable Value.
        Example: 562.23 - * @param ?string $name Indicates the name for the Etd tax. - * @param ?string $description Indicates the description for the Etd tax. + * @param ?string $taxType Estimated taxes type + * @param ?string $effectiveDate Estimated duties and taxes effective date. Format [YYYY-MM-DD]. + * @param ?string $name The localized name of the surcharge. + * @param ?Money $taxableValue Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. + * @param ?string $description FedEx pays the Duty and Tax charges on your behalf to ensure we can deliver your shipment as quickly as possible * @param ?string $formula Indicates the formula. - * @param ?string $effectiveDate Specifies the Estimated duties and taxes effective date. Format [YYYY-MM-DD].
        Example: 2019-12-06 + * @param ?Money $amount Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. + * @param TaxRates[]|null $taxRates Estimated duties and taxes taxRates + * @param ?AppliedPreferentialTradeAgreement $appliedPreferentialTradeAgreement provides details about PTA applied between countries for specific product. */ public function __construct( - public ?string $edtTaxType = null, - public ?float $amount = null, - public ?float $taxableValue = null, + public ?string $taxType = null, + public ?string $taxcode = null, + public ?string $effectiveDate = null, public ?string $name = null, + public ?Money $taxableValue = null, public ?string $description = null, public ?string $formula = null, - public ?string $effectiveDate = null, + public ?Money $amount = null, + public ?array $taxRates = null, + public ?AppliedPreferentialTradeAgreement $appliedPreferentialTradeAgreement = null, ) {} } diff --git a/src/Api/RatesAndTransitTimesV1/Dto/EdtTaxDetail2.php b/src/Api/RatesAndTransitTimesV1/Dto/EdtTaxDetail2.php new file mode 100644 index 00000000..197498f9 --- /dev/null +++ b/src/Api/RatesAndTransitTimesV1/Dto/EdtTaxDetail2.php @@ -0,0 +1,35 @@ + Example: TaxType + * @param ?float $amount Specifies the amount for the estimated duties and taxes type.
        Example: 785.12 + * @param ?float $taxableValue Specifies the Estimated duties and taxes taxable Value.
        Example: 562.23 + * @param ?string $name Indicates the name for the Etd tax. + * @param ?string $description Indicates the description for the Etd tax. + * @param ?string $formula Indicates the formula. + * @param ?string $effectiveDate Specifies the Estimated duties and taxes effective date. Format [YYYY-MM-DD].
        Example: 2019-12-06 + */ + public function __construct( + public ?string $edtTaxType = null, + public ?float $amount = null, + public ?float $taxableValue = null, + public ?string $name = null, + public ?string $description = null, + public ?string $formula = null, + public ?string $effectiveDate = null, + ) {} +} diff --git a/src/Api/RatesAndTransitTimesV1/Dto/FullSchemaQuoteRate.php b/src/Api/RatesAndTransitTimesV1/Dto/FullSchemaQuoteRate.php index 9b13dbf7..f67e43c9 100644 --- a/src/Api/RatesAndTransitTimesV1/Dto/FullSchemaQuoteRate.php +++ b/src/Api/RatesAndTransitTimesV1/Dto/FullSchemaQuoteRate.php @@ -18,12 +18,15 @@ final class FullSchemaQuoteRate extends Dto * @param AccountNumber $accountNumber This is the Account number details.
        Note:
        • If the paymentType is Sender, then the account number is optional in shippingChargesPayment.
        * @param RequestedShipment $requestedShipment This is shipment data for which a rate quote (or rate-shipping comparison) is requested. * @param ?RateRequestControlParameters $rateRequestControlParameters Specify the return transit times, services needed on rate failure, choice of variable option and order to sort rate options to filter and sort the expected response. + * @param ?string[] $processingOptions Array of processing options for the shipment. * @param ?string[] $carrierCodes Specify the four letter code of a FedEx operating company that meets your requirements.
        Example: FDXE
        • FDXE - FedEx Express
        • FDXG - FedEx Ground
        • FXSP - FedEx SmartPost
        • FXCC - FedEx Custom Critical.
        */ public function __construct( public AccountNumber $accountNumber, public RequestedShipment $requestedShipment, public ?RateRequestControlParameters $rateRequestControlParameters = null, + public ?array $processingOptions = null, public ?array $carrierCodes = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/RatesAndTransitTimesV1/Dto/PackageRateDetail.php b/src/Api/RatesAndTransitTimesV1/Dto/PackageRateDetail.php index 393b8554..68fdc737 100644 --- a/src/Api/RatesAndTransitTimesV1/Dto/PackageRateDetail.php +++ b/src/Api/RatesAndTransitTimesV1/Dto/PackageRateDetail.php @@ -15,8 +15,8 @@ final class PackageRateDetail extends Dto { protected static array $complexArrayTypes = [ - 'surcharges' => Surcharge::class, - 'freightDiscounts' => RateDiscount::class, + 'surcharges' => Surcharge2::class, + 'freightDiscounts' => RateDiscount2::class, ]; /** @@ -28,11 +28,11 @@ final class PackageRateDetail extends Dto * @param ?string $rateType Specifies the type used for this specific set of rate data. * @param ?Weight $billingWeight These are the weight details. * @param ?float $netFreight Specifies the sum of freight charges.
        Example: 10 - * @param Surcharge[]|null $surcharges Specifies the list of all surcharges that apply to this package. + * @param Surcharge2[]|null $surcharges Specifies the list of all surcharges that apply to this package. * @param ?float $totalSurcharges The sum of all surcharges on the package.
        Example: 569 * @param ?float $netFedExCharge Specifies the sum of packages netFreight and totalSurcharges (not including totalTaxes).
        Example: 125.32 * @param ?float $netCharge Specifies the sum of packages netFreight, totalSurcharges and totalTaxes.
        Example: 563.98 - * @param RateDiscount[]|null $freightDiscounts All rate discounts that apply to this shipment.
        Click here to see Discounts + * @param RateDiscount2[]|null $freightDiscounts All rate discounts that apply to this shipment.
        Click here to see Discounts */ public function __construct( public ?string $ratedWeightMethod = null, diff --git a/src/Api/RatesAndTransitTimesV1/Dto/PickupDetail.php b/src/Api/RatesAndTransitTimesV1/Dto/PickupDetail.php new file mode 100644 index 00000000..41544cf6 --- /dev/null +++ b/src/Api/RatesAndTransitTimesV1/Dto/PickupDetail.php @@ -0,0 +1,31 @@ + RateDiscount::class, + 'rebates' => Rebate::class, + 'surcharges' => Surcharge::class, + 'taxes' => Tax::class, + 'dutiesAndTaxes' => EdtCommodityTax::class, + 'ancillaryFeesAndTaxes' => AncillaryFeeAndTax::class, + ]; + + /** + * @param ?string $rateType Type used for this specific set of rate data. + * @param ?string $rateScale Indicates the rate scale used. + * @param ?string $rateZone Indicates the rate zone used (based on origin and destination). + * @param ?string $ratingBasis Allows clients to determine whether to add charges at the package level when Per Piece Rating details are returned.
        • SHIPMENT_WEIGHT_BASED - Indicates shipment weight is used to calculate the rate.

        • FLAT_RATE_PER_PAK - Indicates shipment is rated based on number of packs, weight would be considered for overweight surcharge but not for calculating shipment rate.

        • PACK_WEIGHT_BASED - Indicates individual package weight would be rated and aggregated to get shipment rate weight.
        + * @param ?string $pricingCode Identifies the type of pricing used for this shipment. + * @param ?string $minimumChargeType provides the minimum charge type applicable to the rates. + * @param ?CurrencyExchangeRate $currencyExchangeRate Specifies the currency exchange performed on financial amounts for this rate. + * @param ?string[] $specialRatingApplied Indicates which special rating cases applied to this shipment. + * @param ?float $fuelSurchargePercent Specify a fuel surcharge percentage. + * @param ?string $pickupBaseChargeDescription Will indicate the pickup charge description of the on call pickup + * @param ?TotalBaseCharge $totalBaseCharge Total base charges for the shipment. + * @param ?TotalFreightDiscounts $totalFreightDiscounts The total discounts used in the rate calculation.
        Example: 1257.26 + * @param ?TotalNetFreight $totalNetFreight This shipment's totalNetFreight. + * @param ?TotalSurcharges $totalSurcharges The sum of all surcharges on the package. + * @param ?TotalNetFedExCharge $totalNetFedExCharge This shipment's totalNetFedExCharge, which is totalNetFreight plus totalSurcharges (not including totalTaxes). + * @param ?TotalTaxes $totalTaxes The sum of all taxes on this package.
        Example: 1257.25 + * @param ?TotalNetCharge $totalNetCharge Total net charges for the shipment. + * @param ?TotalRebates $totalRebates The total sum of all rebates applied to this package. + * @param ?TotalDutiesAndTaxes $totalDutiesAndTaxes The sum of shipment/package Duties and taxes. + * @param ?TotalAncillaryFeesAndTaxes $totalAncillaryFeesAndTaxes Identifies the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes. + * @param ?TotalDutiesTaxesAndFees $totalDutiesTaxesAndFees The total amount of the duties and taxes plus the total ancillary fees and taxes. + * @param ?TotalNetChargeWithDutiesAndTaxes $totalNetChargeWithDutiesAndTaxes Total netChargesWithDutiesAndTaxes for the shipment. + * @param RateDiscount[]|null $freightDiscounts All rate discounts that apply to this shipment + * @param Rebate[]|null $rebates The all rebates applied to this package. + * @param Surcharge[]|null $surcharges The amount of surcharges applied to this shipment. + * @param Tax[]|null $taxes List of taxes. + * @param EdtCommodityTax[]|null $dutiesAndTaxes List of The shipment/package Duties and taxes. + * @param AncillaryFeeAndTax[]|null $ancillaryFeesAndTaxes Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes. + * @param ?VariableHandlingCharges $variableHandlingCharges Optional. The variable handling charge amount calculated based on the requested variable handling charge detail. + * @param ?TotalVariableHandlingCharges $totalVariableHandlingCharges Optional. The variable handling charge amount calculated based on the requested variable handling charge detail. + */ + public function __construct( + public ?string $rateType = null, + public ?string $rateScale = null, + public ?string $rateZone = null, + public ?string $ratingBasis = null, + public ?string $pricingCode = null, + public ?string $minimumChargeType = null, + public ?CurrencyExchangeRate $currencyExchangeRate = null, + public ?array $specialRatingApplied = null, + public ?float $fuelSurchargePercent = null, + public ?string $pickupBaseChargeDescription = null, + public ?TotalBaseCharge $totalBaseCharge = null, + public ?TotalFreightDiscounts $totalFreightDiscounts = null, + public ?TotalNetFreight $totalNetFreight = null, + public ?TotalSurcharges $totalSurcharges = null, + public ?TotalNetFedExCharge $totalNetFedExCharge = null, + public ?TotalTaxes $totalTaxes = null, + public ?TotalNetCharge $totalNetCharge = null, + public ?TotalRebates $totalRebates = null, + public ?TotalDutiesAndTaxes $totalDutiesAndTaxes = null, + public ?TotalAncillaryFeesAndTaxes $totalAncillaryFeesAndTaxes = null, + public ?TotalDutiesTaxesAndFees $totalDutiesTaxesAndFees = null, + public ?TotalNetChargeWithDutiesAndTaxes $totalNetChargeWithDutiesAndTaxes = null, + public ?array $freightDiscounts = null, + public ?array $rebates = null, + public ?array $surcharges = null, + public ?array $taxes = null, + public ?array $dutiesAndTaxes = null, + public ?array $ancillaryFeesAndTaxes = null, + public ?VariableHandlingCharges $variableHandlingCharges = null, + public ?TotalVariableHandlingCharges $totalVariableHandlingCharges = null, + ) {} +} diff --git a/src/Api/RatesAndTransitTimesV1/Dto/RateDiscount.php b/src/Api/RatesAndTransitTimesV1/Dto/RateDiscount.php index 3a166822..9d73a752 100644 --- a/src/Api/RatesAndTransitTimesV1/Dto/RateDiscount.php +++ b/src/Api/RatesAndTransitTimesV1/Dto/RateDiscount.php @@ -15,17 +15,14 @@ final class RateDiscount extends Dto { /** - * @param ?float $amount Indicates the amount for the rate discount.
        Example: 87.5 - * @param ?string $name Indicate the name of the discount.Click here to see Discounts
        Example: name - * @param ?string $description Indicates the description for the rate discount.
        Example: Description - * @param ?string $type Indicates the type.
        Example: type - * @param ?float $percent Indicates the percentage of the rate discount.
        Example: 10.5 + * @param ?string $rateDiscountType Indicates the type. + * @param ?string $description Indicates the description for the rate discount. + * @param ?Money $amount Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. */ public function __construct( - public ?float $amount = null, - public ?string $name = null, + public ?string $rateDiscountType = null, public ?string $description = null, - public ?string $type = null, + public ?Money $amount = null, public ?float $percent = null, ) {} } diff --git a/src/Api/RatesAndTransitTimesV1/Dto/RateDiscount2.php b/src/Api/RatesAndTransitTimesV1/Dto/RateDiscount2.php new file mode 100644 index 00000000..6cf2afc8 --- /dev/null +++ b/src/Api/RatesAndTransitTimesV1/Dto/RateDiscount2.php @@ -0,0 +1,31 @@ + Example: 87.5 + * @param ?string $name Indicate the name of the discount.Click here to see Discounts
        Example: name + * @param ?string $description Indicates the description for the rate discount.
        Example: Description + * @param ?string $type Indicates the type.
        Example: type + * @param ?float $percent Indicates the percentage of the rate discount.
        Example: 10.5 + */ + public function __construct( + public ?float $amount = null, + public ?string $name = null, + public ?string $description = null, + public ?string $type = null, + public ?float $percent = null, + ) {} +} diff --git a/src/Api/RatesAndTransitTimesV1/Dto/RatedShipmentDetail.php b/src/Api/RatesAndTransitTimesV1/Dto/RatedShipmentDetail.php index 37936b05..d25f9fb3 100644 --- a/src/Api/RatesAndTransitTimesV1/Dto/RatedShipmentDetail.php +++ b/src/Api/RatesAndTransitTimesV1/Dto/RatedShipmentDetail.php @@ -23,11 +23,14 @@ final class RatedShipmentDetail extends Dto /** * @param ?string $rateType Type used for this specific set of rate data.
        Example: ACCOUNT + * @param ?Money $totalNetTransportationAndPickupCharge Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. + * @param ?Money $totalNetFedExTransportationAndPickupCharge Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. + * @param ?PickupRateDetail $pickupRateDetail Charges associated with a scheduled shipment pickup * @param ?string $ratedWeightMethod Indicates which weight was used for the rate.
        Example: 'ACTUAL' * @param ?float $totalDutiesTaxesAndFees The total amount of the duties and taxes plus the total ancillary fees and taxes.
        Example: 445.54 * @param ?float $totalDiscounts This is the total discount.
        Example: 445.54
        Click here to see FedEx Discounts * @param ?float $totalDutiesAndTaxes The sum of shipment/package Duties and taxes.
        Example: 445.54 - * @param ?VariableHandlingCharges $variableHandlingCharges The variable handling charge amount calculated based on the requested variable handling charge detail. + * @param ?VariableHandlingCharges2 $variableHandlingCharges The variable handling charge amount calculated based on the requested variable handling charge detail. * @param EdtCharge[]|null $edtCharges These are the estimation and duty charges. * @param ?float $totalAncillaryFeesAndTaxes Indicates the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes. * @param RatedPackageDetail[]|null $ratedPackages These are the package-level data for this rate type. @@ -35,7 +38,7 @@ final class RatedShipmentDetail extends Dto * @param ?string $quoteNumber Indicates the unique identifier for a specific rate quotation.
        Example: XX1123XX * @param mixed[][]|null $shipmentLegRateDetails This is data for a single leg of a shipment's total/summary rates, as calculated per a specific rate type. * @param ?string $freightChargeBasis This identifies the manner in which the chargeRate was applied, for Freight.
        Valid values are:
        • CWT - Charge rate applies per weight.
        • FLAT - Charge rate is a flat-rate amount.
        • MINIMUM
        - * @param ?VariableHandlingCharges $totalVariableHandlingCharges The variable handling charge amount calculated based on the requested variable handling charge detail. + * @param ?VariableHandlingCharges2 $totalVariableHandlingCharges The variable handling charge amount calculated based on the requested variable handling charge detail. * @param ?float $totalVatCharge This is total value added tax charges (VAT). * @param AncillaryFeesAndTaxes[]|null $ancillaryFeesAndTaxes This is the total amount of the shipment-level fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes. * @param EdtCharge[]|null $preferredEdtCharges Specifies the Edt charges. @@ -46,11 +49,14 @@ final class RatedShipmentDetail extends Dto */ public function __construct( public ?string $rateType = null, + public ?Money $totalNetTransportationAndPickupCharge = null, + public ?Money $totalNetFedExTransportationAndPickupCharge = null, + public ?PickupRateDetail $pickupRateDetail = null, public ?string $ratedWeightMethod = null, public ?float $totalDutiesTaxesAndFees = null, public ?float $totalDiscounts = null, public ?float $totalDutiesAndTaxes = null, - public ?VariableHandlingCharges $variableHandlingCharges = null, + public ?VariableHandlingCharges2 $variableHandlingCharges = null, public ?array $edtCharges = null, public ?float $totalAncillaryFeesAndTaxes = null, public ?array $ratedPackages = null, @@ -58,7 +64,7 @@ public function __construct( public ?string $quoteNumber = null, public ?array $shipmentLegRateDetails = null, public ?string $freightChargeBasis = null, - public ?VariableHandlingCharges $totalVariableHandlingCharges = null, + public ?VariableHandlingCharges2 $totalVariableHandlingCharges = null, public ?float $totalVatCharge = null, public ?array $ancillaryFeesAndTaxes = null, public ?array $preferredEdtCharges = null, diff --git a/src/Api/RatesAndTransitTimesV1/Dto/Rebate.php b/src/Api/RatesAndTransitTimesV1/Dto/Rebate.php new file mode 100644 index 00000000..88e75f7f --- /dev/null +++ b/src/Api/RatesAndTransitTimesV1/Dto/Rebate.php @@ -0,0 +1,28 @@ + RateDiscount::class, - 'surcharges' => Surcharge::class, - 'taxes' => Tax::class, + 'discounts' => RateDiscount2::class, + 'surcharges' => Surcharge2::class, + 'taxes' => Tax2::class, ]; /** - * @param RateDiscount[]|null $discounts Specifies the list of discounts.
        Click here to see Discounts + * @param RateDiscount2[]|null $discounts Specifies the list of discounts.
        Click here to see Discounts * @param ?string $pricingCode Identifies the type of pricing used for this shipment.
        Example: ACTUAL * @param ?string $legDescription Human-readable text describing the shipment leg.
        Example: legDescription - * @param Surcharge[]|null $surcharges Specifies the list of surcharges.
        Valid value is:
      • PEAK
      • PEAK_ADDTIONAL_HANDLING
      • PEAK_OVERSIZE
      • PEAK_RESIDENTIAL_DELIVERY
      • + * @param Surcharge2[]|null $surcharges Specifies the list of surcharges.
        Valid value is:
      • PEAK
      • PEAK_ADDTIONAL_HANDLING
      • PEAK_OVERSIZE
      • PEAK_RESIDENTIAL_DELIVERY
      • * @param ?string[] $specialRatingApplied Indicates which special rating cases applied to this shipment. - * @param Tax[]|null $taxes Specifies the list of taxes. + * @param Tax2[]|null $taxes Specifies the list of taxes. * @param ?string $rateScale Indicates the rate scale used.
        Example: *USER IMS20160104 LD067110 * @param ?float $totalNetCharge This shipment's totalNetCharge and totalDutiesTaxesAndFees. Some duties and taxes are only provided if estimated duties and taxes were calculated for this shipment AND duties, taxes and transportation charges are all paid by the same sender's account.
        Example: 87.5 * @param ?float $totalBaseCharge Specifies the total base charge list.
        Example: 87.5 diff --git a/src/Api/RatesAndTransitTimesV1/Dto/ShipmentRateDetail.php b/src/Api/RatesAndTransitTimesV1/Dto/ShipmentRateDetail.php index 330b45ff..c06ad540 100644 --- a/src/Api/RatesAndTransitTimesV1/Dto/ShipmentRateDetail.php +++ b/src/Api/RatesAndTransitTimesV1/Dto/ShipmentRateDetail.php @@ -15,9 +15,9 @@ final class ShipmentRateDetail extends Dto { protected static array $complexArrayTypes = [ - 'freightDiscount' => RateDiscount::class, - 'surCharges' => Surcharge::class, - 'taxes' => Tax::class, + 'freightDiscount' => RateDiscount2::class, + 'surCharges' => Surcharge2::class, + 'taxes' => Tax2::class, ]; /** @@ -29,13 +29,13 @@ final class ShipmentRateDetail extends Dto * @param ?float $totalFreightDiscount Indicates the total discounts used in the rate calculation. Example: 856.32 * @param ?string[] $specialRatingApplied Indicates which special rating cases applied to this shipment. * @param ?float $totalSurcharges This is sum of all surcharges on the package. Example: 586.25 - * @param RateDiscount[]|null $freightDiscount This is total discount used in the rate calculation.
        Click here to see Discounts + * @param RateDiscount2[]|null $freightDiscount This is total discount used in the rate calculation.
        Click here to see Discounts * @param ?float $fuelSurchargePercent This is fuel surcharge percentage. * @param ?Weight $totalBillingWeight These are the weight details. * @param ?Weight $totalDimWeight These are the weight details. * @param ?int $dimDivisor Identifies the type of divisor that was applied.
        Example: 10 - * @param Surcharge[]|null $surCharges Indicates the surcharges applied to this shipment. - * @param Tax[]|null $taxes List of taxes. + * @param Surcharge2[]|null $surCharges Indicates the surcharges applied to this shipment. + * @param Tax2[]|null $taxes List of taxes. */ public function __construct( public ?CurrencyExchangeRate $currencyExchangeRate = null, diff --git a/src/Api/RatesAndTransitTimesV1/Dto/Surcharge.php b/src/Api/RatesAndTransitTimesV1/Dto/Surcharge.php index ae78dc5f..597257b1 100644 --- a/src/Api/RatesAndTransitTimesV1/Dto/Surcharge.php +++ b/src/Api/RatesAndTransitTimesV1/Dto/Surcharge.php @@ -15,17 +15,15 @@ final class Surcharge extends Dto { /** - * @param ?float $amount Identifies the total amount of the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes.
        Example: 87.5 - * @param ?string $level The level of surcharge.
        Example: level - * @param ?string $name The localized name of the surcharge.
        Example: name - * @param ?string $description The description of the surcharge.
        Example: description - * @param ?string $type The type of surcharge.
        Example: type + * @param ?string $surchargeType The type of surcharge. + * @param ?string $level The level of surcharge. + * @param ?string $description The description of the surcharge. + * @param ?Money $amount Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. */ public function __construct( - public ?float $amount = null, + public ?string $surchargeType = null, public ?string $level = null, - public ?string $name = null, public ?string $description = null, - public ?string $type = null, + public ?Money $amount = null, ) {} } diff --git a/src/Api/RatesAndTransitTimesV1/Dto/Surcharge2.php b/src/Api/RatesAndTransitTimesV1/Dto/Surcharge2.php new file mode 100644 index 00000000..54c28964 --- /dev/null +++ b/src/Api/RatesAndTransitTimesV1/Dto/Surcharge2.php @@ -0,0 +1,31 @@ + Example: 87.5 + * @param ?string $level The level of surcharge.
        Example: level + * @param ?string $name The localized name of the surcharge.
        Example: name + * @param ?string $description The description of the surcharge.
        Example: description + * @param ?string $type The type of surcharge.
        Example: type + */ + public function __construct( + public ?float $amount = null, + public ?string $level = null, + public ?string $name = null, + public ?string $description = null, + public ?string $type = null, + ) {} +} diff --git a/src/Api/RatesAndTransitTimesV1/Dto/Tax.php b/src/Api/RatesAndTransitTimesV1/Dto/Tax.php index 1b8bfa44..2f97dbbe 100644 --- a/src/Api/RatesAndTransitTimesV1/Dto/Tax.php +++ b/src/Api/RatesAndTransitTimesV1/Dto/Tax.php @@ -15,15 +15,13 @@ final class Tax extends Dto { /** - * @param ?float $amount Tax amount.
        Example: 408.97 - * @param ?string $name The localized name of the tax.
        Example: Denmark VAT - * @param ?string $description The description of the Surcharge/Tax.
        Example: Denmark VAT - * @param ?string $type The type of Surcharge/Tax.
        Example: VAT + * @param ?string $taxType Specifies the type of Surcharge/Tax. + * @param ?string $description Specifies the description of the Surcharge/Tax. + * @param ?Money $amount Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. */ public function __construct( - public ?float $amount = null, - public ?string $name = null, + public ?string $taxType = null, public ?string $description = null, - public ?string $type = null, + public ?Money $amount = null, ) {} } diff --git a/src/Api/RatesAndTransitTimesV1/Dto/Tax2.php b/src/Api/RatesAndTransitTimesV1/Dto/Tax2.php new file mode 100644 index 00000000..d64df004 --- /dev/null +++ b/src/Api/RatesAndTransitTimesV1/Dto/Tax2.php @@ -0,0 +1,29 @@ + Example: 408.97 + * @param ?string $name The localized name of the tax.
        Example: Denmark VAT + * @param ?string $description The description of the Surcharge/Tax.
        Example: Denmark VAT + * @param ?string $type The type of Surcharge/Tax.
        Example: VAT + */ + public function __construct( + public ?float $amount = null, + public ?string $name = null, + public ?string $description = null, + public ?string $type = null, + ) {} +} diff --git a/src/Api/RatesAndTransitTimesV1/Dto/TaxRates.php b/src/Api/RatesAndTransitTimesV1/Dto/TaxRates.php new file mode 100644 index 00000000..a56768e4 --- /dev/null +++ b/src/Api/RatesAndTransitTimesV1/Dto/TaxRates.php @@ -0,0 +1,23 @@ + Example: 445.54 - * @param ?float $variableHandlingCharge The variable handling charge amount calculated based on the requested variable handling charge detail.
        Example: 403.2 + * @param ?Money $variableHandlingCharge Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. + * @param ?Money $fixedVariableHandlingCharge Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. + * @param ?Money $percentVariableHandlingCharge Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. + * @param ?Money $totalCustomerCharge Indicate the amount details. This is optional, but if indicated, amount and currency must be provided. */ public function __construct( - public ?float $totalCustomerCharge = null, - public ?float $variableHandlingCharge = null, + public ?Money $variableHandlingCharge = null, + public ?Money $fixedVariableHandlingCharge = null, + public ?Money $percentVariableHandlingCharge = null, + public ?Money $totalCustomerCharge = null, ) {} } diff --git a/src/Api/RatesAndTransitTimesV1/Dto/VariableHandlingCharges2.php b/src/Api/RatesAndTransitTimesV1/Dto/VariableHandlingCharges2.php new file mode 100644 index 00000000..baef4399 --- /dev/null +++ b/src/Api/RatesAndTransitTimesV1/Dto/VariableHandlingCharges2.php @@ -0,0 +1,25 @@ + Example: 445.54 + * @param ?float $variableHandlingCharge The variable handling charge amount calculated based on the requested variable handling charge detail.
        Example: 403.2 + */ + public function __construct( + public ?float $totalCustomerCharge = null, + public ?float $variableHandlingCharge = null, + ) {} +} diff --git a/src/Api/RatesAndTransitTimesV1/Dto/Version.php b/src/Api/RatesAndTransitTimesV1/Dto/Version.php new file mode 100644 index 00000000..70434165 --- /dev/null +++ b/src/Api/RatesAndTransitTimesV1/Dto/Version.php @@ -0,0 +1,27 @@ + For shipments to United States, refer to U.S. Customs and Border Protection website.
        Example: USGRE98BIR + * @param ?ClearanceItemDetailContact $contact Contact details of the manufacturer. + * @param ?ClearanceItemDetailAddress $address Address of the manufacturer + */ + public function __construct( + public ?string $role = null, + public ?string $id = null, + public ?ClearanceItemDetailContact $contact = null, + public ?ClearanceItemDetailAddress $address = null, + ) {} +} diff --git a/src/Api/ShipDGHazmatV1/Dto/ClearanceItemDetailAddress.php b/src/Api/ShipDGHazmatV1/Dto/ClearanceItemDetailAddress.php new file mode 100644 index 00000000..4982da3b --- /dev/null +++ b/src/Api/ShipDGHazmatV1/Dto/ClearanceItemDetailAddress.php @@ -0,0 +1,33 @@ +Example: 98 Royal Crescent + * @param ?string $city The name of city, town of the recipient.
        Example: Birmingham + * @param ?string $stateOrProvinceCode It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country.
        Example: CA + * @param ?string $postalCode The US State and Canada Province codes. The Format and presence of this field may vary depending on the country.
        Example: 35209 + * @param ?string $countryCode The two-letter code used to identify a country.
        Example: US + * @param ?bool $residential Indicate whether this address is Residential (as opposed to Commercial).
        Valid Values: True or False. + */ + public function __construct( + public ?array $streetLines = null, + public ?string $city = null, + public ?string $stateOrProvinceCode = null, + public ?string $postalCode = null, + public ?string $countryCode = null, + public ?bool $residential = null, + ) {} +} diff --git a/src/Api/ShipDGHazmatV1/Dto/ClearanceItemDetailContact.php b/src/Api/ShipDGHazmatV1/Dto/ClearanceItemDetailContact.php new file mode 100644 index 00000000..d2861c4d --- /dev/null +++ b/src/Api/ShipDGHazmatV1/Dto/ClearanceItemDetailContact.php @@ -0,0 +1,23 @@ +Example: THE GREENHOUSE + */ + public function __construct( + public ?string $companyName = null, + ) {} +} diff --git a/src/Api/ShipDGHazmatV1/Dto/Commodity.php b/src/Api/ShipDGHazmatV1/Dto/Commodity.php index ef3cf425..e04df842 100644 --- a/src/Api/ShipDGHazmatV1/Dto/Commodity.php +++ b/src/Api/ShipDGHazmatV1/Dto/Commodity.php @@ -16,7 +16,10 @@ final class Commodity extends Dto { protected static array $attributeMap = ['cImarksAndNumbers' => 'cIMarksAndNumbers']; - protected static array $complexArrayTypes = ['additionalMeasures' => AdditionalMeasures::class]; + protected static array $complexArrayTypes = [ + 'additionalMeasures' => AdditionalMeasures::class, + 'clearanceItemDetail' => ClearanceItemDetail::class, + ]; /** * @param string $name Required
        Commodity name
        Example: non-threaded rivets @@ -36,6 +39,7 @@ final class Commodity extends Dto * @param ?string $partNumber a part number for the item
        Example: 167 * @param ?string $purpose This field is used for calculation of duties and taxes.

        Valid values are : BUSINESS and CONSUMER * @param ?UsmcaCommodityDetail $usmcaDetail Specifies the commodity details of usmca. + * @param ClearanceItemDetail[]|null $clearanceItemDetail Array of clearance item details including manufacturer info for customs clearance. */ public function __construct( public string $name, @@ -55,5 +59,6 @@ public function __construct( public ?string $partNumber = null, public ?string $purpose = null, public ?UsmcaCommodityDetail $usmcaDetail = null, + public ?array $clearanceItemDetail = null, ) {} } diff --git a/src/Api/ShipDGHazmatV1/Dto/Commodity2.php b/src/Api/ShipDGHazmatV1/Dto/Commodity2.php new file mode 100644 index 00000000..07e76e26 --- /dev/null +++ b/src/Api/ShipDGHazmatV1/Dto/Commodity2.php @@ -0,0 +1,59 @@ + 'cIMarksAndNumbers']; + + protected static array $complexArrayTypes = ['additionalMeasures' => AdditionalMeasures::class]; + + /** + * @param string $name Required
        Commodity name
        Example: non-threaded rivets + * @param ?Money $unitPrice This is commodity value used for Customs declaration. + * @param AdditionalMeasures[]|null $additionalMeasures Optional
        Contains only additional quantitative information other than weight and quantity to calculate duties and taxes. + * @param ?int $numberOfPieces Required.
        Indicate the number of pieces associated with the commodity. Number of pieces cannot be a negative value or exceed 9,999.
        Example: 12 + * @param ?int $quantity Required
        Total number of units (using quantityUnits as the unit of measure) of this commodity present in the shipment. Used to estimate duties and taxes.
        Example: 125 + * @param ?string $quantityUnits Required
        Unit of measure for the above quantity. Used to estimate duties and taxes
        Example: Ea + * @param ?CustomsMoney $customsValue This is commodity value used for Customs declaration. + * @param ?string $countryOfManufacture Required
        Maximum allowed length is 4.
        Example: US + * @param ?string $cImarksAndNumbers An identifying mark or number used on the packagingof a shipment to help customers identify a particularshipment
        Example: 87123 + * @param ?string $harmonizedCode This is to specify the Harmonized Tariff System (HTS) code to meet U.S. and foreign governments' customs requirements. These are mainly used to estimate the duties and taxes.
        Example: 0613
        To research the classification for your commodity, use the FedEx Global Trade Manager online at fedex.com/gtm. You will find country-specific information to determine whether your commodity is considered to be a document or non-document for your destination. + * @param ?string $description Required
        ScrewsMaximum allowed 450 characters.
        Example: description + * @param ?Weight $weight These are the package weight details. + * @param ?string $exportLicenseNumber Specifies the export license number for the shipment
        Example: 26456 + * @param ?\DateTimeInterface $exportLicenseExpirationDate Specifies the export license expiration date for the shipment
        Format YYYY-MM-DD
        Example : 2009-04-12 + * @param ?string $partNumber a part number for the item
        Example: 167 + * @param ?string $purpose This field is used for calculation of duties and taxes.

        Valid values are : BUSINESS and CONSUMER + * @param ?UsmcaCommodityDetail $usmcaDetail Specifies the commodity details of usmca. + */ + public function __construct( + public string $name, + public ?Money $unitPrice = null, + public ?array $additionalMeasures = null, + public ?int $numberOfPieces = null, + public ?int $quantity = null, + public ?string $quantityUnits = null, + public ?CustomsMoney $customsValue = null, + public ?string $countryOfManufacture = null, + public ?string $cImarksAndNumbers = null, + public ?string $harmonizedCode = null, + public ?string $description = null, + public ?Weight $weight = null, + public ?string $exportLicenseNumber = null, + public ?\DateTimeInterface $exportLicenseExpirationDate = null, + public ?string $partNumber = null, + public ?string $purpose = null, + public ?UsmcaCommodityDetail $usmcaDetail = null, + ) {} +} diff --git a/src/Api/ShipDGHazmatV1/Dto/CustomsClearanceDetail2.php b/src/Api/ShipDGHazmatV1/Dto/CustomsClearanceDetail2.php new file mode 100644 index 00000000..4106036e --- /dev/null +++ b/src/Api/ShipDGHazmatV1/Dto/CustomsClearanceDetail2.php @@ -0,0 +1,57 @@ + Commodity2::class, 'brokers' => BrokerDetail::class]; + + /** + * @param CommercialInvoice $commercialInvoice Use this object to provide Commercial Invoice details. This element is required for electronic upload of CI data. It will serve to create/transmit an electronic Commercial Invoice through the FedEx system.
        Customers are responsible for printing their own Commercial Invoice.
        If you would like FedEx to generate a Commercial Invoice and transmit it to Customs for clearance purposes, you need to specify that in the 'ETDDetail/RequesteDocumentCopies' element.
        Support consists of a maximum of 99 commodity line items. + * @param Commodity2[] $commodities Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment + * @param ?string[] $regulatoryControls These are the regulatory controls applicable to the shipment. + * @param BrokerDetail[]|null $brokers Conditional.
        Specify Broker information only if you are using Broker Select Option for your shipment.To be considered a valid, a country code must be specified in addition to one of the following address items: postal code, city, or location id. + * @param ?string $freightOnValue Specify the risk owner for the Freight shipment.This element is only mandatory or valid for Intra India shipments. + * @param ?Payment2 $dutiesPayment This is a payment type, basically indicates who is the payor for the shipment.Conditional required for International Shipments. + * @param ?RecipientCustomsId $recipientCustomsId Conditional + * + * Use this element to provide valid identification details. Used for populating brazil tax id. + * @param ?CustomsOptionDetail $customsOption These are customs Option Detail, type must be indicated for each occurrence + * @param ?string $generatedDocumentLocale This is the locale for generated document.
        Example: en_US
        click here to see Locales
        Note: If the locale is left blank or an invalid locale is entered, an error message is returned in response. + * @param ?ExportDetail $exportDetail Conditional + * Export Detail Used for US or CA exports + * @param ?Money $totalCustomsValue This is commodity value used for Customs declaration. + * @param ?bool $partiesToTransactionAreRelated Parties To Transaction Are Related + * @param ?CustomsDeclarationStatementDetail $declarationStatementDetail Specifies about the statements to be declared for Customs. + * @param ?bool $isDocumentOnly Used to specify if a shipment is document shipment or not. Used only for International Express document shipments. Default value is false. + * @param ?Money $insuranceCharge This is commodity value used for Customs declaration. + */ + public function __construct( + public CommercialInvoice $commercialInvoice, + public array $commodities, + public ?array $regulatoryControls = null, + public ?array $brokers = null, + public ?string $freightOnValue = null, + public ?Payment2 $dutiesPayment = null, + public ?RecipientCustomsId $recipientCustomsId = null, + public ?CustomsOptionDetail $customsOption = null, + public ?Party $importerOfRecord = null, + public ?string $generatedDocumentLocale = null, + public ?ExportDetail $exportDetail = null, + public ?Money $totalCustomsValue = null, + public ?bool $partiesToTransactionAreRelated = null, + public ?CustomsDeclarationStatementDetail $declarationStatementDetail = null, + public ?bool $isDocumentOnly = null, + public ?Money $insuranceCharge = null, + ) {} +} diff --git a/src/Api/ShipDGHazmatV1/Dto/DangerousGoodsDetailPackaging.php b/src/Api/ShipDGHazmatV1/Dto/DangerousGoodsDetailPackaging.php index 06c6ec70..daf2fc99 100644 --- a/src/Api/ShipDGHazmatV1/Dto/DangerousGoodsDetailPackaging.php +++ b/src/Api/ShipDGHazmatV1/Dto/DangerousGoodsDetailPackaging.php @@ -16,7 +16,7 @@ final class DangerousGoodsDetailPackaging extends Dto { /** * @param ?int $count the count of the packaging - * @param ?string $units The weight unit of measure for the packaging. KG or LB + * @param ?string $units Units in which the hazardous commodity is packaged. */ public function __construct( public ?int $count = null, diff --git a/src/Api/ShipDGHazmatV1/Dto/Payment.php b/src/Api/ShipDGHazmatV1/Dto/Payment.php index 1c0f20e7..f1509e31 100644 --- a/src/Api/ShipDGHazmatV1/Dto/Payment.php +++ b/src/Api/ShipDGHazmatV1/Dto/Payment.php @@ -16,7 +16,7 @@ final class Payment extends Dto { /** * @param string $paymentType Specifies the payment Type.
        Note: This is required for Express, Ground and SmartPost shipments.
        The payment type COLLECT is applicable only for Ground shipments. - * @param ?Payor $payor Information about the person who is paying for the shipment.
        Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT. + * @param ?Payor $payor Information about the person who is paying for the shipment.
        Payor is mandatory when the paymentType is RECIPIENT and THIRD_PARTY. */ public function __construct( public string $paymentType, diff --git a/src/Api/ShipDGHazmatV1/Dto/RequestedShipmentVerify.php b/src/Api/ShipDGHazmatV1/Dto/RequestedShipmentVerify.php index 1961dafb..de17d3fe 100644 --- a/src/Api/ShipDGHazmatV1/Dto/RequestedShipmentVerify.php +++ b/src/Api/ShipDGHazmatV1/Dto/RequestedShipmentVerify.php @@ -34,7 +34,7 @@ final class RequestedShipmentVerify extends Dto * @param ?RequestedShipmentVerifyShipmentSpecialServices $shipmentSpecialServices These special services are available at the shipment level for some or all service types.
        If the shipper is requesting a special service which requires additional data (such as the COD amount), the shipment special service type must be present in the specialServiceTypes collection, and the supporting detail must be provided in the appropriate sub-object below.
        RETURN_SHIPMENT is required for creating return shipments. * @param ?EMailNotificationDetail $emailNotificationDetail These are email disposition details. Provides the type and email addresses of e-mail recipients. If returnedDispositionDetail in labelSpecification is set as true then email will be send with label and documents copy. * @param ?VariableHandlingChargeDetail $variableHandlingChargeDetail Specifies details about how to calculate variable handling charges at the shipment level. They can be based on a percentage of the shipping charges or a fixed amount. If indicated, 'rateLevelType' is required. - * @param ?CustomsClearanceDetail $customsClearanceDetail Required for International and intra-country Shipments. Information about this package that only applies to an international (export) shipment or return. + * @param ?CustomsClearanceDetail2 $customsClearanceDetail Required for International and intra-country Shipments. Information about this package that only applies to an international (export) shipment or return. * @param ?SmartPostInfoDetail $smartPostInfoDetail Use this object to specify the smartpost shipment details. Required for SMARTPOST service. If SmartPostInfoDetail is indicated, the elements below it are also required. * @param ?bool $blockInsightVisibility Indicate if the shipment be available to be visible/tracked using FedEx InSight® tool. If value indicated as true, only the shipper/payer will have visibility of this shipment in the said tool. * @param ?ShippingDocumentSpecification2 $shippingDocumentSpecification This field contains all data required for additional (non-label) shipping documents to be produced with a specific shipment. @@ -56,7 +56,7 @@ public function __construct( public ?RequestedShipmentVerifyShipmentSpecialServices $shipmentSpecialServices = null, public ?EMailNotificationDetail $emailNotificationDetail = null, public ?VariableHandlingChargeDetail $variableHandlingChargeDetail = null, - public ?CustomsClearanceDetail $customsClearanceDetail = null, + public ?CustomsClearanceDetail2 $customsClearanceDetail = null, public ?SmartPostInfoDetail $smartPostInfoDetail = null, public ?bool $blockInsightVisibility = null, public ?ShippingDocumentSpecification2 $shippingDocumentSpecification = null, diff --git a/src/Api/ShipDGHazmatV1/Dto/TrackingId.php b/src/Api/ShipDGHazmatV1/Dto/TrackingId.php index 71b955f0..3d9af636 100644 --- a/src/Api/ShipDGHazmatV1/Dto/TrackingId.php +++ b/src/Api/ShipDGHazmatV1/Dto/TrackingId.php @@ -15,15 +15,15 @@ final class TrackingId extends Dto { /** - * @param ?int $formId This is FedEx tracking Identifier associated with the package.
        Example: 0201 + * @param ?string $formId This is FedEx tracking Identifier associated with the package.
        Example: 0201 * @param ?string $trackingIdType Specify the FedEx transportation type (EXPRESS, GROUND, FREIGHT).
        Example: EXPRESS - * @param ?int $uspsApplicationId Specify the USPS tracking Identifier associated with FedEx SmartPost shipment.
        Example: 92 + * @param ?string $uspsApplicationId Specify the USPS tracking Identifier associated with FedEx SmartPost shipment.
        Example: 92 * @param ?int $trackingNumber This is the number associated with the package that is used to track it.For child shipment of an oneLabelAtATime shipments,this should be same as the masterTrackingNumber of the parent shipment. */ public function __construct( - public ?int $formId = null, + public ?string $formId = null, public ?string $trackingIdType = null, - public ?int $uspsApplicationId = null, + public ?string $uspsApplicationId = null, public ?int $trackingNumber = null, ) {} } diff --git a/src/Api/ShipV1/Dto/Address.php b/src/Api/ShipV1/Dto/Address.php index e3d000cb..91e916a5 100644 --- a/src/Api/ShipV1/Dto/Address.php +++ b/src/Api/ShipV1/Dto/Address.php @@ -15,12 +15,12 @@ final class Address extends Dto { /** - * @param ?string[] $streetLines This is the combination of number, street name, etc.
        Note: At least one line is required and streetlines more than 3 will be ignored. Empty lines should not be included. Maximum length per line is 35.
        Example: [10 FedEx Parkway, Suite 302, .etc.] - * @param ?string $city This is a placeholder for City Name.
        Note: This is conditional and not required in all the requests.
        Note: It is recommended for Express shipments for the most accurate ODA and OPA surcharges.
        Example: Beverly Hills - * @param ?string $stateOrProvinceCode This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.
        Example: CA
        click here to see State or Province Code - * @param ?string $postalCode Indicate the Postal code. This is Optional for non postal-aware countries. Maximum length is 10.
        Example: 65247
        click here to see Postal aware countries - * @param ?string $countryCode This is the two-letter country code.
        Maximum length is 2.
        Example: US
        click here to see Country codes - * @param ?bool $residential Indicate whether this address is residential (as opposed to commercial). + * @param ?string[] $streetLines Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included.98 Royal Crescent + * @param ?string $city The name of city, town of the recipient.Example: Birmingham + * @param ?string $stateOrProvinceCode It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country. Example: CA.click here to see State or Province Code + * @param ?string $postalCode The US State and Canada Province codes. The Format and presence of this field may vary depending on the country. Example: 35209click here to see Postal aware countries + * @param ?string $countryCode The two-letter code used to identify a country.Example: USclick here to see Country codes + * @param ?bool $residential Indicate whether this address is residential (as opposed to commercial).Valid Values: True or False. */ public function __construct( public ?array $streetLines = null, diff --git a/src/Api/ShipV1/Dto/AncillaryFeeAndTax.php b/src/Api/ShipV1/Dto/AncillaryFeeAndTax.php new file mode 100644 index 00000000..08599f43 --- /dev/null +++ b/src/Api/ShipV1/Dto/AncillaryFeeAndTax.php @@ -0,0 +1,27 @@ + 'cIMarksAndNumbers']; - protected static array $complexArrayTypes = ['additionalMeasures' => AdditionalMeasures::class]; + protected static array $complexArrayTypes = [ + 'clearanceItemDetail' => ClearanceItemDetail::class, + 'additionalMeasures' => AdditionalMeasures::class, + ]; /** * @param string $description Required
        ScrewsMaximum allowed 450 characters.
        Example: description + * @param ClearanceItemDetail[]|null $clearanceItemDetail These are commodities clearance item detail * @param ?Money $unitPrice This customs value is applicable for all items(or units) under the specified commodity * @param AdditionalMeasures[]|null $additionalMeasures This object contains additional quantitative information other than weight and quantity to calculate duties and taxes. * @param ?int $numberOfPieces Indicate the number of pieces associated with the commodity. The value can neither be negative nor exceed 9,999.
        Example: 12 @@ -39,6 +43,7 @@ final class Commodity extends Dto */ public function __construct( public string $description, + public ?array $clearanceItemDetail = null, public ?Money $unitPrice = null, public ?array $additionalMeasures = null, public ?int $numberOfPieces = null, diff --git a/src/Api/ShipV1/Dto/Commodity2.php b/src/Api/ShipV1/Dto/Commodity2.php new file mode 100644 index 00000000..64b67f86 --- /dev/null +++ b/src/Api/ShipV1/Dto/Commodity2.php @@ -0,0 +1,59 @@ + 'cIMarksAndNumbers']; + + protected static array $complexArrayTypes = ['additionalMeasures' => AdditionalMeasures::class]; + + /** + * @param string $description Required
        ScrewsMaximum allowed 450 characters.
        Example: description + * @param ?Money $unitPrice This customs value is applicable for all items(or units) under the specified commodity + * @param AdditionalMeasures[]|null $additionalMeasures This object contains additional quantitative information other than weight and quantity to calculate duties and taxes. + * @param ?int $numberOfPieces Indicate the number of pieces associated with the commodity. The value can neither be negative nor exceed 9,999.
        Example: 12 + * @param ?int $quantity This is the units quantity (using quantityUnits as the unit of measure) per commodity. This is used to estimate duties and taxes.
        Example: 125 + * @param ?string $quantityUnits This is the unit of measure for the units quantity. This is used to estimate duties and taxes.
        Example: EA
        click here to see Commodity Unit Measures + * @param ?CustomsMoney $customsValue This customs value is applicable for all items(or units) under the specified commodity. + * @param ?string $countryOfManufacture This is commodity country of manufacture. This is required for International shipments. Maximum allowed length is 4.
        Example: US
        click here to see Country codes + * @param ?string $cImarksAndNumbers This is an identifying mark or number used on the packaging of a shipment to help customers identify a particular shipment
        Example: 87123 + * @param ?string $harmonizedCode This is to specify the Harmonized Tariff System (HTS) code to meet U.S. and foreign governments' customs requirements. These are mainly used to estimate the duties and taxes.
        Example: 0613
        To research the classification for your commodity, use the FedEx Global Trade Manager online at fedex.com/gtm. You will find country-specific information to determine whether your commodity is considered to be a document or non-document for your destination. + * @param ?string $name This is Commodity name.
        Example: Non-Threaded Rivets + * @param ?Weight $weight These are the package weight details.
        Note: Weight is not required for One rate shipments + * @param ?string $exportLicenseNumber This is the export license number for the shipment.
        Example: 26456 + * @param ?\DateTimeInterface $exportLicenseExpirationDate Specify the export license expiration date for the shipment.
        Format YYYY-MM-DD
        Example : 2009-04-12 + * @param ?string $partNumber This is a part number.
        Example: 167 + * @param ?string $purpose This field is used for calculation of duties and taxes.

        Valid values are : BUSINESS and CONSUMER.
        Example:BUSINESS + * @param ?UsmcaDetail $usmcaDetail Indicates the USMCA detail + */ + public function __construct( + public string $description, + public ?Money $unitPrice = null, + public ?array $additionalMeasures = null, + public ?int $numberOfPieces = null, + public ?int $quantity = null, + public ?string $quantityUnits = null, + public ?CustomsMoney $customsValue = null, + public ?string $countryOfManufacture = null, + public ?string $cImarksAndNumbers = null, + public ?string $harmonizedCode = null, + public ?string $name = null, + public ?Weight $weight = null, + public ?string $exportLicenseNumber = null, + public ?\DateTimeInterface $exportLicenseExpirationDate = null, + public ?string $partNumber = null, + public ?string $purpose = null, + public ?UsmcaDetail $usmcaDetail = null, + ) {} +} diff --git a/src/Api/ShipV1/Dto/CompletedCreateShipmentDetail.php b/src/Api/ShipV1/Dto/CompletedCreateShipmentDetail.php new file mode 100644 index 00000000..e2000739 --- /dev/null +++ b/src/Api/ShipV1/Dto/CompletedCreateShipmentDetail.php @@ -0,0 +1,51 @@ + CompletedPackageDetail::class]; + + /** + * @param CompletedPackageDetail[]|null $completedPackageDetails Indicates the completed package details. + * @param ?ShipmentOperationalDetail $operationalDetail Indicates the shipment level operational information. + * @param ?string $carrierCode Specify the four letter code of a FedEx operating company that meets your requirements
        Examples of FedEx Operating Companies are:
        • FDXE - FedEx Express
        • FDXG - FedEx Ground
        • FXSP - FedEx SmartPost
        • FXCC - FedEx Custom Critical.
        + * @param ?CompletedHoldAtLocationDetail $completedHoldAtLocationDetail This is default holding location information when HOLD_AT_LOCATION special service is requested and the client does not specify the hold location address. + * @param ?CompletedEtdDetail $completedEtdDetail These are completed ETD details when ELECTRONIC_TRADE_DOCUMENTS Special service type is requested + * @param ?string $packagingDescription Specifies packaging description
        Example: Customer Packaging + * @param ?TrackingId $masterTrackingId Indicates the tracking details of the package. + * @param ?ServiceDescription $serviceDescription Descriptions for a service. + * @param ?bool $usDomestic Indicates whether or not this is an intra-U.S. shipment. + * @param ?CompletedHazardousShipmentDetail $hazardousShipmentDetail Completed shipment level hazardous commodity information. + * @param ?CreateShipmentRating $shipmentRating All shipment-level rating data for this shipment, which may include data for multiple rate types. + * @param ?DocumentRequirementsDetail $documentRequirements Indicates the document requirements detail. + * @param ?string $exportComplianceStatement For US export shipments requiring an EEI, enter the ITN number received from AES when you filed your shipment or the FTR (Foreign Trade Regulations) exemption number.The proper format for an ITN number is AES XYYYYMMDDNNNNNN where YYYYMMDD is date and NNNNNN are numbers generated by the AES.
        Example: AESX20220714987654
        Note: The ITN or FTR exemption number you submit in the ship request prints on the international shipping label.

        For CA export shipments,it can be Proof of report number(15-32 alphanumeric) , Summary proof of report number(7-32 alphanumeric) or Exemption number(2 digit) based on the selected b13AFilingOption.
        Example: 98765432107654321(POR number), 7654321(Summary POR number) and 02(Exemption number).
        For FTR exemption number you need provide a predefined value as NO_EEI_30_37_A. + * @param ?PendingShipmentAccessDetail $accessDetail This information describes how and when a online email return label shipment may be accessed for completion. + */ + public function __construct( + public ?array $completedPackageDetails = null, + public ?ShipmentOperationalDetail $operationalDetail = null, + public ?string $carrierCode = null, + public ?CompletedHoldAtLocationDetail $completedHoldAtLocationDetail = null, + public ?CompletedEtdDetail $completedEtdDetail = null, + public ?string $packagingDescription = null, + public ?TrackingId $masterTrackingId = null, + public ?ServiceDescription $serviceDescription = null, + public ?bool $usDomestic = null, + public ?CompletedHazardousShipmentDetail $hazardousShipmentDetail = null, + public ?CreateShipmentRating $shipmentRating = null, + public ?DocumentRequirementsDetail $documentRequirements = null, + public ?string $exportComplianceStatement = null, + public ?PendingShipmentAccessDetail $accessDetail = null, + ) {} +} diff --git a/src/Api/ShipV1/Dto/CompletedShipmentDetail.php b/src/Api/ShipV1/Dto/CompletedShipmentDetail.php index 6ebf37c0..419e2057 100644 --- a/src/Api/ShipV1/Dto/CompletedShipmentDetail.php +++ b/src/Api/ShipV1/Dto/CompletedShipmentDetail.php @@ -27,7 +27,6 @@ final class CompletedShipmentDetail extends Dto * @param ?ServiceDescription $serviceDescription Descriptions for a service. * @param ?bool $usDomestic Indicates whether or not this is an intra-U.S. shipment. * @param ?CompletedHazardousShipmentDetail $hazardousShipmentDetail Completed shipment level hazardous commodity information. - * @param ?ShipmentRating $shipmentRating All shipment-level rating data for this shipment, which may include data for multiple rate types. * @param ?DocumentRequirementsDetail $documentRequirements Indicates the document requirements detail. * @param ?string $exportComplianceStatement For US export shipments requiring an EEI, enter the ITN number received from AES when you filed your shipment or the FTR (Foreign Trade Regulations) exemption number.The proper format for an ITN number is AES XYYYYMMDDNNNNNN where YYYYMMDD is date and NNNNNN are numbers generated by the AES.
        Example: AESX20220714987654
        Note: The ITN or FTR exemption number you submit in the ship request prints on the international shipping label.

        For CA export shipments,it can be Proof of report number(15-32 alphanumeric) , Summary proof of report number(7-32 alphanumeric) or Exemption number(2 digit) based on the selected b13AFilingOption.
        Example: 98765432107654321(POR number), 7654321(Summary POR number) and 02(Exemption number).
        For FTR exemption number you need provide a predefined value as NO_EEI_30_37_A. * @param ?PendingShipmentAccessDetail $accessDetail This information describes how and when a online email return label shipment may be accessed for completion. diff --git a/src/Api/ShipV1/Dto/Contact.php b/src/Api/ShipV1/Dto/Contact.php index 2b4c7718..9cd90bfd 100644 --- a/src/Api/ShipV1/Dto/Contact.php +++ b/src/Api/ShipV1/Dto/Contact.php @@ -17,7 +17,7 @@ final class Contact extends Dto /** * @param ?string $personName Specify contact person name.
        Recommended length is 70.
        Note: There's no specific validation for the person name.
        Example: John Taylor * @param ?string $emailAddress Specify contact email address. Maximum length is 80.
        Example: sample@company.com - * @param ?string $phoneNumber Contact person's phone number.
        Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
        Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
        Example: 918xxxxx890 + * @param ?string $phoneNumber Contact person's phone number.
        Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
        Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
        Example: 918xxxxx890 * @param ?string $phoneExtension Specify contact phone extension.
        Note: Recommended length is 6. There's no specific validation for the phone extension.
        Example: 1234 * @param ?string $faxNumber Specify contact fax number.
        Note: Recommended length is 15. There's no specific validation for the fax number.
        Example: 1234567890 * @param ?string $companyName Contact person's company name.
        Note: Recommended Length is 35. There's no specific validation for the company name.
        Example: FedEx diff --git a/src/Api/ShipV1/Dto/Contact2.php b/src/Api/ShipV1/Dto/Contact2.php index 2a0a8f73..05f0e0ff 100644 --- a/src/Api/ShipV1/Dto/Contact2.php +++ b/src/Api/ShipV1/Dto/Contact2.php @@ -17,7 +17,7 @@ final class Contact2 extends Dto /** * @param ?string $personName Specify person name.
        Example: John Taylor * @param ?string $emailAddress Specify email address.
        Example: sample@company.com - * @param ?string $phoneNumber The shippers phone number.
        Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
        Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of 1 or +1.
        Example: 918xxxxx890 + * @param ?string $phoneNumber The shippers phone number.
        Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
        Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of 1 or +1.
        Example: 918xxxxx890 * @param ?string $phoneExtension The shipper's phone extension. Max length is 6.
        Example: 91 * @param ?string $companyName Specify company name. */ diff --git a/src/Api/ShipV1/Dto/Contact3.php b/src/Api/ShipV1/Dto/Contact3.php new file mode 100644 index 00000000..e09dc30a --- /dev/null +++ b/src/Api/ShipV1/Dto/Contact3.php @@ -0,0 +1,23 @@ +Recommended length is 70.
        Note: There's no specific validation for the person name.
        Example: John Taylor * @param ?string $emailAddress Specify contact email address. Maximum length is 80.
        Example: sample@company.com - * @param ?string $phoneNumber Specify contact phone number.
        Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
        Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
        Example: 918xxxxx890 + * @param ?string $phoneNumber Specify contact phone number.
        Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
        Note: Recommended Maximum length is 15 and there's no specific validation will be done for the phone number.
        Example: 918xxxxx890 * @param ?string $phoneExtension Specify contact phone extension.
        Note: Recommended length is 6. There's no specific validation for the phone extension.
        Example: 1234 * @param ?string $faxNumber Specify contact fax number.
        Note: Recommended length is 15. There's no specific validation for the fax number.
        Example: 1234567890 * @param ?string $companyName Specify contact company name.
        Recommended length is 35.
        Note: There's no specific validation for the company name. diff --git a/src/Api/ShipV1/Dto/CreateShipmentRating.php b/src/Api/ShipV1/Dto/CreateShipmentRating.php new file mode 100644 index 00000000..024341d4 --- /dev/null +++ b/src/Api/ShipV1/Dto/CreateShipmentRating.php @@ -0,0 +1,33 @@ + ShipmentRateDetail::class]; + + /** + * @param ?string $actualRateType This rate type identifies which entry in the following array is considered as presenting the "actual" rates for the shipment.
        Example: PAYOR_LIST_SHIPMENT + * @param ShipmentRateDetail[]|null $shipmentRateDetails Each element of this field provides shipment-level rate totals for a specific rate type. + * @param ?Money2 $totalNetTransportationAndPickupCharge This is commodity value used for Customs declaration. + * @param ?Money2 $totalNetFedExTransportationAndPickupCharge This is commodity value used for Customs declaration. + * @param ?PickupRateDetail $pickupRateDetail Charges associated with a scheduled shipment pickup + */ + public function __construct( + public ?string $actualRateType = null, + public ?array $shipmentRateDetails = null, + public ?Money2 $totalNetTransportationAndPickupCharge = null, + public ?Money2 $totalNetFedExTransportationAndPickupCharge = null, + public ?PickupRateDetail $pickupRateDetail = null, + ) {} +} diff --git a/src/Api/ShipV1/Dto/CreateTagRequestedShipment.php b/src/Api/ShipV1/Dto/CreateTagRequestedShipment.php index 1a2ee53d..fab13d33 100644 --- a/src/Api/ShipV1/Dto/CreateTagRequestedShipment.php +++ b/src/Api/ShipV1/Dto/CreateTagRequestedShipment.php @@ -25,7 +25,7 @@ final class CreateTagRequestedShipment extends Dto * @param string $pickupType Indicates if shipment is being dropped off at a FedEx location or being picked up by FedEx or if it's a regularly scheduled pickup for this shipment. Required for FedEx Express and Ground Shipment.
        Example: USE_SCHEDULED_PICKUP * @param string $serviceType Indicate the FedEx service type used for this shipment.
        Example: STANDARD_OVERNIGHT
        click here to see Service Types * @param string $packagingType Specify the packaging used.
        Note: For Express Freight shipments, the packaging will default to YOUR_PACKAGING irrespective of the user provided package type in the request.
        Example: FEDEX_PAK
        click here to see Package Types - * @param float $totalWeight Indicate the shipment total weight in pounds.
        Example: 10.6
        Note:
        • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
        • This value contains 1 explicit decimal position.
        • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
        + * @param float $totalWeight Indicate the shipment total weight in Metric or US.
        Example: 10.6
        Note:
        • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
        • This value contains 1 explicit decimal position.
        • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
        * @param Payment $shippingChargesPayment Specifies the payment details specifying the method and means of payment to FedEx for providing shipping services. * @param LabelSpecification $labelSpecification These are label specification details includes the image type, printer format, and label stock for label. Can also specify specific details such as doc-tab content, regulatory labels, and masking data on the label. * @param RequestedPackageLineItem[] $requestedPackageLineItems These are one or more package-attribute descriptions, each of which describes an individual package, a group of identical packages, or (for the total-piece-total-weight case) common characteristics of all packages in the shipment.
        • At least one instance containing the weight for at least one package is required for EXPRESS and GROUND shipments.
        • Single piece requests will have one RequestedPackageLineItem.
        • Multiple piece requests will have multiple RequestedPackageLineItems.
        • Maximum occurrences is 30.
        diff --git a/src/Api/ShipV1/Dto/CustomsClearanceDetail.php b/src/Api/ShipV1/Dto/CustomsClearanceDetail.php index f9727f33..b946e66f 100644 --- a/src/Api/ShipV1/Dto/CustomsClearanceDetail.php +++ b/src/Api/ShipV1/Dto/CustomsClearanceDetail.php @@ -17,10 +17,10 @@ final class CustomsClearanceDetail extends Dto protected static array $complexArrayTypes = ['commodities' => Commodity::class, 'brokers' => BrokerDetail::class]; /** - * @param CommercialInvoice $commercialInvoice Use this object to provide Commercial Invoice details. This element is required for electronic upload of CI data. It will serve to create/transmit an electronic Commercial Invoice through the FedEx system.
        Customers are responsible for printing their own Commercial Invoice.
        If you would like FedEx to generate a Commercial Invoice and transmit it to Customs for clearance purposes, you need to specify that in the ETDDetail/RequestedDocumentCopies element.
        Supports maximum of 99 commodity line items. * @param Commodity[] $commodities Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment. * @param ?string[] $regulatoryControls These are the regulatory controls applicable to the shipment.
        Example:[USMCA,FOOD_OR_PERISHABLE] * @param BrokerDetail[]|null $brokers Specify broker information. Use this option only if you are using Broker Select Option for your shipment. A country code must be specified in addition to one of the following address items: postal code, city, or location id. + * @param ?CommercialInvoice $commercialInvoice Use this object to provide Commercial Invoice details. This element is required for electronic upload of CI data. It will serve to create/transmit an electronic Commercial Invoice through the FedEx system.
        Customers are responsible for printing their own Commercial Invoice.
        If you would like FedEx to generate a Commercial Invoice and transmit it to Customs for clearance purposes, you need to specify that in the ETDDetail/RequestedDocumentCopies element.
        Supports maximum of 99 commodity line items. * @param ?string $freightOnValue Specify the risk owner for the Freight shipment.This element is only mandatory or valid for Intra India shipments.
        Example: OWN_RISK * @param ?Payment2 $dutiesPayment This is a payment type, basically indicates who is the payor for the shipment.Conditional required for International Shipments * @param ?bool $isDocumentOnly Defaults to false. Only used for international Express requests to indicate if just documents are being shipped or not. A valude of DERIVED will cause the value to be determined by PMIS based on the specified commodities information
        Example: false @@ -34,10 +34,10 @@ final class CustomsClearanceDetail extends Dto * @param ?Money $insuranceCharge This customs value is applicable for all items(or units) under the specified commodity */ public function __construct( - public CommercialInvoice $commercialInvoice, public array $commodities, public ?array $regulatoryControls = null, public ?array $brokers = null, + public ?CommercialInvoice $commercialInvoice = null, public ?string $freightOnValue = null, public ?Payment2 $dutiesPayment = null, public ?bool $isDocumentOnly = null, diff --git a/src/Api/ShipV1/Dto/CustomsClearanceDetailTag.php b/src/Api/ShipV1/Dto/CustomsClearanceDetailTag.php index c417c707..8b39bd84 100644 --- a/src/Api/ShipV1/Dto/CustomsClearanceDetailTag.php +++ b/src/Api/ShipV1/Dto/CustomsClearanceDetailTag.php @@ -14,11 +14,11 @@ final class CustomsClearanceDetailTag extends Dto { - protected static array $complexArrayTypes = ['commodities' => Commodity::class, 'brokers' => BrokerDetail::class]; + protected static array $complexArrayTypes = ['commodities' => Commodity2::class, 'brokers' => BrokerDetail::class]; /** * @param CommercialInvoice $commercialInvoice Use this object to provide Commercial Invoice details. This element is required for electronic upload of CI data. It will serve to create/transmit an electronic Commercial Invoice through the FedEx system.
        Customers are responsible for printing their own Commercial Invoice.
        If you would like FedEx to generate a Commercial Invoice and transmit it to Customs for clearance purposes, you need to specify that in the ETDDetail/RequestedDocumentCopies element.
        Supports maximum of 99 commodity line items. - * @param Commodity[] $commodities Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment. + * @param Commodity2[] $commodities Indicates the details about the dutiable packages. Maximum upto 999 commodities per shipment. * @param ?string[] $regulatoryControls These are the regulatory controls applicable to the shipment.
        Example:USMCA,FOOD_OR_PERISHABLE * @param BrokerDetail[]|null $brokers Specify broker information. Use this option only if you are using Broker Select Option for your shipment. A country code must be specified in addition to one of the following address items: postal code, city, or location id. * @param ?string $freightOnValue Specify the risk owner for the Freight shipment.This element is only mandatory or valid for Intra India shipments.
        Example: OWN_RISK diff --git a/src/Api/ShipV1/Dto/EdtCommodityTax.php b/src/Api/ShipV1/Dto/EdtCommodityTax.php new file mode 100644 index 00000000..317daca2 --- /dev/null +++ b/src/Api/ShipV1/Dto/EdtCommodityTax.php @@ -0,0 +1,27 @@ + TaxRates::class]; + + /** + * @param ?string $taxType Estimated taxes type + * @param ?string $effectiveDate Estimated duties and taxes effective date. Format [YYYY-MM-DD]. + * @param ?string $name The localized name of the surcharge. + * @param ?Money2 $taxableValue This is commodity value used for Customs declaration. + * @param ?string $description FedEx pays the Duty and Tax charges on your behalf to ensure we can deliver your shipment as quickly as possible + * @param ?string $formula Indicates the formula. + * @param ?Money2 $amount This is commodity value used for Customs declaration. + * @param TaxRates[]|null $taxRates Estimated duties and taxes taxRates + * @param ?AppliedPreferentialTradeAgreement $appliedPreferentialTradeAgreement provides details about PTA applied between countries for specific product. + */ + public function __construct( + public ?string $taxType = null, + public ?string $taxcode = null, + public ?string $effectiveDate = null, + public ?string $name = null, + public ?Money2 $taxableValue = null, + public ?string $description = null, + public ?string $formula = null, + public ?Money2 $amount = null, + public ?array $taxRates = null, + public ?AppliedPreferentialTradeAgreement $appliedPreferentialTradeAgreement = null, + ) {} +} diff --git a/src/Api/ShipV1/Dto/FullSchemaCancelShipment.php b/src/Api/ShipV1/Dto/FullSchemaCancelShipment.php index 6d27ec77..d05d848b 100644 --- a/src/Api/ShipV1/Dto/FullSchemaCancelShipment.php +++ b/src/Api/ShipV1/Dto/FullSchemaCancelShipment.php @@ -27,5 +27,6 @@ public function __construct( public ?bool $emailShipment = null, public ?string $senderCountryCode = null, public ?string $deletionControl = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/ShipV1/Dto/FullSchemaCancelTag.php b/src/Api/ShipV1/Dto/FullSchemaCancelTag.php index 0c212557..1a9b0538 100644 --- a/src/Api/ShipV1/Dto/FullSchemaCancelTag.php +++ b/src/Api/ShipV1/Dto/FullSchemaCancelTag.php @@ -24,5 +24,6 @@ public function __construct( public string $serviceType, public CompletedTagDetail $completedTagDetail, public ?string $trackingNumber = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/ShipV1/Dto/FullSchemaCreateTag.php b/src/Api/ShipV1/Dto/FullSchemaCreateTag.php index 52ed3806..934efabf 100644 --- a/src/Api/ShipV1/Dto/FullSchemaCreateTag.php +++ b/src/Api/ShipV1/Dto/FullSchemaCreateTag.php @@ -20,5 +20,6 @@ final class FullSchemaCreateTag extends Dto public function __construct( public CreateTagRequestedShipment $requestedShipment, public PartyAccountNumber $accountNumber, + public ?Version $version = null, ) {} } diff --git a/src/Api/ShipV1/Dto/FullSchemaGetConfirmedShipmentAsyncResults.php b/src/Api/ShipV1/Dto/FullSchemaGetConfirmedShipmentAsyncResults.php index 644082e4..0f1c3906 100644 --- a/src/Api/ShipV1/Dto/FullSchemaGetConfirmedShipmentAsyncResults.php +++ b/src/Api/ShipV1/Dto/FullSchemaGetConfirmedShipmentAsyncResults.php @@ -21,5 +21,6 @@ final class FullSchemaGetConfirmedShipmentAsyncResults extends Dto public function __construct( public PartyAccountNumber $accountNumber, public string $jobId, + public ?Version $version = null, ) {} } diff --git a/src/Api/ShipV1/Dto/FullSchemaShip.php b/src/Api/ShipV1/Dto/FullSchemaShip.php index 69b93b10..a835ed39 100644 --- a/src/Api/ShipV1/Dto/FullSchemaShip.php +++ b/src/Api/ShipV1/Dto/FullSchemaShip.php @@ -18,12 +18,13 @@ final class FullSchemaShip extends Dto /** * @param RequestedShipment $requestedShipment The descriptive data of the requested shipment. - * @param string $labelResponseOptions Note- Label will be returned as Base64 ONLY when openShipmentAction is PROVIDE_DOCUMENTS_INCREMENTALLY.
        LabelResponseOptions specifies the label generation format.
        Example:URL_ONLY + * @param string $labelResponseOptions LABEL – Indicates request is for encoded bytecode (Base64).
        URL_ONLY – Indicates label URL request.
        Note:
        • For asynchronous shipment (more than 40 packages) requests only the value LABEL is supported.
        • With URL_ONLY option, the URL once created will be active for 12 hours. * @param ShipperAccountNumber $accountNumber The account number associated with the shipment. * @param ?string $mergeLabelDocOption It specifies the content of the merged pdf URL in the response. The merged pdf URL is generated only if the labelResponseOption is indicated as URL_ONLY.
          • If the value is 'LABELS_AND_DOCS', then merged (all shipping labels and shipping documents) pdf URL will be returned.
          • If the value is 'LABELS_ONLY', merged (all shipping labels only) pdf URL will be returned.
          • If the value is 'NONE', then no merged pdf URL will be returned.

          This is optional field and will default to LABELS_AND_DOCS.
          Note: If the value is 'LABELS_ONLY', then the returned merged pdf label will not be in the Base64 encoded format. * @param ?string $shipAction Indicate shipment action for the Shipment.
          • CONFIRM – used in case of shipment submission
          • TRANSFER – used in case of Email Label Shipment or Pending Shipment submission. * @param ?string $processingOptionType Indicate the processing option for submitting a Single shot MPS shipment. The value indicates if the MPS to be processed synchronously or asynchronously.
            Note:
            • Default value is SYNCHRONOUS_ONLY.
            • Value or element is not needed when groupPackageCount is less than or equal to 40.
            • Must provide element with value ALLOW_ASYNCHRONOUS when groupPackageCount is greater than 40.

            Example:ALLOW_ASYNCHRONUS * @param ?bool $oneLabelAtAtime This flag is used to specify if the shipment is singleshot mps or one Label at a time, piece by piece shipment. Default is false. If true, one label at a time is processed. + * @param ?string[] $processingOptions Array of processing options for the shipment. */ public function __construct( public RequestedShipment $requestedShipment, @@ -33,5 +34,7 @@ public function __construct( public ?string $shipAction = null, public ?string $processingOptionType = null, public ?bool $oneLabelAtAtime = null, + public ?Version $version = null, + public ?array $processingOptions = null, ) {} } diff --git a/src/Api/ShipV1/Dto/FullSchemaVerifyShipment.php b/src/Api/ShipV1/Dto/FullSchemaVerifyShipment.php index 397f6d92..caa3d77f 100644 --- a/src/Api/ShipV1/Dto/FullSchemaVerifyShipment.php +++ b/src/Api/ShipV1/Dto/FullSchemaVerifyShipment.php @@ -21,5 +21,6 @@ final class FullSchemaVerifyShipment extends Dto public function __construct( public RequestedShipmentVerify $requestedShipment, public ?ShipperAccountNumber $accountNumber = null, + public ?Version $version = null, ) {} } diff --git a/src/Api/ShipV1/Dto/HazardousCommodityQuantityDetail.php b/src/Api/ShipV1/Dto/HazardousCommodityQuantityDetail.php index 1015ef26..25bddb3b 100644 --- a/src/Api/ShipV1/Dto/HazardousCommodityQuantityDetail.php +++ b/src/Api/ShipV1/Dto/HazardousCommodityQuantityDetail.php @@ -18,10 +18,12 @@ final class HazardousCommodityQuantityDetail extends Dto * @param string $quantityType Specifies which measure of quantity is to be validated.
            Example:GROSS * @param float $amount Indicate the amount of the commodity in alternate units.
            Example: 24.56 * @param ?string $units Indicate the unit of measure.
            Example: KG + * @param ?float $value Weight Value.
            Example: 68.25
            Click here to see Weight Values. */ public function __construct( public string $quantityType, public float $amount, public ?string $units = null, + public ?float $value = null, ) {} } diff --git a/src/Api/ShipV1/Dto/JustContactAndAddress.php b/src/Api/ShipV1/Dto/JustContactAndAddress.php index 4b6f15bd..a46ce6d3 100644 --- a/src/Api/ShipV1/Dto/JustContactAndAddress.php +++ b/src/Api/ShipV1/Dto/JustContactAndAddress.php @@ -15,7 +15,7 @@ final class JustContactAndAddress extends Dto { /** - * @param ?Address $address Descriptive data for a physical location. May be used as an actual physical address (place to which one could go), or as a container of "address parts" which should be handled as a unit (such as a city-state-ZIP combination within the US). + * @param ?Address $address Address of the manufacturer * @param ?Contact2 $contact Specify the contact information. */ public function __construct( diff --git a/src/Api/ShipV1/Dto/Money2.php b/src/Api/ShipV1/Dto/Money2.php new file mode 100644 index 00000000..3c0ac882 --- /dev/null +++ b/src/Api/ShipV1/Dto/Money2.php @@ -0,0 +1,25 @@ +Click here to see Currency Codes + */ + public function __construct( + public string $value, + public ?string $currency = null, + ) {} +} diff --git a/src/Api/ShipV1/Dto/PackageSpecialServicesRequested.php b/src/Api/ShipV1/Dto/PackageSpecialServicesRequested.php index 9a79ccba..742a8ecb 100644 --- a/src/Api/ShipV1/Dto/PackageSpecialServicesRequested.php +++ b/src/Api/ShipV1/Dto/PackageSpecialServicesRequested.php @@ -22,7 +22,7 @@ final class PackageSpecialServicesRequested extends Dto ]; /** - * @param ?string[] $specialServiceTypes The list of all special services requested for the package.
            Click here to see Package Special Service Types
            Example:ALCOHOL + * @param ?string[] $specialServiceTypes The list of all special services requested for the package.
            Click here to see Package Special Service Types
            Example:ALCOHOL * @param ?string $signatureOptionType Signature Option Type
            ADULT - Adult signature required, at recipient''s address.
            DIRECT - Signature required, at recipient''s address.
            INDIRECT - Signature required, alternate address is accepted.
            NO_SIGNATURE_REQUIRED - Signature is not required.
            SERVICE_DEFAULT - Signature handled as per current Service Guide.
            Example:ADULT * @param ?PriorityAlertDetail $priorityAlertDetail Specifies the Priority Alert Detail. * @param ?SignatureOptionDetail $signatureOptionDetail This element specifies Signature option details. diff --git a/src/Api/ShipV1/Dto/Party2.php b/src/Api/ShipV1/Dto/Party2.php index b9c912f1..874a4366 100644 --- a/src/Api/ShipV1/Dto/Party2.php +++ b/src/Api/ShipV1/Dto/Party2.php @@ -17,7 +17,7 @@ final class Party2 extends Dto protected static array $complexArrayTypes = ['tins' => TaxpayerIdentification::class]; /** - * @param ?Address $address Descriptive data for a physical location. May be used as an actual physical address (place to which one could go), or as a container of "address parts" which should be handled as a unit (such as a city-state-ZIP combination within the US). + * @param ?Address $address Address of the manufacturer * @param ?Contact $contact Indicate the contact details of the shipper. * @param ?PartyAccountNumber $accountNumber The account number of the recipient. * @param TaxpayerIdentification[]|null $tins This is the tax identification number details. diff --git a/src/Api/ShipV1/Dto/Party2Tag.php b/src/Api/ShipV1/Dto/Party2Tag.php index c01e4364..1f1445ec 100644 --- a/src/Api/ShipV1/Dto/Party2Tag.php +++ b/src/Api/ShipV1/Dto/Party2Tag.php @@ -17,7 +17,7 @@ final class Party2Tag extends Dto protected static array $complexArrayTypes = ['tins' => TaxpayerIdentification::class]; /** - * @param ?Address $address Descriptive data for a physical location. May be used as an actual physical address (place to which one could go), or as a container of "address parts" which should be handled as a unit (such as a city-state-ZIP combination within the US). + * @param ?Address $address Address of the manufacturer * @param ?Contact $contact Indicate the contact details of the shipper. * @param ?PartyAccountNumberTag $accountNumber This is FedEx Account number details. * @param TaxpayerIdentification[]|null $tins This is the tax identification number details. diff --git a/src/Api/ShipV1/Dto/PartyAddress.php b/src/Api/ShipV1/Dto/PartyAddress.php index 9cbfbd30..e1657d12 100644 --- a/src/Api/ShipV1/Dto/PartyAddress.php +++ b/src/Api/ShipV1/Dto/PartyAddress.php @@ -15,7 +15,7 @@ final class PartyAddress extends Dto { /** - * @param ?string[] $streetLines Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
            Example: [1550 Union Blvd,Suite 302] + * @param ?string[] $streetLines This is the Combination of number, street name, etc. At least one line is required for a valid physical address. Empty lines should not be included. Max Length is 35.
            Note - For FedEx Ground Economy, a maximum of 30 characters will be printed on the label, excess characters will be truncated.
            Example: [1550 Union Blvd,Suite 302] * @param ?string $city The name of city, town of the recipient.Max length is 35.
            Example: Beverly Hills * @param ?string $stateOrProvinceCode It is used to identify the principal subdivisions (e.g., provinces or states) of countries. The Format and presence of this field may vary depending on the country. Note: For specific countries, such as the United States and Canada, and Puerto Rico, there is a two-character state, province, codes limit . Example: TX * @param ?string $postalCode This is the postal code.
            Note: This is Optional for non postal-aware countries. Maximum length is 10.
            Example: 65247
            click here to see Postal aware countries diff --git a/src/Api/ShipV1/Dto/PartyAddress2.php b/src/Api/ShipV1/Dto/PartyAddress2.php index 73eee0c4..ccacea0a 100644 --- a/src/Api/ShipV1/Dto/PartyAddress2.php +++ b/src/Api/ShipV1/Dto/PartyAddress2.php @@ -17,7 +17,7 @@ final class PartyAddress2 extends Dto /** * @param ?string[] $streetLines This is the combination of number, street name, etc. Maximum length per line is 35.
            Example: 10 FedEx Parkway, Suite 302.

            Note:

            • At least one line is required.
            • Streetlines more than 3 will be ignored.
            • Empty lines should not be included
            • For SmartPost Shipments, only 30 characters from the individual street lines will be printed on the labels.

            * @param ?string $city This is a placeholder for City Name.
            Example: Beverly Hills - * @param ?string $stateOrProvinceCode This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.
            Example: CA.
            click here to see State or Province Code + * @param ?string $stateOrProvinceCode This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional.
            Example: CA.
            click here to see State or Province Code * @param ?string $postalCode This is the Postal code.
            This is Optional for non postal-aware countries.
            Maximum length is 10.
            Example: 65247
            click here to see Postal aware countries * @param ?string $countryCode This is the two-letter country code.
            Maximum length is 2.
            Example: US
            click here to see Country codes * @param ?bool $residential Indicate whether this address is residential (as opposed to commercial). diff --git a/src/Api/ShipV1/Dto/PartyContact.php b/src/Api/ShipV1/Dto/PartyContact.php index f6e59988..83205faf 100644 --- a/src/Api/ShipV1/Dto/PartyContact.php +++ b/src/Api/ShipV1/Dto/PartyContact.php @@ -15,10 +15,10 @@ final class PartyContact extends Dto { /** - * @param ?string $personName Specify contact name. Maximum length is 70.
            Note: Either the companyName or personName is mandatory.
            Example: John Taylor + * @param ?string $personName Specify contact name. First 35 chars will be printed on the label, excess characters will be truncated.
            Note: Either the companyName or personName is manadatory.
            Example : John Taylor * @param ?string $emailAddress Specify contact email address. Maximum length is 80.
            Example: sample@company.com * @param ?string $phoneExtension Specify contact phone extension. Maximum length is 6.
            Example: 1234 - * @param ?string $phoneNumber The shipper's phone number.
            Minimum length is 10 and supports maximum of 15 for certain countries using longer phone numbers.
            Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
            Example: 918xxxxx890 + * @param ?string $phoneNumber The shipper's phone number.
            Minimum length is 1 and supports maximum of 15 for certain countries using longer phone numbers.
            Note: For US and CA, a phone number must have exactly 10 digits, plus an optional leading country code of '1' or '+1'.
            Example: 918xxxxx890 * @param ?string $companyName The shipper's company name. Max length is 35.
            Example: FedEx */ public function __construct( diff --git a/src/Api/ShipV1/Dto/Payment.php b/src/Api/ShipV1/Dto/Payment.php index 35cfda00..e1392aab 100644 --- a/src/Api/ShipV1/Dto/Payment.php +++ b/src/Api/ShipV1/Dto/Payment.php @@ -16,7 +16,7 @@ final class Payment extends Dto { /** * @param string $paymentType Indicates who and how the shipment will be paid for.Required for Express and Ground.
            Example: SENDER - * @param ?Payor $payor Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY or COLLECT. + * @param ?Payor $payor Payor is mandatory when the paymentType is RECIPIENT, THIRD_PARTY. */ public function __construct( public string $paymentType, diff --git a/src/Api/ShipV1/Dto/PendingShipmentDetail.php b/src/Api/ShipV1/Dto/PendingShipmentDetail.php index 1c3b2e58..4e58ac90 100644 --- a/src/Api/ShipV1/Dto/PendingShipmentDetail.php +++ b/src/Api/ShipV1/Dto/PendingShipmentDetail.php @@ -17,12 +17,12 @@ final class PendingShipmentDetail extends Dto protected static array $complexArrayTypes = ['attachedDocuments' => UploadDocumentReferenceDetail::class]; /** - * @param string $pendingShipmentType Specifies the pending shipment type. Must include the value: EMAIL for email return shipments.
            Not applicable for other types of shipments
            Example: EMAIL + * @param string $pendingShipmentType Specifies the pending shipment type. Must include the value: EMAIL for email return shipments.
            Not applicable for other types of shipments.

            Once the label is printed, the transaction is marked with the original print date. You can reprint the label and documents for up to 5 days from that original print date. Once the 5-day reprint window closes, the label is no longer accessible.

            Example: EMAIL * @param EmailLabelDetail $emailLabelDetail These are specific information about the pending email label.
            Required when PendingShipmentType is EMAIL.
            Not applicable for CreateTag. * @param ?PendingShipmentProcessingOptionsRequested $processingOptions Use this object to allow the Email Label shipment originator, specify if the Email label shipment completer can make modifications to editable shipment data. * @param ?RecommendedDocumentSpecification $recommendedDocumentSpecification These are documents that are recommended to be included with the shipment.
            Example:ANTIQUE_STATEMENT_EUROPEAN_UNION * @param UploadDocumentReferenceDetail[]|null $attachedDocuments These are the reference document details with the shipment. - * @param ?string $expirationTimeStamp Specifies the Email Label expiration date. The maximum expiration date for an Email Return Label must be greater of equal to the day of the label request and not greater than 2 years in the future. Format[YYYY-MM-DD]
            Example: 2020-01-01 + * @param ?string $expirationTimeStamp Specifies the Email Label expiration date.
            The expiration date must be:
            - Greater than or equal to the label request date.
            - Not more than 2 years in the future.
            Once the label is printed, the transaction is marked with the original print date. You can reprint the label and documents for up to 5 days from that original print date. Once the 5-day reprint window closes, the label is no longer accessible.

            Format: [YYYY-MM-DD]
            Example: 2020-01-01 */ public function __construct( public string $pendingShipmentType, diff --git a/src/Api/ShipV1/Dto/PickupRateDetail.php b/src/Api/ShipV1/Dto/PickupRateDetail.php new file mode 100644 index 00000000..0cda2b8e --- /dev/null +++ b/src/Api/ShipV1/Dto/PickupRateDetail.php @@ -0,0 +1,90 @@ + RateDiscount::class, + 'rebates' => Rebate::class, + 'surcharges' => Surcharge2::class, + 'taxes' => Tax::class, + 'dutiesAndTaxes' => EdtCommodityTax::class, + 'ancillaryFeesAndTaxes' => AncillaryFeeAndTax::class, + ]; + + /** + * @param ?string $rateType Type used for this specific set of rate data. + * @param ?string $rateScale Indicates the rate scale used. + * @param ?string $rateZone Indicates the rate zone used (based on origin and destination). + * @param ?string $ratingBasis Allows clients to determine whether to add charges at the package level when Per Piece Rating details are returned.
            • SHIPMENT_WEIGHT_BASED - Indicates shipment weight is used to calculate the rate.

            • FLAT_RATE_PER_PAK - Indicates shipment is rated based on number of packs, weight would be considered for overweight surcharge but not for calculating shipment rate.

            • PACK_WEIGHT_BASED - Indicates individual package weight would be rated and aggregated to get shipment rate weight.
            + * @param ?string $pricingCode Identifies the type of pricing used for this shipment. + * @param ?string $minimumChargeType provides the minimum charge type applicable to the rates. + * @param ?CurrencyExchangeRate $currencyExchangeRate Specifies the currency exchange performed on financial amounts on this rate. + * @param ?string[] $specialRatingApplied Indicates which special rating cases applied to this shipment. + * @param ?float $fuelSurchargePercent Specify a fuel surcharge percentage. + * @param ?string $pickupBaseChargeDescription Will indicate the pickup charge description of the on call pickup + * @param ?TotalBaseCharge $totalBaseCharge Total base charges for the shipment. + * @param ?TotalFreightDiscounts $totalFreightDiscounts The total discounts used in the rate calculation.
            Example: 1257.26 + * @param ?TotalNetFreight $totalNetFreight This shipment's totalNetFreight. + * @param ?TotalSurcharges $totalSurcharges The sum of all surcharges on the package. + * @param ?TotalNetFedExCharge $totalNetFedExCharge This shipment's totalNetFedExCharge, which is totalNetFreight plus totalSurcharges (not including totalTaxes). + * @param ?TotalTaxes $totalTaxes The sum of all taxes on this package.
            Example: 1257.25 + * @param ?TotalNetCharge $totalNetCharge Total net charges for the shipment. + * @param ?TotalRebates $totalRebates The total sum of all rebates applied to this package. + * @param ?TotalDutiesAndTaxes $totalDutiesAndTaxes The sum of shipment/package Duties and taxes. + * @param ?TotalAncillaryFeesAndTaxes $totalAncillaryFeesAndTaxes Identifies the shipment-level fees and taxes that are not based on transportation charges or commodity-level estimated duties and taxes. + * @param ?TotalDutiesTaxesAndFees $totalDutiesTaxesAndFees The total amount of the duties and taxes plus the total ancillary fees and taxes. + * @param ?TotalNetChargeWithDutiesAndTaxes $totalNetChargeWithDutiesAndTaxes Total netChargesWithDutiesAndTaxes for the shipment. + * @param RateDiscount[]|null $freightDiscounts All rate discounts that apply to this shipment + * @param Rebate[]|null $rebates The all rebates applied to this package. + * @param Surcharge2[]|null $surcharges The amount of surcharges applied to this shipment. + * @param Tax[]|null $taxes List of taxes. + * @param EdtCommodityTax[]|null $dutiesAndTaxes List of The shipment/package Duties and taxes. + * @param AncillaryFeeAndTax[]|null $ancillaryFeesAndTaxes Identifies the total amount of the shipment-lvel fees and taxes that are not based on transportation charges of commodity-level estimated duties and taxes. + * @param ?VariableHandlingCharges $variableHandlingCharges Optional. The variable handling charge amount calculated based on the requested variable handling charge detail. + * @param ?TotalVariableHandlingCharges $totalVariableHandlingCharges Optional. The variable handling charge amount calculated based on the requested variable handling charge detail. + */ + public function __construct( + public ?string $rateType = null, + public ?string $rateScale = null, + public ?string $rateZone = null, + public ?string $ratingBasis = null, + public ?string $pricingCode = null, + public ?string $minimumChargeType = null, + public ?CurrencyExchangeRate $currencyExchangeRate = null, + public ?array $specialRatingApplied = null, + public ?float $fuelSurchargePercent = null, + public ?string $pickupBaseChargeDescription = null, + public ?TotalBaseCharge $totalBaseCharge = null, + public ?TotalFreightDiscounts $totalFreightDiscounts = null, + public ?TotalNetFreight $totalNetFreight = null, + public ?TotalSurcharges $totalSurcharges = null, + public ?TotalNetFedExCharge $totalNetFedExCharge = null, + public ?TotalTaxes $totalTaxes = null, + public ?TotalNetCharge $totalNetCharge = null, + public ?TotalRebates $totalRebates = null, + public ?TotalDutiesAndTaxes $totalDutiesAndTaxes = null, + public ?TotalAncillaryFeesAndTaxes $totalAncillaryFeesAndTaxes = null, + public ?TotalDutiesTaxesAndFees $totalDutiesTaxesAndFees = null, + public ?TotalNetChargeWithDutiesAndTaxes $totalNetChargeWithDutiesAndTaxes = null, + public ?array $freightDiscounts = null, + public ?array $rebates = null, + public ?array $surcharges = null, + public ?array $taxes = null, + public ?array $dutiesAndTaxes = null, + public ?array $ancillaryFeesAndTaxes = null, + public ?VariableHandlingCharges $variableHandlingCharges = null, + public ?TotalVariableHandlingCharges $totalVariableHandlingCharges = null, + ) {} +} diff --git a/src/Api/ShipV1/Dto/RateDiscount.php b/src/Api/ShipV1/Dto/RateDiscount.php index 9b38d21b..aba68e83 100644 --- a/src/Api/ShipV1/Dto/RateDiscount.php +++ b/src/Api/ShipV1/Dto/RateDiscount.php @@ -15,15 +15,14 @@ final class RateDiscount extends Dto { /** - * @param ?float $amount Specifies the amount.
            Example: 8.9 - * @param ?string $rateDiscountType The type of rate discount.
            Valid Values are BONUS, COUPON,EARNED,OTHER,VOLUME.
            Example: COUPON - * @param ?float $percent Specifies the percentage of Rate discount.
            Example: 28.9 - * @param ?string $description Specifies the description of the discounted rate.
            Example: description + * @param ?string $rateDiscountType Indicates the type. + * @param ?string $description Indicates the description for the rate discount. + * @param ?Money2 $amount This is commodity value used for Customs declaration. */ public function __construct( - public ?float $amount = null, public ?string $rateDiscountType = null, - public ?float $percent = null, public ?string $description = null, + public ?Money2 $amount = null, + public ?float $percent = null, ) {} } diff --git a/src/Api/ShipV1/Dto/RateDiscount2.php b/src/Api/ShipV1/Dto/RateDiscount2.php new file mode 100644 index 00000000..7c5aff73 --- /dev/null +++ b/src/Api/ShipV1/Dto/RateDiscount2.php @@ -0,0 +1,29 @@ +Example: 8.9 + * @param ?string $rateDiscountType The type of rate discount.
            Valid Values are BONUS, COUPON,EARNED,OTHER,VOLUME.
            Example: COUPON + * @param ?float $percent Specifies the percentage of Rate discount.
            Example: 28.9 + * @param ?string $description Specifies the description of the discounted rate.
            Example: description + */ + public function __construct( + public ?float $amount = null, + public ?string $rateDiscountType = null, + public ?float $percent = null, + public ?string $description = null, + ) {} +} diff --git a/src/Api/ShipV1/Dto/Rebate.php b/src/Api/ShipV1/Dto/Rebate.php new file mode 100644 index 00000000..44441480 --- /dev/null +++ b/src/Api/ShipV1/Dto/Rebate.php @@ -0,0 +1,28 @@ + RecipientsParty::class, 'requestedPackageLineItems' => RequestedPackageLineItem::class, + 'variationOptions' => VariationOptions::class, ]; /** @@ -25,7 +26,6 @@ final class RequestedShipment extends Dto * @param string $pickupType Indicates if shipment is being dropped off at a FedEx location or being picked up by FedEx or if it's a regularly scheduled pickup for this shipment. Required for FedEx Express and Ground Shipment.
            Example: USE_SCHEDULED_PICKUP * @param string $serviceType Indicate the FedEx service type used for this shipment.
            Example: STANDARD_OVERNIGHT
            click here to see Service Types * @param string $packagingType Specify the packaging used.
            Note: For Express Freight shipments, the packaging will default to YOUR_PACKAGING irrespective of the user provided package type in the request.
            Example: FEDEX_PAK
            click here to see Package Types - * @param float $totalWeight Indicate the shipment total weight in pounds.
            Example: 10.6
            Note:
            • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
            • This value contains 1 explicit decimal position.
            • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
            * @param Payment $shippingChargesPayment Specifies the payment details specifying the method and means of payment to FedEx for providing shipping services. * @param LabelSpecification $labelSpecification These are label specification details includes the image type, printer format, and label stock for label. Can also specify specific details such as doc-tab content, regulatory labels, and masking data on the label. * @param RequestedPackageLineItem[] $requestedPackageLineItems These are one or more package-attribute descriptions, each of which describes an individual package, a group of identical packages, or (for the total-piece-total-weight case) common characteristics of all packages in the shipment.
            • At least one instance containing the weight for at least one package is required for EXPRESS and GROUND shipments.
            • Single piece requests will have one RequestedPackageLineItem.
            • Multiple piece requests will have multiple RequestedPackageLineItems.
            • Maximum occurrences is 30.
            @@ -33,6 +33,7 @@ final class RequestedShipment extends Dto * @param ?Money $totalDeclaredValue This customs value is applicable for all items(or units) under the specified commodity * @param ?SoldToParty $soldTo Will indicate the party responsible for purchasing the goods shipped from the shipper to the recipient. The sold to party is not necessarily the recipient or the importer of record. The sold to party is relevant when the purchaser, rather than the recipient determines when certain customs regulations apply. * @param ?string $recipientLocationNumber A unique identifier for a recipient location.
            Example:1234567 + * @param ?float $totalWeight Indicate the shipment total weight in Metric or US.
            Example: 10.6
            Note:
            • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
            • This value contains 1 explicit decimal position.
            • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
            * @param ?ContactAndAddress $origin Specifies the contact and address details of a location. * @param ?ShipmentSpecialServicesRequested $shipmentSpecialServices Specify the special services requested at the shipment level.
            If the shipper is requesting a special service which requires additional data (such as the COD amount), the shipment special service type must be present in the specialServiceTypes collection, and the supporting detail must be provided in the appropriate sub-object below.
            RETURN_SHIPMENT is required for creating return shipments. * @param ?ShipShipmentEmailNotificationDetail $emailNotificationDetail This is used to provide eMail notification information.. @@ -46,6 +47,7 @@ final class RequestedShipment extends Dto * @param ?string $preferredCurrency Indicate the currency the caller requests to have used in all returned monetary values. Should be Used in conjunction with the element RateRequestType.
            Example: USD
            click here to see available Currency codes
            Note: Incorrect currency codes should not be supplied. The system ignores the incorrect currency code. * @param ?int $totalPackageCount For an MPS, this is the total number of packages in the shipment.Applicable for parent shipment for one label at a time shipments.
            Example: 25 * @param ?MasterTrackingId $masterTrackingId Indicates the tracking details of the package.Required for child shipments of an oneLabelAtATime shipments + * @param VariationOptions[]|null $variationOptions The shipment variations for the current shipment expressed in key-value pairs */ public function __construct( public ShipperParty $shipper, @@ -53,14 +55,15 @@ public function __construct( public string $pickupType, public string $serviceType, public string $packagingType, - public float $totalWeight, public Payment $shippingChargesPayment, public LabelSpecification $labelSpecification, public array $requestedPackageLineItems, public ?string $shipDatestamp = null, public ?Money $totalDeclaredValue = null, + public ?PickupDetail $pickupDetail = null, public ?SoldToParty $soldTo = null, public ?string $recipientLocationNumber = null, + public ?float $totalWeight = null, public ?ContactAndAddress $origin = null, public ?ShipmentSpecialServicesRequested $shipmentSpecialServices = null, public ?ShipShipmentEmailNotificationDetail $emailNotificationDetail = null, @@ -74,5 +77,6 @@ public function __construct( public ?string $preferredCurrency = null, public ?int $totalPackageCount = null, public ?MasterTrackingId $masterTrackingId = null, + public ?array $variationOptions = null, ) {} } diff --git a/src/Api/ShipV1/Dto/RequestedShipmentTag.php b/src/Api/ShipV1/Dto/RequestedShipmentTag.php index 9705b4c7..135993b6 100644 --- a/src/Api/ShipV1/Dto/RequestedShipmentTag.php +++ b/src/Api/ShipV1/Dto/RequestedShipmentTag.php @@ -25,7 +25,7 @@ final class RequestedShipmentTag extends Dto * @param string $pickupType Indicates if shipment is being dropped off at a FedEx location or being picked up by FedEx or if it's a regularly scheduled pickup for this shipment. Required for FedEx Express and Ground Shipment.
            Example: USE_SCHEDULED_PICKUP * @param string $serviceType Indicate the FedEx service type used for this shipment.
            Example: STANDARD_OVERNIGHT
            click here to see Service Types * @param string $packagingType Specify the packaging used.
            Note: For Express Freight shipments, the packaging will default to YOUR_PACKAGING irrespective of the user provided package type in the request.
            Example: FEDEX_PAK
            click here to see Package Types - * @param float $totalWeight Indicate the shipment total weight in pounds.
            Example: 10.6
            Note:
            • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
            • This value contains 1 explicit decimal position.
            • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
            + * @param float $totalWeight Indicate the shipment total weight in Metric or US.
            Example: 10.6
            Note:
            • This only applies to International shipments and should be used on the first package of a multiple piece shipment.
            • This value contains 1 explicit decimal position.
            • For one Label at a time shipments, the unit of totalWeight is considered same as the unit of weight provided in requestedPackageLineItem field.
            * @param Payment $shippingChargesPayment Specifies the payment details specifying the method and means of payment to FedEx for providing shipping services. * @param LabelSpecification $labelSpecification These are label specification details includes the image type, printer format, and label stock for label. Can also specify specific details such as doc-tab content, regulatory labels, and masking data on the label. * @param RequestedPackageLineItem[] $requestedPackageLineItems These are one or more package-attribute descriptions, each of which describes an individual package, a group of identical packages, or (for the total-piece-total-weight case) common characteristics of all packages in the shipment.
            • At least one instance containing the weight for at least one package is required for EXPRESS and GROUND shipments.
            • Single piece requests will have one RequestedPackageLineItem.
            • Multiple piece requests will have multiple RequestedPackageLineItems.
            • Maximum occurrences is 30.
            diff --git a/src/Api/ShipV1/Dto/ResponsiblePartyParty.php b/src/Api/ShipV1/Dto/ResponsiblePartyParty.php index 8be72a9c..f987b195 100644 --- a/src/Api/ShipV1/Dto/ResponsiblePartyParty.php +++ b/src/Api/ShipV1/Dto/ResponsiblePartyParty.php @@ -15,13 +15,13 @@ final class ResponsiblePartyParty extends Dto { /** - * @param PartyAccountNumber $accountNumber The account number of the recipient. * @param ?PartyAddress $address This is detailed information on physical location. May be used as an actual physical address (place to which one could go), or as a container of address parts which should be handled as a unit (such as a city-state-ZIP combination within the US). * @param ?PartyContact $contact Indicate the contact details for this shipment. + * @param ?PartyAccountNumber $accountNumber The account number of the recipient. */ public function __construct( - public PartyAccountNumber $accountNumber, public ?PartyAddress $address = null, public ?PartyContact $contact = null, + public ?PartyAccountNumber $accountNumber = null, ) {} } diff --git a/src/Api/ShipV1/Dto/ShipShipmentOutputVo.php b/src/Api/ShipV1/Dto/ShipShipmentOutputVo.php index ef49df53..bb14f1fd 100644 --- a/src/Api/ShipV1/Dto/ShipShipmentOutputVo.php +++ b/src/Api/ShipV1/Dto/ShipShipmentOutputVo.php @@ -15,12 +15,12 @@ final class ShipShipmentOutputVo extends Dto { protected static array $complexArrayTypes = [ - 'transactionShipments' => TransactionShipmentOutputVo::class, + 'transactionShipments' => TransactionCreateShipmentOutputVo::class, 'alerts' => Alert::class, ]; /** - * @param TransactionShipmentOutputVo[]|null $transactionShipments These are shipping transaction details, such as master tracking number, service type, and ship date and time. + * @param TransactionCreateShipmentOutputVo[]|null $transactionShipments These are shipping transaction details, such as master tracking number, service type, and ship date and time. * @param Alert[]|null $alerts The alerts received when processing a shipment request. * @param ?string $jobId Unique identifier for a Job. Example: abc123456 */ diff --git a/src/Api/ShipV1/Dto/ShipmentLegRateDetail.php b/src/Api/ShipV1/Dto/ShipmentLegRateDetail.php index 68db81e9..92d2e671 100644 --- a/src/Api/ShipV1/Dto/ShipmentLegRateDetail.php +++ b/src/Api/ShipV1/Dto/ShipmentLegRateDetail.php @@ -15,15 +15,15 @@ final class ShipmentLegRateDetail extends Dto { protected static array $complexArrayTypes = [ - 'taxes' => Tax::class, + 'taxes' => Tax2::class, 'surcharges' => Surcharge::class, - 'freightDiscounts' => RateDiscount::class, + 'freightDiscounts' => RateDiscount2::class, ]; /** * @param ?string $rateZone Indicates the rate zone used (based on origin and destination).
            Example: rateZone * @param ?string $pricingCode Specifies the Pricing Code.
            Example: pricingCode - * @param Tax[]|null $taxes Specifies the taxes. + * @param Tax2[]|null $taxes Specifies the taxes. * @param ?Weight $totalDimWeight These are the package weight details.
            Note: Weight is not required for One rate shipments * @param ?float $totalRebates Specifies the total rebate.
            Example: 2.0 * @param ?float $fuelSurchargePercent Specifies a fuel surcharge percentage.
            Example: 6.0 @@ -43,7 +43,7 @@ final class ShipmentLegRateDetail extends Dto * @param Surcharge[]|null $surcharges All surcharges that apply to this shipment.
            click here to see surcharges * @param ?float $totalSurcharges The total of all surcharges.
            Example: 5.0 * @param ?Weight $totalBillingWeight These are the package weight details.
            Note: Weight is not required for One rate shipments - * @param RateDiscount[]|null $freightDiscounts + * @param RateDiscount2[]|null $freightDiscounts * @param ?string $rateScale Indicates the rate scale used.
            Example: 6702 * @param ?float $totalNetCharge The net charge after applying all discounts and surcharges.
            Example: 253 * @param ?float $totalNetChargeWithDutiesAndTaxes Sum of total net charge, total duties and taxes; only provided if estimated duties and taxes were calculated for this shipment and duties, taxes and transportation charges are all paid by the same sender account.
            Example: 25.67 diff --git a/src/Api/ShipV1/Dto/ShipmentOperationalDetail.php b/src/Api/ShipV1/Dto/ShipmentOperationalDetail.php index b7675387..2b7cd860 100644 --- a/src/Api/ShipV1/Dto/ShipmentOperationalDetail.php +++ b/src/Api/ShipV1/Dto/ShipmentOperationalDetail.php @@ -33,7 +33,7 @@ final class ShipmentOperationalDetail extends Dto * @param ?string $astraPlannedServiceLevel Text describing planned delivery.
            Example: TUE - 15 OCT 10:30A * @param ?string $destinationLocationId Specifies the FedEx Destination Location Identifier.
            Example: DALA * @param ?string $transitTime Standard transit time per origin, destination, and service.
            Example: TWO_DAYS - * @param ?string $stateOrProvinceCode This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional. Max length is 2.
            Example: CA
            click here to see State or Province Code + * @param ?string $stateOrProvinceCode This is a placeholder for State or Province code.State code is required for US, CA, PR and not required for other countries. Conditional.
            Example: CA
            click here to see State or Province Code * @param ?int $destinationLocationNumber Indicates destination location number.
            Example: 876 * @param ?string $packagingCode Indicates packaging code.
            Example: 03 * @param ?string $commitDate This is committed date of delivery.
            Example: 2019-10-15 diff --git a/src/Api/ShipV1/Dto/ShipmentRateDetail.php b/src/Api/ShipV1/Dto/ShipmentRateDetail.php index 34b95d7c..b691478e 100644 --- a/src/Api/ShipV1/Dto/ShipmentRateDetail.php +++ b/src/Api/ShipV1/Dto/ShipmentRateDetail.php @@ -17,7 +17,7 @@ final class ShipmentRateDetail extends Dto protected static array $complexArrayTypes = [ 'shipmentLegRateDetails' => ShipmentLegRateDetail::class, 'surcharges' => Surcharge::class, - 'freightDiscounts' => RateDiscount::class, + 'freightDiscounts' => RateDiscount2::class, ]; /** @@ -41,7 +41,7 @@ final class ShipmentRateDetail extends Dto * @param Surcharge[]|null $surcharges All surcharges that apply to this shipment.
            click here to see Surcharges * @param ?float $totalSurcharges The total amount of all surcharges applied to this shipment.
            Example: 9.88 * @param ?Weight $totalBillingWeight These are the package weight details.
            Note: Weight is not required for One rate shipments - * @param RateDiscount[]|null $freightDiscounts Indicates the freight discounts. + * @param RateDiscount2[]|null $freightDiscounts Indicates the freight discounts. * @param ?string $rateScale Indicates the rate scale used.
            Example: 00000 * @param ?float $totalNetCharge The net charge after applying all discounts and surcharges.
            Example: 3.78 * @param ?float $totalBaseCharge The total Shipment charge that was calculated before surcharges, discounts and taxes.
            Example: 234.56 diff --git a/src/Api/ShipV1/Dto/Surcharge2.php b/src/Api/ShipV1/Dto/Surcharge2.php new file mode 100644 index 00000000..d7857ce7 --- /dev/null +++ b/src/Api/ShipV1/Dto/Surcharge2.php @@ -0,0 +1,29 @@ +Example: 10.0 - * @param ?string $level Indicates the Level of Tax.
            Example: level - * @param ?string $description Placeholder for the tax description.
            Example: descrption - * @param ?string $type Placeholder for the Type of the Tax.
            Example:type + * @param ?string $taxType Specifies the type of Surcharge/Tax. + * @param ?string $description Specifies the description of the Surcharge/Tax. + * @param ?Money2 $amount This is commodity value used for Customs declaration. */ public function __construct( - public ?float $amount = null, - public ?string $level = null, + public ?string $taxType = null, public ?string $description = null, - public ?string $type = null, + public ?Money2 $amount = null, ) {} } diff --git a/src/Api/ShipV1/Dto/Tax2.php b/src/Api/ShipV1/Dto/Tax2.php new file mode 100644 index 00000000..665c5afd --- /dev/null +++ b/src/Api/ShipV1/Dto/Tax2.php @@ -0,0 +1,29 @@ +Example: 10.0 + * @param ?string $level Indicates the Level of Tax.
            Example: level + * @param ?string $description Placeholder for the tax description.
            Example: descrption + * @param ?string $type Placeholder for the Type of the Tax.
            Example:type + */ + public function __construct( + public ?float $amount = null, + public ?string $level = null, + public ?string $description = null, + public ?string $type = null, + ) {} +} diff --git a/src/Api/ShipV1/Dto/TaxRates.php b/src/Api/ShipV1/Dto/TaxRates.php new file mode 100644 index 00000000..560ec844 --- /dev/null +++ b/src/Api/ShipV1/Dto/TaxRates.php @@ -0,0 +1,23 @@ +Example: 123567 - * @param string $tinType Identifies the type of Tax Identification Number in Shipment processing.
            Example: FEDERAL + * @param ?string $tinType Identifies the type of Tax Identification Number in Shipment processing.
            Example: FEDERAL * @param ?string $usage Identifies the usage of Tax Identification Number in Shipment processing.
            Example: usage * @param ?string $effectiveDate Effective Date. FORMAT[YYYY-MM-DD]
            Example: 2024-06-13 * @param ?string $expirationDate Expiration Date. FORMAT[YYYY-MM-DD]
            Example: 2024-06-13 */ public function __construct( public string $number, - public string $tinType, + public ?string $tinType = null, public ?string $usage = null, public ?string $effectiveDate = null, public ?string $expirationDate = null, diff --git a/src/Api/ShipV1/Dto/TransactionCreateShipmentOutputVo.php b/src/Api/ShipV1/Dto/TransactionCreateShipmentOutputVo.php new file mode 100644 index 00000000..f4efdd84 --- /dev/null +++ b/src/Api/ShipV1/Dto/TransactionCreateShipmentOutputVo.php @@ -0,0 +1,47 @@ + LabelResponseVo::class, + 'pieceResponses' => PieceResponse::class, + 'alerts' => Alert3p::class, + ]; + + /** + * @param ?string $serviceType Indicate the FedEx serviceType used for this shipment. The results will be filtered by the serviceType value indicated.
            Example: STANDARD_OVERNIGHT
            click here to see Service Types + * @param ?string $shipDatestamp This is the shipment date. Default value is current date in case the date is not provided or a past date is provided.
            Format [YYYY-MM-DD].
            Example: 2019-10-14 + * @param ?string $serviceCategory Indicates the Service Category.
            Example: EXPRESS + * @param LabelResponseVo[]|null $shipmentDocuments These are shipping document details. + * @param PieceResponse[]|null $pieceResponses Specifies the information about the pieces, received in the response. + * @param ?string $serviceName This is the service name associated with the shipment.
            Example: FedEx Ground + * @param Alert3p[]|null $alerts These are alert details received in the response. + * @param ?CompletedCreateShipmentDetail $completedShipmentDetail Returns the result of processing the desired package as a single-package shipment. + * @param ?ShipmentAdvisoryDetails $shipmentAdvisoryDetails These are shipment advisory details. + * @param ?string $masterTrackingNumber This is a master tracking number for the shipment (must be unique for stand-alone open shipments, or unique within consolidation if consolidation key is provided).
            Example: 794953535000 + */ + public function __construct( + public ?string $serviceType = null, + public ?string $shipDatestamp = null, + public ?string $serviceCategory = null, + public ?array $shipmentDocuments = null, + public ?array $pieceResponses = null, + public ?string $serviceName = null, + public ?array $alerts = null, + public ?CompletedCreateShipmentDetail $completedShipmentDetail = null, + public ?ShipmentAdvisoryDetails $shipmentAdvisoryDetails = null, + public ?string $masterTrackingNumber = null, + ) {} +} diff --git a/src/Api/ShipV1/Dto/VariableHandlingCharges.php b/src/Api/ShipV1/Dto/VariableHandlingCharges.php new file mode 100644 index 00000000..3987f041 --- /dev/null +++ b/src/Api/ShipV1/Dto/VariableHandlingCharges.php @@ -0,0 +1,29 @@ +Note: FedEx * APIs do not support Cross-Origin Resource Sharing (CORS) mechanism. diff --git a/src/Api/TradeDocumentsUploadV1/Dto/Document.php b/src/Api/TradeDocumentsUploadV1/Dto/Document.php index dde1530f..7cc7474b 100644 --- a/src/Api/TradeDocumentsUploadV1/Dto/Document.php +++ b/src/Api/TradeDocumentsUploadV1/Dto/Document.php @@ -15,9 +15,9 @@ final class Document extends Dto { /** - * @param string $referenceId Specify reference ID for the image to be uploaded.

            Example: SIGNA202103 - * @param string $name Specify file name to be uploaded.

            Example: Signature.PNG - * @param string $contentType Specify the file type or image type of the to be uploaded.

            Valid Values are:
            • image/png
            • image/gif
            + * @param string $referenceId Specify reference ID for the image to be uploaded.

            Example: 1234 + * @param string $name Specify file name to be uploaded.

            Example: LH2.PNG + * @param string $contentType Specify the file type or image type of the to be uploaded.
            Example: image/png.

            Valid Values are:
            • image/png
            • image/gif
            * @param DocumentMeta $meta Use this object to specify image meta data such as image type, path and index for the file to be uploaded. */ public function __construct( diff --git a/src/Api/TradeDocumentsUploadV1/Dto/DocumentMeta.php b/src/Api/TradeDocumentsUploadV1/Dto/DocumentMeta.php index 910591ef..8b6f3bca 100644 --- a/src/Api/TradeDocumentsUploadV1/Dto/DocumentMeta.php +++ b/src/Api/TradeDocumentsUploadV1/Dto/DocumentMeta.php @@ -15,8 +15,8 @@ final class DocumentMeta extends Dto { /** - * @param string $imageType Specify the type of image to be uploaded.

            Valid Values are:
            • SIGNATURE
            • LETTERHEAD
            - * @param string $imageIndex Specify the index for the uploaded image.

            Valid Values are:
            • IMAGE_1
            • IMAGE_2
            • IMAGE_3
            • IMAGE_4
            • IMAGE_5
            + * @param string $imageType Specify the type of image to be uploaded.
            Example:SIGNATURE

            Valid Values are:
            • SIGNATURE
            • LETTERHEAD
            + * @param string $imageIndex Specify the index for the uploaded image.
            Example: IMAGE_1

            Valid Values are:
            • IMAGE_1
            • IMAGE_2
            • IMAGE_3
            • IMAGE_4
            • IMAGE_5
            */ public function __construct( public string $imageType, diff --git a/src/Api/TradeDocumentsUploadV1/Dto/DocumentMetaOutput.php b/src/Api/TradeDocumentsUploadV1/Dto/DocumentMetaOutput.php index 5426ec79..36d32865 100644 --- a/src/Api/TradeDocumentsUploadV1/Dto/DocumentMetaOutput.php +++ b/src/Api/TradeDocumentsUploadV1/Dto/DocumentMetaOutput.php @@ -17,11 +17,11 @@ final class DocumentMetaOutput extends Dto /** * @param ?string $documentType Indicates the type of document uploaded.

            Example:CO
            Following are the values returned depending on the document type
            • CERTIFICATE_OF_ORIGIN – CO
            • COMMERCIAL_INVOICE – CI
            • ETD_LABEL – AWB
            • USMCA_CERTIFICATE_OF_ORIGIN – CO
            • USMCA_COMMERCIAL_INVOICE_CERTIFICATION_OF_ORIGIN – CI
            • OTHER – OTHER
            • PRO_FORMA_INVOICE – PRO
            * @param ?string $docId This is the document id or the upload reference. Use this docId in your shipment, if you have uploaded the document prior to shipment request.
            For MPS, this docId must be used for all the packages in the shipment.
            Example: 090493e181586308
            Note:
            • For MPS post the shipment request, use the master shipment tracking number when uploading the documents.
            - * @param ?string[] $folderId This is the reference server folder id, where the document is uploaded. + * @param ?string $folderId This is the reference server folder id, where the document is uploaded. */ public function __construct( public ?string $documentType = null, public ?string $docId = null, - public ?array $folderId = null, + public ?string $folderId = null, ) {} } diff --git a/src/Api/TradeDocumentsUploadV1/Dto/DocumentRules.php b/src/Api/TradeDocumentsUploadV1/Dto/DocumentRules.php index 90282961..32df9201 100644 --- a/src/Api/TradeDocumentsUploadV1/Dto/DocumentRules.php +++ b/src/Api/TradeDocumentsUploadV1/Dto/DocumentRules.php @@ -15,7 +15,7 @@ final class DocumentRules extends Dto { /** - * @param string $workflowName Specify workflow name. To upload custom signature and letterhead images/company logo use value LetterheadSignature + * @param string $workflowName Specify workflow name. To upload custom signature and letterhead images/company logo use value

            Example:LetterheadSignature */ public function __construct( public string $workflowName, diff --git a/src/Api/TradeDocumentsUploadV1/Dto/FullSchemaBase64multiDocumentRequest.php b/src/Api/TradeDocumentsUploadV1/Dto/FullSchemaBase64multiDocumentRequest.php index 03ef3156..4bcb25d2 100644 --- a/src/Api/TradeDocumentsUploadV1/Dto/FullSchemaBase64multiDocumentRequest.php +++ b/src/Api/TradeDocumentsUploadV1/Dto/FullSchemaBase64multiDocumentRequest.php @@ -19,7 +19,7 @@ final class FullSchemaBase64multiDocumentRequest extends Dto /** * @param string $workflowName Indicate if the documents are being uploaded before or after shipment creation process * @param string $carrierCode Specify the four letter code of a FedEx operating company that meets your requirements
            Examples of FedEx Operating Companies are:
            • FDXE - FedEx Express
            • FDXG - FedEx Ground
            - * @param string $orginCountryCode Origin country code for the shipment.

            Example: US
            Click here to see Country Codes + * @param string $originCountryCode Origin country code for the shipment.

            Example: US
            Click here to see Country Codes * @param string $destinationCountryCode Destination country code for the shipment.

            Example: CA * @param MultiMetaDataRequest2[] $metaData Indicate the shipment metadata associated with the document to be uploaded * @param ?string $shipmentDate Specify the Shipment date. This is only required for Post Shipment document upload. This value is present in Create Shipment response & this should match the shipment date timestamp @@ -28,7 +28,7 @@ final class FullSchemaBase64multiDocumentRequest extends Dto public function __construct( public string $workflowName, public string $carrierCode, - public string $orginCountryCode, + public string $originCountryCode, public string $destinationCountryCode, public array $metaData, public ?string $shipmentDate = null, diff --git a/src/Api/TradeDocumentsUploadV1/Dto/MetaObject.php b/src/Api/TradeDocumentsUploadV1/Dto/MetaObject.php index de3eca5d..ec81bfc2 100644 --- a/src/Api/TradeDocumentsUploadV1/Dto/MetaObject.php +++ b/src/Api/TradeDocumentsUploadV1/Dto/MetaObject.php @@ -21,8 +21,8 @@ final class MetaObject extends Dto * @param ?string $formCode Specify the form code. This value is required if US/CA/MX trade documents are to be uploaded.
            Example: USMCA

            Note: if shipDocumentType value provided is either USMCA_CERTIFICATION_OF_ORIGIN or USMCA_COMMERCIAL_INVOICE_CERTIFICATION_OF_ORIGIN, then it is REQUIRED to pass value as USMCA. * @param ?string $trackingNumber Specify the shipment tracking number. This is only required for Post Shipment document upload.

            Example: 79XXX12XX805 * @param ?string $shipmentDate Specify the Shipment date. This is only required for Post Shipment document upload.

            Example: 2021-02-17T00:00:00 - * @param ?string $originLocationCode Provide origin FedEx location code for the shipment.

            Example: GVTKK - * @param ?string $destinationLocationCode Provide destination FedEx location code for the shipment.

            Example: JNUA + * @param ?string $originLocationCode Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don’t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.

            Example: GVTKK + * @param ?string $destinationLocationCode Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don’t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload.

            Example: JNUA */ public function __construct( public string $shipDocumentType, diff --git a/src/Api/TradeDocumentsUploadV1/Dto/MultiEtdUploadRequest.php b/src/Api/TradeDocumentsUploadV1/Dto/MultiEtdUploadRequest.php index 95857c1f..18ed5241 100644 --- a/src/Api/TradeDocumentsUploadV1/Dto/MultiEtdUploadRequest.php +++ b/src/Api/TradeDocumentsUploadV1/Dto/MultiEtdUploadRequest.php @@ -19,7 +19,7 @@ final class MultiEtdUploadRequest extends Dto /** * @param string $workflowName Indicate if this document is being uploaded for Pre-Shipment or Post-shipment process * @param string $carrierCode Specify the four letter code of a FedEx operating company that meets your requirements
            Examples of FedEx Operating Companies are:
            • FDXE - FedEx Express
            • FDXG - FedEx Ground
            - * @param string $orginCountryCode Provide origin country code for the shipment + * @param string $originCountryCode Provide origin country code for the shipment * @param string $destinationCountryCode Provide destination country code for the shipment * @param MultiMetaDataRequest[] $metaData Indicate the shipment metadata associated with the document to be uploaded * @param ?string $shipmentDate Specify the Shipment date. This is only required for Post Shipment document upload. This value is present in Create Shipment response & this should match the shipment date timestamp @@ -28,7 +28,7 @@ final class MultiEtdUploadRequest extends Dto public function __construct( public string $workflowName, public string $carrierCode, - public string $orginCountryCode, + public string $originCountryCode, public string $destinationCountryCode, public array $metaData, public ?string $shipmentDate = null, diff --git a/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataPreResponse.php b/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataPreResponse.php index dfc89f44..fb897d5b 100644 --- a/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataPreResponse.php +++ b/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataPreResponse.php @@ -18,12 +18,12 @@ final class MultiMetaDataPreResponse extends Dto * @param ?string $formCode Specify the form code. This value is required for the shipments travelling between the 3 countries US, CA & MX and when the shipment is USMCA eligible. * @param ?string $documentType Indicates the type of document uploaded.

            Example:CO
            Following are the values returned depending on the document type
            • CERTIFICATE_OF_ORIGIN – CO
            • COMMERCIAL_INVOICE – CI
            • ETD_LABEL – AWB
            • USMCA_CERTIFICATE_OF_ORIGIN – CO
            • USMCA_COMMERCIAL_INVOICE_CERTIFICATION_OF_ORIGIN – CI
            • OTHER – OTHER
            • PRO_FORMA_INVOICE – PRO
            * @param ?string $docId This is the document id or the upload reference. Note this and use this in your shipment if you have uploaded the document prior to shipment request.
            Example: 090493e181586308 - * @param ?string[] $folderId This is the reference server folder id, where the document is uploaded. Note that, this data is returned only for Post-Shipment Upload scenario + * @param ?string $folderId This is the reference server folder id, where the document is uploaded. Note that, this data is returned only for Post-Shipment Upload scenario */ public function __construct( public ?string $formCode = null, public ?string $documentType = null, public ?string $docId = null, - public ?array $folderId = null, + public ?string $folderId = null, ) {} } diff --git a/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataRequest.php b/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataRequest.php index 1c3c73da..aff36350 100644 --- a/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataRequest.php +++ b/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataRequest.php @@ -20,8 +20,8 @@ final class MultiMetaDataRequest extends Dto * @param string $shipDocumentType Provide the type of document to be uploaded.

            For more information on the individual documents, visit Overview section Upload Documents on this page. * @param ?string $fileReferenceId Specify the unique reference to the file.
            Example : inv_file1_ctx_02132021_5 * @param ?string $formCode Specify the form code. This value is required for the shipments travelling between the 3 countries US, CA & MX and when the shipment is USMCA eligible.
            Note: if shipDocumentType value provided is either USMCA_CERTIFICATION_OF_ORIGIN or USMCA_COMMERCIAL_INVOICE_CERTIFICATION_OF_ORIGIN, then it is REQUIRED to pass value as USMCA - * @param ?string $originLocationCode Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. - * @param ?string $destinationLocationCode Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. + * @param ?string $originLocationCode Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don’t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload. + * @param ?string $destinationLocationCode Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don’t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload. */ public function __construct( public string $fileName, diff --git a/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataRequest2.php b/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataRequest2.php index 49e395bc..d1bae1f8 100644 --- a/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataRequest2.php +++ b/src/Api/TradeDocumentsUploadV1/Dto/MultiMetaDataRequest2.php @@ -20,8 +20,8 @@ final class MultiMetaDataRequest2 extends Dto * @param string $fileContentBase64 Provide the bycode content for base64 file upload * @param ?string $fileReferenceId Specify the unique reference bytecode to the file.
            Example : inv_file1_ctx_02132021_5 * @param ?string $formCode Specify the form code. This value is required for the shipments travelling between the 3 countries US, CA & MX and when the shipment is USMCA eligible.
            Note: if shipDocumentType value provided is either USMCA_CERTIFICATION_OF_ORIGIN or USMCA_COMMERCIAL_INVOICE_CERTIFICATION_OF_ORIGIN, then it is REQUIRED to pass value as USMCA - * @param ?string $originLocationCode Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. - * @param ?string $destinationLocationCode Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. + * @param ?string $originLocationCode Provide origin FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don’t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload. + * @param ?string $destinationLocationCode Provide destination FedEx location code for the shipment. This is only required for Post Shipment document upload. This value is present in Create Shipment response. If you don’t include these values on your document post upload document transactions, your shipment could face customs delays and could be hold until CI/Documents are provided via alternative method upon request. We highly recommend they are passed on the upload transaction for the documents when doing ETD post upload. */ public function __construct( public string $contentType, diff --git a/src/Api/TradeDocumentsUploadV1/Requests/ImageUploadServiceInfo.php b/src/Api/TradeDocumentsUploadV1/Requests/ImageUploadServiceInfo.php index 7e5ed47b..4239ff5c 100644 --- a/src/Api/TradeDocumentsUploadV1/Requests/ImageUploadServiceInfo.php +++ b/src/Api/TradeDocumentsUploadV1/Requests/ImageUploadServiceInfo.php @@ -63,7 +63,11 @@ public function defaultBody(): array $data = $this->fullSchemaImageUploadServiceInputVo->toArray(); $multipart = []; foreach ($data as $key => $value) { - if (is_string($value) || is_numeric($value)) { + if ($key === 'attachment') { + // File attachment with filename from document metadata + $filename = $this->fullSchemaImageUploadServiceInputVo->document->document->name; + $multipart[] = new MultipartValue($key, $value, $filename); + } elseif (is_string($value) || is_numeric($value)) { $multipart[] = new MultipartValue($key, (string) $value); } else { $multipart[] = new MultipartValue($key, json_encode($value)); diff --git a/src/Api/TradeDocumentsUploadV1/Requests/UploadEtdFiles.php b/src/Api/TradeDocumentsUploadV1/Requests/UploadEtdFiles.php index ecd10bb8..5d9b01eb 100644 --- a/src/Api/TradeDocumentsUploadV1/Requests/UploadEtdFiles.php +++ b/src/Api/TradeDocumentsUploadV1/Requests/UploadEtdFiles.php @@ -63,7 +63,11 @@ public function defaultBody(): array $data = $this->fullSchemaDocumentUploadInputVo->toArray(); $multipart = []; foreach ($data as $key => $value) { - if (is_string($value) || is_numeric($value)) { + if ($key === 'attachment') { + // File attachment with filename from document metadata + $filename = $this->fullSchemaDocumentUploadInputVo->document->name; + $multipart[] = new MultipartValue($key, $value, $filename); + } elseif (is_string($value) || is_numeric($value)) { $multipart[] = new MultipartValue($key, (string) $value); } else { $multipart[] = new MultipartValue($key, json_encode($value)); diff --git a/src/Api/TradeDocumentsUploadV1/Requests/UploadMultiEtDfiles.php b/src/Api/TradeDocumentsUploadV1/Requests/UploadMultiEtDfiles.php index 22c0fc7c..ebbde31a 100644 --- a/src/Api/TradeDocumentsUploadV1/Requests/UploadMultiEtDfiles.php +++ b/src/Api/TradeDocumentsUploadV1/Requests/UploadMultiEtDfiles.php @@ -61,13 +61,22 @@ public function createDtoFromResponse( public function defaultBody(): array { - $data = $this->fullSchemaMultiDocumentRequest->toArray(); $multipart = []; - foreach ($data as $key => $value) { - if (is_string($value) || is_numeric($value)) { - $multipart[] = new MultipartValue($key, (string) $value); - } else { - $multipart[] = new MultipartValue($key, json_encode($value)); + + // Add document information as JSON + if ($this->fullSchemaMultiDocumentRequest->documentInformation !== null) { + $multipart[] = new MultipartValue( + 'documentInformation', + json_encode($this->fullSchemaMultiDocumentRequest->documentInformation->toArray()) + ); + } + + // Add each file attachment with its filename from metadata + if ($this->fullSchemaMultiDocumentRequest->fileAttachments !== null) { + $metaData = $this->fullSchemaMultiDocumentRequest->documentInformation?->metaData ?? []; + foreach ($this->fullSchemaMultiDocumentRequest->fileAttachments as $index => $fileContent) { + $filename = $metaData[$index]?->fileName ?? "file_{$index}"; + $multipart[] = new MultipartValue('fileAttachments', $fileContent, $filename); } } diff --git a/src/Generator/Generators/RequestGenerator.php b/src/Generator/Generators/RequestGenerator.php index 056025e7..e05a0f23 100644 --- a/src/Generator/Generators/RequestGenerator.php +++ b/src/Generator/Generators/RequestGenerator.php @@ -9,6 +9,7 @@ use Crescat\SaloonSdkGenerator\Helpers\NameHelper; use Illuminate\Support\Collection; use Illuminate\Support\Str; +use Nette\PhpGenerator\ClassType; use Nette\PhpGenerator\PhpFile; use Saloon\Contracts\Authenticator; use Saloon\Helpers\URLHelper; @@ -102,6 +103,107 @@ protected function generateRequestClass(Endpoint $endpoint): PhpFile ->setType(PendingRequest::class); } + // Handle trade document upload endpoints with proper file handling + $this->handleTradeDocumentUploads($endpoint, $classFile); + return $classFile; } + + /** + * Handle special multipart form data for trade document upload endpoints. + * + * These endpoints require: + * 1. File attachments with proper filenames in Content-Disposition header + * 2. Multi-file uploads to be handled as separate multipart entries instead of JSON + */ + protected function handleTradeDocumentUploads(Endpoint $endpoint, PhpFile $classFile): void + { + $classes = $classFile->getClasses(); + $class = reset($classes); + + // Handle single document upload (ETD files) + if ($endpoint->name === 'Upload ETD files') { + $this->replaceDefaultBody($class, $this->generateSingleDocumentUploadBody( + 'fullSchemaDocumentUploadInputVo', + 'attachment', + 'document', + 'name', + )); + } + + // Handle image upload + if ($endpoint->name === 'Image Upload Service Info') { + $this->replaceDefaultBody($class, $this->generateSingleDocumentUploadBody( + 'fullSchemaImageUploadServiceInputVo', + 'attachment', + 'document', + 'document->name', // Nested: document.document.name + )); + } + + // Handle multi-document upload + if ($endpoint->name === 'UploadMultiETDfiles') { + $this->replaceDefaultBody($class, $this->generateMultiDocumentUploadBody()); + } + } + + protected function replaceDefaultBody(ClassType $class, string $body): void + { + if ($class->hasMethod('defaultBody')) { + $class->removeMethod('defaultBody'); + } + $class->addMethod('defaultBody') + ->setReturnType('array') + ->setBody($body); + } + + protected function generateSingleDocumentUploadBody( + string $dtoProperty, + string $attachmentField, + string $documentField, + string $filenamePath, + ): string { + return <<{$dtoProperty}->toArray(); + \$multipart = []; + foreach (\$data as \$key => \$value) { + if (\$key === '{$attachmentField}') { + // File attachment with filename from document metadata + \$filename = \$this->{$dtoProperty}->{$documentField}->{$filenamePath}; + \$multipart[] = new MultipartValue(\$key, \$value, \$filename); + } elseif (is_string(\$value) || is_numeric(\$value)) { + \$multipart[] = new MultipartValue(\$key, (string) \$value); + } else { + \$multipart[] = new MultipartValue(\$key, json_encode(\$value)); + } + } + return \$multipart; + PHP; + } + + protected function generateMultiDocumentUploadBody(): string + { + return <<<'PHP' + $multipart = []; + + // Add document information as JSON + if ($this->fullSchemaMultiDocumentRequest->documentInformation !== null) { + $multipart[] = new MultipartValue( + 'documentInformation', + json_encode($this->fullSchemaMultiDocumentRequest->documentInformation->toArray()) + ); + } + + // Add each file attachment with its filename from metadata + if ($this->fullSchemaMultiDocumentRequest->fileAttachments !== null) { + $metaData = $this->fullSchemaMultiDocumentRequest->documentInformation?->metaData ?? []; + foreach ($this->fullSchemaMultiDocumentRequest->fileAttachments as $index => $fileContent) { + $filename = $metaData[$index]?->fileName ?? "file_{$index}"; + $multipart[] = new MultipartValue('fileAttachments', $fileContent, $filename); + } + } + + return $multipart; + PHP; + } } diff --git a/src/Generator/Schema/Refactorer.php b/src/Generator/Schema/Refactorer.php index eff1c59e..77cca0f7 100644 --- a/src/Generator/Schema/Refactorer.php +++ b/src/Generator/Schema/Refactorer.php @@ -160,6 +160,7 @@ public function clean(): stdClass $schema->components->schemas->{$componentName} = $this->setSchemaTypes($component); } + $schema = $this->extractCollidingInlineObjects($schema); $schema = $this->cleanRefs($schema); $schema = $this->deduplicateComponents($schema); @@ -182,6 +183,10 @@ public function applyModifications(): stdClass $modified = match ($mod->action) { 'delete' => null, 'replace' => $mod->value, + 'delete-array-values' => match (true) { + is_array($original) => array_values(array_diff($original, is_array($mod->value) ? $mod->value : [$mod->value])), + default => throw new InvalidArgumentException('Can only delete array values from an array'), + }, 'merge' => match (true) { is_array($original) => array_merge($original, $mod->value), is_object($original) => (object) array_merge((array) $original, (array) $mod->value), @@ -390,6 +395,91 @@ protected function setSchemaTypes(stdClass $schema): stdClass return $schema; } + /** + * Extract inline object definitions that would collide with component schema names. + * + * The Saloon generator's OpenApiNormalizer extracts inline objects and adds them to the + * spec's components/schemas using the property name as the schema name. However, its + * collision detection only checks its internal cache, not the existing spec components. + * This causes inline objects to silently overwrite component schemas with the same name. + * + * For example, if ClearanceItemDetail has an inline `contact` property (with only + * `companyName`), it overwrites the actual `Contact` component schema (with all contact + * fields). Any $ref to Contact then incorrectly points to the inline object's schema. + * + * This method extracts colliding inline objects to separate components with similar names + * (e.g., Contact_2) before the generator runs. This also enables deduplication: multiple + * identical inline objects can be merged into a single component, whereas the generator + * would create separate DTOs for each since it only matches schemas by name, not structure. + */ + protected function extractCollidingInlineObjects(stdClass $schema): stdClass + { + $componentNames = array_keys((array) $schema->components->schemas); + sort($componentNames); // Ensure deterministic ordering + + $studlyComponentNames = array_map(fn ($name) => Str::studly($name), $componentNames); + $newComponents = []; + + foreach ($componentNames as $componentName) { + $component = $schema->components->schemas->{$componentName}; + + if (! isset($component->properties)) { + continue; + } + + $propertyNames = array_keys((array) $component->properties); + sort($propertyNames); // Ensure deterministic ordering + + foreach ($propertyNames as $propName) { + $prop = $component->properties->{$propName}; + + $isInlineObject = isset($prop->type) + && $prop->type === 'object' + && isset($prop->properties) + && ! isset($prop->{'$ref'}); + + if (! $isInlineObject) { + continue; + } + + $potentialClassName = Str::studly($propName); + $index = array_search($potentialClassName, $studlyComponentNames, true); + + if ($index === false) { + continue; + } + + // Use the actual component name's casing as the base + $baseComponentName = $componentNames[$index]; + + // Find next available suffix + $suffix = 2; + do { + $newComponentName = "{$baseComponentName}_{$suffix}"; + $suffix++; + } while ( + isset($schema->components->schemas->{$newComponentName}) + || isset($newComponents[$newComponentName]) + ); + + $newComponents[$newComponentName] = clone $prop; + + // Replace inline definition with $ref + $ref = new stdClass; + $ref->{'$ref'} = self::REF_BASE.$newComponentName; + $component->properties->{$propName} = $ref; + } + + $schema->components->schemas->{$componentName} = $component; + } + + foreach ($newComponents as $name => $definition) { + $schema->components->schemas->{$name} = $definition; + } + + return $schema; + } + protected function cleanRefs(stdClass $schema): stdClass { foreach ($schema->components->schemas as $componentName => $component) { diff --git a/tests/Endpoints/TradeDocumentsUploadV1Test.php b/tests/Endpoints/TradeDocumentsUploadV1Test.php new file mode 100644 index 00000000..7cf5c6fa --- /dev/null +++ b/tests/Endpoints/TradeDocumentsUploadV1Test.php @@ -0,0 +1,122 @@ +api = (new FedEx( + clientId: $_ENV['CLIENT_ID'], + clientSecret: $_ENV['CLIENT_SECRET'], + endpoint: Endpoint::SANDBOX_DOCUMENTS_UPLOAD, + ))->tradeDocumentsUploadV1(); + } + + public function testUploadEtdFiles(): void + { + $fileContent = 'Test document content for FedEx upload'; + + $response = $this->api->uploadEtdFiles(new FullSchemaDocumentUploadInputVo( + attachment: $fileContent, + document: new EtdUploadRequest( + workflowName: 'ETDPreshipment', + name: 'test-document.txt', + contentType: 'text/plain', + meta: new MetaObject( + shipDocumentType: 'COMMERCIAL_INVOICE', + originCountryCode: 'US', + destinationCountryCode: 'CA', + ), + ), + )); + + $this->assertTrue($response->successful(), 'Response: '.$response->body()); + + $dto = $response->dto(); + $this->assertNotNull($dto->output?->meta?->docId, 'Expected docId in response'); + } + + public function testImageUploadServiceInfo(): void + { + // Create a minimal valid PNG (1x1 transparent pixel) + $pngContent = base64_decode('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=='); + + $response = $this->api->imageUploadServiceInfo(new FullSchemaImageUploadServiceInputVo( + document: new DocumentContainer( + document: new Document( + referenceId: 'TEST123', + name: 'test-signature.png', + contentType: 'image/png', + meta: new DocumentMeta( + imageType: 'SIGNATURE', + imageIndex: 'IMAGE_1', + ), + ), + rules: new DocumentRules( + workflowName: 'LetterheadSignature', + ), + ), + attachment: $pngContent, + )); + + $this->assertTrue($response->successful(), 'Response: '.$response->body()); + + $dto = $response->dto(); + $this->assertSame('SUCCESS', $dto->output?->status); + } + + public function testUploadMultiEtdFiles(): void + { + $file1Content = 'First test document content'; + $file2Content = 'Second test document content'; + + $response = $this->api->uploadMultiEtDfiles(new FullSchemaMultiDocumentRequest( + documentInformation: new MultiEtdUploadRequest( + workflowName: 'ETDPreshipment', + carrierCode: 'FDXE', + originCountryCode: 'US', + destinationCountryCode: 'CA', + metaData: [ + new MultiMetaDataRequest( + fileName: 'invoice.txt', + contentType: 'text/plain', + shipDocumentType: 'COMMERCIAL_INVOICE', + ), + new MultiMetaDataRequest( + fileName: 'certificate.txt', + contentType: 'text/plain', + shipDocumentType: 'CERTIFICATE_OF_ORIGIN', + ), + ], + ), + fileAttachments: [$file1Content, $file2Content], + )); + + $this->assertTrue($response->successful(), 'Response: '.$response->body()); + + $dto = $response->dto(); + $this->assertCount(2, $dto->output?->documentResponses ?? []); + foreach ($dto->output->documentResponses as $i => $documentResponse) { + $this->assertNotNull($documentResponse->metaData?->docId, "Expected docId for document $i"); + } + } +}