Skip to content

Negotiation API — client.sell.negotiation

Version v1.1.2 · base path /sell/negotiation/v1 · async twin: the same methods on AsyncEbayClient, awaited.

Operations

Bases: BaseResource

find_eligible_items

find_eligible_items(*, limit: int | str | None = None, offset: int | str | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: Literal[False] = False) -> sell_negotiation_models.PagedEligibleItemCollection
find_eligible_items(*, limit: int | str | None = None, offset: int | str | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: Literal[True]) -> httpx.Response
find_eligible_items(*, limit: int | str | None = None, offset: int | str | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: bool = False) -> sell_negotiation_models.PagedEligibleItemCollection | httpx.Response

This method evaluates a seller's current listings and returns the set of IDs that are eligible for a seller-initiated discount offer to a buyer. A listing ID is returned only when one or more buyers have shown an interest in the listing.

send_offer_to_interested_buyers

send_offer_to_interested_buyers(*, body: CreateOffersRequest | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: Literal[False] = False) -> sell_negotiation_models.SendOfferToInterestedBuyersCollectionResponse
send_offer_to_interested_buyers(*, body: CreateOffersRequest | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: Literal[True]) -> httpx.Response
send_offer_to_interested_buyers(*, body: CreateOffersRequest | None = None, x_ebay_c_marketplace_id: str | None = None, raw_response: bool = False) -> sell_negotiation_models.SendOfferToInterestedBuyersCollectionResponse | httpx.Response

This method sends eligible buyers offers to purchase items in a listing at a discount. When a buyer has shown interest in a listing, they become "eligible" to receive a seller- initiated offer to purchase the item(s). Sellers use findEligibleItems to get the set of listings that have interested buyers.

Models

CurrencyCodeEnum

Bases: OpenStrEnum

aed class-attribute instance-attribute

aed = 'AED'

afn class-attribute instance-attribute

afn = 'AFN'

all class-attribute instance-attribute

all = 'ALL'

amd class-attribute instance-attribute

amd = 'AMD'

ang class-attribute instance-attribute

ang = 'ANG'

aoa class-attribute instance-attribute

aoa = 'AOA'

ars class-attribute instance-attribute

ars = 'ARS'

aud class-attribute instance-attribute

aud = 'AUD'

awg class-attribute instance-attribute

awg = 'AWG'

azn class-attribute instance-attribute

azn = 'AZN'

bam class-attribute instance-attribute

bam = 'BAM'

bbd class-attribute instance-attribute

bbd = 'BBD'

bdt class-attribute instance-attribute

bdt = 'BDT'

bgn class-attribute instance-attribute

bgn = 'BGN'

bhd class-attribute instance-attribute

bhd = 'BHD'

bif class-attribute instance-attribute

bif = 'BIF'

bmd class-attribute instance-attribute

bmd = 'BMD'

bnd class-attribute instance-attribute

bnd = 'BND'

bob class-attribute instance-attribute

bob = 'BOB'

brl class-attribute instance-attribute

brl = 'BRL'

bsd class-attribute instance-attribute

bsd = 'BSD'

btn class-attribute instance-attribute

btn = 'BTN'

bwp class-attribute instance-attribute

bwp = 'BWP'

byr class-attribute instance-attribute

byr = 'BYR'

bzd class-attribute instance-attribute

bzd = 'BZD'

cad class-attribute instance-attribute

cad = 'CAD'

cdf class-attribute instance-attribute

cdf = 'CDF'

chf class-attribute instance-attribute

chf = 'CHF'

clp class-attribute instance-attribute

clp = 'CLP'

cny class-attribute instance-attribute

cny = 'CNY'

cop class-attribute instance-attribute

cop = 'COP'

crc class-attribute instance-attribute

crc = 'CRC'

cup class-attribute instance-attribute

cup = 'CUP'

cve class-attribute instance-attribute

cve = 'CVE'

czk class-attribute instance-attribute

czk = 'CZK'

djf class-attribute instance-attribute

djf = 'DJF'

dkk class-attribute instance-attribute

dkk = 'DKK'

dop class-attribute instance-attribute

dop = 'DOP'

dzd class-attribute instance-attribute

dzd = 'DZD'

egp class-attribute instance-attribute

egp = 'EGP'

ern class-attribute instance-attribute

ern = 'ERN'

etb class-attribute instance-attribute

etb = 'ETB'

eur class-attribute instance-attribute

eur = 'EUR'

fjd class-attribute instance-attribute

fjd = 'FJD'

fkp class-attribute instance-attribute

fkp = 'FKP'

