What is an Offer?
An offer links two key pieces of information:- A
ProductClick— the click event metadata identifying who saw the product, when, and in what context. ProductInfo— the product details shown to the user, including pricing, imagery, and affiliate link.
OfferReference containing an integer id. This ID tracks the presentment in the system and is used to associate downstream events (clicks, signups, conversions) with the original product display.
Offer IDs are integers assigned by the Liquid Rewards system. Store the
OfferReference.id returned from each build call — you will need it when recording subsequent affiliate events.Offer Types
Liquid Rewards provides three offer endpoint variants depending on your display format:Single Offer
POST /offers/singleBuild one offer from a single product. Use this for inline product recommendations or one-at-a-time displays.Multi Offer
POST /offers/multiBatch-build multiple offers in a single request. Use this when rendering a product grid or list to minimize round-trips.Carousel Offer
POST /offers/carouselBuild one offer formatted for carousel display. Use this for horizontal scrolling product widgets.The OfferMessage Schema
All three offer endpoints accept anOfferMessage request body with the same structure.
product_click fields
The loyalty program identifier associated with this presentment. Determines which reward program the user earns under.
The email address of the user being shown the offer. Used for reward attribution.
The conversation ID for the current session. Must match the
convo_id used in chat and other session events. See Conversations for details.A unique identifier for this specific product presentment. Used to correlate the offer build with subsequent click and conversion events.
An identifier for the click event. Can be a UUID or any unique string you generate per click.
ISO 8601 timestamp for when the product was presented or clicked. Example:
2024-01-15T10:30:00Z.product_info fields
The display name of the product shown to the user.
The affiliate-tracked URL the user will be sent to upon clicking the product. This link includes affiliate tracking parameters.
A canonical product page URL (non-affiliate). Used for display or metadata purposes.
URL of the product image to display in the offer UI.
The numeric product value (regular retail price) used for reward calculation.
The formatted display price shown to the user (e.g.,
"$120.00").A short product description displayed in the offer card.
The cashback or rebate percentage the user earns for purchasing this product. Displayed as a reward incentive.
Must match
product_click.presentation_id. Links the product display record to the click event record.The merchant associated with this product.
Offer Response
A successful offer build returns one of two response shapes depending on whether the API processed the request synchronously or asynchronously.Synchronous: OfferReference
The system-assigned integer ID for this offer presentment. Store this value — it is used to reference the offer in downstream events.
Asynchronous: MessageAck
Identifies the acknowledgement type. Will be
"offer_ack" for offer builds.A unique identifier for the async message. Use this for tracing if you need to follow up with support.
The system target that received the message (e.g.,
"offers").Additional response payload. May be empty (
{}) for basic acknowledgements.When you receive a
MessageAck instead of an OfferReference, the offer has been queued for processing. The OfferReference.id will be available after processing completes. Design your integration to handle both response shapes.Retrying Offers
If an offer needs to be re-presented to a user — for example, after a session resume or a failed initial display — use the retry endpoint to regenerate the offer without creating a duplicate record.Path Parameters
The conversation ID for the session in which the offer was originally built.
The
presentation_id used when the offer was originally built.Query Parameters
The email address of the user associated with the offer.
The loyalty program identifier used in the original offer.
The click ID from the original offer’s
product_click.The original click timestamp in ISO 8601 format.