Offer Data

Attributes on the offer payload body for events with the topic offer.updated. offer.updated is triggered when an offer is updated, including when the offer status changes, offerings are modified, or acceptance occurs.

id

The unique identifier for the offer.

orderIds

The unique identifiers of the associated orders created from an offer decision. Will be omitted/null if no order exists.

thirdPartyId

External system identifier for this offer. May be omitted or empty when not available.

customerName

The full name of the customer associated with this offer.

customerEmail

The email address of the customer associated with this offer.

customerPhone

The phone number of the customer associated with this offer.

fullAddress

The complete formatted address for the offer property.

line1

The first line of the property address (street address).

line2

The second line of the property address (unit, suite, etc.). May be omitted or empty when not applicable.

city

The city of the property address.

stateOrProvince

The state or province of the property address.

postalCode

The postal or ZIP code of the property address.

status

The current status of the offer.

Expected Offer Statuses

The following values are expected statuses of an offer. All offer statuses have a string type.
  • pending - The offer has been created but not yet sent to the customer.
  • awaiting_customer - The offer has been sent to the customer and is awaiting their response.
  • order_placed - The customer has accepted the offer and an order has been placed.
  • buyout_accepted - The customer has accepted a buyout offer.
  • expired - The offer has expired without customer action.
  • canceled - The offer has been canceled before completion. The offer has been canceled before completion.

acceptedByRole

The role of the person who accepted or processed the offer. Common values include “curator” or “customer”. Will be omitted/null if the offer has not been accepted.

selectedOffering

An array of selected offering objects, each containing the chosen products and any selected addons. This is offering that was chosen by the customer or by the curator on behalf of the customer. If the offer is in a status that is not Order placed, this will be omitted/null.

selectedOffering.products

Array of product selections within the selected offering.

selectedOffering.products.productId

The identifier of the selected product.

selectedOffering.products.curatorSelectedAddons

Array of addons included by the curator for this product selection. Each addon object contains addonId.

selectedOffering.products.customerSelectedAddons

Array of addons explicitly selected by the customer for this product selection. Each addon object contains addonId.

offerings

An array of offering options presented in this offer. When the offer is initially created and the status is Pending, Only the isIncluded product may be present. Upsells are generated asynchronously and may not be present until the offer is updated.

offerings.isIncluded

Boolean indicating whether this offering option is included in the selected offer.

offerings.products

Array of products that belong to this offering option.

offerings.products.productId

The identifier of a product associated with this offering option.

offerings.products.curatorSelectedAddons

Array of addons included by the curator for this offering product. Each addon object contains addonId.

buyoutAmountCents

The amount given to the customer for their buyout option on this offer, represented in cents.

creditAmountCents

The amount of credit applied to this offer, represented in cents. May be omitted/null when no credit is applied or when the offer has no upsells.

companySpendCents

The amount the company will spend on this offer, represented in cents.

customerSpendCents

The amount the customer will spend on this offer, represented in cents.

offerSentAt

The timestamp when the offer was sent to the customer in ISO 8601 format.

Example payload

{
  "topic": "offer.updated",
  "data": {
    "id": "test-offer-id",
    "orderIds": ["test-order-id"],
    "thirdPartyId": "test-third-party-id",
    "customerName": "Test Customer",
    "customerEmail": "test@test.com",
    "customerPhone": "(123) 456-7890",
    "fullAddress": "123 Main St, Anytown, CA 12345",
    "line1": "123 Main St",
    "line2": "",
    "city": "Anytown",
    "stateOrProvince": "CA",
    "postalCode": "12345",
    "status": "Order placed",
    "acceptedByRole": "curator",
    "selectedOffering": [
      {
        "products": [
          {
            "productId": "test-product-id",
            "curatorSelectedAddons": [{ "addonId": "addon-1" }],
            "customerSelectedAddons": [{ "addonId": "addon-2" }]
          }
        ]
      }
    ],
    "offerings": [
      {
        "isIncluded": true,
        "products": [
          {
            "productId": "test-product-id",
            "curatorSelectedAddons": [{ "addonId": "addon-1" }]
          }
        ]
      },
      {
        "isIncluded": false,
        "products": [
          {
            "productId": "test-product-id",
            "curatorSelectedAddons": []
          }
        ]
      }
    ],
    "buyoutAmountCents": 1000,
    "creditAmountCents": 1000,
    "companySpendCents": 1000,
    "customerSpendCents": 1000,
    "offerSentAt": "2025-08-19T00:00:00.000Z"
  }
}