PlaceOffer

Use this call to place a bid or a best offer, or make a purchase.

Usage Details

Before devoting development time to production use of PlaceOffer,
you must obtain approval by the eBay Partner Network.
However, such approval isn't needed for use of PlaceOffer in the sandbox.
PlaceOffer can be used in automated test scripts in the sandbox.

In an auction listing with a Buy It Now option, PlaceOffer can be
used to buy the item immediately.

PlaceOffer
can be used to buy items from basic fixed-price listings. In this case, the call is used to purchase one or more items at the price in the listing. Use PlaceOffer to purchase as many items as desired from the listing, up to the total number in the listing. A single call can be made that enables a user to buy multiple items from the same listing. Alternatively, PlaceOffer can be called multiple times on the same listing, with each call purchasing a subset of the total number of items desired.

PlaceOffer can be used to make a best offer; for information about the Best Offer feature
(including rules for counteroffers), see Enabling Best Offer.

In the PlaceOffer request, specify an ItemID. Use the Action field to specify if you want to make a Bid or Purchase. For more information about the possible input values for PlaceOffer (including about functionality related to best offer), see PlaceOffer Input.

PlaceOffer and Currencies

Offer.Currency and the CurrencyID attribute on Offer.MaxBid are ignored for PlaceOffer.
The currency that will be used in the order line item is the currency specified by the seller when adding the item. However, your users may want to see current conversion rates before placing an offer.
To let them check currency conversion rates send them to the xe.com Universal Currency Converter provided by eBay.

Global Shipping Program Compatibility

PlaceOffer is not compatible with eBay's Global Shipping Program prior to version 787. This means that when a buyer attempts to purchase an item that's listed with International Priority Shipping as an international shipping option and PlaceOffer is invoked, the buyer will receive an error message indicating that the item can be purchased only on one of the main eBay sites.

You must upgrade your application to version 787 or higher of the Trading API schema before attempting to call PlaceOffer to let buyers purchase Global Shipping Program-enabled items.

For more information about using the Global Shipping Program, see the Managing Shipping chapter of the Trading API User's Guide.

Applying for Approval of the eBay Partner Network

Use of PlaceOffer in production is only granted to those that pass the affiliate vetting process.

Before you can use PlaceOffer in production, you must apply for, and be granted,
approval by the eBay Partner Network. Please do the following to initiate the review by the eBay Partner Network:

Within 10 business days, the eBay Partner Network will respond, approving or declining your network application.

If you are approved by eBay Partner Network, or have an existing eBay Partner Network account,
log in and confirm that your business information reflects "Downloadable Software" as your promotional method
on the Accounts tab.

If your business model is approved by the eBay Partner Network, please open a new ticket with eBay Developer Support, indicating "PlaceOffer API Request" in the subject line. In the ticket, include the following:

eBay Partner Network Publisher ID and the Incident ID

The approval email as an attachment

Detailed instructions on how we can access and test your application in Sandbox

Signed PlaceOffer Addendum

PlaceOffer Policies and Guidelines

If you get eBay Partner Network approval,
and then pass the eBay Developer Support review,
then please reread the policies below that must be followed,
and also reread the guidelines (which contain practices that you should follow).

PlaceOffer Policies

The following PlaceOffer policies are required for applications that use this
call in the production environment:

Use of PlaceOffer must be in accordance with the API License Agreement and the eBay User Agreement.
If you are an eBay affiliate, you must agree to all terms and conditions specific to the eBay programs you join.

The automatic and/or scheduled use of PlaceOffer is prohibited.
An example is sniping, which is prohibited.
For each PlaceOffer call made by your application,
the user first must take an explicit action.
That is, the application needs to get confirmation from the user
before making each PlaceOffer call.

The application shall not in any way, shape, or form collect the eBay username and password values of buyers or sellers that are involved in order line items. Users must enable bidding and buying through eBay's Authentication & Authorization mechanisms.

The "Right Now On eBay" logo may be part of your application and Web UI. The plain eBay logo cannot be used in any part of the application and Web UI without written consent from eBay, Inc. For more information on logo policies, see API Logo Usage Requirements.

The name "eBay" cannot be in any part of your product name or web domain. For example, the following is not allowed: http://www.blahebay.com

To use PlaceOffer in the production environment, you must apply for,
and be granted, approval by the eBay Partner Network.
Additionally, your application must be functional in the sandbox environment.

Please also note the following policies regarding use
of PlaceOffer in the production environment:

After you apply for approval by the eBay Partner Network, and if it is granted, then you must
pass an application review by eBay Developer Support.

