# Pickup details in several waves

October 14, 2026 · Webhooks

An order's pickup details can arrive in more than one wave, minutes apart. Every wave that fills a detail the order did not have sends its own `order.updated`.

## What changed

- **More than one `order.updated`.** The first wave keeps its id, `evt_7c21e4b9a0d3_updated`. Later waves are `evt_7c21e4b9a0d3_updated_2`, `evt_7c21e4b9a0d3_updated_3` and so on, so de-duplicating on `event_id` keeps every one, and `GET /v1/events?after=` with one of them resumes right after that wave. Each one carries `order.ready_eta` and `order.fulfillment` as the order read when it was written. See [More than one order.updated](https://developer.layout.link/reference/events#more-than-one-order-updated).
- **The pickup time, when the store gives one.** `ready_eta` can be null when the order is `placed` and fill in later, with an `order.updated`. When the store never states a time it stays null. Show it word for word; it is not a timestamp. See [Pickup time](https://developer.layout.link/reference/api#pickup-time).
- **`test_place_pickup_later`.** A sandbox test restaurant at 12 Sandbox Way. Its order is placed with no pickup details. About 5 seconds later the name, the order number and the instructions arrive with `order.updated`, and about 10 seconds after placement the pickup time arrives with a second one. See [Sandbox](https://developer.layout.link/reference/sandbox#the-test-restaurants).
- **Read the type.** `fulfillment.type` says how the person gets the order. Read it rather than assuming pickup.

## Why it matters

The pickup time is what the person needs to know when to walk over, and it is often the last detail a store states. With one event per wave, your product hears about it when it arrives instead of on whatever read happens next.

## What to do

Subscribe your endpoint to `order.updated` if it does not already, de-duplicate on `event_id`, and read the order again on every `order.updated`:

Then run an order at `test_place_pickup_later` and check that your product shows the pickup time when the second `order.updated` arrives.

## Breaking changes

None for a handler that de-duplicates on `event_id`. A handler that treated the order id and the event type together as one event, or that checked `event_id` against the old pattern, keeps only the first wave and drops the rest, often including the pickup time. Switch it to `event_id`. The `EventId` pattern in the OpenAPI spec now allows the `_2` suffix.
