TBBN.Merchant Platform docs
WORKING

Listings

post/merchant/listings

Create or sync a listing. Upserts on (merchantId, merchantListingRef) — a repeat call with the same ref updates the existing listing rather than creating a duplicate. See docs/api/merchant-integration-guide.md "Sync your listings".

Parameters

optional

Request body

FieldTypeRequired
merchantIdstring (uuid)yes
merchantListingRefstringyes
sellerIdstring (uuid)yes
titlestringyes
categorystringyes
subcategorystring
brandstring
modelstring
sizestring
conditionstring
yearinteger
originalPricenumberyes
currencystringyes
visibilityPRIVATE | GLOBAL | BOTH | ENTERPRISEyes
listingTypeSALE | TRADE | BOTHyes
deliveryMethodLOCAL_PICKUP | SHIPPING | BOTH
preferredSpaceBranchIdstring (uuid)
merchantItemUrlstring (uri)
requestedAmountnumber
willingToPaynumber
notestring
imagesstring[]
wantsobject[]

Response (201)

FieldTypeRequired
idstring (uuid)
merchantIdstring,null (uuid)
merchantListingRefstringnull
sellerIdstring (uuid)
titlestring
categorystring
subcategorystringnull
brandstringnull
modelstringnull
sizestringnull
conditionstringnull
yearintegernull
originalPricenumber
currencystring
visibilityPRIVATE | GLOBAL | BOTH | ENTERPRISE
statusACTIVE | RESERVED | SOLD | UNAVAILABLE | DELETED
listingTypeSALE | TRADE | BOTH
deliveryMethodLOCAL_PICKUP | SHIPPING | BOTH |
preferredSpaceBranchIdstring,null (uuid)
merchantItemUrlstring,null (uri)
requestedAmountnumbernull
willingToPaynumbernull
notestringnull
imagesstring[]
wantsobject[]
createdAtstring (date-time)
updatedAtstring (date-time)
syncedAtstring (date-time)
deletedAtstring,null (date-time)
put/merchant/listings/{id}

Update a listing by id (partial — only supplied fields change)

Parameters

idpathrequired
optional

Request body

FieldTypeRequired
merchantIdstring (uuid)yes
merchantListingRefstringyes
sellerIdstring (uuid)yes
titlestringyes
categorystringyes
subcategorystring
brandstring
modelstring
sizestring
conditionstring
yearinteger
originalPricenumberyes
currencystringyes
visibilityPRIVATE | GLOBAL | BOTH | ENTERPRISEyes
listingTypeSALE | TRADE | BOTHyes
deliveryMethodLOCAL_PICKUP | SHIPPING | BOTH
preferredSpaceBranchIdstring (uuid)
merchantItemUrlstring (uri)
requestedAmountnumber
willingToPaynumber
notestring
imagesstring[]
wantsobject[]

Response (200)

FieldTypeRequired
idstring (uuid)
merchantIdstring,null (uuid)
merchantListingRefstringnull
sellerIdstring (uuid)
titlestring
categorystring
subcategorystringnull
brandstringnull
modelstringnull
sizestringnull
conditionstringnull
yearintegernull
originalPricenumber
currencystring
visibilityPRIVATE | GLOBAL | BOTH | ENTERPRISE
statusACTIVE | RESERVED | SOLD | UNAVAILABLE | DELETED
listingTypeSALE | TRADE | BOTH
deliveryMethodLOCAL_PICKUP | SHIPPING | BOTH |
preferredSpaceBranchIdstring,null (uuid)
merchantItemUrlstring,null (uri)
requestedAmountnumbernull
willingToPaynumbernull
notestringnull
imagesstring[]
wantsobject[]
createdAtstring (date-time)
updatedAtstring (date-time)
syncedAtstring (date-time)
deletedAtstring,null (date-time)
delete/merchant/listings/{id}

Soft-delete a listing

Parameters

idpathrequired
optional
post/merchant/listings/{id}/availability

Report an availability change. reservation-service is the primary caller for RESERVED during a trade session; merchants call this directly for SOLD/UNAVAILABLE from their own inventory changes outside of TBBN trades.

Parameters

idpathrequired
optional

Request body

FieldTypeRequired
statusACTIVE | RESERVED | SOLD | UNAVAILABLEyes

Response (200)