If you get eBay Partner Network approval, then to request eBay Developer Support review of your application
you must file a technical support ticket, requesting PlaceOffer production access. If you are an eBay affiliate, you must specify your Campaign ID (from the eBay Partner Network) in the request, and submit your affiliate-tracking-enabled application for review. Please attach the signed PlaceOffer API License Agreement Addendum to the Developer Technical Support request when you submit your application for Production access.

Note that if you are an eBay affiliate, your eBay Partner Network account may be temporarily suspended during the review process if your business practices and/or product functionalities are deemed questionable by eBay.

PlaceOffer Guidelines

This section contains guidelines for PlaceOffer, which are designed to help developers deliver a more reliable shopping experience to eBay users:

Please adopt the following bid flow to ensure bids are placed appropriately by the shopper:

The user should see the following item information before placing their first bid or making a purchase:

Also, it is a good practice to account for the following types of errors:

Bid not above minimum

Auction has ended

User has been outbid

User attempts to lower previous bid

Clearly label your application with the application name and the company name. Build information should be available through the Help.

Use InvocationID to test if the PlaceOffer call succeeded. This is important if the application fails to get a response after making a call, due to network issues. If the same InvocationID is passed in after it has been passed in once on a call that succeeded, for a particular application and user, then an error is returned.

For applications that offer status alerts for activities such as Outbid, please do not use GetItem for frequent item status checks. To check for status, use GetItemStatus in the Shopping API.

For the best performance, use GetItemStatus to retrieve auction information. Your application should gradually increase polling frequency as the ending time approaches. Making three GetItemStatus API calls each minute during the last three minutes of an auction should be the maximum frequency.

When passing in EndUserIP, use the client's external IP address (do NOT pass the private or LAN IP address).

A BotBlock handle should be implemented wherever possible because eBay may ask users to respond to a CAPTCHA challenge from time to time. A BotBlock handle also can be treated as an error.

Earning Affiliate Commissions with PlaceOffer

Affiliate-commission functionality is not available in the Sandbox environment. Affiliate commissions from PlaceOffer require that the call be made to the site on which the item is listed. Affiliate commissions from PlaceOffer also require that the affiliate has signed up with the eBay Partner Network for the site on which the item is listed.

To earn eBay affiliate commissions with your application, you must first be approved by the eBay Partner Network. Please note that not all applications are approved. To be reviewed for approval, please do the following:

Sign up for an affiliate account at the eBay Partner Network, and declare "Downloadable Software" as your promotional method. If you have an existing eBay Partner Network account, log in and update your business information to reflect this promotional method on the Accounts tab.

The eBay Partner Network team will respond within 10 business days, approving or declining your request for the use of your application/software to earn affiliate commissions.

Ensure that you read and follow the Network Agreement, Terms & Conditions, and Code of Conduct.

Keep in mind that the use or distribution of an unapproved commission-generating application is a breach of the eBay Partner Network Agreement and may result in the termination of your affiliate account, as well as reversal of commissions.

Bot Blocking

If you make a PlaceOffer request and eBay returns a BotBlock container, your application must use the contents of the BotBlock container to verify that the application/user is not a bot. If you receive a botblock challenge in a PlaceOffer response, it looks similar to this:

Capture the BotBlock container values (BotBlockUrl, BotBlockAudioUrl, and BotBlockToken) in the PlaceOffer response and input the respective value for BotBlockUrl or BotBlockAudioUrl in a new PlaceOffer call. Include a BotBlock container (with the user-input value and the token you captured from the BotBlockToken field). eBay then uses the values in your call to validate that the user is not a bot.

You can use GetChallengeToken to test your application's ability to show that PlaceOffer is not being called by a bot. Make a GetChallengeToken request and capture ChallengeToken, ImageChallengeURL, and AudioChallengeURL. The application/user must input the value for ImageChallengeURL or AudioChallengeURL. Your application must capture this value and, in a PlaceOffer call, include the appropriate values. The BotBlock container should contain the user-input value along with the value from ChallengeToken (from the GetChallengeToken response). eBay then uses your BotBlock container to validate that the user not a bot.

Testing PlaceOffer

You can test PlaceOffer in the Sandbox. Testing the call requires at least two test users: one to list the item as the seller and the other to make the offer as a buyer. However, to accommodate all listing type use cases, your test bed should use three or more test users (which allows for more than one buyer). The test user acting as the seller must have sufficient seller qualifications to list all auction types to be tested.

Test offers on all supported types of listings: Chinese, single-item fixed-price, and multi-item fixed-price.
For multi-item fixed-price listings, make the offer for multiple items from the same listing (specified in the Offer.Quantity property).

Use GetSellerList, GetSellerEvents, and GetItem to view changes to listings after placing offers.

Test PlaceOffer under error conditions by deliberately specifying incorrect inputs. For example, specify an offer amount that is less than the current minimum bid amount.

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 the Deprecated Objects link above. Fields presented
in this color are deprecated, and fields presented in this color are (or soon will be) non-operational.

