POST/shipment/create_from_shipping_quote
This method creates a shipment based on the shippingQuoteId and rateId values supplied in the request. The rate identified by the rateId value specifies the carrier and service for the package shipment, and the rate ID must be contained in the shipping quote identified by the shippingQuoteId value. Call createShippingQuote to retrieve a set of live shipping rates.
Note: The Logistics API only supports USPS shipping rates and labels.
When you create a shipment, eBay generates a shipping label that you can download and use to ship your package.
In a createFromShippingQuote request, sellers can include a list of shipping options they want to add to the base service quoted in the selected rate. The list of available shipping options is specific to each quoted rate and if available, the options are listed in the rate container of the shipping quote.
In addition to a configurable return-to location and other details about the shipment, the response to this method includes:
- The shipping carrier and service to be used for the package shipment
- A list of selected shipping options, if any
- The shipment tracking number
- The total shipping cost (the sum cost of the base shipping service and any added options)
Important! Sellers must set up their payment method before they can use this method to create a shipment and the associated shipping label.
Set up a billing agreement
Prior to using this method to create a shipment, sellers must first set up their billing agreement. Failure to do so will returnError 90030 Payment could not be completed.
The preferred method for sellers to set up their billing agreement is to go to Set up billing agreement and follow the on-screen directions.
Alternatively, sellers can do the following:
- Go to https://www.ebay.com/ship/single/{order_id}, where {order_id} is that of the order for which the label is being printed.
- When prompted, select PayPal.
- Verify that Save PayPal for future purchases is selected.
- Click Set up Payments which will open PayPal in a pop-up window.
- Log in using PayPal credentials, and then follow the on-screen prompts to set up the billing agreement.
- Once the agreement has been set up, sellers can leave this page as there is no need to actually print a label.
Input
Resource URI
This method is supported in Sandbox environment. To access the endpoint, just replace the api.ebay.com
root URI with api.sandbox.ebay.com
URI parameters
This method has no URI parameters.
HTTP request headers
All requests made to eBay REST operations require you to provide the Authorization
HTTP header for authentication authorization.
The table below shows additional HTTP request headers that are either required, conditionally required, or strongly recommended for this method. Other standard HTTP request headers- opens rest request components page (not in this table) can also be used, but they are optional.
Header | Type | Description |
---|---|---|
Content-Type | string | This header indicates the format of the request body provided by the client. Its value should be set to application/json. For more information, refer to HTTP request headers. Occurrence: Required |
X-EBAY-C-MARKETPLACE-ID | string | This header parameter specifies the eBay marketplace for the shipment being created. For a list of valid values, refer to the section Marketplace ID Values in the Using eBay RESTful APIs guide. Occurrence: Required |
OAuth scope
This request requires an access token created with the authorization code grant flow, using one or more scopes from the following list (please check your Application Keys page for a list of OAuth scopes available to your application):
https://api.ebay.com/oauth/api_scope/sell.logistics
See OAuth access tokens for more information.
Request payload
Copy complete valid JSON to clipboardRequest fields
Input container/field | Type | Description |
---|---|---|
additionalOptions | array of AdditionalOption | Supply a list of one or more shipping options that the seller wants to purchase for this shipment. Occurrence: Optional |
additionalOptions.additionalCost | Amount | The monetary cost of the additional shipping option identified by the optionType field. Occurrence: Optional |
additionalOptions.additionalCost.currency | CurrencyCodeEnum | The base currency applied to the value field to establish a monetary amount. Occurrence: Optional |
additionalOptions.additionalCost.value | string | The monetary amount in the specified currency. Occurrence: Conditional |
additionalOptions.optionType | string | The name of a shipping option that can be purchased in addition to the base shipping cost of this rate. The value supplied in this field must match exactly the option name as supplied by the selected rate. Occurrence: Optional |
labelCustomMessage | string | Optional text to be printed on the shipping label if the selected shipping carrier supports custom messages on their labels. Occurrence: Optional |
labelSize | string | The seller's desired label size. Any supplied value is applied only if the shipping carrier supports multiple label sizes, otherwise the carrier's default label size is used. Occurrence: Optional |
rateId | string | The unique eBay-assigned identifier of the shipping rate that the seller selected for the shipment. This value is generated by using the createShippingQuote method and is returned in the rates.rateId field. Occurrence: Required |
returnTo | Contact | The optional return address and contact details for the shipment. The return address is printed on the shipping label. If not specified, the return address defaults to the shipFrom address returned in shipping quote. Occurrence: Optional |
returnTo.companyName | string | The company name with which the contact is associated. Occurrence: Optional |
returnTo.contactAddress | ContactAddress | The details of the contact's geographical address. Occurrence: Required |
returnTo.contactAddress.addressLine1 | string | The first line of the street address. Occurrence: Required |
returnTo.contactAddress.addressLine2 | string | The second line of the street address. Use this field for additional address information, such as a suite or apartment number. Occurrence: Optional |
returnTo.contactAddress.city | string | The city in which the address is located. Occurrence: Optional |
returnTo.contactAddress.countryCode | CountryCodeEnum | The country of the address, represented as two-letter ISO 3166 country code. For example, Occurrence: Required |
returnTo.contactAddress.county | string | The county (not country) in which the address is located. Counties typically contain multiple cities or towns. Occurrence: Required |
returnTo.contactAddress.postalCode | string | The postal code of the address. Occurrence: Required |
returnTo.contactAddress.stateOrProvince | string | The state or province in which the address is located. States and provinces often contain multiple counties. Occurrence: Optional |
returnTo.fullName | string | The contact's full name. Occurrence: Required |
returnTo.primaryPhone | PhoneNumber | The contact's primary telephone number. Occurrence: Optional |
returnTo.primaryPhone.phoneNumber | string | A telephone number. Occurrence: Required |
shippingQuoteId | string | The unique eBay-assigned identifier of the shipping quote that was generated by the createShippingQuote method. Occurrence: Required |
Output
HTTP response headers
This call has no response headers.
Response payload
Response fields
Output container/field | Type | Description |
---|---|---|
cancellation | ShipmentCancellation | Cancellation status for the package, if one exists. Occurrence: Conditional |
cancellation.cancellationRequestedDate | string | The time and date the request was made to cancel the shipment, formatted as an ISO 8601 UTC string. Occurrence: Conditional |
cancellation.cancellationStatus | ShipmentCancellationStatusEnum | This enum specifies the current cancellation status of a shipment, if a cancellation request has been made. Occurrence: Conditional |
creationDate | string | The date and time the shipment was created, formatted as an ISO 8601 string, which is based on the 24-hour Coordinated Universal Time (UTC) clock. Occurrence: Conditional |
labelCustomMessage | string | If supported by the selected shipping carrier, this field can contain optional seller text to be printed on the shipping label. Occurrence: Conditional |
labelDownloadUrl | string | The direct URL the seller can use to download an image of the shipping label. By default, the file format is PDF. See downloadLabelFile for requesting different response file formats. Occurrence: Conditional |
labelSize | string | The seller's desired label size. The support for multi-sized labels is shipping-carrier specific and if the size requested in the creaateFromShippingQuote call matches a size the carrier supports, the value will be represented here in the shipment. Occurrence: Conditional |
orders | array of Order | A list of one or more orders that will be shipped in the shipping package. Occurrence: Always |
orders.channel | string | The marketplace where the order was created. Occurrence: Always |
orders.orderId | string | The unique identifier of the order. The getOrders method of the Fulfillment API can be used to retrieve order IDs. Occurrence: Always |
packageSpecification | PackageSpecification | The weight and dimensions of the package. Occurrence: Conditional |
packageSpecification.dimensions | Dimensions | Declares the height, length, width, and unit of measure for the package to be shipped. Occurrence: Conditional |
packageSpecification.dimensions.height | string | The numeric value of the height of the package. Occurrence: Conditional |
packageSpecification.dimensions.length | string | The numeric value of the length of the package. Occurrence: Conditional |
packageSpecification.dimensions.unit | LengthUnitOfMeasureEnum | The unit of measure used to express the height, length, and width of the package. Occurrence: Conditional |
packageSpecification.dimensions.width | string | The numeric value of the width of the package. Occurrence: Conditional |
packageSpecification.weight | Weight | Declares the weight of the package. Occurrence: Conditional |
packageSpecification.weight.unit | WeightUnitOfMeasureEnum | The unit of measurement used to specify the weight of a shipping package. Both the unit and value fields are required if the weight container is used. If the English system of measurement is being used, the applicable values for weight units are Occurrence: Conditional |
packageSpecification.weight.value | string | The numeric value of the weight of the package, as measured by the value of unit. Occurrence: Conditional |
rate | PurchasedRate | The shipping rate that the seller has chosen to purchase for this shipment. Each rate, identified by a rateId, contains the offered base service, options, and shipping parameters that were selected for the package shipment. Occurrence: Conditional |
rate.additionalOptions | array of AdditionalOption | An list of additional, optional features that have been purchased for the shipment. Occurrence: Conditional |
rate.additionalOptions.additionalCost | Amount | The monetary cost of the additional shipping option identified by the optionType field. Occurrence: Conditional |
rate.additionalOptions.additionalCost.currency | CurrencyCodeEnum | The base currency applied to the value field to establish a monetary amount. Occurrence: Conditional |
rate.additionalOptions.additionalCost.value | string | The monetary amount in the specified currency. Occurrence: Conditional |
rate.additionalOptions.optionType | string | The name of a shipping option that can be purchased in addition to the base shipping cost of this rate. The value supplied in this field must match exactly the option name as supplied by the selected rate. Occurrence: Conditional |
rate.baseShippingCost | Amount | The amount of the "base cost" for the shipment as set by the given carrier for the specified service. This cost excludes any addition costs accrued from the addition of any optional shipping options. Occurrence: Conditional |
rate.baseShippingCost.currency | CurrencyCodeEnum | The base currency applied to the value field to establish a monetary amount. Occurrence: Conditional |
rate.baseShippingCost.value | string | The monetary amount in the specified currency. Occurrence: Conditional |
rate.destinationTimeZone | string | The time zone of the destination according to Time Zone Database. For example, "America/Los_Angeles". Occurrence: Conditional |
rate.maxEstimatedDeliveryDate | string | A string value representing maximum (latest) estimated delivery time, formatted as an ISO 8601 string, which is based on the 24-hour Coordinated Universal Time (UTC) clock. Occurrence: Conditional |
rate.minEstimatedDeliveryDate | string | A string value representing minimum (earliest) estimated delivery time, formatted as an ISO 8601ISO 8601 UTC string. Occurrence: Conditional |
rate.pickupNetworks | array of string | A list of pickup networks compatible with the shipping service. Occurrence: Conditional |
rate.pickupSlotId | string | This unique eBay-assigned ID value is returned only if the shipment has been configured for a scheduled pickup. Occurrence: Conditional |
rate.pickupType | PickupTypeEnum | The type of pickup or drop off configured for the shipment. Occurrence: Conditional |
rate.rateId | string | The eBay-generated ID of the shipping rate that the seller has chosen to purchase for the shipment. Occurrence: Conditional |
rate.shippingCarrierCode | string | The ID code for the carrier that was selected for the package shipment. Occurrence: Conditional |
rate.shippingCarrierName | string | The name of the shipping carrier. Occurrence: Conditional |
rate.shippingQuoteId | string | The unique eBay-generated ID of the shipping quote from which the seller selected a shipping rate (rateId). Occurrence: Conditional |
rate.shippingServiceCode | string | String ID code for the shipping service selected for the package shipment. This is a service that the shipping carrier supplies. Occurrence: Conditional |
rate.shippingServiceName | string | The name of the shipping service. Occurrence: Conditional |
rate.totalShippingCost | Amount | The total shipping cost, which is the sum cost of the base shipping cost and the cost of all the selected shipping options. Occurrence: Conditional |
rate.totalShippingCost.currency | CurrencyCodeEnum | The base currency applied to the value field to establish a monetary amount. Occurrence: Conditional |
rate.totalShippingCost.value | string | The monetary amount in the specified currency. Occurrence: Conditional |
returnTo | Contact | The address and contact details that should be used for item returns. Sellers have the option to define a return address that is different from their shipFrom address. If not specified, the return address defaults to the shipFrom address in the shipping quote. Occurrence: Conditional |
returnTo.companyName | string | The company name with which the contact is associated. Occurrence: Conditional |
returnTo.contactAddress | ContactAddress | The details of the contact's geographical address. Occurrence: Conditional |
returnTo.contactAddress.addressLine1 | string | The first line of the street address. Occurrence: Always |
returnTo.contactAddress.addressLine2 | string | The second line of the street address. Use this field for additional address information, such as a suite or apartment number. Occurrence: Conditional |
returnTo.contactAddress.city | string | The city in which the address is located. Occurrence: Conditional |
returnTo.contactAddress.countryCode | CountryCodeEnum | The country of the address, represented as two-letter ISO 3166 country code. For example, Occurrence: Conditional |
returnTo.contactAddress.county | string | The county (not country) in which the address is located. Counties typically contain multiple cities or towns. Occurrence: Conditional |
returnTo.contactAddress.postalCode | string | The postal code of the address. Occurrence: Always |
returnTo.contactAddress.stateOrProvince | string | The state or province in which the address is located. States and provinces often contain multiple counties. Occurrence: Conditional |
returnTo.fullName | string | The contact's full name. Occurrence: Conditional |
returnTo.primaryPhone | PhoneNumber | The contact's primary telephone number. Occurrence: Conditional |
returnTo.primaryPhone.phoneNumber | string | A telephone number. Occurrence: Conditional |
shipFrom | Contact | The address and contact details for the origin of the package shipment. Occurrence: Conditional |
shipFrom.companyName | string | The company name with which the contact is associated. Occurrence: Conditional |
shipFrom.contactAddress | ContactAddress | The details of the contact's geographical address. Occurrence: Conditional |
shipFrom.contactAddress.addressLine1 | string | The first line of the street address. Occurrence: Always |
shipFrom.contactAddress.addressLine2 | string | The second line of the street address. Use this field for additional address information, such as a suite or apartment number. Occurrence: Conditional |
shipFrom.contactAddress.city | string | The city in which the address is located. Occurrence: Conditional |
shipFrom.contactAddress.countryCode | CountryCodeEnum | The country of the address, represented as two-letter ISO 3166 country code. For example, Occurrence: Conditional |
shipFrom.contactAddress.county | string | The county (not country) in which the address is located. Counties typically contain multiple cities or towns. Occurrence: Conditional |
shipFrom.contactAddress.postalCode | string | The postal code of the address. Occurrence: Always |
shipFrom.contactAddress.stateOrProvince | string | The state or province in which the address is located. States and provinces often contain multiple counties. Occurrence: Conditional |
shipFrom.fullName | string | The contact's full name. Occurrence: Conditional |
shipFrom.primaryPhone | PhoneNumber | The contact's primary telephone number. Occurrence: Conditional |
shipFrom.primaryPhone.phoneNumber | string | A telephone number. Occurrence: Conditional |
shipmentId | string | The unique eBay-assigned ID for the shipment. The ID is generated when the shipment is created by a call to createFromShippingQuote. Occurrence: Conditional |
shipmentTrackingNumber | string | A unique carrier-assigned ID string that can be used to track the shipment. Occurrence: Conditional |
shipTo | Contact | The address and contact details for the destination of the shipment. Occurrence: Conditional |
shipTo.companyName | string | The company name with which the contact is associated. Occurrence: Conditional |
shipTo.contactAddress | ContactAddress | The details of the contact's geographical address. Occurrence: Conditional |
shipTo.contactAddress.addressLine1 | string | The first line of the street address. Occurrence: Always |
shipTo.contactAddress.addressLine2 | string | The second line of the street address. Use this field for additional address information, such as a suite or apartment number. Occurrence: Conditional |
shipTo.contactAddress.city | string | The city in which the address is located. Occurrence: Conditional |
shipTo.contactAddress.countryCode | CountryCodeEnum | The country of the address, represented as two-letter ISO 3166 country code. For example, Occurrence: Conditional |
shipTo.contactAddress.county | string | The county (not country) in which the address is located. Counties typically contain multiple cities or towns. Occurrence: Conditional |
shipTo.contactAddress.postalCode | string | The postal code of the address. Occurrence: Always |
shipTo.contactAddress.stateOrProvince | string | The state or province in which the address is located. States and provinces often contain multiple counties. Occurrence: Conditional |
shipTo.fullName | string | The contact's full name. Occurrence: Conditional |
shipTo.primaryPhone | PhoneNumber | The contact's primary telephone number. Occurrence: Conditional |
shipTo.primaryPhone.phoneNumber | string | A telephone number. Occurrence: Conditional |
HTTP status codes
This call can return one of the following HTTP status codes. For an overview of the status codes, see HTTP status codes in Using eBay RESTful APIs.
Status | Meaning |
---|---|
201 | Created |
400 | Bad Request |
409 | Conflict |
500 | Internal Server Error |
Error codes
For more on errors, plus the codes of other common errors, see Handling errors.
Code | Domain | Category | Meaning |
---|---|---|---|
90000 | API_LOGISTICS | APPLICATION | A system error has occurred. |
90010 | API_LOGISTICS | REQUEST | Missing field {fieldName}. |
90020 | API_LOGISTICS | REQUEST | Invalid field {fieldName}. |
90030 | API_LOGISTICS | REQUEST | Payment could not be completed. |
90200 | API_LOGISTICS | REQUEST | The quote has expired. Please request a new quote. |
90210 | API_LOGISTICS | REQUEST | The quote has already been purchased. Please request a new quote. |
Warnings
This call has no warnings.
Samples
New to making API calls? Please see Making a Call.
Note: Identifiers, such as order IDs or user IDs, and personal data in these samples might be anonymized or may no longer be active on eBay. If necessary, substitute current, relevant eBay data in your requests.
Sample 1: Creating a shipment from a shipping quote
This sample creates a "shipment" from a shipping quote.
When you create a shipment, the base cost of the shipment, plus the cost any selected additional shipping options, is billed against your eBay account of billing agreement you have set up. The shipment includes a shipping label that you can download, print, and use to ship the package described in the original shipping quote.
Input
To create a shipment, specify the shippingQuoteId and the rateId of the rate you want to use, as returned in the original shipping quote you generated for your package. Each shipping quote has a time window within which the rates are valid, you must create a shipment for a rate within the valid time frame.
When creating a shipment, you can specify that you want to purchase additional shipping options, as they are available in the rate you are selecting. You can also specify a return address, if it is different from the "From:" address you specified in the original shipping quote.
POSThttps://api.ebay.com/sell/logistics/v1_beta/shipment/create_from_shipping_quote
Output
If the call is successful, the response contains the full details of the shipment you created, including the totalShippingCost, which is the base shipping cost listed in the selected rate, plus any added shipping options.