gbp class-attribute instance-attribute

gbp = 'GBP'

gel class-attribute instance-attribute

gel = 'GEL'

ghs class-attribute instance-attribute

ghs = 'GHS'

gip class-attribute instance-attribute

gip = 'GIP'

gmd class-attribute instance-attribute

gmd = 'GMD'

gnf class-attribute instance-attribute

gnf = 'GNF'

gtq class-attribute instance-attribute

gtq = 'GTQ'

gyd class-attribute instance-attribute

gyd = 'GYD'

hkd class-attribute instance-attribute

hkd = 'HKD'

hnl class-attribute instance-attribute

hnl = 'HNL'

hrk class-attribute instance-attribute

hrk = 'HRK'

htg class-attribute instance-attribute

htg = 'HTG'

huf class-attribute instance-attribute

huf = 'HUF'

idr class-attribute instance-attribute

idr = 'IDR'

ils class-attribute instance-attribute

ils = 'ILS'

inr class-attribute instance-attribute

inr = 'INR'

iqd class-attribute instance-attribute

iqd = 'IQD'

irr class-attribute instance-attribute

irr = 'IRR'

isk class-attribute instance-attribute

isk = 'ISK'

jmd class-attribute instance-attribute

jmd = 'JMD'

jod class-attribute instance-attribute

jod = 'JOD'

jpy class-attribute instance-attribute

jpy = 'JPY'

kes class-attribute instance-attribute

kes = 'KES'

kgs class-attribute instance-attribute

kgs = 'KGS'

khr class-attribute instance-attribute

khr = 'KHR'

kmf class-attribute instance-attribute

kmf = 'KMF'

kpw class-attribute instance-attribute

kpw = 'KPW'

krw class-attribute instance-attribute

krw = 'KRW'

kwd class-attribute instance-attribute

kwd = 'KWD'

kyd class-attribute instance-attribute

kyd = 'KYD'

kzt class-attribute instance-attribute

kzt = 'KZT'

lak class-attribute instance-attribute

lak = 'LAK'

lbp class-attribute instance-attribute

lbp = 'LBP'

lkr class-attribute instance-attribute

lkr = 'LKR'

lrd class-attribute instance-attribute

lrd = 'LRD'

lsl class-attribute instance-attribute

lsl = 'LSL'

ltl class-attribute instance-attribute

ltl = 'LTL'

lyd class-attribute instance-attribute

lyd = 'LYD'

mad class-attribute instance-attribute

mad = 'MAD'

mdl class-attribute instance-attribute

mdl = 'MDL'

mga class-attribute instance-attribute

mga = 'MGA'

mkd class-attribute instance-attribute

mkd = 'MKD'

mmk class-attribute instance-attribute

mmk = 'MMK'

mnt class-attribute instance-attribute

mnt = 'MNT'

mop class-attribute instance-attribute

mop = 'MOP'

mro_1 class-attribute instance-attribute

mro_1 = 'MRO'

mur class-attribute instance-attribute

mur = 'MUR'

mvr class-attribute instance-attribute

mvr = 'MVR'

mwk class-attribute instance-attribute

mwk = 'MWK'

mxn class-attribute instance-attribute

mxn = 'MXN'

myr class-attribute instance-attribute

myr = 'MYR'

mzn class-attribute instance-attribute

mzn = 'MZN'

nad class-attribute instance-attribute

nad = 'NAD'

ngn class-attribute instance-attribute

ngn = 'NGN'

nio class-attribute instance-attribute

nio = 'NIO'

nok class-attribute instance-attribute

nok = 'NOK'

npr class-attribute instance-attribute

npr = 'NPR'

nzd class-attribute instance-attribute

nzd = 'NZD'

omr class-attribute instance-attribute

omr = 'OMR'

pab class-attribute instance-attribute

pab = 'PAB'

pen class-attribute instance-attribute

pen = 'PEN'

pgk class-attribute instance-attribute

pgk = 'PGK'

php class-attribute instance-attribute

php = 'PHP'

pkr class-attribute instance-attribute

pkr = 'PKR'

pln class-attribute instance-attribute

pln = 'PLN'

pyg class-attribute instance-attribute

pyg = 'PYG'

qar class-attribute instance-attribute

qar = 'QAR'

ron class-attribute instance-attribute

ron = 'RON'

rsd class-attribute instance-attribute

rsd = 'RSD'

rub class-attribute instance-attribute

rub = 'RUB'

rwf class-attribute instance-attribute

rwf = 'RWF'

sar class-attribute instance-attribute

