eBay Bulk Data Exchange APIVersion 1.5.0

startDownloadJob

Begins processing the data for a report file to download. You must use the getJobStatus or getRecurringJobExecutionStatus calls to determine when the report data is available for download.



Input

The box below lists all fields that could be included in the call request. To learn more about an individual field or its type, click its name in the box (or scroll down to find it in the table below the box).

See also Samples.

<?xml version="1.0" encoding="utf-8"?>
<startDownloadJobRequest xmlns="http://www.ebay.com/marketplace/services">
  <!-- Call-specific Input Fields -->
  <downloadJobType> token </downloadJobType>
  <downloadRequestFilter> DownloadRequestFilter
    <activeInventoryReportFilter> ActiveInventoryReportFilter
      <auctionItemDetails> AuctionItemDetails
        <includeBidCount> boolean </includeBidCount>
        <includeReservePriceMet> boolean </includeReservePriceMet>
      </auctionItemDetails>
      <fixedPriceItemDetails> FixedPriceItemDetails
        <includeVariations> boolean </includeVariations>
      </fixedPriceItemDetails>
      <includeListingType> IncludeListingType </includeListingType>
    </activeInventoryReportFilter>
    <dateFilter> DateFilter
      <endTime> dateTime </endTime>
      <startTime> dateTime </startTime>
    </dateFilter>
    <feeSettlementReportFilter> FeeSettlementReportFilter
      <startTime> dateTime </startTime>
    </feeSettlementReportFilter>
    <orderReportFilter> OrderReportFilter
      <createTimeFrom> dateTime </createTimeFrom>
      <createTimeTo> dateTime </createTimeTo>
      <includeFinalValueFee> boolean </includeFinalValueFee>
      <listingType> ListingType </listingType>
      <modTimeFrom> dateTime </modTimeFrom>
      <modTimeTo> dateTime </modTimeTo>
      <orderStatus> OrderStatusTypes </orderStatus>
      <version> int </version>
    </orderReportFilter>
    <siteFilter> SiteFilter
      <globalId> token </globalId>
      <!-- ... more globalId values allowed here ... -->
    </siteFilter>
    <soldReportFilter> SoldReportFilter
      <includeShippingAddress> IncludeShippingAddressType </includeShippingAddress>
    </soldReportFilter>
  </downloadRequestFilter>
  <UUID> string </UUID>
</startDownloadJobRequest>
Argument Type Occurrence Meaning
downloadJobType token Required This field is used to specify the Merchant Data report type to download when File Transfer API's downloadFile call is invoked. Each Bulk Data Exchange job can only have one job type per job.

Applicable values:
ActiveInventoryReport
A report that contains all of the active listings for a specific seller ID. The eBay servers read the credential information passed in by the seller's application to determine which seller's data to retrieve. For more information on ActiveInventoryReport, see the ActiveInventoryReport call reference.

If this job type is specified, the user can customize the output of the ActiveInventoryReport by including and setting values for the activeInventoryReportFilter container.
FeeSettlementReport
A report that contains all of the fees that a seller has incurred as invoices are generated by the eBay servers. This report gives large merchants the ability to look at their fees for many listings in one file. For more information on FeeSettlementReport, see the FeeSettlementReport call reference.

