Checkout intents
Webhooks are sent when a checkout intent transitions between states. See the Checkout Intent Lifecycle for the full state machine.| Event | Description | State Transition |
|---|---|---|
checkout_intent.offer_retrieved | An offer is ready with pricing and availability details. | retrieving_offer → awaiting_confirmation |
checkout_intent.offer_failed | Offer retrieval failed (e.g., unsupported merchant, product unavailable). | retrieving_offer → failed |
checkout_intent.completed | The order was successfully placed and confirmed. | placing_order → completed |
checkout_intent.order_failed | Order placement failed after confirmation (e.g., out of stock, payment declined). | placing_order → failed |
Shipments
Shipment events are sent for completed orders (i.e. checkout intents in thecompleted state), and are fired whenever the corresponding shipment’s state changes.
| Event | Description | Occurs |
|---|---|---|
shipment.created | A shipment was created for an order. | When the merchant adds shipping info to a completed order for the first time. |
shipment.updated | A shipment was updated for an order. | Whenever a shipment is updated, e.g. when a tracking number becomes available or the parcel is on board a delivery vehicle. |
Products
Product events are sent when a merchant with a Rye connector app installed publishes a change to their product catalog.| Event | Description | Occurs |
|---|---|---|
product.updated | A product was created or modified. | When a product’s attributes, variants, pricing, or availability was changed by the merchant. |
product.removed | A product was removed from the catalog. | When a product is deleted or unpublished by the merchant. |
data field:
- For
product.updated,datacontains the fullProductobject as of the time the event was emitted. - For
product.removed,datais omitted — the product no longer exists to include.
product.updated payload:
product.removed payload:
Webhook endpoints
| Event | Description |
|---|---|
webhook_endpoint.verification_challenge | A verification challenge is sent to the webhook endpoint to verify that the endpoint is reachable and can receive webhooks. To pass verification, your endpoint must respond with a JSON response containing a challenge field with the value of the source.id field from the webhook payload. |