Container for affiliate-related tags, which enable the tracking of user activity. If you include AffiliateTrackingDetails in your PlaceOffer call, then it is possible to receive affiliate commissions based on calls made by your application. (See the eBay Partner Network for information about commissions.) Please note that affiliate tracking is not available in the Sandbox environment, and that affiliate tracking is not available when you make a Best Offer.

This field is not required, but an affiliate may want to use this identifier to better monitor marketing efforts. If you are using the eBay Partner Network, and you provide an AffiliateUserID, the tracking URL returned by eBay Partner Network will contain the AffiliateUserID, but it will be referred to as a "customid".Max length: 256.

Note: If you are using affiliate tracking, this field is required. The value you specify in this field is obtained from your tracking partner. For the eBay Partner Network, the TrackingID is the Campaign ID ("campid") provided by the eBay Partner Network. A Campaign ID is a 10-digit, unique number for associating traffic. A Campaign ID is valid across all programs to which you have been accepted.

Note: If you are using affiliate tracking, this field is required. Specifies your tracking partner for affiliate commissions. Depending on your tracking partner, specify one of the following values. Not all partners are valid for all sites. For PlaceOffer, only eBay Partner Network and Mediaplex are valid:

If a warning message exists and BlockOnWarning is true, the warning message is returned and the bid is blocked. If no warning message exists and BlockOnWarning is true, the bid is placed. If BlockOnWarning is false, the bid is placed, regardless of warning.

Unique item ID that identifies the item listing for which the action is being submitted.

If the item was listed with Variations, you must also specify VariationSpecifics in the request to uniquely identify the variant being purchased.Max length: 19 (Note: Item IDs are usually 9 to 12 digits).

Specifies the type of offer being made. If the item is a competitive-bidding listing, the offer is a bid. If the item is a fixed-price listing, then the offer purchases the item. If the item is a competitive-bidding listing and the offer is of type with an active, unexercised Buy It Now option, then the offer can either purchase the item or be a bid. See the schema documentation for OfferType for details on its properties and their meanings.

Indicates the type of offer being made on the specified listing. If the item is Best Offer-enabled and the buyer makes a Best Offer (or a counter offer), then after the PlaceOffer call, the buyer can get the status of the Best Offer (and of a possible seller-counter-offer, etc.) using the GetBestOffers call. See the eBay Features Guide for information about Best Offer-enabled listings and about GetBestOffers.

The ID of a Best Offer on an item. Must be specified as input to PlaceOffer only if a buyer is accepting or declining a seller's counter offer (and is not required for a buyer's offer or counter offer).

Amount of the offer placed. For auction listings, the amount bid on the item (subject to outbid by other buyers). For fixed-price listings, the fixed sale price at which the item is purchased. For auction listings with an active Buy It Now option, this amount will be either the Buy It Now price for purchase or the amount of a bid, depending on the offer type (as specified in Action). For PlaceOffer, the CurrencyID attribute is ignored if provided. Regarding Value-Added Tax (VAT): Even if VAT applies, you do not need to add VAT to the MaxBid value. If VAT applies to the listing, the seller can specify a VAT percent value when they list the item.

Specifies the number of items from the specified listing the user tendering the offer intends to purchase, bid on, or make a Best Offer on. For auctions, the value may not exceed one. For multiple-quantity listings, this value must be greater than zero but not exceeding the quantity available for sale in the listing.

If true, confirms that the bidder read and agrees to eBay's privacy policy. Applies if the subject item is in a category that requires user consent. If user consent, which is confirmation that a bidder read and agrees to eBay's privacy policy, is required for a category that the subject item is in, this value must be true for a bid to occur.

Name-value pairs that identify a single variation within the listing identified by ItemID. Required when the seller listed the item with Item Variations.

If you want to buy items from multiple variations in the same listing, use a separate PlaceOffer request for each variation. For example, if you want to buy 3 red shirts and 2 black shirts from the same listing, use one PlaceOffer request for the 3 red shirts, and another PlaceOffer request for the 2 black shirts.

Depending on the call and context, this value is either a name of an Item/Category/Variation Specific, a Parts Compatibility name, or a product identifier type.

For the AddItem and AddFixedPriceItem families of calls: In the ProductListingDetails.NameValueList (single-variation listing) and VariationProductListingDetails.NameValueList (multiple-variation listing) context, this value is the product identifier type, such as ISBN or UPC. Product identifier types that are supported/required for a specific category can be retrieved using the GetCategorySpecifics call.

For the AddItem and AddFixedPriceItem families of calls: In the Item.ItemSpecifics context, this can be any name that the seller wants to use. However, to help buyers find items more easily, it is a good idea to try to use a recommended name when possible (see GetCategorySpecifics). You can't specify the same name twice within the same listing.