sar = 'SAR'

sbd class-attribute instance-attribute

sbd = 'SBD'

scr class-attribute instance-attribute

scr = 'SCR'

sdg class-attribute instance-attribute

sdg = 'SDG'

sek class-attribute instance-attribute

sek = 'SEK'

sgd class-attribute instance-attribute

sgd = 'SGD'

shp class-attribute instance-attribute

shp = 'SHP'

sll class-attribute instance-attribute

sll = 'SLL'

sos class-attribute instance-attribute

sos = 'SOS'

srd class-attribute instance-attribute

srd = 'SRD'

std class-attribute instance-attribute

std = 'STD'

syp class-attribute instance-attribute

syp = 'SYP'

szl class-attribute instance-attribute

szl = 'SZL'

thb class-attribute instance-attribute

thb = 'THB'

tjs class-attribute instance-attribute

tjs = 'TJS'

tmt class-attribute instance-attribute

tmt = 'TMT'

tnd class-attribute instance-attribute

tnd = 'TND'

top class-attribute instance-attribute

top = 'TOP'

try_ class-attribute instance-attribute

try_ = 'TRY'

ttd class-attribute instance-attribute

ttd = 'TTD'

twd class-attribute instance-attribute

twd = 'TWD'

tzs class-attribute instance-attribute

tzs = 'TZS'

uah class-attribute instance-attribute

uah = 'UAH'

ugx class-attribute instance-attribute

ugx = 'UGX'

usd class-attribute instance-attribute

usd = 'USD'

uyu class-attribute instance-attribute

uyu = 'UYU'

uzs class-attribute instance-attribute

uzs = 'UZS'

vef class-attribute instance-attribute

vef = 'VEF'

vnd class-attribute instance-attribute

vnd = 'VND'

vuv class-attribute instance-attribute

vuv = 'VUV'

wst class-attribute instance-attribute

wst = 'WST'

xaf class-attribute instance-attribute

xaf = 'XAF'

xcd class-attribute instance-attribute

xcd = 'XCD'

xof class-attribute instance-attribute

xof = 'XOF'

xpf class-attribute instance-attribute

xpf = 'XPF'

yer class-attribute instance-attribute

yer = 'YER'

zar class-attribute instance-attribute

zar = 'ZAR'

zmw class-attribute instance-attribute

zmw = 'ZMW'

zwl class-attribute instance-attribute

zwl = 'ZWL'

EligibleItem

Bases: EbayModel

listing_id class-attribute instance-attribute

listing_id = Field(None, alias='listingId', description='The unique eBay-assigned ID for an eBay listing. A listingId is assigned by eBay when a seller creates a listing with the Trading API.')

ErrorParameter

Bases: EbayModel

name class-attribute instance-attribute

name = Field(None, description='The object of the error.')

value class-attribute instance-attribute

value = Field(None, description='The value of the object.')

OfferStatusEnum

Bases: OpenStrEnum

pending class-attribute instance-attribute

pending = 'PENDING'

retracted class-attribute instance-attribute

retracted = 'RETRACTED'

expired class-attribute instance-attribute

expired = 'EXPIRED'

cancelled class-attribute instance-attribute

cancelled = 'CANCELLED'

countered class-attribute instance-attribute

countered = 'COUNTERED'

declined class-attribute instance-attribute

declined = 'DECLINED'

auto_declined class-attribute instance-attribute

auto_declined = 'AUTO_DECLINED'

auto_accepted class-attribute instance-attribute

auto_accepted = 'AUTO_ACCEPTED'

accepted class-attribute instance-attribute

accepted = 'ACCEPTED'

OfferTypeEnum

Bases: OpenStrEnum

seller_initiated_offer class-attribute instance-attribute

seller_initiated_offer = 'SELLER_INITIATED_OFFER'

PagedEligibleItemCollection

Bases: EbayModel

eligible_items class-attribute instance-attribute

eligible_items = Field(None, alias='eligibleItems', description='A list of items that are eligible for a seller-initiated offer to a buyer. Each element in the list contains the listing ID of a listed item. These IDs represent the listings for which buyers have shown an interest.')

href class-attribute instance-attribute

href = Field(None, description='The URI of the current page of results from the result set.')

limit class-attribute instance-attribute

limit = Field(None, description='The number of items returned on a single page from the result set. This value can be set in the request with the limit query parameter.')

next class-attribute instance-attribute

next = Field(None, description='The URI for the following page of results. This value is returned only if there is an additional page of results to display from the result set. Maximum length : 2048')

offset class-attribute instance-attribute

