PlaceOffer
Use this call to place a bid or a Best Offer on a listing, or to make a purchase. Note that this call cannot be used to purchase items that require immediate payment.
Usage Details
Note: If you already have been granted access, and are unclear about the policies, please file a support ticket at https://developer.ebay.com/support/developersupport/request. |
In an auction listing with a Buy It Now option, PlaceOffer can be
used to buy the item immediately, foregoing the bidding process.
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.
Note: eBay is no longer accepting applications.
PlaceOffer Policies and Guidelines
Partners approved by the eBay Partner Network are required to pass the eBay Developer Support review. You should reread the policies below because these must be followed, and you should 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. Note: eBay is no longer accepting applications.
Please 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 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:
- Title
- Description
- Photo(s), if suitable for display screen
- Current price and bidding information (i.e., reserve price status)
- Seller ID and feedback score
- Shipping information
- Payment options
You should also review the documentation for all PlaceOffer error codes and provide messaging as needed to the user when your application receives errors. See The Top Error Codes Returned for PlaceOffer
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.
To invoke a CAPTCHA challenge to test BotBlock, you can use GetChallengeToken.
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.
Note: eBay is no longer accepting applications.
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:
<?xml version="1.0" encoding="utf-8" ?> <eBay> <EBayTime>2007-06-02 20:03:49</EBayTime> <BotBlock> <BotBlockToken>FeIOAAAAAAA=</BotBlockToken> <BotBlockAudioUrl>Http://cgi.ebay.com/ws/eBayISAPI.dll?FetchAudioCaptcha& tokenString=FeIOAAAAAAA%3D&site_id=0&co_partnerId=0</BotBlockAudioUrl> <BotBlockURL>http://cgi.ebay.com/ws/eBayISAPI.dll?LoadBotImage& tokenString=FeIOAAAAAAA%3D</BotBlockURL> </BotBlock> </eBay>
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: a 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.
Related Information
See:
Best Offer
API License Agreement
eBay User Agreement
PlaceOffer API License Agreement Addendum
API Logo Usage Requirements
Filing a Support Ticket
eBay Partner Network
Output Detail Controls Samples Change History |
Input
See also Samples.
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.
The XML prototype does not include requester credentials. This is a documentation limitation only (see Standard Requester Credentials for Making Calls).
<?xml version="1.0" encoding="utf-8"?> <PlaceOfferRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <!-- Call-specific Input Fields --> <AffiliateTrackingDetails> AffiliateTrackingDetailsType <AffiliateUserID> string </AffiliateUserID> <ApplicationDeviceType> ApplicationDeviceTypeCodeType </ApplicationDeviceType> <TrackingID> string </TrackingID> <TrackingPartnerCode> string </TrackingPartnerCode> </AffiliateTrackingDetails> <BlockOnWarning> boolean </BlockOnWarning> <ItemID> ItemIDType (string) </ItemID> <Offer> OfferType <Action> BidActionCodeType </Action> <BestOfferID> BestOfferIDType (string) </BestOfferID> <MaxBid> AmountType (double) </MaxBid> <Message> string </Message> <Quantity> int </Quantity> <UserConsent> boolean </UserConsent> </Offer> <VariationSpecifics> NameValueListArrayType <NameValueList> NameValueListType <Name> string </Name> <Value> string </Value> <!-- ... more Value values allowed here ... --> </NameValueList> <!-- ... more NameValueList nodes allowed here ... --> </VariationSpecifics> <!-- Standard Input Fields --> <BotBlock> BotBlockRequestType <BotBlockToken> string </BotBlockToken> <BotBlockUserInput> string </BotBlockUserInput> </BotBlock> <EndUserIP> string </EndUserIP> <ErrorLanguage> string </ErrorLanguage> <InvocationID> UUIDType (string) </InvocationID> <MessageID> string </MessageID> <Version> string </Version> <WarningLevel> WarningLevelCodeType </WarningLevel> </PlaceOfferRequest>
Argument | Type | Occurrence | Meaning |
---|
Call-specific Input Fields [Jump to standard fields] |
AffiliateTrackingDetails | AffiliateTrackingDetailsType | Optional |
Container for affiliate-related tags, which enable the tracking of user activity. If you include the AffiliateTrackingDetails container 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.
See eBay Partner Network. |
AffiliateTrackingDetails .AffiliateUserID |
string | Conditional |
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. |
AffiliateTrackingDetails .ApplicationDeviceType |
ApplicationDeviceTypeCodeType | Conditional |
Note: If you are using affiliate tracking, this field is required. Type of device or platform from which the call originated.
Applicable values: |
AffiliateTrackingDetails .TrackingID |
string | Conditional | 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. |
AffiliateTrackingDetails .TrackingPartnerCode |
string | Conditional |
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 is valid: 9 = eBay Partner Network For information about the eBay Partner Network, see eBay Partner Network. See eBay Partner Network. |
BlockOnWarning | boolean | Optional |
If a warning message is generated when the call is made, this BlockOnWarning will block the bid/buy action if set to true . If BlockOnWarning is false or omitted, the bid/buy action is allowed, regardless of whether or not a warning message occurs. Default: False. |
ItemID | ItemIDType (string) | Required |
Unique identifier that identifies the listing for which the action is being submitted. For a multiple-variation listing, you must also identify the specific variation within that listing using the VariationSpecifics container. |
Offer | OfferType | Required | This container specifies the type of offer being made for the listing specified in the ItemID field. The Offer.Action is used to set the action that is being taken on the listing. |
Offer.Action | BidActionCodeType | Required |
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 a seller-counter-offer, etc.) using the GetBestOffers call. See Best Offer for information about Best Offer-enabled listings and about GetBestOffers.
Applicable values: See Action. |
Offer.BestOfferID | BestOfferIDType (string) | Conditional | The unique identifier of a Best Offer on an item. This value must be specified as input to PlaceOffer if a buyer is performing any action against a Best Offer or Counter Offer. |
Offer.MaxBid | AmountType (double) | Required | 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. |
Offer.Message | string | Optional | 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.Quantity | int | Required | Specifies the quantity of items from the specified listing that the user tendering the offer intends to purchase, bid on, or make a Best Offer on. For auctions, the value is always 1 . For multiple-quantity listings, this value must be greater than zero but not exceeding the quantity available for sale in the listing. |
Offer.UserConsent | boolean | Optional |
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.
|
VariationSpecifics | NameValueListArrayType | Conditional | This container is used to identify a specific variation within a multiple-variation listing identified by the ItemID value. This container is required when attempting to perform an action on a multiple-variation listing. |
VariationSpecifics .NameValueList |
NameValueListType | Conditional,
repeatable: [0..*] |
For the AddItem family of calls: Contains the name and value(s) for an Item Specific. Only required when the ItemSpecifics container is specified. For the AddFixedPriceItem family of calls: The same NameValueList schema is used for the ItemSpecifics node, the VariationSpecifics node, and the VariationSpecifcsSet node. If the listing has variations, any name that you use in the VariationSpecifics and VariationSpecificsSet nodes can't be used in the ItemSpecifics node. When you list with Item Variations:
For PlaceOffer: Required if the item being purchased includes Item Variations. For AddToWatchList and RemoveFromWatchList: The ItemID value of the multiple-variation listing and the name-value pair to identify each variation in the listing are required. Note: As of August 30, 2018, California will require sellers to display a Proposition 65 warning on online retail sites if products contain chemicals and/or substances that may impact the health of California buyers. This requirement is applicable to most eBay US categories, including eBay Motors, Motors Parts & Accessories, and catalog-enabled categories. The warning message can be customized by the seller, but should contain the following basic information:
|
VariationSpecifics .NameValueList.Name |
string | Conditional |
Depending on the call and context, this value is either a name of an Item/Variation Specific, or a Parts Compatibility name. For the AddItem and AddFixedPriceItem families of calls: In the Item.ItemSpecifics context, the value in this field will either be the name of a required/recommended/optional item specific name for the category, or it may be a seller's customized item specific name. 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 PlaceOffer: Required if the line item being purchased is an item variation within a multiple-variation listing. Note: For required and recommended item specifics that are returned in the getItemAspectsForCategory method of the Taxonomy API, the seller should pass in the name of these item specifics just as they are shown in the getItemAspectsForCategory response. Similarly, for catalog-enabled categories, the seller should pass in the name of instance aspects just as they are shown in the getItemAspectsForCategory response. Instance aspects are additional details unique to a specific item or listing that a seller can include along with the product aspects that are already defined in the eBay catalog product associated with the listing. Instance aspects common to many catalog-enabled categories include 'Bundle Description' and 'Modification Description'. eBay US sellers who ship to California are required to pass in a 'California Prop 65 Warning' item specific if the item in the listing contains one or more chemicals known to be harmful to human health. This item specific is passed at the listing level for both single-variation and multiple-variation listings. The 'California Prop 65 Warning' is considered an instance specific because it will be retained on the listing even when the seller lists using an eBay catalog product. The 'California Prop 65 Warning' may be applicable in most eBay US categories, including eBay Motors, Motors Parts & Accessories, and catalog-enabled categories. 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. |
VariationSpecifics .NameValueList.Value |
string | Conditional,
repeatable: [0..*] |
Depending on the call and context, this value is either the value of an Item/Variation Specific, a Parts Compatibility value, or a product identifier. For the AddItem family of calls: Multiple values can only be specified for an Item Specific if the itemToAspectCardinality field of the getItemAspectsForCategory method shows a value of MULTI . If an item specific only supports a single value, only the first item specific value specified in the request will be used. 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 PlaceOffer: Required if the line item being purchased is an item variation within a multiple-variation listing. Note: The standard maximum length for the value of an item specific is 65, but the maximum allowed length increases for instance aspects such as 'Bundle Description' and 'Modification Description'. For item specifics with max lengths greater than 65, the actual max length will be returned in a corresponding aspectMaxLength field. The maximum allowed length for the new 'California Prop 65 Warning' item specific is 800 characters. For more information about the 'California Prop 65 Warning' item specific, see the ItemSpecifics.NameValueList field description. Max length: 65 (but longer for some instance aspects, including 800 for 'California Prop 65 Warning'). |
Standard Input Fields |
BotBlock | BotBlockRequestType | Conditional | 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. | ||||||||||||||||||||||||||||||||||||||||
BotBlock.BotBlockToken | string | Conditional | 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. | ||||||||||||||||||||||||||||||||||||||||
BotBlock.BotBlockUserInput | string | Conditional | 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. | ||||||||||||||||||||||||||||||||||||||||
EndUserIP | string | Required | 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). | ||||||||||||||||||||||||||||||||||||||||
ErrorLanguage | string | Optional |
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. Below are some examples from different countries.
|
||||||||||||||||||||||||||||||||||||||||
InvocationID | UUIDType (string) | Optional |
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. |
||||||||||||||||||||||||||||||||||||||||
MessageID | string | Optional |
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. |
||||||||||||||||||||||||||||||||||||||||
Version | string | Conditional |
The version number of the API code that you are programming against (e.g., 1149). The version you specify for a call has these basic effects:
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.) See:
|
||||||||||||||||||||||||||||||||||||||||
WarningLevel | WarningLevelCodeType | Optional |
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 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 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.See Warning Level. |
Input Detail Controls Samples Change History |
Output
See also Samples.
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).
<?xml version="1.0" encoding="utf-8"?> <PlaceOfferResponse xmlns="urn:ebay:apis:eBLBaseComponents"> <!-- Call-specific Output Fields --> <BestOffer> BestOfferType <BestOfferID> BestOfferIDType (string) </BestOfferID> <Status> BestOfferStatusCodeType </Status> </BestOffer> <OrderLineItemID> string </OrderLineItemID> <SellingStatus> SellingStatusType <ConvertedCurrentPrice currencyID="CurrencyCodeType"> AmountType (double) </ConvertedCurrentPrice> <CurrentPrice currencyID="CurrencyCodeType"> AmountType (double) </CurrentPrice> <HighBidder> UserType <UserID> UserIDType (string) </UserID> </HighBidder> <MinimumToBid currencyID="CurrencyCodeType"> AmountType (double) </MinimumToBid> <ReserveMet> boolean </ReserveMet> <SuggestedBidValues> SuggestedBidValueType <BidValue currencyID="CurrencyCodeType"> AmountType (double) </BidValue> <!-- ... more BidValue values allowed here ... --> </SuggestedBidValues> </SellingStatus> <TransactionID> string </TransactionID> <!-- Standard Output Fields --> <Ack> AckCodeType </Ack> <BotBlock> BotBlockResponseType <BotBlockAudioUrl> string </BotBlockAudioUrl> <BotBlockToken> string </BotBlockToken> <BotBlockUrl> string </BotBlockUrl> </BotBlock> <Build> string </Build> <CorrelationID> string </CorrelationID> <DuplicateInvocationDetails> DuplicateInvocationDetailsType <DuplicateInvocationID> UUIDType (string) </DuplicateInvocationID> <InvocationTrackingID> string </InvocationTrackingID> <Status> InvocationStatusType </Status> </DuplicateInvocationDetails> <Errors> ErrorType <ErrorClassification> ErrorClassificationCodeType </ErrorClassification> <ErrorCode> token </ErrorCode> <ErrorParameters ParamID="string"> ErrorParameterType <Value> string </Value> </ErrorParameters> <!-- ... more ErrorParameters nodes allowed here ... --> <LongMessage> string </LongMessage> <SeverityCode> SeverityCodeType </SeverityCode> <ShortMessage> string </ShortMessage> </Errors> <!-- ... more Errors nodes allowed here ... --> <HardExpirationWarning> string </HardExpirationWarning> <Message> string </Message> <Timestamp> dateTime </Timestamp> <Version> string </Version> </PlaceOfferResponse>
Return Value | Type | Occurrence | Meaning |
---|
Call-specific Output Fields [Jump to standard fields] |
BestOffer | BestOfferType | Conditionally | Container consisting of the status for a Best Offer. This container is only returned if applicable based on the listing and the value set for Offer.Action field in the request. |
BestOffer.BestOfferID | BestOfferIDType (string) | Conditionally | Unique identifier for a Best Offer. This identifier is created once a prospective buyer makes a Best Offer on an item. |
BestOffer.Status | BestOfferStatusCodeType | Conditionally |
The status of the Best Offer or counter offer. For PlaceOffer, the only applicable values are Accepted , AdminEnded , Declined , and Expired .
Applicable values: (Not all values in BestOfferStatusCodeType apply to this field.) Code so that your app gracefully handles any future changes to this list. |
OrderLineItemID | string | Conditionally |
OrderLineItemID is a unique identifier for an eBay order line item. 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. |
SellingStatus | SellingStatusType | Always | This container indicates the current bidding/purchase state of the order line item regarding the offer extended using PlaceOffer. The fields that are returned under this container will depend on the attempted action and the results of that action. |
SellingStatus .ConvertedCurrentPrice |
AmountType (double) | Conditionally |
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. |
SellingStatus .ConvertedCurrentPrice [ attribute currencyID ] |
CurrencyCodeType | Always |
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 a list of possible enumeration values, see CurrencyCodeType. |
SellingStatus.CurrentPrice | AmountType (double) | Always |
The current price of the item in the original listing currency. 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. |
SellingStatus.CurrentPrice [ attribute currencyID ] |
CurrencyCodeType | Always |
The current price of the item in the original listing currency. 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 a list of possible enumeration values, see CurrencyCodeType. |
SellingStatus.HighBidder | UserType | Conditionally |
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). |
SellingStatus.HighBidder .UserID |
UserIDType (string) | Conditionally |
Unique eBay user ID for the user. 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 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". For PlaceOffer, see also SellingStatus.HighBidder. |
SellingStatus.MinimumToBid | AmountType (double) | Conditionally |
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. |
SellingStatus.MinimumToBid [ attribute currencyID ] |
CurrencyCodeType | Always |
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. For a list of possible enumeration values, see CurrencyCodeType. |
SellingStatus.ReserveMet | boolean | Conditionally | Indicates whether the reserve price has been met for the listing. Returns true if the reserve price was met or no reserve price was specified. |
SellingStatus .SuggestedBidValues |
SuggestedBidValueType | Conditionally |
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. |
SellingStatus .SuggestedBidValues.BidValue |
AmountType (double) | Conditionally,
repeatable: [0..*] |
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. |
SellingStatus .SuggestedBidValues.BidValue [ attribute currencyID ] |
CurrencyCodeType | Always |
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. For a list of possible enumeration values, see CurrencyCodeType. |
TransactionID | string | Conditionally |
Unique identifier for an eBay order line item. 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. The TransactionID value for auction listings is always 0 since there can be only one winning bidder/one sale for an auction listing. Note: Beginning in July 2024, non-zero transaction IDs will start being returned for auction listings. If necessary, update code to handle non-zero transaction IDs for auction transactions before this time. |
Standard Output Fields |
Ack | AckCodeType | Always |
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: (Not all values in AckCodeType apply to this field.) Code so that your app gracefully handles any future changes to this list. |
BotBlock | BotBlockResponseType | Conditionally | 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. |
BotBlock.BotBlockAudioUrl | string | Conditionally |
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. |
BotBlock.BotBlockToken | string | Conditionally | 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. |
BotBlock.BotBlockUrl | string | Conditionally | 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. |
Build | string | Always | 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. |
CorrelationID | string | Conditionally |
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. |
DuplicateInvocationDetails | DuplicateInvocationDetailsType | Conditionally | Information that explains a failure due to a duplicate InvocationID being passed in. |
DuplicateInvocationDetails .DuplicateInvocationID |
UUIDType (string) | Conditionally | This value represents the duplicate InvocationID or InvocationTrackingID that was used in the call request. |
DuplicateInvocationDetails .InvocationTrackingID |
string | Conditionally | This unique identifier identifies the business item the previous API invocation created. For example, the Item ID of the item created by an AddItem call. |
DuplicateInvocationDetails .Status |
InvocationStatusType | Conditionally |
This enumeration value indicates the status of the previous call that used the InvocationID or InvocationTrackingID specified in the DuplicateInvocationID.
Applicable values: Code so that your app gracefully handles any future changes to this list. |
Errors | ErrorType | Conditionally,
repeatable: [0..*] |
A list of application-level errors (if any) that occurred when eBay processed the request. |
Errors.ErrorClassification | ErrorClassificationCodeType | Conditionally |
API errors are divided between two classes: system errors and request errors.
Applicable values: Code so that your app gracefully handles any future changes to this list. |
Errors.ErrorCode | token | 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.
See Errors By Number. |
Errors.ErrorParameters | ErrorParameterType | Conditionally,
repeatable: [0..*] |
This optional element carries a list of context-specific error variables that indicate details about the error condition. These are useful when multiple instances of ErrorType are returned. |
Errors.ErrorParameters [ attribute ParamID ] |
string | Conditionally | This optional element carries a list of context-specific error variables that indicate details about the error condition. These are useful when multiple instances of ErrorType are returned. |
Errors.ErrorParameters.Value | string | Conditionally | This is the value of the request parameter noted in the ParamID attribute. So, if the ParamID value was ItemID, the value in this field would be the actual value of that ItemID. |
Errors.LongMessage | string | Conditionally | A more detailed description of the condition that raised the error. |
Errors.SeverityCode | SeverityCodeType | Conditionally |
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: If the source of the problem is within the application (such as a missing required element), change the application before you retry the request.
See the Error handling section of the Making a Trading API call guide for more information. 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. |
Errors.ShortMessage | string | Conditionally | A brief description of the condition that raised the error. |
HardExpirationWarning | string | Conditionally | 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. |
Message | string | Conditionally |
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>...). |
Timestamp | dateTime | Always |
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. |
Version | string | Always | 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. |
Input Output Samples Change History |
Detail Controls
DetailLevel
This call does not support varying Detail Levels. You do not need to pass DetailLevel in the request.
Input Output Detail Controls Change History |
Samples
New to making API calls? Please see Making a 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.
Available samples:
- Basic Call ↓ - Purchase a Chinese auction item with a Buy It Now option.
- Bids on a Chinese auction ↓ - Places a bid on a Chinese auction item.
Purchase a Chinese auction item with a Buy It Now option.
Description
A potential buyer (b********r) 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
. The potential buyer must know the Buy It Now price and item ID before calling PlaceOffer.
Important: There a many rules and guidelines for using PlaceOffer, see Policies and Guidelines.
Input
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.
XML format.
<?xml version="1.0" encoding="utf-8"?>
<PlaceOfferRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>A*******3</eBayAuthToken>
</RequesterCredentials>
<EndUserIP>www.******.**.***</EndUserIP>
<ItemID>1**********4</ItemID>
<Offer>
<Action>Purchase</Action>
<Quantity>1</Quantity>
<MaxBid currencyID="USD">20.0</MaxBid>
</Offer>
</PlaceOfferRequest>
Output
The important information in the response is in SellingStatus. The SellingStatus.HighBidder.UserID indicates that Bountiful Buyer was successful in her purchase at the CurrentPrice of $20 US dollars.
XML format.
<PlaceOfferResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2019-11-06T17:35:23.110Z</Timestamp>
<Ack>Success</Ack>
<Version>1125</Version>
<Build>E1125_CORE_API_19070409_R1</Build>
<SellingStatus>
<ConvertedCurrentPrice currencyID="USD">20.0</ConvertedCurrentPrice>
<CurrentPrice currencyID="USD">20.0</CurrentPrice>
<HighBidder>
<UserID>b********r</UserID>
</HighBidder>
</SellingStatus>
<TransactionID>0</TransactionID>
</PlaceOfferResponse>
Places a bid on a Chinese auction item.
Description
A potential 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, the potential 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.
XML format.
<?xml version="1.0" encoding="utf-8"?>
<PlaceOfferRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>A*******3</eBayAuthToken>
</RequesterCredentials>
<EndUserIP>www.******.**.***</EndUserIP>
<ItemID>1**********2</ItemID>
<Offer>
<Action>Bid</Action>
<Quantity>1</Quantity>
<MaxBid currencyID="USD">5.00</MaxBid>
</Offer>
</PlaceOfferRequest>
Output
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). The potential buyer b********r now has the leading bid for the item.
XML format.
<PlaceOfferResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2019-11-06T17:35:23.110Z</Timestamp>
<Ack>Success</Ack>
<Version>1125</Version>
<Build>E1125_CORE_API_19070409_R1</Build>
<UsageData>MTMyOTUyMTQ2LzE0NjU3Ow**</UsageData>
<SellingStatus>
<ConvertedCurrentPrice currencyID="USD">1.0</ConvertedCurrentPrice>
<CurrentPrice currencyID="USD">1.0</CurrentPrice>
<HighBidder>
<UserID>b********r</UserID>
</HighBidder>
<MinimumToBid currencyID="USD">1.25</MinimumToBid>
</SellingStatus>
</PlaceOfferResponse>
Input Output Detail Controls Samples |
Change History
Change Date | Description |
---|---|
923 2015-05-15 |
|
705 2011-01-19 |
|
691 2010-10-14 |
|
675 2010-06-23 |
|
621 2009-06-10 |
|
615 2008-04-29 |
|
539 2007-11-14 |
|
535 2007-10-17 |
|
519 2007-06-27 |
|
517 2007-06-13 |
|