For the AddFixedPriceItem family of calls: In the VariationSpecifics context, this can be any name that the seller wants to use, unless the VariationsEnabled flag is false for the name in the GetCategorySpecifics response. For example, for some categories eBay may recommend that you only use "Brand" as a shared name at the Item level, not in variations.

For the AddFixedPriceItem family of calls: In the Compatibility.NameValueList context, this value is a motor vehicle aspect such as Year, Make, and Model. A Compatibility.NameValueList container is applicable for motor vehicle parts and accessories listings.

For GetCategorySpecifics: This is a recommended (popular) name to use for items in the specified category (e.g., "Brand" might be recommended, not "Manufacturer").

For PlaceOffer: Required if the item being purchased includes Item Variations.

Note: If Brand and MPN (Manufacturer Part Number) are being used to identify product variations in a multiple-variation listing, the Brand must be specified at the item level (ItemSpecifics container) and the MPN for each product variation must be specified at the variation level (VariationSpecifics container). The Brand name must be the same for all variations within a single listing. Max length: 65.

Depending on the call and context, this value is either the value of an Item/Category/Variation Specific, a Parts Compatibility value, or a product identifier.

For the AddItem family of calls: If you specify multiple values for Item Specifics, eBay only stores the first one, unless GetCategorySpecifics indicates that the corresponding name supports multiple values.

For the AddItem and AddFixedPriceItem families of calls: In the ProductListingDetails.NameValueList (single-variation listing) and VariationProductListingDetails.NameValueList (multiple-variation listing) context, this value is the product identifier, such as ISBN or UPC. Product identifier types that are supported/required for a specific category can be retrieved using the GetCategorySpecifics call.

For the AddFixedPriceItem family of calls: If you specify multiple values for Item Specifics or Variation Specifics, eBay only stores the first one, unless GetCategorySpecifics indicates that the corresponding name supports multiple values.

In VariationSpecificSet, you typically specify multiple Value fields for each name. For example, if Name = Size, you would specify all size values that you wan to offer in the listing.

For the Compatibility.NameValueList context, this is the corresponding value of a motor vehicle aspect such as Year, Make, and Model. A Compatibility.NameValueList container is applicable for motor vehicle parts and accessories listings.

For GetCategorySpecifics: The most highly recommended values are returned first. For these calls, Value is only returned when recommended values are available.

For PlaceOffer: Required if the item being purchased includes Item Variations.

This container is only used by the PlaceOffer call request if the previous PlaceOffer call resulted in a BotBlock container in the response. If the caller receives this container in the response, that caller must make another PlaceOffer call, this time, passing in the encrypted token and URL that is returned in the BotBlock container in the response. This safeguard lets eBay know that a real user is making a PlaceOffer call and not a bot.

This string value is an encrypted token that eBay generates and returns in the BotBlock.BotBlockToken field of the PlaceOffer call response when eBay is requiring that the user supply an authentication token and URL in order for eBay to process the PlaceOffer call. As soon as a user gets a BotBlock container returned in the PlaceOffer call response, that user should grab the authentication token and the URL and then run another PlaceOffer call, but this time using the BotBlock container and passing in the authentication token and the URL values.

This string value is a URL that eBay generates and returns in either the BotBlock.BotBlockUrl or BotBlock.BotBlockAudioUrl field (returned for site-impaired users) of the PlaceOffer call response when eBay is requiring that the user supply an authentication token and URL in order for eBay to process the PlaceOffer call. As soon as a user gets a BotBlock container returned in the PlaceOffer call response, that user should grab the authentication token and the URL and then run another PlaceOffer call, but this time using the BotBlock container and passing in the authentication token and the URL values.

The public IP address of the machine from which the request is sent. Your application captures that IP address and includes it in a call request. eBay evaluates requests for safety (also see the BotBlock container in the request and response of this call).

Use ErrorLanguage to return error strings for the call in a different language from the language commonly associated with the site that the requesting user is registered with. Specify the standard RFC 3066 language identification tag (e.g., en_US).

A unique identifier for a particular call. If the same InvocationID is passed in after it has been passed in once on a call that succeeded for a particular application and user, then an error will be returned. The identifier can only contain digits from 0-9 and letters from A-F. The identifier must be 32 characters long. For example, 1FB02B2-9D27-3acb-ABA2-9D539C374228.Max length: 32.

Most Trading API calls support a MessageID element in the request and a CorrelationID element in the response. If you pass in a MessageID in a request, the same value will be returned in the CorrelationID field in the response. Pairing these values can help you track and confirm that a response is returned for every request and to match specific responses to specific requests. If you do not pass a MessageID value in the request, CorrelationID is not returned.

