Documentation Index
Fetch the complete documentation index at: https://docs-test.rye.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
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 the completed 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. |
Unlike checkout intent and shipment events, product events are snapshot events which include a data field:
- For
product.updated, data contains the full Product object as of the time the event was emitted.
- For
product.removed, data is omitted — the product no longer exists to include.
Example product.updated payload:
{
"id": "evt_rye-dev-store.myshopify.com:10501236982062_updated_developer_2070443601311540",
"object": "event",
"type": "product.updated",
"createdAt": "2026-04-23T02:42:24.042Z",
"source": {
"type": "product",
"id": "rye-dev-store.myshopify.com:10501236982062"
},
"data": {
"id": "rye-dev-store.myshopify.com:10501236982062",
"url": "https://rye-dev-store.myshopify.com/products/widget-pro",
"name": "Widget Pro",
"brand": "Acme",
"sku": "SKU-12345"
}
}
Example product.removed payload:
{
"id": "evt_rye-dev-store.myshopify.com:10501236982062_removed_developer_2070443601311540",
"object": "event",
"type": "product.removed",
"createdAt": "2026-04-23T02:42:24.042Z",
"source": {
"type": "product",
"id": "rye-dev-store.myshopify.com:10501236982062"
}
}
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. |