offset = Field(None, description='The number of results skipped in the result set before listing the first returned result. This value can be set in the request with the offset query parameter. Note: The items in a paginated result set use a zero-based list where the first item in the list has an offset of 0 .')

prev class-attribute instance-attribute

prev = Field(None, description='The URI for the preceding page of results. This value is returned only if there is a previous page of results to display from the result set. Maximum length : 2048')

total class-attribute instance-attribute

total = Field(None, description='The total number of items retrieved in the result set. If no items match the search criteria, the server returns the HTTP status code 204 No Content .')

TimeDurationUnitEnum

Bases: OpenStrEnum

year class-attribute instance-attribute

year = 'YEAR'

month class-attribute instance-attribute

month = 'MONTH'

day class-attribute instance-attribute

day = 'DAY'

hour class-attribute instance-attribute

hour = 'HOUR'

calendar_day class-attribute instance-attribute

calendar_day = 'CALENDAR_DAY'

business_day class-attribute instance-attribute

business_day = 'BUSINESS_DAY'

minute class-attribute instance-attribute

minute = 'MINUTE'

second class-attribute instance-attribute

second = 'SECOND'

millisecond class-attribute instance-attribute

millisecond = 'MILLISECOND'

User

Bases: EbayModel

masked_username class-attribute instance-attribute

masked_username = Field(None, alias='maskedUsername', description='The masked username is a username that has certain characters hidden for privacy of the user. Note: Effective September 26, 2025, select developers will no longer receive username data for U.S. users through this field. Instead, an immutable user ID will be returned in its place. For more information, please refer to Data Handling Compliance .')

Amount

Bases: EbayModel

currency class-attribute instance-attribute

currency = Field(None, description='The base currency applied to the value field to establish a monetary amount. The currency is represented as a 3-letter ISO4217 currency code. For example, the code for the Canadian Dollar is CAD . Default: The default currency of the eBay marketplace that hosts the listing.')

value class-attribute instance-attribute

value = Field(None, description='The monetary amount in the specified currency . Important! For listings on the following marketplaces, a comma ( , ) must be used as the decimal separator: France Canada (French Language) Germany Italy Spain All other sites should use a period ( . ) as the decimal separator. If the incorrect decimal separator is used, the decimal point will be ignored.')

Error

Bases: EbayModel

category class-attribute instance-attribute

category = Field(None, description='Identifies the type of erro.')

domain class-attribute instance-attribute

domain = Field(None, description='Name for the primary system where the error occurred. This is relevant for application errors.')

error_id class-attribute instance-attribute

error_id = Field(None, alias='errorId', description='A unique number to identify the error.')

input_ref_ids class-attribute instance-attribute

input_ref_ids = Field(None, alias='inputRefIds', description='An array of request elements most closely associated to the error.')

long_message class-attribute instance-attribute

long_message = Field(None, alias='longMessage', description='A more detailed explanation of the error.')

message class-attribute instance-attribute

message = Field(None, description="Information on how to correct the problem, in the end user's terms and language where applicable.")

output_ref_ids class-attribute instance-attribute

output_ref_ids = Field(None, alias='outputRefIds', description='An array of request elements most closely associated to the error.')

parameters class-attribute instance-attribute

parameters = Field(None, description='An array of name/value pairs that describe details the error condition. These are useful when multiple errors are returned.')

subdomain class-attribute instance-attribute

subdomain = Field(None, description='Further helps indicate which subsystem the error is coming from. System subcategories include: Initialization, Serialization, Security, Monitoring, Rate Limiting, etc.')

OfferedItem

Bases: EbayModel

discount_percentage class-attribute instance-attribute

discount_percentage = Field(None, alias='discountPercentage', description='This value denotes the percentage (as either a whole number or decimal value) that the listing in the offer will be discounted from its original listed price. The seller can specify either the exact price of the discounted items with the price field or they can use this field to specify the percentage that the listing will be discounted, but not both.')

listing_id class-attribute instance-attribute

listing_id = Field(None, alias='listingId', description='This value is a unique eBay-assigned ID that identifies the listing to which the offer pertains. A listingId value is generated by eBay when you list an item with the Trading API.')

price class-attribute instance-attribute

price = Field(None, description='This value denotes the final discounted price of the listing in the offer being made to the buyer. This value must be lower than the original price of the item as stated in the original listing.')

quantity class-attribute instance-attribute

quantity = Field(None, description='This integer value indicates the number of items in the eBay listing for which the offer is being made. The offer being made by the seller is an "all or nothing" offer, meaning the buyer must purchase the indicated quantity of items in order to receive the discount on the transaction. Default: 1')