Note:GetCategories is designed to retrieve very large sets of metadata that change once a day or less often. To improve performance, these calls return cached responses when you request all available data (with no filters). When this occurs, the MessageID and CorrelationID fields aren't applicable. However, if you specify an input filter to reduce the amount of data returned, the calls retrieve the latest data (not cached). When this occurs, MessageID and CorrelationID are applicable.

The version number of the API code that you are programming against (e.g., 859). The version you specify for a call has these basic effects:

It indicates the version of the code lists and other data that eBay should use to process your request.

It indicates the schema version you are using.

You need to use a version that is greater than or equal to the lowest supported version. For the SOAP API: If you are using the SOAP API, this field is required. Specify the version of the WSDL your application is using.

For the XML API: If you are using the XML API, this field has no effect. Instead, specify the version in the X-EBAY-API-COMPATIBILITY-LEVEL HTTP header. (If you specify Version in the body of an XML API request and it is different from the value in the HTTP header, eBay returns an informational warning that the value in the HTTP header was used instead.)

Controls whether or not to return warnings when the application passes unrecognized or deprecated elements in a request.

An unrecognized element is one that is not defined in any supported version of the schema. Schema element names are case-sensitive, so using WarningLevel can also help you remove any potential hidden bugs within your application due to incorrect case or spelling in field names before you put your application into the Production environment.

WarningLevel only validates elements; it doesn't validate XML attributes. It also doesn't control warnings related to user-entered strings or numbers, or warnings for logical errors.

We recommend that you only use this during development and debugging. Do not use this in requests performed in the Production environment.

Applicable values:

High

(in) The WarningLevel value is set to High if the user wishes to receive warnings when the application passes unrecognized or deprecated elements in an API call request. Setting the WarningLevel value to High is not recommended in a production environment. Instead, it should only be used during the development/debugging stage.

Low

(in) The WarningLevel value is set to Low if the user does not wish to receive warnings when the application passes unrecognized or deprecated elements in an API call request. This is the default value if WarningLevel is not specified in the call request.

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 the Deprecated Objects link above. Fields presented in this color are deprecated, and fields presented in this color are not returned (or soon will not be returned) or are not operational (or soon will be non-operational).

The status of the Best Offer or counter offer. For PlaceOffer, the only applicable values are Accepted, AdminEnded, Declined, and Expired.

Applicable values:

Accepted

(out) Depending on context, this value can indicate that the buyer's Best Offer was accepted by the seller, or that the seller's or buyer's counter offer was accepted by the other party.

AdminEnded

(out) This value indicates that the Best Offer was ended by an eBay administrator.

Declined

(out) Depending on context, this value can indicate that the buyer's Best Offer was declined by the seller, or that the seller's or buyer's counter offer was declined by the other party.

Expired

(out) Depending on context, this value can indicate that the buyer's Best Offer expired due to the passing of 48 hours with no seller response (accept, decline, counter offer), or that the seller's or buyer's counter offer expired due to the passing of 48 hours with no response from other party.

OrderLineItemID is a unique identifier for an eBay order line item and is based upon the concatenation of ItemID and TransactionID, with a hyphen in between these two IDs. The OrderLineItemID field is only returned if the Offer.Action field is set to Purchase in the input and the purchase is successful. A Purchase action in PlaceOffer can be used for a fixed-price listing, or for an auction listing where the Buy It Now option is available.

Max length: 50 (Note: ItemIDs and TransactionIDs are usually 9 to 12 digits.).

Indicates the current bidding/purchase state of the item listing regarding the offer extended using PlaceOffer. See the schema documentation for the SellingStatus object, the properties of which contain such post-offer information as the current high bidder, the current price for the item, and the bid increment.

Converted value of the CurrentPrice in the currency of the site that returned this response. For active items, refresh the listing's data every 24 hours to pick up the current conversion rates. Only returned when the item's CurrentPrice on the listing site is in different currency than the currency of the host site for the user/application making the API call. ConvertedCurrentPrice is not returned for Classified listings (Classified listings are not available on all sites).

In multi-variation listings, this value matches the lowest-priced variation that is still available for sale.

Converted value of the CurrentPrice in the currency of the site that returned this response. For active items, refresh the listing's data every 24 hours to pick up the current conversion rates. Only returned when the item's CurrentPrice on the listing site is in different currency than the currency of the host site for the user/application making the API call. ConvertedCurrentPrice is not returned for Classified listings (Classified listings are not available on all sites).

In multi-variation listings, this value matches the lowest-priced variation that is still available for sale.

For auction listings, this price is the starting minimum price (if the listing has no bids) or the current highest bid (if bids have been placed) for the item. This does not reflect the BuyItNow price.