FieldTypeRequired
idstring (uuid)
merchantIdstring,null (uuid)
merchantListingRefstringnull
sellerIdstring (uuid)
titlestring
categorystring
subcategorystringnull
brandstringnull
modelstringnull
sizestringnull
conditionstringnull
yearintegernull
originalPricenumber
currencystring
visibilityPRIVATE | GLOBAL | BOTH | ENTERPRISE
statusACTIVE | RESERVED | SOLD | UNAVAILABLE | DELETED
listingTypeSALE | TRADE | BOTH
deliveryMethodLOCAL_PICKUP | SHIPPING | BOTH |
preferredSpaceBranchIdstring,null (uuid)
merchantItemUrlstring,null (uri)
requestedAmountnumbernull
willingToPaynumbernull
notestringnull
imagesstring[]
wantsobject[]
createdAtstring (date-time)
updatedAtstring (date-time)
syncedAtstring (date-time)
deletedAtstring,null (date-time)
put/merchant/listings/{id}/wants

Replace a listing's wants array (full replace, not merge) — see docs/business/glossary.md "Wants"

Parameters

idpathrequired
optional

Request body

FieldTypeRequired
wantsobject[]yes

Response (200)

get/v1/listings/{id}/wants

Read a listing's wants array

Parameters

idpathrequired

Response (200)

get/v1/listings/{id}

Get a listing

Parameters

idpathrequired

Response (200)

FieldTypeRequired
idstring (uuid)
merchantIdstring,null (uuid)
merchantListingRefstringnull
sellerIdstring (uuid)
titlestring
categorystring
subcategorystringnull
brandstringnull
modelstringnull
sizestringnull
conditionstringnull
yearintegernull
originalPricenumber
currencystring
visibilityPRIVATE | GLOBAL | BOTH | ENTERPRISE
statusACTIVE | RESERVED | SOLD | UNAVAILABLE | DELETED
listingTypeSALE | TRADE | BOTH
deliveryMethodLOCAL_PICKUP | SHIPPING | BOTH |
preferredSpaceBranchIdstring,null (uuid)
merchantItemUrlstring,null (uri)
requestedAmountnumbernull
willingToPaynumbernull
notestringnull
imagesstring[]
wantsobject[]
createdAtstring (date-time)
updatedAtstring (date-time)
syncedAtstring (date-time)
deletedAtstring,null (date-time)
get/v1/listings

Directory-lite listing read across all visibilities the caller is entitled to — full ranked search lives in Search/Matching

Parameters

categoryqueryoptional
merchantIdqueryoptional
visibilityqueryoptional
optional
optional

Response (200)

FieldTypeRequired
dataobject[]
nextCursorstringnull
post/v1/listings/individual

Self-service individual (non-Merchant) listing (Phase 26) — sellerId is resolved from the caller's own marketplace-member session, never the request body.

Parameters

optional

Request body

FieldTypeRequired
titlestringyes
categorystringyes
subcategorystring
brandstring
modelstring
sizestring
conditionstring
yearinteger
originalPricenumberyes
currencystringyes
listingTypeSALE | TRADE | BOTHyes
deliveryMethodLOCAL_PICKUP | SHIPPING | BOTH
preferredSpaceBranchIdstring (uuid)
requestedAmountnumber
willingToPaynumber
notestring
imagesstring[]
wantsobject[]

Response (200)

FieldTypeRequired
idstring (uuid)
merchantIdstring,null (uuid)
merchantListingRefstringnull
sellerIdstring (uuid)
titlestring
categorystring
subcategorystringnull
brandstringnull
modelstringnull
sizestringnull
conditionstringnull
yearintegernull
originalPricenumber
currencystring
visibilityPRIVATE | GLOBAL | BOTH | ENTERPRISE
statusACTIVE | RESERVED | SOLD | UNAVAILABLE | DELETED
listingTypeSALE | TRADE | BOTH
deliveryMethodLOCAL_PICKUP | SHIPPING | BOTH |
preferredSpaceBranchIdstring,null (uuid)
merchantItemUrlstring,null (uri)
requestedAmountnumbernull
willingToPaynumbernull
notestringnull
imagesstring[]
wantsobject[]
createdAtstring (date-time)
updatedAtstring (date-time)
syncedAtstring (date-time)
deletedAtstring,null (date-time)