TimeDuration

Bases: EbayModel

unit class-attribute instance-attribute

unit = Field(None, description='A time-measurement unit that specifies a singular period of time. A span of time is defined when you apply the value specified in the value field to the value specified for unit . Time-measurement units can be YEAR, MONTH, DAY, and so on. See TimeDurationUnitEnum for a complete list of possible time-measurement units.')

value class-attribute instance-attribute

value = Field(None, description='An integer that represents an amount of time, as measured by the time-measurement unit specified in the unit field.')

CreateOffersRequest

Bases: EbayModel

allow_counter_offer class-attribute instance-attribute

allow_counter_offer = Field(None, alias='allowCounterOffer', description="If set to true , the buyer is allowed to make a counter-offer to the seller's offer. Note: Currently, you must set this field to false ; counter-offers are not supported in this release. Default: false")

message class-attribute instance-attribute

message = Field(None, description='A seller-defined message related to the offer being made. This message is sent to the list of "interested" buyers. To increase the conversion rate of the offers a seller makes to buyers, eBay recommends you always add a customized message to your offers. Maximum length: 2,000 characters')

offer_duration class-attribute instance-attribute

offer_duration = Field(None, alias='offerDuration', description='Important! The offerDuration value will be set automatically based on the eBay marketplace, and each marketplace has one supported value. Due to this fact, we suggest that this container no longer be used. See Negotiation API requirements and restrictions for the offerDuration value for each marketplace. The length of time, in days, the offer is valid from when it is created.')

offered_items class-attribute instance-attribute

offered_items = Field(None, alias='offeredItems', description='An array of objects where each object contains the details of an offer and the ID of the listing on which the offer is being made. Note that the service does not currently support the creation of multiple offers with a single call to sendOfferToInterestedBuyer .')

Offer

Bases: EbayModel

allow_counter_offer class-attribute instance-attribute

allow_counter_offer = Field(None, alias='allowCounterOffer', description="If set to true , the buyer is allowed to make a counter-offer to the seller's offer.")

buyer class-attribute instance-attribute

buyer = Field(None, description='The buyer who has been sent the offer.')

creation_date class-attribute instance-attribute

creation_date = Field(None, alias='creationDate', description="The date and time when the seller's offer was created. The returned timestamp is formatted as an ISO 8601 string, which is based on the 24-hour Coordinated Universal Time (UTC) clock. Format: [YYYY]-[MM]-[DD]T[hh]:[mm]:[ss].[sss]Z Example: 2018-08-20T07:09:00.000Z")

initiated_by class-attribute instance-attribute

initiated_by = Field(None, alias='initiatedBy', description='The eBay UserName of the user (seller) who initiated the offer. Note: Effective September 26, 2025, select developers will no longer receive username data for U.S. users through this field. Instead, an immutable user ID will be returned in its place. For more information, please refer to Data Handling Compliance .')

last_modified_date class-attribute instance-attribute

last_modified_date = Field(None, alias='lastModifiedDate', description='The date and time when the offer was last modified. The returned timestamp is formatted as an ISO 8601 string.')

message class-attribute instance-attribute

message = Field(None, description='A seller-defined message related to the offer being made. This message is sent to the list of "interested" buyers along with the offer message from eBay.')

offer_duration class-attribute instance-attribute

offer_duration = Field(None, alias='offerDuration', description='The length of time that the offer is valid. The duration of the offer begins at the date and time denoted by creationDate . When the span of time specified by offerDuration passes beyond the creationDate , the offer expires.')

offered_items class-attribute instance-attribute

offered_items = Field(None, alias='offeredItems', description='The list of items associated with the offer. Currently, the offer list is restricted to a single offer.')

offer_id class-attribute instance-attribute

offer_id = Field(None, alias='offerId', description='A unique eBay-assigned identifier for the offer.')

offer_status class-attribute instance-attribute

offer_status = Field(None, alias='offerStatus', description='The current state, or status, of an offer. Status states include PENDING , COUNTERED , ACCEPTED , and DECLINED .')

offer_type class-attribute instance-attribute

offer_type = Field(None, alias='offerType', description='The type of offer being made.')

revision class-attribute instance-attribute

revision = Field(None, description='A unique, eBay-assigned ID for the revision of the offer.')

SendOfferToInterestedBuyersCollectionResponse

Bases: EbayModel

offers class-attribute instance-attribute

offers = Field(None, description='The offers container returns a list of the offers sent to buyers who have shown an interest in listings included in the offer.')