For fixed-price and ad format listings, this is the current listing price.

In multi-variation, fixed-price listings, this value matches the lowest-priced variation that is still available for sale.

For auction listings, this price is the starting minimum price (if the listing has no bids) or the current highest bid (if bids have been placed) for the item. This does not reflect the BuyItNow price.

For fixed-price and ad format listings, this is the current listing price.

In multi-variation, fixed-price listings, this value matches the lowest-priced variation that is still available for sale.

For ended auction listings that have a winning bidder, this field is a container for the high bidder's user ID. For ended, single-item, fixed-price listings, this field is a container for the user ID of the purchaser. This field isn't returned for auctions with no bids, or for active fixed-price listings.

In the case of PlaceOffer, for auction listings, this field is a container for the high bidder's user ID. In the PlaceOffer response, the following applies: For multiple-quantity, fixed-price listings, the high bidder is only returned if there is just one order line item (or only for the first order line item that is created).

Since a bidder's user info is anonymous, this tag contains the actual value of an ID only for that bidder, and for the seller of an item that the user is bidding on. For other users, the actual value is replaced by an anonymous value, according to these rules:

When bidding on items, UserID is replaced with the value "a****b" where a and b are random characters from the UserID. For example, if the UserID = IBidALot, it might be displayed as, "I****A".

Important: In this format, the anonymous bidder ID can change for each auction. For GetMyeBayBuying only, when bidding on items: UserID is replaced with the value "a****b" where a and b are random characters from the UserID.

When bidding on items listed on the the Philippines site: UserID is replaced with the value "Bidder X" where X is a number indicating the order of that user's first bid. For example, if the user was the third bidder, UserID = Bidder 3. Note that in this Philippines site format, the anonymous bidder ID stays the same for a given auction, but is different for different auctions. For example, a bidder who is the third and then the seventh bidder in an auction will be listed for both bids as "Bidder 3". However, if that same bidder is the first bidder on a different auction, the bidder will be listed for that auction as "Bidder 1", not "Bidder 3".

For GetMyeBayBuying only, when bidding on items listed on the UK and AU sites: UserID is replaced with the string "High Bidder".

Smallest amount the next bid on the item can be. Returns same value as Item.StartPrice (if no bids have yet been placed) or CurrentPrice plus BidIncrement (if at least one bid has been placed). Only applicable to auction listings. Returns null for fixed-price and Ad type listings.

In multi-variation listings, this value matches the lowest-priced variation that is still available for sale.

Smallest amount the next bid on the item can be. Returns same value as Item.StartPrice (if no bids have yet been placed) or CurrentPrice plus BidIncrement (if at least one bid has been placed). Only applicable to auction listings. Returns null for fixed-price and Ad type listings.

In multi-variation listings, this value matches the lowest-priced variation that is still available for sale.

This container is only returned if the buyer is attempting to bid on an auction item. To bid on an auction item, the buyer sets the value of the Offer.Action field to Bid, and sets the maximum bid amount in the Offer.MaxBid field.

The SuggestedBidValues container consists of an array of incremental bid values (up to the dollar value in the Offer.MaxBid field) that eBay will bid on behalf of the buyer each time that buyer is outbid for the auction item.

The SuggestedBidValues container is only returned if the buyer is attempting to bid on an auction item. A BidValue field is returned for each incremental bid value (up to the dollar value specified in the Offer.MaxBid field in the request) that eBay will bid on behalf of the buyer each time that buyer is outbid for the auction item. How many BidValue fields that appear will depend on the current winning bid amount, the required bid increment, and the buyer's specified max bid amount.

The SuggestedBidValues container is only returned if the buyer is attempting to bid on an auction item. A BidValue field is returned for each incremental bid value (up to the dollar value specified in the Offer.MaxBid field in the request) that eBay will bid on behalf of the buyer each time that buyer is outbid for the auction item. How many BidValue fields that appear will depend on the current winning bid amount, the required bid increment, and the buyer's specified max bid amount.

Unique identifier for an eBay order line item (transaction). The TransactionID field is only returned if the Offer.Action field was set to Purchase in the input and the purchase was successful. A Purchase action in PlaceOffer can be used for a fixed-price listing, or for an auction listing where the Buy It Now option is available.Max length: 19 (Note: TransactionIDs are usually 9 to 12 digits.) .

A token representing the application-level acknowledgement code that indicates the response status (e.g., success). The AckCodeType list specifies the possible values for the Ack field.

Applicable values:

CustomCode

(out) Reserved for internal or future use.

Failure

(out) This value indicates that the call request processing failed.

Success

(out) This value indicates that the call request was processed successfully without any issues.

Warning

(out) This value indicates that the call request was successful, but processing was not without any issues. These issues can be checked in the Errors container, that will also be returned when one or more known issues occur with the call request.