If this job type is specified, the user must include the feeSettlementReportFilter container and set the startTime value for the FeeSettlementReport.
SoldReport
A report that contains all items that have been sold by the seller (sold items that were submitted to the Large Merchant Service by the seller's application). For more information on SoldReport, see the SoldReport call reference.

When an item is sold, the eBay application creates an 'order' for the seller. If only one item is sold, there is one order ID and one line item ID associated with the sale. However, if multiple items are sold as part of the same transaction, there is one order ID for the sale, and multiple line item IDs - one line item ID for each item sold.

Therefore, SoldReport returns the order IDs and line item IDs for every order associated with the seller who is making the request. Sellers use this information to make inventory updates and start order fulfillment.

To remove fulfilled orders from the SoldReport response, the seller can acknowledge these orders by uploading a list of OrderID and/or OrderLineItemID values in an OrderAck request.

After you upload a data file with an OrderAck request, the orders (or line items within an order) will no longer appear in SoldReport. After you send the first OrderAck call, future SoldReport responses will only contain unacknowledged orders and line items.

If this job type is specified, the user can control if/when shipping address fields are returned in the SoldReport by including and setting a value for the soldReportFilter.includeShippingAddress field.
OrderReport
If this report is specified, the response of the downloadFile call will be very similar to the data returned under the OrderArray container in the Trading API's GetOrders call. Other fields in the GetOrders response, including pagination results, HasMoreOrders, OrdersPerPage, ReturnedOrderCountActual, ack, Build, CorrelationID, and Timestamp, will not be returned in the OrderReport.

To remove fulfilled orders from the OrderReport response, the seller can acknowledge these orders by uploading a list of OrderID and/or OrderLineItemID values in an OrderAck request.

For more information on the GetOrders response, see the GetOrders call reference.

If this job type is specified, the user must include the orderReportFilter container and set its values. The values set in this container will control what appears in the OrderReport response.
downloadRequestFilter DownloadRequestFilter Optional This is parent container of any and all filters used in the request. The filters used within the downloadRequestFilter container will partially be dependent on the downloadJobType that is being performed.
downloadRequestFilter
  .activeInventoryReportFilter
ActiveInventoryReportFilter Optional If the startDownloadJob request is using 'ActiveInventoryReport' as the downloadJobType, the activeInventoryReportFilter container allows the user to control which containers/fields are returned in an ActiveInventoryReport response.

This container is only applicable if the downloadJobType value is set to 'ActiveInventoryReport'.
downloadRequestFilter
  .activeInventoryReportFilter
  .auctionItemDetails
AuctionItemDetails Optional This container is used to specify whether or not the total bid count and/or the ReserveMet boolean (indicating whether or not Reserve Price was met by the highest bid) is returned in the ActiveInventoryReport response.

This filter is only applicable for auction listings.
downloadRequestFilter
  .activeInventoryReportFilter
  .auctionItemDetails
  .includeBidCount
boolean Optional The boolean value in this field will control whether or not the SKUDetails.BidCount field is returned in a ActiveInventoryReport response.
downloadRequestFilter
  .activeInventoryReportFilter
  .auctionItemDetails
  .includeReservePriceMet
boolean Optional The boolean value in this field will control whether or not the SKUDetails.ReserveMet boolean field is returned in a ActiveInventoryReport response.
downloadRequestFilter
  .activeInventoryReportFilter
  .fixedPriceItemDetails
FixedPriceItemDetails Optional This container is used to specify whether or not variation-level data is returned in the ActiveInventoryReport response.

This filter is only applicable for multi-variation, fixed-priced listings.
downloadRequestFilter
  .activeInventoryReportFilter
  .fixedPriceItemDetails
  .includeVariations
boolean Conditional The boolean value in this field will control whether or not the Variations container is returned in a ActiveInventoryReport response.

This field is required if the fixedPriceItemDetails container is used in the call request.
Default: true.
downloadRequestFilter
  .activeInventoryReportFilter
  .includeListingType
IncludeListingType Optional This field allows the user to control whether fixed-price and/or auction listings are returned in an ActiveInventoryReport response. If the downloadJobType value is set to 'ActiveInventoryReport', this value defaults to 'AuctionAndFixedPrice' and both listing types are returned in the ActiveInventoryReport response. However, there may be times when the user only wants to retrieve fixed-price listings or only auction listings, in which case the user would include and set the includeListingType field to 'FixedPrice' or 'Auction' as appropriate.

Applicable values:

Auction
This value is specified in the includeListingType field if the user wants to limit the data returned in the ActiveInventoryReport response to auction listings.
AuctionAndFixedPrice
This value is specified in the includeListingType field if the user wants data from both auction and fixed-price listings returned in the ActiveInventoryReport response.
FixedPrice
This value is specified in the includeListingType field if the user wants to limit the data returned in the ActiveInventoryReport response to fixed-price listings.

downloadRequestFilter
  .dateFilter
DateFilter Optional Reserved for internal or future use.
downloadRequestFilter
  .dateFilter.endTime
dateTime Optional Reserved for internal or future use.
downloadRequestFilter
  .dateFilter.startTime
dateTime Required Reserved for internal or future use.
downloadRequestFilter
  .feeSettlementReportFilter
FeeSettlementReportFilter Optional If the startDownloadJob request is using 'FeeSettlementReport' as the downloadJobType, the feeSettlementReportFilter container allows the user to set a startTime value, and only fee data on invoices sent to the seller after this date-time are returned in a FeeSettlementReport response.

This container is only applicable if the downloadJobType value is set to 'FeeSettlementReport'.
downloadRequestFilter
  .feeSettlementReportFilter
  .startTime
dateTime Conditional The date-time specified in this field will control which fee data is returned in a FeeSettlementReport response. Only fee data on eBay invoices sent to the seller after this specified date-time are returned in the FeeSettlementReport response.

This field is required if the feeSettlementReportFilter container is used in the call request.

See Knowlegde Base article, "When is the FeeSettlementReport (FSR) available for download?".

downloadRequestFilter
  .orderReportFilter
OrderReportFilter Conditional If the downloadJobType value is set to 'OrderReport', the orderReportFilter container is required and allows the user to set time, order status, or order type (eBay.com or Half.com) filters, and to specify whether or not to include Final Value Fees for each order line item in the report.

This container is applicable only if the downloadJobType value is set to 'OrderReport'.
downloadRequestFilter
  .orderReportFilter
  .createTimeFrom
dateTime Conditional The createTimeFrom and createTimeTo fields specify a date range for retrieving orders. The createTimeFrom value is the start of the date range. All eBay orders that were created within this date range are returned in the output. The maximum date range that may be specified is 30 days.

If the createTimeFrom field is set, the createTimeTo field must also be included or the call will fail.

If the order Creation Time or order Modification Time filters are not provided, the default behavior is to retrieve unacknowledged orders from the last 30 days.

Applicable to Half.com (if the listingType field is included and set to 'Half'.
downloadRequestFilter
  .orderReportFilter
  .createTimeTo
dateTime Conditional The createTimeFrom and createTimeTo fields specify a date range for retrieving orders. The createTimeTo value is the end of the date range. All eBay orders that were created within this date range are returned in the output. The maximum date range that may be specified is 30 days.

If the createTimeTo field is set, the createTimeFrom field must also be included or the call will fail.

If the order Creation Time or order Modification Time filters are not provided, the default behavior is to retrieve unacknowledged orders from the last 30 days.

Applicable to Half.com (if the listingType field is included and set to 'Half').
downloadRequestFilter
  .orderReportFilter
  .includeFinalValueFee
boolean Optional This field should be included and set to 'true' if the user wishes to include the Final Value Fee for all order line items in the response. The Final Value Fee is returned in the Transaction.FinalValueFee field. The Final Value Fee is assessed right after the creation of an eBay order line item.
downloadRequestFilter
  .orderReportFilter.listingType
ListingType Conditional This field must be included and set to 'Half' if the user only wants to retrieve Half.com orders. This field should not be used if the user wishes to retrieve eBay.com orders.

Applicable values:

Half
This value is used if the seller wants to retrieve Half.com orders.

downloadRequestFilter
  .orderReportFilter.modTimeFrom
dateTime Conditional The modTimeFrom and modTimeTo fields specify a date range for retrieving orders. The modTimeFrom value is the start of the date range. All eBay orders that were modified within this date range are returned in the output. The maximum date range that may be specified is 30 days.

If the modTimeFrom field is set, the modTimeTo field must also be included or the call will fail. The modTimeFrom and modTimeTo filters are not applicable if the createTimeFrom and createTimeTo fields are set.

If the order Creation Time or order Modification Time filters are not provided, the default behavior is to retrieve unacknowledged orders from the last 30 days.

Applicable to Half.com (if the listingType field is included and set to 'Half').
downloadRequestFilter
  .orderReportFilter.modTimeTo
dateTime Conditional The modTimeFrom and modTimeTo fields specify a date range for retrieving orders. The modTimeTo value is the end of the date range. All eBay orders that were modified within this date range are returned in the output. The maximum date range that may be specified is 30 days.

If the modTimeFrom field is set, the modTimeTo field must also be included or the call will fail. The modTimeFrom and modTimeTo filters are not applicable if the createTimeFrom and createTimeTo fields are set.

If the order Creation Time or order Modification Time filters are not provided, the default behavior is to retrieve unacknowledged orders from the last 30 days.

Applicable to Half.com (if the listingType field is included and set to 'Half').
downloadRequestFilter
  .orderReportFilter.orderStatus
OrderStatusTypes Optional The field is used to retrieve orders that are in a specific state. If this field is used with a date filter, only orders that satisfy both the date range and the orderStatus value are retrieved.

For eBay.com orders, this field's value can be set to 'Active', 'Completed', 'Cancelled' or 'Inactive' to retrieve orders in these states. The 'Shipped' value is only applicable for Half.com orders.
Default: All.

Applicable values:

Active
If this value is used, only active orders are retrieved. Orders in the 'Active' state means that the buyer's payment on the order has not yet cleared. This value is supported for eBay.com and Half.com orders.
All
If this value is used, orders in all states are retrieved. This is the default orderStatus value, and is supported for eBay.com and Half.com orders.
Cancelled
If this value is used, only cancelled Half.com orders are retrieved. This value is only supported for Half.com orders.
Completed
If this value is used, only completed orders are retrieved. Orders in the 'Completed' state indicates that the buyer's payment on the order has cleared and checkout is complete. This value is supported for eBay.com and Half.com orders.
Shipped
If this value is used, only Half.com orders that have been shipped by the seller are retrieved. This value is only supported for Half.com orders.

downloadRequestFilter
  .orderReportFilter.version
int Conditional The value input into this field indicates the version number of the Trading API (specifically, GetOrders) that will be called when the orderReport is generated. This value must be a valid Trading API version number and it must be Version 841 or later. If an older version is used, orderReport will fail.

This field is required if the orderReportFilter container is used.
downloadRequestFilter
  .siteFilter
SiteFilter Optional Reserved for internal or future use.
downloadRequestFilter
  .siteFilter.globalId
token Required,
repeatable: [1..*]
Reserved for internal or future use.
downloadRequestFilter
  .soldReportFilter
SoldReportFilter Optional If the downloadJobType value is set to 'SoldReport', the soldReportFilter container allows the user to control whether (and when) the buyers' shipping addresses are returned in an SoldReport response.

This container is applicable only if the downloadJobType value is set to 'SoldReport'.
downloadRequestFilter
  .soldReportFilter
  .includeShippingAddress
IncludeShippingAddressType Optional The enumeration value in this field will control whether buyers' shipping addresses are always returned in Merchant Data's SoldReport response, or only when payment has been cleared.
Default: CheckoutComplete.

Applicable values:

Always
This value indicates that buyers' shipping address information should always be emitted in Merchant Data's SoldReport response.
CheckoutComplete
This value indicates that buyers' shipping address information should be emitted in Merchant Data's SoldReport response only when payment has been cleared.

UUID string Required A Universally Unique Identifier (UUID) provided by the seller's application.
Max length: 32.



Output

The box below lists all fields that might be returned in the response. To learn more about an individual field or its type, click its name in the box (or scroll down to find it in the table below the box).

See also Samples.

<?xml version="1.0" encoding="utf-8"?>
<startDownloadJobResponse xmlns="http://www.ebay.com/marketplace/services">
  <!-- Call-specific Output Fields -->
  <jobId> string </jobId>
  <!-- Standard Output Fields -->
  <ack> AckValue </ack>
  <errorMessage> ErrorMessage
    <error> ErrorData
      <category> ErrorCategory </category>
      <domain> string </domain>
      <errorId> long </errorId>
      <exceptionId> token </exceptionId>
      <message> string </message>
      <parameter name="string"> ErrorParameter (string) </parameter>
      <!-- ... more parameter nodes allowed here ... -->
      <severity> ErrorSeverity </severity>
      <subdomain> string </subdomain>
    </error>
    <!-- ... more error nodes allowed here ... -->
  </errorMessage>
  <timestamp> dateTime </timestamp>
  <version> string </version>
</startDownloadJobResponse>
Return Value Type Occurrence Meaning
Call-specific Output Fields [Jump to standard fields]
jobId string Always Unique ID that is assigned for a job by the Bulk Data Exchange API after a successful startDownloadJob call. This value is passed into the File Transfer API's downloadJob call.
Standard Output Fields  
ack AckValue Always Returns the acknowledgement of the call success or failure.

Applicable values:

Failure
The request that triggered the error was not processed successfully. When a serious application-level error occurs, the error is returned instead of the business data.
PartialFailure
Reserved for future use.
Success
The request was processed successfully, but something occurred that may affect your application or the user.
Warning
The request that triggered the error was processed successfully but with some warnings.

errorMessage ErrorMessage Conditionally Description of an error or warning that occurred when eBay processed the request. Not returned if the ack value is Success.
errorMessage.error ErrorData Conditionally,
repeatable: [0..*]
Details about a single error.
errorMessage.error.category ErrorCategory Conditionally There are three categories of errors: request errors, application errors, and system errors.

Applicable values:

Application
An error occurred due to a problem with the request, such as missing or invalid fields. The problem must be corrected before the request can be made again. If the problem is due to something in the application (such as a missing required field), the application must be changed. Once the problem in the application or data is resolved, resend the corrected request to eBay.
Request
An error occurred due to a problem with the request, such as invalid or missing data. The problem must be corrected before the request can be made again. If the problem is a result of end-user data, the application must alert the end-user to the problem and provide the means for the end-user to correct the data. Once the problem in the data is resolved, resend the request to eBay with the corrected data.
System
Indicates that an error has occurred on the eBay system side, such as a database or server down. An application can retry the request as-is a reasonable number of times (eBay recommends twice). If the error persists, contact Developer Technical Support. Once the problem has been resolved, the request may be resent in its original form.

errorMessage.error.domain string Conditionally Name of the domain upon which the error occurred.
Domains include:
Marketplace
A business or validation error occurred for the Bulk Data Exchange service.
SOA
An exception occurred in the Service Oriented Architecture (SOA) framework.
errorMessage.error.errorId long Conditionally A unique code that identifies the particular error condition that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms.
errorMessage.error.exceptionId token Conditionally Unique identifier for an exception associated with an error.
errorMessage.error.message string Conditionally A detailed description of the condition that resulted in the error.
errorMessage.error.parameter ErrorParameter (string) Conditionally,
repeatable: [0..*]
Some warning and error messages return one or more variables that contain contextual information about the error. This is often the field or value that triggered the error.
errorMessage.error.parameter
  [ attribute name ]
string Conditionally Some warning and error messages return one or more variables that contain contextual information about the error. This is often the field or value that triggered the error.
errorMessage.error.severity ErrorSeverity Conditionally Indicates whether the error caused the request to fail (Error) or not (Warning).

If the request fails and the source of the problem is within the application (such as a missing required element), please change the application before you retry the request. If the problem is due to end-user input data, please alert the end-user to the problem and provide the means for them to correct the data. Once the problem in the application or data is resolved, you can attempt to re- send the request to eBay.

If the source of the problem is on eBay's side, you can retry the request as-is a reasonable number of times (eBay recommends twice). If the error persists, contact Developer Technical Support. Once the problem has been resolved, the request may be resent in its original form.

When a warning occurs, the error is returned in addition to the business data. In this case, you do not need to retry the request (as the original request was successful). However, depending on the cause or nature of the warning, you might need to contact either the end user or eBay to effect a long term solution to the problem to prevent it from reoccurring in the future.

Applicable values:

Error
The request that triggered the error was not processed successfully. When a serious application-level error occurs, the error is returned instead of the business data.
Warning
The request was processed successfully, but something occurred that may affect your application or the user. For example, eBay may have changed a value the user sent in. In this case, eBay returns a normal, successful response and also returns the warning.

errorMessage.error.subdomain string Conditionally Name of the subdomain upon which the error occurred.
Subdomains include:
BulkDataExchangeService
The error is specific to the Bulk Data Exchange API.
MarketplaceCommon
The error is common to all Marketplace API.
timestamp dateTime Always This value represents the date and time when eBay processed the request. This value is returned in GMT, the ISO 8601 date and time format (YYYY- MM- DDTHH:MM:SS.SSSZ). See the "dateTime" type for information about the time format, and for details on converting to and from the GMT time zone.
version string Always The release version that eBay used to process the request. Developer Technical Support may ask you for the version value if you work with them to troubleshoot issues.

Note: The version in use is normally the latest release version, as specified in the release notes. Note that eBay releases the API to international sites about a week after the API version is released to the US site.



Samples

New to making API calls? Please see Making an API Call.

Note: Some item IDs, user IDs, or other data in these samples might no longer be active on eBay. If necessary, you can substitute current eBay data in your requests.

Sample: Basic Call

Begins the Bulk Data Exchange service processing for data files that you want to download - such as report files.

Description

User megaonlinemerchant wants to start the processing for the data file that contains her SoldReport. After the processing is complete, she will download this file from the eBay servers using the File Transfer service DownloadFile call.

As a result of this call, megaonlinemerchant will begin to monitor the status of the processing, so that she will know when to download the file that contains the SoldReport data.

Input

In the following startDownloadJob request sample, you will see that you only need to enter the job type of the report you want to create and a unique identifier (UUID).

XML format. Also available is the .txt version of this XML and the SOAP equivalent.

<?xml version="1.0" encoding="utf-8"?>
<startDownloadJobRequest xmlns="http://www.ebay.com/marketplace/services">
   <downloadJobType>SoldReport</downloadJobType>
   <UUID>f7f28d10-83bd-11df-8395-0800200c9a66</UUID>
</startDownloadJobRequest>

Output

The response includes a Success or Failure acknowledgement, the version number of the Bulk Data Exchange service, and a timestamp. It is easy to assume that the startDownloadJob response contains the SoldReport data. Remember that this is not the case - the SoldReport data is in a file that you have to download using the File Transfer service after the processing for this job has completed.

XML format. Also available is the .txt version of this XML and the SOAP equivalent.

<startDownloadJobResponse xmlns="http://www.ebay.com/marketplace/services">
   <ack>Success</ack>
   <version>1.2.0</version>
   <timestamp>2010-06-29T20:40:05.671Z</timestamp>
   <jobId>50000016056</jobId>
</startDownloadJobResponse>



Change History

Change Date Description
1.5.0
2013-09-24
  • downloadRequestFilter.soldReportFilter (added): The soldReportFilter container allows the user to control whether (and when) the buyers' shipping address information is returned in the SoldReport response in Merchant Data calls.
1.4.1
2011-07-07
  • downloadRequestFilter.feeSettlementReportFilter.startTime (doc change): The startTime filter description has been updated to indicate that it correlates with the end of the invoice period, not the start.
1.0.0
2008-11-29
  • (added) New call