This container is conditionally returned in the PlaceOffer call response if eBay wants to challenge the user making the call to ensure that the call is being made by a real user and not a bot. This container consist of an encrypted token, the URL of the image that should be displayed to the user, or the URL of an audio clip for sight-impaired users. After receiving this data in the response, the caller must make another PlaceOffer call, this time passing in the encrypted token and one of the URLs that was received in the previous call response.

This string value is a URL to an audio clip that eBay generates and returns in the PlaceOffer call response when eBay is requiring that the user supply an authentication token and URL in order for eBay to process the PlaceOffer call. As soon as a user gets a BotBlock container returned in the PlaceOffer call response, that user should grab the authentication token and this BotBlockAudioUrl and then run another PlaceOffer call, but this time using the BotBlock container and passing in the authentication token and this URL value in the BotBlockUserInput field.

Note: This field will generally only be returned for site-impaired users. If this field is not returned, but the BotBlockUrl field is returned instead, the BotBlockUrl value should be passed into the BotBlockUserInput field of the subsequent PlaceOffer call instead.

This string value is an encrypted token that eBay generates and returns in the BotBlock.BotBlockToken field of the PlaceOffer call response when eBay is requiring that the user supply an authentication token and URL in order for eBay to process the PlaceOffer call. As soon as a user gets a BotBlock container returned in the PlaceOffer call response, that user should grab the authentication token and the URL and then run another PlaceOffer call, but this time using the BotBlock container and passing in the authentication token and the URL values.

This string value is a URL to an image that eBay generates and returns in the PlaceOffer call response when eBay is requiring that the user supply an authentication token and URL in order for eBay to process the PlaceOffer call. As soon as a user gets a BotBlock container returned in the PlaceOffer call response, that user should grab the authentication token and this BotBlockUrl and then run another PlaceOffer call, but this time using the BotBlock container and passing in the authentication token and this URL value in the BotBlockUserInput field. For site-impaired users, the BotBlockAudioUrl field might be returned instead, in which case, the BotBlockAudioUrl value should be passed into theBotBlockUserInput field instead.

This refers to the specific software build that eBay used when processing the request and generating the response. This includes the version number plus additional information. eBay Developer Support may request the build information when helping you resolve technical issues.

Most Trading API calls support a MessageID element in the request and a CorrelationID element in the response. If you pass in a MessageID in a request, the same value will be returned in the CorrelationID field in the response. Pairing these values can help you track and confirm that a response is returned for every request and to match specific responses to specific requests. If you do not pass a MessageID value in the request, CorrelationID is not returned.

Note:GetCategories is designed to retrieve very large sets of metadata that change once a day or less often. To improve performance, these calls return cached responses when you request all available data (with no filters). When this occurs, the MessageID and CorrelationID fields aren't applicable. However, if you specify an input filter to reduce the amount of data returned, the calls retrieve the latest data (not cached). When this occurs, MessageID and CorrelationID are applicable.

API errors are divided between two classes: system errors and request errors.

Applicable values:

CustomCode

(out) Reserved for internal or future use.

RequestError

(out) An error has occurred either as a result of a problem in the sending application or because the application's end-user has attempted to submit invalid data (or missing data). In these cases, do not retry the request. 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. 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 application or data is resolved, resend the request to eBay with the corrected data.

SystemError

(out) 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.

Code so that your app gracefully handles any future changes to this list.

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. See the "Errors by Number" document.

Indicates whether the error is a severe error (causing the request to fail) or an informational error (a warning) that should be communicated to the user.

Applicable values:

CustomCode

(out) Reserved for internal or future use.

Error

(out) 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.

If the source of the problem is within the application (such as a missing required element), 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, 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.

(out) 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.

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.

Code so that your app gracefully handles any future changes to this list.

Expiration date of the user's authentication token. Only returned within the 7-day period prior to a token's expiration. To ensure that user authentication tokens are secure and to help avoid a user's token being compromised, tokens have a limited life span. A token is only valid for a period of time (set by eBay). After this amount of time has passed, the token expires and must be replaced with a new token.

Supplemental information from eBay, if applicable. May elaborate on errors (such as how a listing violates eBay policies) or provide useful hints that may help a seller increase sales. This data can accompany the call's normal data result set or a result set that contains only errors.

Applications must recognize when the Message field is returned and provide a means to display the listing hints and error message explanations to the user.

The string can return HTML, including TABLE, IMG, and HREF elements. In this case, an HTML-based application should be able to include the HTML as-is in the HTML page that displays the results. A non-HTML application would need to parse the HTML and convert the table elements and image references into UI elements particular to the programming language used. As usual for string data types, the HTML markup elements are escaped with character entity references (e.g.,<table><tr>...).

This value represents the date and time when eBay processed the request. The time zone of this value is GMT and the format is the ISO 8601 date and time format (YYYY-MM-DDTHH:MM:SS.SSSZ). See the Time Values section in the eBay Features Guide for information about this time format and converting to and from the GMT time zone.

Note:GetCategories and other Trading API calls are designed to retrieve very large sets of metadata that change once a day or less often. To improve performance, these calls return cached responses when you request all available data (with no filters). When this occurs, this time value reflects the time the cached response was created. Thus, this value is not necessarily when the request was processed. However, if you specify an input filter to reduce the amount of data returned, the calls retrieve the latest data (not cached). When this occurs, this time value does reflect when the request was processed.

The version of the response payload schema. Indicates the version of the schema that eBay used to process the request. See the Standard Data for All Calls section in the eBay Features Guide for information on using the response version when troubleshooting CustomCode values that appear in the response.

Bountiful Buyer has found a Harry Potter book she wants to buy. The book is listed as a Chinese auction with a Buy It Now option, so she can purchase the book with an Offer.Action of Purchase. Bountiful Buyer must know the Buy It Now price and item ID before calling PlaceOffer.

The required input for this sample includes the ItemID for the book, the Action with a value of Purchase, the MaxBid of 20.0 (the Buy It Now price of the book), in the currency of the listing site, and the Quantity value of 1 to purchase the single book.

Bountiful Buyer is very excited about the rare Harry Potter that she has found on eBay and wants to place a bid on the auction with the goal of purchasing the item.

Input

While the starting bid for the item is $1.00 US dollars, Bountiful Buyer has a feeling the volume is worth more than that. She places the first bid on the item, submitting the bid for $5.00 US dollars.

The bid is successful, which can be gained from the fact that the CurrentPrice returns with a value of 1.0 (the currencyID is set to USD, indicating the price is in US dollars). Bountiful Buyer now has the leading bid for the item.

User bountifulbuyer has searched for and found a listing with women's Polo tops in several colors. The listing organized the tops by using Item Variations.

She wants to buy two medium pink tops for $17.99 each and a medium black top for $20.00. As pink and black are different variations, she can't buy them at the same time. (She needs to use separate PlaceOffer requests.) In the sample below, she is purchasing the two pink tops only.

Input

The key inputs in this scenario are the ItemID and VariationSpecifics, which uniquely identify the variation she wants to purchase, along with the Quantity. (These details were determined based on a GetItem response.)

The application needs to completely specify all the variation's VariationSpecifics in order to uniquely identify that variation within the specified listing.

The important information in the response is TransactionID, which indicates that the purchase was recorded by eBay. She can use the value as input to GetItemTransactions to verify the amount paid (before shipping), the quantity purchased, and which variation she purchased.

Change History

SellingStatusType.SuggestedBidValues (added): Returns an array of suggested next bid values for an auction items.

7052011-01-19

OrderLineItemID (modified): The OrderLineItemID value is now returned in Production if the Purchase action is used and the purchase of the item is successful.

6912010-10-14

OrderLineItemID (added): A unique identifier for an eBay transaction, which is based upon the concatenation of ItemID and TransactionID with a hyphen in between these two IDs. OrderLineItemID is only returned if you set your request version to 705.

6752010-06-23

(doc change) The documentation for getting approval to use PlaceOffer
in production has been updated.

6212009-06-10

SellingStatus.HighBidder (doc change): For multiple-quantity fixed-price listings, the high bidder is only returned if there is just one transaction.

6152008-04-29

VariationSpecifics (added): Identifies a variation from a multi-variation listing.
Required when you want to purchase items from a variation.

Offer.Message (added): A message from the buyer to the seller. Applies if the buyer is using PlaceOffer to perform a best-offer-related action (best offer, counter-offer, etc.).

Offer.BestOfferID (added): A buyer specifies this value to accept or decline a seller's counter-offer.

BestOffer container (added): For a best-offer-related action of a buyer using PlaceOffer,
contains information about the best-offer-related action.

5352007-10-17

TransactionID (added): The TransactionID field can be returned if, on input, you specified Purchase in the Action field. The TransactionID field contains the ID of the transaction created. This field applies to the following types of listings: FixedPriceItem and StoresFixedPrice. This field also applies to Chinese BIN if you specified Purchase on input.

5192007-06-27

AffiliateTrackingDetails, PlaceOfferRequest.BotBlock, PlaceOfferResponse.BotBlock (added): These containers are for affiliate tracking and for handling a botblock challenge.

5172007-06-13

EndUserIP (added): EndUserIP is used to specify the public IP address of the machine from which the request is sent.
Additionally, in the Sandbox (test) environment, you can evaluate PlaceOffer.