> ## Documentation Index
> Fetch the complete documentation index at: https://docs.listo.delivery/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Notes on the Listo Partner Delivery API:
> - Every endpoint is under `https://api.listo.delivery/v1/` and authenticates with a bearer API key.
> - This documentation site is at https://docs.listo.delivery. The full machine-readable reference is the OpenAPI document at https://api.listo.delivery/docs/openapi.yaml (served by the API host, not by this site).
> - Any page of this site is also available as raw markdown by appending `.md` to its URL, for example https://docs.listo.delivery/en/guides/webhooks.md. The index of every page is https://docs.listo.delivery/llms.txt and all of them in one file is https://docs.listo.delivery/llms-full.txt.
> - Every page is published in English under https://docs.listo.delivery/en/ and in Spanish under https://docs.listo.delivery/es/, with the same path after the language. The API reference is under https://docs.listo.delivery/api-reference/ in English and https://docs.listo.delivery/es/api-reference/ in Spanish.
> - To debug an integration yourself: `GET /v1/request_logs` lists the calls your keys made with what you sent and what was answered, `GET /v1/events` lists the events Listo emitted, `GET /v1/webhook_deliveries` lists every attempt to deliver them, `POST /v1/events/{id}/resend` sends one event again and `POST /v1/test_webhooks` sends a sample event (`"test": true`). The page https://docs.listo.delivery/en/guides/debugging describes them. A resent event is a snapshot from when it happened; `GET /v1/deliveries` is still how you recover current state.
> - Every error response has `error.doc_url`, a page that explains that error code and what to do, and `error.request_id`, the same value as the `X-Request-Id` response header. All the pages are listed at https://docs.listo.delivery/en/errors. Filter `GET /v1/request_logs` with `request_id` to read the logged call.
> - A `409 account_exists` from `POST /v1/stores` means the restaurant already has its own Listo account: connect it instead of creating it, as the page https://docs.listo.delivery/en/guides/connect-existing-account describes.
> - Every live store carries one Plan Listo, charged to the partner. The exception is a connected restaurant that had already paid its current month: it keeps paying its own plan until its next renewal, shown as `paid_by: "store"` with the handover date in `pending_paid_by_on`. A `402 plan_required` from a quote, a delivery create or a retry means the store's plan is not paid or has ended; the page https://docs.listo.delivery/en/guides/plan-and-billing describes the plan, the `plan` block on a store and how to end or restart it.
> - An AI assistant (Claude Code, Cursor, Codex) can act through the same API key at `https://api.listo.delivery/mcp`, an MCP server over Streamable HTTP authenticated with `Authorization: Bearer <API key>`. Every tool runs the matching `/v1/` endpoint, and each one that moves money first previews and then needs a confirmation token; the page https://docs.listo.delivery/en/guides/connect-ai-client lists the tools and describes the two steps.

# Changelog

> Every change to the Partner Delivery API, newest first.

Every change to the v1 contract, newest first. Each release says what
changed, some at length when the behaviour changed. The schema changes under a
release are collapsed and generated by comparing that release's OpenAPI document
against the one before it, so they say exactly what the API says and nothing
else.

Release numbers name a published version of the schema. You cannot select one:
every client always gets the latest.

Changes to v1 are additive, except a change marked **Breaking**, which we tell
you about before it ships. New fields and new enum values can appear at any
time, so ignore what you do not recognise rather than failing on it.

**1.34.0, 6 November 2026**

an error's doc\_url has no trailing slash, and the documentation moves to docs.listo.delivery

The `doc_url` of an error now has no trailing slash: `.../en/errors/not_found` instead of `.../en/errors/not_found/`. The documentation answers a page at the address without it, so use the value as it comes. The documentation now lives at [https://docs.listo.delivery](https://docs.listo.delivery), and the guide links inside the descriptions of this reference point there; the old addresses under `api.listo.delivery/docs` answer a permanent redirect to the same page, except the OpenAPI document, which stays at `https://api.listo.delivery/docs/openapi.yaml`. The description of the bearer authentication scheme now also says to try calls with a test key (no real courier is sent and no real money moves, but webhooks fire and the `dropoff.phone` you give can receive WhatsApp messages, so use your own number), and that a live key books and charges real deliveries. Nothing else changes.

**1.33.0, 6 November 2026**

shared types for every response, the webhook events as one union, and what the server enforces

The reference now describes every response and every request body with a named shared type (`Delivery`, `Store`, `Quote`, `Withdrawal`, `Error` and the rest) instead of a copy for each endpoint, so a client generated from it has one `Delivery` to handle everywhere. The six webhook events, and the events you read from `GET /v1/events`, `POST /v1/events/{event_id}/resend` and `POST /v1/test_webhooks`, are one `WebhookEvent` union that narrows on `type`. It also says what the server already sends and checks: a field that can be `null` is typed that way, the closed lists (payment methods, handoffs, cancellation reasons, access tiers, withdrawal kinds) are published as enums, the limits on a request (a tip up to 100000 centavos, a markup up to 1000000, a fee share from 0 to 100, latitude and longitude ranges, the length of an `external_id`, of the notes and of a refund reason) are published, `pickup_ready_at` on a create and a quote is a `date-time`, and every write operation lists the `403 read_only_key` it can answer. The endpoints that take no body (retries, the plan and its cancellation, the card onboarding) no longer list one. Latitude and longitude are published as double precision numbers (`format: double`), which is how the server sends them, so a generated client does not round a coordinate to 32 bits, and the list of delivery statuses now includes `awaiting_location`, the status of an order your store took through Listo's console or WhatsApp assistant while it waits for the customer to confirm the drop-off location. Nothing the API sends or accepts changes.

<details>
  <summary>Schema changes</summary>

  **GET /v1/balance**

  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * added the new `MXN` enum value to the `currency` response property for the response status `200`
  * added the new `below_minimum` enum value to the `same_day/unavailable_reason` response property for the response status `200`
  * added the new `cap_reached` enum value to the `same_day/unavailable_reason` response property for the response status `200`
  * added the new `undefined` enum value to the `same_day/unavailable_reason` response property for the response status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `same_day/due_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `same_day/next_window_opens_at` response's property `format` was narrowed from `none` to `date-time` for status `200`

  **POST /v1/connect\_requests**

  * request body became required
  * the response property `error/param` became nullable for the status `422`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `state` request property's maxLength was set to `255`
  * added the non-success response with the status `403`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `expires_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `url` response's property `format` was narrowed from `none` to `uri` for status `201`

  **POST /v1/connections**

  * request body became required
  * the response property `lat` became nullable for the status `201`
  * the response property `lng` became nullable for the status `201`
  * the `apt_unit` response's property `type` was widened from `null` to `string, null` for status `201`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `400`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `external_id` response's property `type` was widened from `null` to `string, null` for status `201`
  * the `lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `201`
  * the `lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `201`
  * the `pickup_notes` response's property `type` was widened from `null` to `string, null` for status `201`
  * added the new `active` enum value to the `plan/status` response property for the response status `201`
  * added the new `api_only` enum value to the `access_tier` response property for the response status `201`
  * added the new `awaiting_payment` enum value to the `plan/status` response property for the response status `201`
  * added the new `business_amount` enum value to the `default_fee_split_mode` response property for the response status `201`
  * added the new `canceled` enum value to the `plan/status` response property for the response status `201`
  * added the new `canceling` enum value to the `plan/status` response property for the response status `201`
  * added the new `customer_amount` enum value to the `default_fee_split_mode` response property for the response status `201`
  * added the new `full` enum value to the `access_tier` response property for the response status `201`
  * added the new `partner` enum value to the `billing` response property for the response status `201`
  * added the new `partner` enum value to the `plan/paid_by` response property for the response status `201`
  * added the new `past_due` enum value to the `plan/status` response property for the response status `201`
  * added the new `percent` enum value to the `default_fee_split_mode` response property for the response status `201`
  * added the new `store` enum value to the `billing` response property for the response status `201`
  * added the new `store` enum value to the `plan/paid_by` response property for the response status `201`
  * added the new `wallet` enum value to the `access_tier` response property for the response status `201`
  * added the non-success response with the status `403`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `400`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `plan/canceled_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `plan/current_period_ends_on` response's property `format` was narrowed from `none` to `date` for status `201`
  * the `plan/ends_on` response's property `format` was narrowed from `none` to `date` for status `201`
  * the `plan/next_charge_on` response's property `format` was narrowed from `none` to `date` for status `201`
  * the `plan/pending_paid_by_on` response's property `format` was narrowed from `none` to `date` for status `201`

  **GET /v1/deliveries**

  * the response property `data/items/cancellation/reason` became nullable for the status `200`
  * the response property `data/items/courier/location/updated_at` became nullable for the status `200`
  * the response property `data/items/courier/phone` became nullable for the status `200`
  * the response property `data/items/courier/plate` became nullable for the status `200`
  * the response property `data/items/dropoff/apt_unit` became nullable for the status `200`
  * the response property `data/items/dropoff/lat` became nullable for the status `200`
  * the response property `data/items/dropoff/lng` became nullable for the status `200`
  * the response property `data/items/order_value_cents` became nullable for the status `200`
  * the response property `data/items/pickup/lat` became nullable for the status `200`
  * the response property `data/items/pickup/lng` became nullable for the status `200`
  * the response property `data/items/verification/pincode` became nullable for the status `200`
  * the response property `error/param` became nullable for the status `422`
  * the `data/items/courier/location/lat` response's property `format` changed from `float` to `double` for status `200`
  * the `data/items/courier/location/lng` response's property `format` changed from `float` to `double` for status `200`
  * the `cursor` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `data/items/courier/location/updated_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `200`
  * the `data/items/dropoff/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `data/items/dropoff/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `data/items/pickup/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `data/items/pickup/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * added the new `MXN` enum value to the `data/items/currency` response property for the response status `200`
  * added the new `address_unreachable` enum value to the `data/items/failure_reason` response property for the response status `200`
  * added the new `api` enum value to the `data/items/origin` response property for the response status `200`
  * added the new `awaiting_location` enum value to the `data/items/status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `data/items/payment/status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `data/items/status` response property for the response status `200`
  * added the new `canceled` enum value to the `data/items/status` response property for the response status `200`
  * added the new `cancellation_fee` enum value to the `data/items/charges/items/type` response property for the response status `200`
  * added the new `card` enum value to the `data/items/payment/method` response property for the response status `200`
  * added the new `cash` enum value to the `data/items/payment/method` response property for the response status `200`
  * added the new `console` enum value to the `data/items/origin` response property for the response status `200`
  * added the new `courier` enum value to the `data/items/cancellation/party` response property for the response status `200`
  * added the new `courier_assigned` enum value to the `data/items/status` response property for the response status `200`
  * added the new `customer_canceled` enum value to the `data/items/cancellation/reason` response property for the response status `200`
  * added the new `customer_unavailable` enum value to the `data/items/failure_reason` response property for the response status `200`
  * added the new `delivered` enum value to the `data/items/status` response property for the response status `200`
  * added the new `delivery_failed` enum value to the `data/items/failure_reason` response property for the response status `200`
  * added the new `dispatching` enum value to the `data/items/status` response property for the response status `200`
  * added the new `en_route` enum value to the `data/items/status` response property for the response status `200`
  * added the new `item_unavailable` enum value to the `data/items/cancellation/reason` response property for the response status `200`
  * added the new `leave_at_door` enum value to the `data/items/dropoff/handoff` response property for the response status `200`
  * added the new `meet_at_door` enum value to the `data/items/dropoff/handoff` response property for the response status `200`
  * added the new `meet_outside` enum value to the `data/items/dropoff/handoff` response property for the response status `200`
  * added the new `no_courier` enum value to the `data/items/status` response property for the response status `200`
  * added the new `no_couriers_available` enum value to the `data/items/failure_reason` response property for the response status `200`
  * added the new `no_longer_needed` enum value to the `data/items/cancellation/reason` response property for the response status `200`
  * added the new `other` enum value to the `data/items/cancellation/reason` response property for the response status `200`
  * added the new `paid` enum value to the `data/items/payment/status` response property for the response status `200`
  * added the new `partially_refunded` enum value to the `data/items/payment/status` response property for the response status `200`
  * added the new `partner` enum value to the `data/items/cancellation/party` response property for the response status `200`
  * added the new `picking_up` enum value to the `data/items/status` response property for the response status `200`
  * added the new `platform` enum value to the `data/items/cancellation/party` response property for the response status `200`
  * added the new `prepaid` enum value to the `data/items/payment/method` response property for the response status `200`
  * added the new `refunded` enum value to the `data/items/payment/status` response property for the response status `200`
  * added the new `return_fee` enum value to the `data/items/charges/items/type` response property for the response status `200`
  * added the new `returned` enum value to the `data/items/status` response property for the response status `200`
  * added the new `returning` enum value to the `data/items/status` response property for the response status `200`
  * added the new `scheduled` enum value to the `data/items/status` response property for the response status `200`
  * added the new `store_closed` enum value to the `data/items/cancellation/reason` response property for the response status `200`
  * added the new `undefined` enum value to the `data/items/cancellation/reason` response property for the response status `200`
  * added the new `undefined` enum value to the `data/items/failure_reason` response property for the response status `200`
  * added the new `unpaid` enum value to the `data/items/payment/status` response property for the response status `200`
  * added the new `whatsapp` enum value to the `data/items/origin` response property for the response status `200`
  * added the new `wrong_address` enum value to the `data/items/cancellation/reason` response property for the response status `200`
  * the response property `data/items/origin` became required for the status `200`
  * the `data/items/canceled_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/charges/items/charged_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/courier_assigned_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/delivered_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/dropoff_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/payment/paid_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/payment/url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `data/items/picked_up_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/pickup_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/pickup_ready_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/proof/captured_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/proof/picture_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `data/items/proof/signature_image_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `data/items/proofs/dropoff/captured_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/proofs/dropoff/photo_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `data/items/proofs/dropoff/signature_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `data/items/proofs/pickup/captured_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/proofs/pickup/photo_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `data/items/proofs/return/captured_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/proofs/return/photo_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `data/items/proofs/return/signature_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `data/items/refunds/items/` response's property `type` was narrowed from `any` to `object` for status `200`
  * the `data/items/requested_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/returned_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/tracking_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `data/items/updated_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * added the required property `data/items/refunds/items/amount_cents` to the response with the `200` status
  * added the required property `data/items/refunds/items/created_at` to the response with the `200` status
  * added the required property `data/items/refunds/items/id` to the response with the `200` status
  * added the required property `data/items/refunds/items/party` to the response with the `200` status
  * added the required property `data/items/refunds/items/reason` to the response with the `200` status
  * added the required property `data/items/refunds/items/requested_via` to the response with the `200` status
  * added the required property `data/items/refunds/items/status` to the response with the `200` status
  * added the required property `data/items/refunds/items/succeeded_at` to the response with the `200` status

  **POST /v1/deliveries**

  * request body became required
  * request property `handoff` was restricted to a list of enum values
  * request property `payment_method` was restricted to a list of enum values
  * the `pickup_ready_at` request property `format` changed from `none` to `date-time`
  * the response property `dropoff/lat` became nullable for the status `201`
  * the response property `dropoff/lng` became nullable for the status `201`
  * the response property `external_id` became nullable for the status `201`
  * the response property `order_value_cents` became nullable for the status `201`
  * the response property `pickup/lat` became nullable for the status `201`
  * the response property `pickup/lng` became nullable for the status `201`
  * the response property `requested_at` became nullable for the status `201`
  * the `canceled_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `201`
  * the `cancellation` response's property `type` was widened from `null` to `object, null` for status `201`
  * the `courier` response's property `type` was widened from `null` to `object, null` for status `201`
  * the `courier_assigned_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `201`
  * the `delivered_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `201`
  * the `dropoff/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `201`
  * the `dropoff/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `201`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `400`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `402`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `503`
  * the `picked_up_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `201`
  * the `pickup/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `201`
  * the `pickup/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `201`
  * the `proof` response's property `type` was widened from `null` to `object, null` for status `201`
  * the `proofs/dropoff` response's property `type` was widened from `null` to `object, null` for status `201`
  * the `proofs/pickup` response's property `type` was widened from `null` to `object, null` for status `201`
  * the `proofs/return` response's property `type` was widened from `null` to `object, null` for status `201`
  * the `requested_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `201`
  * the `returned_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `201`
  * the `verification/pincode` response's property `type` was widened from `null` to `string, null` for status `201`
  * the `dropoff/notes` request property's maxLength was set to `280`
  * the `external_id` request property's maxLength was set to `255`
  * the `business_fee_share` request property's max was set to `100.00`
  * the `dropoff/lat` request property's max was set to `90.00`
  * the `dropoff/lng` request property's max was set to `180.00`
  * the `tip_cents` request property's max was set to `100000.00`
  * the `business_fee_cap_cents` request property's min was set to `0.00`
  * the `business_fee_share` request property's min was set to `0.00`
  * the `dropoff/lat` request property's min was set to `-90.00`
  * the `dropoff/lng` request property's min was set to `-180.00`
  * the `manifest/items/items/quantity` request property's min was set to `1.00`
  * the `order_value_cents` request property's min was set to `0.00`
  * the `tip_cents` request property's min was set to `0.00`
  * added the new `MXN` enum value to the `currency` response property for the response status `201`
  * added the new `address_unreachable` enum value to the `failure_reason` response property for the response status `201`
  * added the new `api` enum value to the `origin` response property for the response status `201`
  * added the new `awaiting_location` enum value to the `status` response property for the response status `201`
  * added the new `awaiting_payment` enum value to the `payment/status` response property for the response status `201`
  * added the new `awaiting_payment` enum value to the `status` response property for the response status `201`
  * added the new `canceled` enum value to the `status` response property for the response status `201`
  * added the new `card` enum value to the `payment/method` response property for the response status `201`
  * added the new `cash` enum value to the `payment/method` response property for the response status `201`
  * added the new `console` enum value to the `origin` response property for the response status `201`
  * added the new `courier_assigned` enum value to the `status` response property for the response status `201`
  * added the new `customer_unavailable` enum value to the `failure_reason` response property for the response status `201`
  * added the new `delivered` enum value to the `status` response property for the response status `201`
  * added the new `delivery_failed` enum value to the `failure_reason` response property for the response status `201`
  * added the new `dispatching` enum value to the `status` response property for the response status `201`
  * added the new `en_route` enum value to the `status` response property for the response status `201`
  * added the new `leave_at_door` enum value to the `dropoff/handoff` response property for the response status `201`
  * added the new `meet_at_door` enum value to the `dropoff/handoff` response property for the response status `201`
  * added the new `meet_outside` enum value to the `dropoff/handoff` response property for the response status `201`
  * added the new `no_courier` enum value to the `status` response property for the response status `201`
  * added the new `no_couriers_available` enum value to the `failure_reason` response property for the response status `201`
  * added the new `paid` enum value to the `payment/status` response property for the response status `201`
  * added the new `partially_refunded` enum value to the `payment/status` response property for the response status `201`
  * added the new `picking_up` enum value to the `status` response property for the response status `201`
  * added the new `prepaid` enum value to the `payment/method` response property for the response status `201`
  * added the new `refunded` enum value to the `payment/status` response property for the response status `201`
  * added the new `returned` enum value to the `status` response property for the response status `201`
  * added the new `returning` enum value to the `status` response property for the response status `201`
  * added the new `scheduled` enum value to the `status` response property for the response status `201`
  * added the new `undefined` enum value to the `failure_reason` response property for the response status `201`
  * added the new `unpaid` enum value to the `payment/status` response property for the response status `201`
  * added the new `whatsapp` enum value to the `origin` response property for the response status `201`
  * the request property `dropoff/lat` became optional
  * the request property `dropoff/lng` became optional
  * the request property `verification/dropoff_pincode` became optional
  * added the new `card` enum value to the request property `payment_method`
  * added the new `cash` enum value to the request property `payment_method`
  * added the new `leave_at_door` enum value to the request property `handoff`
  * added the new `meet_at_door` enum value to the request property `handoff`
  * added the new `meet_outside` enum value to the request property `handoff`
  * added the new `prepaid` enum value to the request property `payment_method`
  * the `dropoff/lat` request property `format` was widened from `float` to `double`
  * the `dropoff/lng` request property `format` was widened from `float` to `double`
  * added the non-success response with the status `403`
  * the response property `origin` became required for the status `201`
  * the `charges/items/` response's property `type` was narrowed from `any` to `object` for status `201`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `dropoff_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `400`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `402`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `503`
  * the `payment/paid_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `payment/url` response's property `format` was narrowed from `none` to `uri` for status `201`
  * the `pickup_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `pickup_ready_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `refunds/items/` response's property `type` was narrowed from `any` to `object` for status `201`
  * the `tracking_url` response's property `format` was narrowed from `none` to `uri` for status `201`
  * the `updated_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * added the required property `cancellation/description` to the response with the `201` status
  * added the required property `cancellation/party` to the response with the `201` status
  * added the required property `cancellation/reason` to the response with the `201` status
  * added the required property `charges/items/amount_cents` to the response with the `201` status
  * added the required property `charges/items/charged_at` to the response with the `201` status
  * added the required property `charges/items/type` to the response with the `201` status
  * added the required property `courier/imminent` to the response with the `201` status
  * added the required property `courier/location` to the response with the `201` status
  * added the required property `courier/name` to the response with the `201` status
  * added the required property `courier/phone` to the response with the `201` status
  * added the required property `courier/plate` to the response with the `201` status
  * added the required property `courier/vehicle` to the response with the `201` status
  * added the required property `courier/vehicle_type` to the response with the `201` status
  * added the required property `proof/captured_at` to the response with the `201` status
  * added the required property `proof/picture_url` to the response with the `201` status
  * added the required property `proof/signature_image_url` to the response with the `201` status
  * added the required property `proof/signature_name` to the response with the `201` status
  * added the required property `proofs/dropoff/captured_at` to the response with the `201` status
  * added the required property `proofs/dropoff/delivered` to the response with the `201` status
  * added the required property `proofs/dropoff/photo_url` to the response with the `201` status
  * added the required property `proofs/dropoff/signature_url` to the response with the `201` status
  * added the required property `proofs/dropoff/signer_name` to the response with the `201` status
  * added the required property `proofs/pickup/captured_at` to the response with the `201` status
  * added the required property `proofs/pickup/photo_url` to the response with the `201` status
  * added the required property `proofs/return/captured_at` to the response with the `201` status
  * added the required property `proofs/return/meters_from_store` to the response with the `201` status
  * added the required property `proofs/return/photo_url` to the response with the `201` status
  * added the required property `proofs/return/signature_url` to the response with the `201` status
  * added the required property `proofs/return/signer_name` to the response with the `201` status
  * added the required property `refunds/items/amount_cents` to the response with the `201` status
  * added the required property `refunds/items/created_at` to the response with the `201` status
  * added the required property `refunds/items/id` to the response with the `201` status
  * added the required property `refunds/items/party` to the response with the `201` status
  * added the required property `refunds/items/reason` to the response with the `201` status
  * added the required property `refunds/items/requested_via` to the response with the `201` status
  * added the required property `refunds/items/status` to the response with the `201` status
  * added the required property `refunds/items/succeeded_at` to the response with the `201` status

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * request body became required
  * request property `reason` was restricted to a list of enum values
  * the response property `canceled_at` became nullable for the status `200`
  * the response property `cancellation` became nullable for the status `200`
  * the response property `cancellation/reason` became nullable for the status `200`
  * the response property `courier/location/updated_at` became nullable for the status `200`
  * the response property `courier/phone` became nullable for the status `200`
  * the response property `courier/plate` became nullable for the status `200`
  * the response property `courier/vehicle` became nullable for the status `200`
  * the response property `dropoff/lat` became nullable for the status `200`
  * the response property `dropoff/lng` became nullable for the status `200`
  * the response property `error/param` became nullable for the status `422`
  * the response property `order_value_cents` became nullable for the status `200`
  * the response property `pickup/lat` became nullable for the status `200`
  * the response property `pickup/lng` became nullable for the status `200`
  * the `courier/location/lat` response's property `format` changed from `float` to `double` for status `200`
  * the `courier/location/lng` response's property `format` changed from `float` to `double` for status `200`
  * the `canceled_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `200`
  * the `courier/location/updated_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `200`
  * the `delivered_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `dropoff/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `dropoff/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `payment/paid_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `payment/url` response's property `type/format` was widened from `null` to `string, null/uri` for status `200`
  * the `picked_up_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `pickup/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup_ready_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `proof` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/dropoff` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/pickup` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/return` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `requested_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `returned_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `verification` response's property `type` was widened from `null` to `object, null` for status `200`
  * added the new `MXN` enum value to the `currency` response property for the response status `200`
  * added the new `address_unreachable` enum value to the `failure_reason` response property for the response status `200`
  * added the new `api` enum value to the `origin` response property for the response status `200`
  * added the new `awaiting_location` enum value to the `status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `payment/status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `status` response property for the response status `200`
  * added the new `canceled` enum value to the `status` response property for the response status `200`
  * added the new `cancellation_fee` enum value to the `charges/items/type` response property for the response status `200`
  * added the new `card` enum value to the `payment/method` response property for the response status `200`
  * added the new `cash` enum value to the `payment/method` response property for the response status `200`
  * added the new `console` enum value to the `origin` response property for the response status `200`
  * added the new `courier` enum value to the `cancellation/party` response property for the response status `200`
  * added the new `courier_assigned` enum value to the `status` response property for the response status `200`
  * added the new `customer_canceled` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `customer_unavailable` enum value to the `failure_reason` response property for the response status `200`
  * added the new `delivered` enum value to the `status` response property for the response status `200`
  * added the new `delivery_failed` enum value to the `failure_reason` response property for the response status `200`
  * added the new `dispatching` enum value to the `status` response property for the response status `200`
  * added the new `en_route` enum value to the `status` response property for the response status `200`
  * added the new `item_unavailable` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `leave_at_door` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `meet_at_door` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `meet_outside` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `no_courier` enum value to the `status` response property for the response status `200`
  * added the new `no_couriers_available` enum value to the `failure_reason` response property for the response status `200`
  * added the new `no_longer_needed` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `other` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `paid` enum value to the `payment/status` response property for the response status `200`
  * added the new `partially_refunded` enum value to the `payment/status` response property for the response status `200`
  * added the new `partner` enum value to the `cancellation/party` response property for the response status `200`
  * added the new `picking_up` enum value to the `status` response property for the response status `200`
  * added the new `platform` enum value to the `cancellation/party` response property for the response status `200`
  * added the new `prepaid` enum value to the `payment/method` response property for the response status `200`
  * added the new `refunded` enum value to the `payment/status` response property for the response status `200`
  * added the new `return_fee` enum value to the `charges/items/type` response property for the response status `200`
  * added the new `returned` enum value to the `status` response property for the response status `200`
  * added the new `returning` enum value to the `status` response property for the response status `200`
  * added the new `scheduled` enum value to the `status` response property for the response status `200`
  * added the new `store_closed` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `undefined` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `undefined` enum value to the `failure_reason` response property for the response status `200`
  * added the new `unpaid` enum value to the `payment/status` response property for the response status `200`
  * added the new `whatsapp` enum value to the `origin` response property for the response status `200`
  * added the new `wrong_address` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `customer_canceled` enum value to the request property `reason`
  * added the new `item_unavailable` enum value to the request property `reason`
  * added the new `no_longer_needed` enum value to the request property `reason`
  * added the new `other` enum value to the request property `reason`
  * added the new `store_closed` enum value to the request property `reason`
  * added the new `wrong_address` enum value to the request property `reason`
  * added the non-success response with the status `403`
  * the response property `origin` became required for the status `200`
  * the `charges/items/charged_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `courier_assigned_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `dropoff_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `pickup_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `refunds/items/` response's property `type` was narrowed from `any` to `object` for status `200`
  * the `tracking_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `updated_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * added the required property `proof/captured_at` to the response with the `200` status
  * added the required property `proof/picture_url` to the response with the `200` status
  * added the required property `proof/signature_image_url` to the response with the `200` status
  * added the required property `proof/signature_name` to the response with the `200` status
  * added the required property `proofs/dropoff/captured_at` to the response with the `200` status
  * added the required property `proofs/dropoff/delivered` to the response with the `200` status
  * added the required property `proofs/dropoff/photo_url` to the response with the `200` status
  * added the required property `proofs/dropoff/signature_url` to the response with the `200` status
  * added the required property `proofs/dropoff/signer_name` to the response with the `200` status
  * added the required property `proofs/pickup/captured_at` to the response with the `200` status
  * added the required property `proofs/pickup/photo_url` to the response with the `200` status
  * added the required property `proofs/return/captured_at` to the response with the `200` status
  * added the required property `proofs/return/meters_from_store` to the response with the `200` status
  * added the required property `proofs/return/photo_url` to the response with the `200` status
  * added the required property `proofs/return/signature_url` to the response with the `200` status
  * added the required property `proofs/return/signer_name` to the response with the `200` status
  * added the required property `refunds/items/amount_cents` to the response with the `200` status
  * added the required property `refunds/items/created_at` to the response with the `200` status
  * added the required property `refunds/items/id` to the response with the `200` status
  * added the required property `refunds/items/party` to the response with the `200` status
  * added the required property `refunds/items/reason` to the response with the `200` status
  * added the required property `refunds/items/requested_via` to the response with the `200` status
  * added the required property `refunds/items/status` to the response with the `200` status
  * added the required property `refunds/items/succeeded_at` to the response with the `200` status
  * added the required property `verification/pincode` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/refunds**

  * the response property `delivered_at` became nullable for the status `200`
  * the response property `dropoff/apt_unit` became nullable for the status `200`
  * the response property `dropoff/lat` became nullable for the status `200`
  * the response property `dropoff/lng` became nullable for the status `200`
  * the response property `error/param` became nullable for the status `422`
  * the response property `external_id` became nullable for the status `200`
  * the response property `order_value_cents` became nullable for the status `200`
  * the response property `payment/paid_at` became nullable for the status `200`
  * the response property `pickup/lat` became nullable for the status `200`
  * the response property `pickup/lng` became nullable for the status `200`
  * the response property `proofs/dropoff` became nullable for the status `200`
  * the `canceled_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `cancellation` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `courier` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `courier_assigned_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `delivered_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `200`
  * the `dropoff/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `dropoff/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `dropoff_eta_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `failure_reason` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `manifest` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `payment/cash_to_collect_cents` response's property `type` was widened from `null` to `integer, null` for status `200`
  * the `payment/paid_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `200`
  * the `payment/url` response's property `type/format` was widened from `null` to `string, null/uri` for status `200`
  * the `picked_up_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `pickup/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup/notes` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `pickup_eta_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `pickup_ready_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `proof` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/dropoff/captured_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `proofs/dropoff/photo_url` response's property `type/format` was widened from `null` to `string, null/uri` for status `200`
  * the `proofs/dropoff/signature_url` response's property `type/format` was widened from `null` to `string, null/uri` for status `200`
  * the `proofs/dropoff/signer_name` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `proofs/pickup` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/return` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `quote_id` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `requested_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `returned_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `support_reference` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `verification` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `reason` request property's maxLength was set to `500`
  * the `amount_cents` request property's min was set to `1.00`
  * added the new `MXN` enum value to the `currency` response property for the response status `200`
  * added the new `address_unreachable` enum value to the `failure_reason` response property for the response status `200`
  * added the new `api` enum value to the `origin` response property for the response status `200`
  * added the new `api` enum value to the `refunds/items/requested_via` response property for the response status `200`
  * added the new `automatic` enum value to the `refunds/items/requested_via` response property for the response status `200`
  * added the new `awaiting_location` enum value to the `status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `payment/status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `status` response property for the response status `200`
  * added the new `business` enum value to the `refunds/items/party` response property for the response status `200`
  * added the new `canceled` enum value to the `status` response property for the response status `200`
  * added the new `card` enum value to the `payment/method` response property for the response status `200`
  * added the new `cash` enum value to the `payment/method` response property for the response status `200`
  * added the new `console` enum value to the `origin` response property for the response status `200`
  * added the new `console` enum value to the `refunds/items/requested_via` response property for the response status `200`
  * added the new `courier_assigned` enum value to the `status` response property for the response status `200`
  * added the new `customer_unavailable` enum value to the `failure_reason` response property for the response status `200`
  * added the new `delivered` enum value to the `status` response property for the response status `200`
  * added the new `delivery_failed` enum value to the `failure_reason` response property for the response status `200`
  * added the new `dispatching` enum value to the `status` response property for the response status `200`
  * added the new `en_route` enum value to the `status` response property for the response status `200`
  * added the new `external` enum value to the `refunds/items/requested_via` response property for the response status `200`
  * added the new `failed` enum value to the `refunds/items/status` response property for the response status `200`
  * added the new `leave_at_door` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `meet_at_door` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `meet_outside` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `no_courier` enum value to the `status` response property for the response status `200`
  * added the new `no_couriers_available` enum value to the `failure_reason` response property for the response status `200`
  * added the new `paid` enum value to the `payment/status` response property for the response status `200`
  * added the new `partially_refunded` enum value to the `payment/status` response property for the response status `200`
  * added the new `pending` enum value to the `refunds/items/status` response property for the response status `200`
  * added the new `picking_up` enum value to the `status` response property for the response status `200`
  * added the new `platform` enum value to the `refunds/items/party` response property for the response status `200`
  * added the new `prepaid` enum value to the `payment/method` response property for the response status `200`
  * added the new `refunded` enum value to the `payment/status` response property for the response status `200`
  * added the new `returned` enum value to the `status` response property for the response status `200`
  * added the new `returning` enum value to the `status` response property for the response status `200`
  * added the new `scheduled` enum value to the `status` response property for the response status `200`
  * added the new `succeeded` enum value to the `refunds/items/status` response property for the response status `200`
  * added the new `undefined` enum value to the `failure_reason` response property for the response status `200`
  * added the new `unpaid` enum value to the `payment/status` response property for the response status `200`
  * added the new `whatsapp` enum value to the `origin` response property for the response status `200`
  * added the non-success response with the status `403`
  * the `charges/items/` response's property `type` was narrowed from `any` to `object` for status `200`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `refunds/items/created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `refunds/items/succeeded_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `tracking_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `updated_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * added the required property `cancellation/description` to the response with the `200` status
  * added the required property `cancellation/party` to the response with the `200` status
  * added the required property `cancellation/reason` to the response with the `200` status
  * added the required property `charges/items/amount_cents` to the response with the `200` status
  * added the required property `charges/items/charged_at` to the response with the `200` status
  * added the required property `charges/items/type` to the response with the `200` status
  * added the required property `courier/imminent` to the response with the `200` status
  * added the required property `courier/location` to the response with the `200` status
  * added the required property `courier/name` to the response with the `200` status
  * added the required property `courier/phone` to the response with the `200` status
  * added the required property `courier/plate` to the response with the `200` status
  * added the required property `courier/vehicle` to the response with the `200` status
  * added the required property `courier/vehicle_type` to the response with the `200` status
  * added the required property `manifest/items` to the response with the `200` status
  * added the required property `proof/captured_at` to the response with the `200` status
  * added the required property `proof/picture_url` to the response with the `200` status
  * added the required property `proof/signature_image_url` to the response with the `200` status
  * added the required property `proof/signature_name` to the response with the `200` status
  * added the required property `proofs/pickup/captured_at` to the response with the `200` status
  * added the required property `proofs/pickup/photo_url` to the response with the `200` status
  * added the required property `proofs/return/captured_at` to the response with the `200` status
  * added the required property `proofs/return/meters_from_store` to the response with the `200` status
  * added the required property `proofs/return/photo_url` to the response with the `200` status
  * added the required property `proofs/return/signature_url` to the response with the `200` status
  * added the required property `proofs/return/signer_name` to the response with the `200` status
  * added the required property `verification/pincode` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * removed the request body
  * the response property `dropoff/lat` became nullable for the status `200`
  * the response property `dropoff/lng` became nullable for the status `200`
  * the response property `external_id` became nullable for the status `200`
  * the response property `order_value_cents` became nullable for the status `200`
  * the response property `pickup/lat` became nullable for the status `200`
  * the response property `pickup/lng` became nullable for the status `200`
  * the `canceled_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `cancellation` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `courier` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `courier_assigned_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `delivered_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `dropoff/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `dropoff/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `422`
  * the `payment/cash_to_collect_cents` response's property `type` was widened from `null` to `integer, null` for status `200`
  * the `payment/paid_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `payment/url` response's property `type/format` was widened from `null` to `string, null/uri` for status `200`
  * the `picked_up_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `pickup/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup_ready_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `proof` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/dropoff` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/pickup` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/return` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `requested_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `returned_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `verification` response's property `type` was widened from `null` to `object, null` for status `200`
  * added the new `MXN` enum value to the `currency` response property for the response status `200`
  * added the new `address_unreachable` enum value to the `failure_reason` response property for the response status `200`
  * added the new `api` enum value to the `origin` response property for the response status `200`
  * added the new `awaiting_location` enum value to the `status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `payment/status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `status` response property for the response status `200`
  * added the new `canceled` enum value to the `status` response property for the response status `200`
  * added the new `card` enum value to the `payment/method` response property for the response status `200`
  * added the new `cash` enum value to the `payment/method` response property for the response status `200`
  * added the new `console` enum value to the `origin` response property for the response status `200`
  * added the new `courier_assigned` enum value to the `status` response property for the response status `200`
  * added the new `customer_unavailable` enum value to the `failure_reason` response property for the response status `200`
  * added the new `delivered` enum value to the `status` response property for the response status `200`
  * added the new `delivery_failed` enum value to the `failure_reason` response property for the response status `200`
  * added the new `dispatching` enum value to the `status` response property for the response status `200`
  * added the new `en_route` enum value to the `status` response property for the response status `200`
  * added the new `leave_at_door` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `meet_at_door` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `meet_outside` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `no_courier` enum value to the `status` response property for the response status `200`
  * added the new `no_couriers_available` enum value to the `failure_reason` response property for the response status `200`
  * added the new `paid` enum value to the `payment/status` response property for the response status `200`
  * added the new `partially_refunded` enum value to the `payment/status` response property for the response status `200`
  * added the new `picking_up` enum value to the `status` response property for the response status `200`
  * added the new `prepaid` enum value to the `payment/method` response property for the response status `200`
  * added the new `refunded` enum value to the `payment/status` response property for the response status `200`
  * added the new `returned` enum value to the `status` response property for the response status `200`
  * added the new `returning` enum value to the `status` response property for the response status `200`
  * added the new `scheduled` enum value to the `status` response property for the response status `200`
  * added the new `undefined` enum value to the `failure_reason` response property for the response status `200`
  * added the new `unpaid` enum value to the `payment/status` response property for the response status `200`
  * added the new `whatsapp` enum value to the `origin` response property for the response status `200`
  * added the non-success response with the status `403`
  * the response property `origin` became required for the status `200`
  * the `charges/items/` response's property `type` was narrowed from `any` to `object` for status `200`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `dropoff_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `pickup_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `refunds/items/` response's property `type` was narrowed from `any` to `object` for status `200`
  * the `tracking_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `updated_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * added the required property `cancellation/description` to the response with the `200` status
  * added the required property `cancellation/party` to the response with the `200` status
  * added the required property `cancellation/reason` to the response with the `200` status
  * added the required property `charges/items/amount_cents` to the response with the `200` status
  * added the required property `charges/items/charged_at` to the response with the `200` status
  * added the required property `charges/items/type` to the response with the `200` status
  * added the required property `courier/imminent` to the response with the `200` status
  * added the required property `courier/location` to the response with the `200` status
  * added the required property `courier/name` to the response with the `200` status
  * added the required property `courier/phone` to the response with the `200` status
  * added the required property `courier/plate` to the response with the `200` status
  * added the required property `courier/vehicle` to the response with the `200` status
  * added the required property `courier/vehicle_type` to the response with the `200` status
  * added the required property `proof/captured_at` to the response with the `200` status
  * added the required property `proof/picture_url` to the response with the `200` status
  * added the required property `proof/signature_image_url` to the response with the `200` status
  * added the required property `proof/signature_name` to the response with the `200` status
  * added the required property `proofs/dropoff/captured_at` to the response with the `200` status
  * added the required property `proofs/dropoff/delivered` to the response with the `200` status
  * added the required property `proofs/dropoff/photo_url` to the response with the `200` status
  * added the required property `proofs/dropoff/signature_url` to the response with the `200` status
  * added the required property `proofs/dropoff/signer_name` to the response with the `200` status
  * added the required property `proofs/pickup/captured_at` to the response with the `200` status
  * added the required property `proofs/pickup/photo_url` to the response with the `200` status
  * added the required property `proofs/return/captured_at` to the response with the `200` status
  * added the required property `proofs/return/meters_from_store` to the response with the `200` status
  * added the required property `proofs/return/photo_url` to the response with the `200` status
  * added the required property `proofs/return/signature_url` to the response with the `200` status
  * added the required property `proofs/return/signer_name` to the response with the `200` status
  * added the required property `refunds/items/amount_cents` to the response with the `200` status
  * added the required property `refunds/items/created_at` to the response with the `200` status
  * added the required property `refunds/items/id` to the response with the `200` status
  * added the required property `refunds/items/party` to the response with the `200` status
  * added the required property `refunds/items/reason` to the response with the `200` status
  * added the required property `refunds/items/requested_via` to the response with the `200` status
  * added the required property `refunds/items/status` to the response with the `200` status
  * added the required property `refunds/items/succeeded_at` to the response with the `200` status
  * added the required property `verification/pincode` to the response with the `200` status

  **GET /v1/deliveries/\{id}**

  * the response property `cancellation/description` became nullable for the status `200`
  * the response property `cancellation/reason` became nullable for the status `200`
  * the response property `courier/location/updated_at` became nullable for the status `200`
  * the response property `courier/phone` became nullable for the status `200`
  * the response property `courier/plate` became nullable for the status `200`
  * the response property `courier/vehicle` became nullable for the status `200`
  * the response property `courier/vehicle_type` became nullable for the status `200`
  * the response property `dropoff/apt_unit` became nullable for the status `200`
  * the response property `dropoff/lat` became nullable for the status `200`
  * the response property `dropoff/lng` became nullable for the status `200`
  * the response property `order_value_cents` became nullable for the status `200`
  * the response property `pickup/lat` became nullable for the status `200`
  * the response property `pickup/lng` became nullable for the status `200`
  * the response property `verification/pincode` became nullable for the status `200`
  * the `courier/location/lat` response's property `format` changed from `float` to `double` for status `200`
  * the `courier/location/lng` response's property `format` changed from `float` to `double` for status `200`
  * the `courier/location/updated_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `200`
  * the `dropoff/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `dropoff/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `pickup/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * added the new `MXN` enum value to the `currency` response property for the response status `200`
  * added the new `address_unreachable` enum value to the `failure_reason` response property for the response status `200`
  * added the new `api` enum value to the `origin` response property for the response status `200`
  * added the new `awaiting_location` enum value to the `status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `payment/status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `status` response property for the response status `200`
  * added the new `canceled` enum value to the `status` response property for the response status `200`
  * added the new `cancellation_fee` enum value to the `charges/items/type` response property for the response status `200`
  * added the new `card` enum value to the `payment/method` response property for the response status `200`
  * added the new `cash` enum value to the `payment/method` response property for the response status `200`
  * added the new `console` enum value to the `origin` response property for the response status `200`
  * added the new `courier` enum value to the `cancellation/party` response property for the response status `200`
  * added the new `courier_assigned` enum value to the `status` response property for the response status `200`
  * added the new `customer_canceled` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `customer_unavailable` enum value to the `failure_reason` response property for the response status `200`
  * added the new `delivered` enum value to the `status` response property for the response status `200`
  * added the new `delivery_failed` enum value to the `failure_reason` response property for the response status `200`
  * added the new `dispatching` enum value to the `status` response property for the response status `200`
  * added the new `en_route` enum value to the `status` response property for the response status `200`
  * added the new `item_unavailable` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `leave_at_door` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `meet_at_door` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `meet_outside` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `no_courier` enum value to the `status` response property for the response status `200`
  * added the new `no_couriers_available` enum value to the `failure_reason` response property for the response status `200`
  * added the new `no_longer_needed` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `other` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `paid` enum value to the `payment/status` response property for the response status `200`
  * added the new `partially_refunded` enum value to the `payment/status` response property for the response status `200`
  * added the new `partner` enum value to the `cancellation/party` response property for the response status `200`
  * added the new `picking_up` enum value to the `status` response property for the response status `200`
  * added the new `platform` enum value to the `cancellation/party` response property for the response status `200`
  * added the new `prepaid` enum value to the `payment/method` response property for the response status `200`
  * added the new `refunded` enum value to the `payment/status` response property for the response status `200`
  * added the new `return_fee` enum value to the `charges/items/type` response property for the response status `200`
  * added the new `returned` enum value to the `status` response property for the response status `200`
  * added the new `returning` enum value to the `status` response property for the response status `200`
  * added the new `scheduled` enum value to the `status` response property for the response status `200`
  * added the new `store_closed` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `undefined` enum value to the `cancellation/reason` response property for the response status `200`
  * added the new `undefined` enum value to the `failure_reason` response property for the response status `200`
  * added the new `unpaid` enum value to the `payment/status` response property for the response status `200`
  * added the new `whatsapp` enum value to the `origin` response property for the response status `200`
  * added the new `wrong_address` enum value to the `cancellation/reason` response property for the response status `200`
  * the response property `origin` became required for the status `200`
  * the `canceled_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `charges/items/charged_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `courier_assigned_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `delivered_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `dropoff_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `payment/paid_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `payment/url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `picked_up_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `pickup_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `pickup_ready_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `proof/captured_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `proof/picture_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `proof/signature_image_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `proofs/dropoff/captured_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `proofs/dropoff/photo_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `proofs/dropoff/signature_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `proofs/pickup/captured_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `proofs/pickup/photo_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `proofs/return/captured_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `proofs/return/photo_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `proofs/return/signature_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `refunds/items/` response's property `type` was narrowed from `any` to `object` for status `200`
  * the `requested_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `returned_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `tracking_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `updated_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * added the required property `refunds/items/amount_cents` to the response with the `200` status
  * added the required property `refunds/items/created_at` to the response with the `200` status
  * added the required property `refunds/items/id` to the response with the `200` status
  * added the required property `refunds/items/party` to the response with the `200` status
  * added the required property `refunds/items/reason` to the response with the `200` status
  * added the required property `refunds/items/requested_via` to the response with the `200` status
  * added the required property `refunds/items/status` to the response with the `200` status
  * added the required property `refunds/items/succeeded_at` to the response with the `200` status

  **PATCH /v1/deliveries/\{id}**

  * request body became required
  * the response property `courier/phone` became nullable for the status `200`
  * the response property `courier/plate` became nullable for the status `200`
  * the response property `courier/vehicle` became nullable for the status `200`
  * the response property `dropoff/apt_unit` became nullable for the status `200`
  * the response property `dropoff/lat` became nullable for the status `200`
  * the response property `dropoff/lng` became nullable for the status `200`
  * the response property `error/param` became nullable for the status `422`
  * the response property `external_id` became nullable for the status `200`
  * the response property `order_value_cents` became nullable for the status `200`
  * the response property `payment/cash_to_collect_cents` became nullable for the status `200`
  * the response property `pickup/lat` became nullable for the status `200`
  * the response property `pickup/lng` became nullable for the status `200`
  * the `canceled_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `cancellation` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `courier/location` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `delivered_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `dropoff/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `dropoff/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `503`
  * the `failure_reason` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `payment/paid_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `payment/url` response's property `type/format` was widened from `null` to `string, null/uri` for status `200`
  * the `picked_up_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `pickup/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `proof` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/dropoff` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/pickup` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `proofs/return` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `requested_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `returned_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `200`
  * the `verification` response's property `type` was widened from `null` to `object, null` for status `200`
  * the `dropoff/notes` request property's maxLength was set to `280`
  * added the new `MXN` enum value to the `currency` response property for the response status `200`
  * added the new `address_unreachable` enum value to the `failure_reason` response property for the response status `200`
  * added the new `api` enum value to the `origin` response property for the response status `200`
  * added the new `awaiting_location` enum value to the `status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `payment/status` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `status` response property for the response status `200`
  * added the new `canceled` enum value to the `status` response property for the response status `200`
  * added the new `card` enum value to the `payment/method` response property for the response status `200`
  * added the new `cash` enum value to the `payment/method` response property for the response status `200`
  * added the new `console` enum value to the `origin` response property for the response status `200`
  * added the new `courier_assigned` enum value to the `status` response property for the response status `200`
  * added the new `customer_unavailable` enum value to the `failure_reason` response property for the response status `200`
  * added the new `delivered` enum value to the `status` response property for the response status `200`
  * added the new `delivery_failed` enum value to the `failure_reason` response property for the response status `200`
  * added the new `dispatching` enum value to the `status` response property for the response status `200`
  * added the new `en_route` enum value to the `status` response property for the response status `200`
  * added the new `leave_at_door` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `meet_at_door` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `meet_outside` enum value to the `dropoff/handoff` response property for the response status `200`
  * added the new `no_courier` enum value to the `status` response property for the response status `200`
  * added the new `no_couriers_available` enum value to the `failure_reason` response property for the response status `200`
  * added the new `paid` enum value to the `payment/status` response property for the response status `200`
  * added the new `partially_refunded` enum value to the `payment/status` response property for the response status `200`
  * added the new `picking_up` enum value to the `status` response property for the response status `200`
  * added the new `prepaid` enum value to the `payment/method` response property for the response status `200`
  * added the new `refunded` enum value to the `payment/status` response property for the response status `200`
  * added the new `returned` enum value to the `status` response property for the response status `200`
  * added the new `returning` enum value to the `status` response property for the response status `200`
  * added the new `scheduled` enum value to the `status` response property for the response status `200`
  * added the new `undefined` enum value to the `failure_reason` response property for the response status `200`
  * added the new `unpaid` enum value to the `payment/status` response property for the response status `200`
  * added the new `whatsapp` enum value to the `origin` response property for the response status `200`
  * added the non-success response with the status `403`
  * the response property `origin` became required for the status `200`
  * the `charges/items/` response's property `type` was narrowed from `any` to `object` for status `200`
  * the `courier_assigned_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `dropoff_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `503`
  * the `pickup_eta_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `pickup_ready_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `refunds/items/` response's property `type` was narrowed from `any` to `object` for status `200`
  * the `tracking_url` response's property `format` was narrowed from `none` to `uri` for status `200`
  * the `updated_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * added the required property `cancellation/description` to the response with the `200` status
  * added the required property `cancellation/party` to the response with the `200` status
  * added the required property `cancellation/reason` to the response with the `200` status
  * added the required property `charges/items/amount_cents` to the response with the `200` status
  * added the required property `charges/items/charged_at` to the response with the `200` status
  * added the required property `charges/items/type` to the response with the `200` status
  * added the required property `courier/location/lat` to the response with the `200` status
  * added the required property `courier/location/lng` to the response with the `200` status
  * added the required property `courier/location/updated_at` to the response with the `200` status
  * added the required property `proof/captured_at` to the response with the `200` status
  * added the required property `proof/picture_url` to the response with the `200` status
  * added the required property `proof/signature_image_url` to the response with the `200` status
  * added the required property `proof/signature_name` to the response with the `200` status
  * added the required property `proofs/dropoff/captured_at` to the response with the `200` status
  * added the required property `proofs/dropoff/delivered` to the response with the `200` status
  * added the required property `proofs/dropoff/photo_url` to the response with the `200` status
  * added the required property `proofs/dropoff/signature_url` to the response with the `200` status
  * added the required property `proofs/dropoff/signer_name` to the response with the `200` status
  * added the required property `proofs/pickup/captured_at` to the response with the `200` status
  * added the required property `proofs/pickup/photo_url` to the response with the `200` status
  * added the required property `proofs/return/captured_at` to the response with the `200` status
  * added the required property `proofs/return/meters_from_store` to the response with the `200` status
  * added the required property `proofs/return/photo_url` to the response with the `200` status
  * added the required property `proofs/return/signature_url` to the response with the `200` status
  * added the required property `proofs/return/signer_name` to the response with the `200` status
  * added the required property `refunds/items/amount_cents` to the response with the `200` status
  * added the required property `refunds/items/created_at` to the response with the `200` status
  * added the required property `refunds/items/id` to the response with the `200` status
  * added the required property `refunds/items/party` to the response with the `200` status
  * added the required property `refunds/items/reason` to the response with the `200` status
  * added the required property `refunds/items/requested_via` to the response with the `200` status
  * added the required property `refunds/items/status` to the response with the `200` status
  * added the required property `refunds/items/succeeded_at` to the response with the `200` status
  * added the required property `verification/pincode` to the response with the `200` status

  **GET /v1/events**

  * added `#/components/schemas/DeliveryStatusChangedEvent, #/components/schemas/DeliveryUpdatedEvent, #/components/schemas/DeliveryCourierLocationEvent, #/components/schemas/WithdrawalUpdatedEvent, #/components/schemas/StoreUpdatedEvent, #/components/schemas/StoreConnectedEvent` to the `data/items/` response property `oneOf` list for the response status `200`
  * the `data/items/` response's property `type` changed from `object` to `any` for status `200`
  * removed the required property `data/items/created_at` from the response with the `200` status
  * removed the required property `data/items/data` from the response with the `200` status
  * removed the required property `data/items/id` from the response with the `200` status
  * removed the required property `data/items/type` from the response with the `200` status
  * removed the optional property `data/items/test` from the response with the `200` status
  * added discriminator to `data/items/` response property for the response status `200`

  **POST /v1/events/\{event\_id}/resend**

  * added `#/components/schemas/DeliveryStatusChangedEvent, #/components/schemas/DeliveryUpdatedEvent, #/components/schemas/DeliveryCourierLocationEvent, #/components/schemas/WithdrawalUpdatedEvent, #/components/schemas/StoreUpdatedEvent, #/components/schemas/StoreConnectedEvent` to the response body `oneOf` list for the response status `202`
  * the response's body `type` changed from `object` to `any` for status `202`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `429`
  * removed the required property `created_at` from the response with the `202` status
  * removed the required property `data` from the response with the `202` status
  * removed the required property `id` from the response with the `202` status
  * removed the required property `type` from the response with the `202` status
  * removed the optional property `test` from the response with the `202` status
  * added response discriminator for the response status `202`
  * added the non-success response with the status `403`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `429`

  **GET /v1/events/\{id}**

  * added `#/components/schemas/DeliveryStatusChangedEvent, #/components/schemas/DeliveryUpdatedEvent, #/components/schemas/DeliveryCourierLocationEvent, #/components/schemas/WithdrawalUpdatedEvent, #/components/schemas/StoreUpdatedEvent, #/components/schemas/StoreConnectedEvent` to the response body `oneOf` list for the response status `200`
  * the response's body `type` changed from `object` to `any` for status `200`
  * removed the required property `created_at` from the response with the `200` status
  * removed the required property `data` from the response with the `200` status
  * removed the required property `id` from the response with the `200` status
  * removed the required property `type` from the response with the `200` status
  * removed the optional property `test` from the response with the `200` status
  * added response discriminator for the response status `200`

  **GET /v1/ledger**

  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `data/items/occurred_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`

  **GET /v1/ping**

  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `429`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `500`
  * added the new `live` enum value to the `mode` response property for the response status `200`
  * added the new `test` enum value to the `mode` response property for the response status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `429`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `500`

  **POST /v1/quotes**

  * request body became required
  * request property `payment_method` was restricted to a list of enum values
  * the response property `dropoff_eta_at` became nullable for the status `201`
  * the response property `pickup_duration_min` became nullable for the status `201`
  * the `dropoff_eta_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `201`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `503`
  * the `business_fee_share` request property's max was set to `100.00`
  * the `dropoff/lat` request property's max was set to `90.00`
  * the `dropoff/lng` request property's max was set to `180.00`
  * the `business_fee_cap_cents` request property's min was set to `0.00`
  * the `business_fee_share` request property's min was set to `0.00`
  * the `dropoff/lat` request property's min was set to `-90.00`
  * the `dropoff/lng` request property's min was set to `-180.00`
  * the `manifest/items/items/quantity` request property's min was set to `1.00`
  * the `order_value_cents` request property's min was set to `0.00`
  * added the new `MXN` enum value to the `currency` response property for the response status `201`
  * added the new optional request property `dropoff/apt_unit`
  * added the new optional request property `pickup_ready_at`
  * the request property `dropoff/lat` became optional
  * the request property `dropoff/lng` became optional
  * added the new `card` enum value to the request property `payment_method`
  * added the new `cash` enum value to the request property `payment_method`
  * added the new `prepaid` enum value to the request property `payment_method`
  * the `dropoff/lat` request property `format` was widened from `float` to `double`
  * the `dropoff/lng` request property `format` was widened from `float` to `double`
  * added the non-success response with the status `403`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `503`
  * the `expires_at` response's property `format` was narrowed from `none` to `date-time` for status `201`

  **GET /v1/stores**

  * the response property `data/items/lat` became nullable for the status `200`
  * the response property `data/items/lng` became nullable for the status `200`
  * the `data/items/lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `data/items/lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * added the new `active` enum value to the `data/items/plan/status` response property for the response status `200`
  * added the new `api_only` enum value to the `data/items/access_tier` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `data/items/plan/status` response property for the response status `200`
  * added the new `business_amount` enum value to the `data/items/default_fee_split_mode` response property for the response status `200`
  * added the new `canceled` enum value to the `data/items/plan/status` response property for the response status `200`
  * added the new `canceling` enum value to the `data/items/plan/status` response property for the response status `200`
  * added the new `customer_amount` enum value to the `data/items/default_fee_split_mode` response property for the response status `200`
  * added the new `full` enum value to the `data/items/access_tier` response property for the response status `200`
  * added the new `partner` enum value to the `data/items/billing` response property for the response status `200`
  * added the new `partner` enum value to the `data/items/plan/paid_by` response property for the response status `200`
  * added the new `past_due` enum value to the `data/items/plan/status` response property for the response status `200`
  * added the new `percent` enum value to the `data/items/default_fee_split_mode` response property for the response status `200`
  * added the new `store` enum value to the `data/items/billing` response property for the response status `200`
  * added the new `store` enum value to the `data/items/plan/paid_by` response property for the response status `200`
  * added the new `wallet` enum value to the `data/items/access_tier` response property for the response status `200`
  * the `data/items/created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/plan/canceled_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/plan/current_period_ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `data/items/plan/ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `data/items/plan/next_charge_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `data/items/plan/pending_paid_by_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`

  **POST /v1/stores**

  * request body became required
  * request property `access_tier` was restricted to a list of enum values
  * the response property `error/param` became nullable for the status `422`
  * the `lat` response's property `format` changed from `float` to `double` for status `201`
  * the `lng` response's property `format` changed from `float` to `double` for status `201`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `external_id` request property's maxLength was set to `255`
  * the `pickup_notes` request property's maxLength was set to `280`
  * the `default_business_fee_share` request property's max was set to `100.00`
  * the `lat` request property's max was set to `90.00`
  * the `lng` request property's max was set to `180.00`
  * the `markup_cents` request property's max was set to `1000000.00`
  * the `default_business_fee_share` request property's min was set to `0.00`
  * the `lat` request property's min was set to `-90.00`
  * the `lng` request property's min was set to `-180.00`
  * the `markup_cents` request property's min was set to `0.00`
  * added the new `active` enum value to the `plan/status` response property for the response status `201`
  * added the new `api_only` enum value to the `access_tier` response property for the response status `201`
  * added the new `awaiting_payment` enum value to the `plan/status` response property for the response status `201`
  * added the new `business_amount` enum value to the `default_fee_split_mode` response property for the response status `201`
  * added the new `canceled` enum value to the `plan/status` response property for the response status `201`
  * added the new `canceling` enum value to the `plan/status` response property for the response status `201`
  * added the new `customer_amount` enum value to the `default_fee_split_mode` response property for the response status `201`
  * added the new `full` enum value to the `access_tier` response property for the response status `201`
  * added the new `partner` enum value to the `billing` response property for the response status `201`
  * added the new `partner` enum value to the `plan/paid_by` response property for the response status `201`
  * added the new `past_due` enum value to the `plan/status` response property for the response status `201`
  * added the new `percent` enum value to the `default_fee_split_mode` response property for the response status `201`
  * added the new `store` enum value to the `billing` response property for the response status `201`
  * added the new `store` enum value to the `plan/paid_by` response property for the response status `201`
  * added the new `wallet` enum value to the `access_tier` response property for the response status `201`
  * added the new `api_only` enum value to the request property `access_tier`
  * added the new `full` enum value to the request property `access_tier`
  * added the new `wallet` enum value to the request property `access_tier`
  * the `lat` request property `format` was widened from `float` to `double`
  * the `lng` request property `format` was widened from `float` to `double`
  * added the non-success response with the status `403`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `plan/canceled_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `plan/current_period_ends_on` response's property `format` was narrowed from `none` to `date` for status `201`
  * the `plan/ends_on` response's property `format` was narrowed from `none` to `date` for status `201`
  * the `plan/next_charge_on` response's property `format` was narrowed from `none` to `date` for status `201`
  * the `plan/pending_paid_by_on` response's property `format` was narrowed from `none` to `date` for status `201`

  **GET /v1/stores/\{id}**

  * the response property `lat` became nullable for the status `200`
  * the response property `lng` became nullable for the status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * added the new `active` enum value to the `plan/status` response property for the response status `200`
  * added the new `api_only` enum value to the `access_tier` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `plan/status` response property for the response status `200`
  * added the new `business_amount` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `canceled` enum value to the `plan/status` response property for the response status `200`
  * added the new `canceling` enum value to the `plan/status` response property for the response status `200`
  * added the new `customer_amount` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `full` enum value to the `access_tier` response property for the response status `200`
  * added the new `partner` enum value to the `billing` response property for the response status `200`
  * added the new `partner` enum value to the `plan/paid_by` response property for the response status `200`
  * added the new `past_due` enum value to the `plan/status` response property for the response status `200`
  * added the new `percent` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `store` enum value to the `billing` response property for the response status `200`
  * added the new `store` enum value to the `plan/paid_by` response property for the response status `200`
  * added the new `wallet` enum value to the `access_tier` response property for the response status `200`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `plan/canceled_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `plan/current_period_ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/next_charge_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/pending_paid_by_on` response's property `format` was narrowed from `none` to `date` for status `200`

  **PATCH /v1/stores/\{id}**

  * request property `access_tier` was restricted to a list of enum values
  * the response property `error/param` became nullable for the status `422`
  * the response property `lat` became nullable for the status `200`
  * the response property `lng` became nullable for the status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `external_id` request property's maxLength was set to `255`
  * the `pickup_notes` request property's maxLength was set to `280`
  * the `default_business_fee_share` request property's max was set to `100.00`
  * the `markup_cents` request property's max was set to `1000000.00`
  * the `default_business_fee_share` request property's min was set to `0.00`
  * the `markup_cents` request property's min was set to `0.00`
  * added the new `active` enum value to the `plan/status` response property for the response status `200`
  * added the new `api_only` enum value to the `access_tier` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `plan/status` response property for the response status `200`
  * added the new `business_amount` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `canceled` enum value to the `plan/status` response property for the response status `200`
  * added the new `canceling` enum value to the `plan/status` response property for the response status `200`
  * added the new `customer_amount` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `full` enum value to the `access_tier` response property for the response status `200`
  * added the new `partner` enum value to the `billing` response property for the response status `200`
  * added the new `partner` enum value to the `plan/paid_by` response property for the response status `200`
  * added the new `past_due` enum value to the `plan/status` response property for the response status `200`
  * added the new `percent` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `store` enum value to the `billing` response property for the response status `200`
  * added the new `store` enum value to the `plan/paid_by` response property for the response status `200`
  * added the new `wallet` enum value to the `access_tier` response property for the response status `200`
  * added the new optional request property `apt_unit`
  * added the new optional request property `lat`
  * added the new optional request property `lng`
  * added the new optional request property `phone`
  * added the new optional request property `street`
  * added the new optional request property `timezone`
  * added the new `api_only` enum value to the request property `access_tier`
  * added the new `full` enum value to the request property `access_tier`
  * added the new `wallet` enum value to the request property `access_tier`
  * the `pickup_notes` request property `type` was widened from `null` to `string, null`
  * added the non-success response with the status `403`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `plan/canceled_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `plan/current_period_ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/next_charge_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/pending_paid_by_on` response's property `format` was narrowed from `none` to `date` for status `200`

  **GET /v1/stores/\{store\_id}/balance**

  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * added the new `MXN` enum value to the `currency` response property for the response status `200`
  * added the new `partner` enum value to the `billing` response property for the response status `200`
  * added the new `store` enum value to the `billing` response property for the response status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`

  **GET /v1/stores/\{store\_id}/ledger**

  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `data/items/occurred_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`

  **POST /v1/stores/\{store\_id}/owner**

  * request body became required
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * added the non-success response with the status `403`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `invited_at` response's property `format` was narrowed from `none` to `date-time` for status `201`

  **POST /v1/stores/\{store\_id}/plan**

  * removed the request body
  * the response property `error/param` became nullable for the status `422`
  * the response property `lat` became nullable for the status `200`
  * the response property `lng` became nullable for the status `200`
  * the `apt_unit` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `default_fee_split_amount_cents` response's property `type` was widened from `null` to `integer, null` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `402`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `external_id` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup_notes` response's property `type` was widened from `null` to `string, null` for status `200`
  * added the new `active` enum value to the `plan/status` response property for the response status `200`
  * added the new `api_only` enum value to the `access_tier` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `plan/status` response property for the response status `200`
  * added the new `business_amount` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `canceled` enum value to the `plan/status` response property for the response status `200`
  * added the new `canceling` enum value to the `plan/status` response property for the response status `200`
  * added the new `customer_amount` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `full` enum value to the `access_tier` response property for the response status `200`
  * added the new `partner` enum value to the `billing` response property for the response status `200`
  * added the new `partner` enum value to the `plan/paid_by` response property for the response status `200`
  * added the new `past_due` enum value to the `plan/status` response property for the response status `200`
  * added the new `percent` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `store` enum value to the `billing` response property for the response status `200`
  * added the new `store` enum value to the `plan/paid_by` response property for the response status `200`
  * added the new `wallet` enum value to the `access_tier` response property for the response status `200`
  * added the non-success response with the status `403`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `402`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `plan/canceled_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `plan/current_period_ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/next_charge_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/pending_paid_by_on` response's property `format` was narrowed from `none` to `date` for status `200`

  **DELETE /v1/stores/\{store\_id}/plan\_cancellation**

  * the response property `lat` became nullable for the status `200`
  * the response property `lng` became nullable for the status `200`
  * the `apt_unit` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `default_fee_split_amount_cents` response's property `type` was widened from `null` to `integer, null` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `external_id` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup_notes` response's property `type` was widened from `null` to `string, null` for status `200`
  * added the new `active` enum value to the `plan/status` response property for the response status `200`
  * added the new `api_only` enum value to the `access_tier` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `plan/status` response property for the response status `200`
  * added the new `business_amount` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `canceled` enum value to the `plan/status` response property for the response status `200`
  * added the new `canceling` enum value to the `plan/status` response property for the response status `200`
  * added the new `customer_amount` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `full` enum value to the `access_tier` response property for the response status `200`
  * added the new `partner` enum value to the `billing` response property for the response status `200`
  * added the new `partner` enum value to the `plan/paid_by` response property for the response status `200`
  * added the new `past_due` enum value to the `plan/status` response property for the response status `200`
  * added the new `percent` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `store` enum value to the `billing` response property for the response status `200`
  * added the new `store` enum value to the `plan/paid_by` response property for the response status `200`
  * added the new `wallet` enum value to the `access_tier` response property for the response status `200`
  * added the non-success response with the status `403`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `plan/canceled_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `plan/current_period_ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/next_charge_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/pending_paid_by_on` response's property `format` was narrowed from `none` to `date` for status `200`

  **POST /v1/stores/\{store\_id}/plan\_cancellation**

  * removed the request body
  * the response property `error/param` became nullable for the status `422`
  * the response property `lat` became nullable for the status `200`
  * the response property `lng` became nullable for the status `200`
  * the `apt_unit` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `default_fee_split_amount_cents` response's property `type` was widened from `null` to `integer, null` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `external_id` response's property `type` was widened from `null` to `string, null` for status `200`
  * the `lat` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `lng` response's property `type/format` was widened from `number/float` to `number, null/double` for status `200`
  * the `pickup_notes` response's property `type` was widened from `null` to `string, null` for status `200`
  * added the new `active` enum value to the `plan/status` response property for the response status `200`
  * added the new `api_only` enum value to the `access_tier` response property for the response status `200`
  * added the new `awaiting_payment` enum value to the `plan/status` response property for the response status `200`
  * added the new `business_amount` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `canceled` enum value to the `plan/status` response property for the response status `200`
  * added the new `canceling` enum value to the `plan/status` response property for the response status `200`
  * added the new `customer_amount` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `full` enum value to the `access_tier` response property for the response status `200`
  * added the new `partner` enum value to the `billing` response property for the response status `200`
  * added the new `partner` enum value to the `plan/paid_by` response property for the response status `200`
  * added the new `past_due` enum value to the `plan/status` response property for the response status `200`
  * added the new `percent` enum value to the `default_fee_split_mode` response property for the response status `200`
  * added the new `store` enum value to the `billing` response property for the response status `200`
  * added the new `store` enum value to the `plan/paid_by` response property for the response status `200`
  * added the new `wallet` enum value to the `access_tier` response property for the response status `200`
  * added the non-success response with the status `403`
  * the `created_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `plan/canceled_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `plan/current_period_ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/ends_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/next_charge_on` response's property `format` was narrowed from `none` to `date` for status `200`
  * the `plan/pending_paid_by_on` response's property `format` was narrowed from `none` to `date` for status `200`

  **POST /v1/stores/\{store\_id}/stripe\_onboarding**

  * removed the request body
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `503`
  * added the non-success response with the status `403`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `503`
  * the `url` response's property `format` was narrowed from `none` to `uri` for status `200`

  **GET /v1/stores/\{store\_id}/stripe\_status**

  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * added the new `action_required` enum value to the `status` response property for the response status `200`
  * added the new `connected` enum value to the `status` response property for the response status `200`
  * added the new `not_started` enum value to the `status` response property for the response status `200`
  * added the new `verifying` enum value to the `status` response property for the response status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`

  **POST /v1/stripe\_onboarding**

  * removed the request body
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `503`
  * added the non-success response with the status `403`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `503`
  * the `url` response's property `format` was narrowed from `none` to `uri` for status `200`

  **GET /v1/stripe\_status**

  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * added the new `action_required` enum value to the `status` response property for the response status `200`
  * added the new `connected` enum value to the `status` response property for the response status `200`
  * added the new `not_started` enum value to the `status` response property for the response status `200`
  * added the new `verifying` enum value to the `status` response property for the response status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`

  **POST /v1/test\_webhooks**

  * request body became required
  * added `#/components/schemas/DeliveryStatusChangedEvent, #/components/schemas/DeliveryUpdatedEvent, #/components/schemas/DeliveryCourierLocationEvent, #/components/schemas/WithdrawalUpdatedEvent, #/components/schemas/StoreUpdatedEvent, #/components/schemas/StoreConnectedEvent` to the response body `oneOf` list for the response status `202`
  * the response's body `type` changed from `object` to `any` for status `202`
  * the response property `error/param` became nullable for the status `422`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `409`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `429`
  * removed the required property `created_at` from the response with the `202` status
  * removed the required property `data` from the response with the `202` status
  * removed the required property `id` from the response with the `202` status
  * removed the required property `test` from the response with the `202` status
  * removed the required property `type` from the response with the `202` status
  * added response discriminator for the response status `202`
  * added the non-success response with the status `403`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `409`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `429`

  **GET /v1/withdrawals**

  * the response property `data/items/clave_de_rastreo` became nullable for the status `200`
  * the response property `data/items/requested_at` became nullable for the status `200`
  * the `data/items/requested_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * added the new `MXN` enum value to the `data/items/currency` response property for the response status `200`
  * added the new `failed` enum value to the `data/items/status` response property for the response status `200`
  * added the new `paid` enum value to the `data/items/status` response property for the response status `200`
  * added the new `pending` enum value to the `data/items/status` response property for the response status `200`
  * added the new `same_day` enum value to the `data/items/kind` response property for the response status `200`
  * added the new `standard` enum value to the `data/items/kind` response property for the response status `200`
  * the `data/items/due_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `data/items/resolved_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`

  **POST /v1/withdrawals**

  * request body became required
  * request property `kind` was restricted to a list of enum values
  * the response property `clave_de_rastreo` became nullable for the status `201`
  * the response property `requested_at` became nullable for the status `201`
  * the `clave_de_rastreo` response's property `type` was widened from `null` to `string, null` for status `201`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `401`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `402`
  * the `requested_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `201`
  * the `resolved_at` response's property `type/format` was widened from `null` to `string, null/date-time` for status `201`
  * the `amount_cents` request property's min was set to `1.00`
  * added the new `MXN` enum value to the `currency` response property for the response status `201`
  * added the new `failed` enum value to the `status` response property for the response status `201`
  * added the new `paid` enum value to the `status` response property for the response status `201`
  * added the new `pending` enum value to the `status` response property for the response status `201`
  * added the new `same_day` enum value to the `kind` response property for the response status `201`
  * added the new `standard` enum value to the `kind` response property for the response status `201`
  * added the new `same_day` enum value to the request property `kind`
  * added the new `standard` enum value to the request property `kind`
  * added the new `undefined` enum value to the request property `kind`
  * added the non-success response with the status `403`
  * the `due_at` response's property `format` was narrowed from `none` to `date-time` for status `201`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `401`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `402`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `422`

  **GET /v1/withdrawals/\{id}**

  * the response property `clave_de_rastreo` became nullable for the status `200`
  * the response property `requested_at` became nullable for the status `200`
  * the `error/param` response's property `type` was widened from `null` to `string, null` for status `404`
  * the `requested_at` response's property `type/format` was widened from `string` to `string, null/date-time` for status `200`
  * added the new `MXN` enum value to the `currency` response property for the response status `200`
  * added the new `failed` enum value to the `status` response property for the response status `200`
  * added the new `paid` enum value to the `status` response property for the response status `200`
  * added the new `pending` enum value to the `status` response property for the response status `200`
  * added the new `same_day` enum value to the `kind` response property for the response status `200`
  * added the new `standard` enum value to the `kind` response property for the response status `200`
  * the `due_at` response's property `format` was narrowed from `none` to `date-time` for status `200`
  * the `error/doc_url` response's property `format` was narrowed from `none` to `uri` for status `404`
  * the `resolved_at` response's property `format` was narrowed from `none` to `date-time` for status `200`

  **POST webhook:delivery.courier\_location**

  * added `#/components/schemas/WebhookEventEnvelope` to the request body `allOf` list
  * request property `allOf[subschema #2]/type` was restricted to a list of enum values
  * the request property `allOf[subschema #2]/data` became required
  * the request property `allOf[subschema #2]/type` became required
  * the `allOf[subschema #2]/data/location/lat` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/location/lng` request property `format` changed from `none` to `double`
  * removed `#/components/schemas/WebhookEvent` from the request body `allOf` list
  * the `type` request property const value `delivery.courier_location` was removed
  * added the new `delivery.courier_location` enum value to the request property `allOf[subschema #2]/type`

  **POST webhook:delivery.status\_changed**

  * added `#/components/schemas/WebhookEventEnvelope` to the request body `allOf` list
  * request property `allOf[subschema #2]/type` was restricted to a list of enum values
  * the request property `allOf[subschema #2]/data` became required
  * the request property `allOf[subschema #2]/type` became required
  * the `allOf[subschema #2]/data/courier/location/lat` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/courier/location/lng` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/dropoff/lat` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/dropoff/lng` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/pickup/lat` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/pickup/lng` request property `format` changed from `none` to `double`
  * removed `#/components/schemas/WebhookEvent` from the request body `allOf` list
  * the `type` request property const value `delivery.status_changed` was removed
  * added the new `awaiting_location` enum value to the request property `allOf[subschema #2]/data/status`
  * added the new `delivery.status_changed` enum value to the request property `allOf[subschema #2]/type`

  **POST webhook:delivery.updated**

  * added `#/components/schemas/WebhookEventEnvelope` to the request body `allOf` list
  * request property `allOf[subschema #2]/type` was restricted to a list of enum values
  * the request property `allOf[subschema #2]/data` became required
  * the request property `allOf[subschema #2]/type` became required
  * the `allOf[subschema #2]/data/courier/location/lat` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/courier/location/lng` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/dropoff/lat` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/dropoff/lng` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/pickup/lat` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/pickup/lng` request property `format` changed from `none` to `double`
  * removed `#/components/schemas/WebhookEvent` from the request body `allOf` list
  * the `type` request property const value `delivery.updated` was removed
  * added the new `awaiting_location` enum value to the request property `allOf[subschema #2]/data/status`
  * added the new `delivery.updated` enum value to the request property `allOf[subschema #2]/type`

  **POST webhook:store.connected**

  * added `#/components/schemas/WebhookEventEnvelope` to the request body `allOf` list
  * request property `allOf[subschema #2]/type` was restricted to a list of enum values
  * the request property `allOf[subschema #2]/data` became required
  * the request property `allOf[subschema #2]/type` became required
  * the `allOf[subschema #2]/data/lat` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/lng` request property `format` changed from `none` to `double`
  * removed `#/components/schemas/WebhookEvent` from the request body `allOf` list
  * the `type` request property const value `store.connected` was removed
  * added the new `store.connected` enum value to the request property `allOf[subschema #2]/type`

  **POST webhook:store.updated**

  * added `#/components/schemas/WebhookEventEnvelope` to the request body `allOf` list
  * request property `allOf[subschema #2]/type` was restricted to a list of enum values
  * the request property `allOf[subschema #2]/data` became required
  * the request property `allOf[subschema #2]/type` became required
  * the `allOf[subschema #2]/data/lat` request property `format` changed from `none` to `double`
  * the `allOf[subschema #2]/data/lng` request property `format` changed from `none` to `double`
  * removed `#/components/schemas/WebhookEvent` from the request body `allOf` list
  * the `type` request property const value `store.updated` was removed
  * added the new `store.updated` enum value to the request property `allOf[subschema #2]/type`

  **POST webhook:withdrawal.updated**

  * added `#/components/schemas/WebhookEventEnvelope` to the request body `allOf` list
  * request property `allOf[subschema #2]/type` was restricted to a list of enum values
  * the request property `allOf[subschema #2]/data` became required
  * the request property `allOf[subschema #2]/type` became required
  * removed `#/components/schemas/WebhookEvent` from the request body `allOf` list
  * the `type` request property const value `withdrawal.updated` was removed
  * added the new `withdrawal.updated` enum value to the request property `allOf[subschema #2]/type`
</details>

**1.32.0, 6 November 2026**

every error links to its page and names the request, find a call by its request id, and read-only keys

Every error response now carries two more fields in `error`: `doc_url`, the page of this documentation that explains that error code and what to do about it, in the language you asked for with `Accept-Language`, and `request_id`, Listo's id for the call, the same value as the `X-Request-Id` response header. Paste the `request_id` into a support request. You can also find the call yourself: `GET /v1/request_logs` has a new `request_id` filter (an exact match), and the dashboard's Request logs page has a search box for it. A key can now be issued as read-only: it can call `GET` and `HEAD` and nothing else, and any other call with it is refused with the new `403 read_only_key` error, so you can hand it to an AI agent or a dashboard that must not move money. Nothing that worked before changes.

<details>
  <summary>Schema changes</summary>

  **GET /v1/balance**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `401` status

  **POST /v1/connect\_requests**

  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `422` status

  **POST /v1/connections**

  * added the required property `error/doc_url` to the response with the `400` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `400` status
  * added the required property `error/request_id` to the response with the `404` status

  **GET /v1/deliveries**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `422` status

  **POST /v1/deliveries**

  * added the required property `error/doc_url` to the response with the `400` status
  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `402` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/doc_url` to the response with the `503` status
  * added the required property `error/request_id` to the response with the `400` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `402` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `503` status

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `422` status

  **POST /v1/deliveries/\{delivery\_id}/refunds**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `422` status

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `422` status

  **GET /v1/deliveries/\{id}**

  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `404` status

  **PATCH /v1/deliveries/\{id}**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/doc_url` to the response with the `503` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `503` status

  **POST /v1/events/\{event\_id}/resend**

  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `429` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `429` status

  **GET /v1/ledger**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status

  **GET /v1/ping**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `429` status
  * added the required property `error/doc_url` to the response with the `500` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `429` status
  * added the required property `error/request_id` to the response with the `500` status

  **POST /v1/quotes**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/doc_url` to the response with the `503` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `503` status

  **GET /v1/request\_logs**

  * added the new optional `query` request parameter `request_id`

  **GET /v1/stores**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `401` status

  **POST /v1/stores**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `422` status

  **GET /v1/stores/\{id}**

  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `404` status

  **PATCH /v1/stores/\{id}**

  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `422` status

  **GET /v1/stores/\{store\_id}/balance**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status

  **GET /v1/stores/\{store\_id}/ledger**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status

  **POST /v1/stores/\{store\_id}/owner**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `422` status

  **POST /v1/stores/\{store\_id}/plan**

  * added the required property `error/doc_url` to the response with the `402` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `402` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `422` status

  **DELETE /v1/stores/\{store\_id}/plan\_cancellation**

  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `409` status

  **POST /v1/stores/\{store\_id}/plan\_cancellation**

  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `422` status

  **POST /v1/stores/\{store\_id}/stripe\_onboarding**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `503` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `503` status

  **GET /v1/stores/\{store\_id}/stripe\_status**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status

  **POST /v1/stripe\_onboarding**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/doc_url` to the response with the `503` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `503` status

  **GET /v1/stripe\_status**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `404` status

  **POST /v1/test\_webhooks**

  * added the required property `error/doc_url` to the response with the `409` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/doc_url` to the response with the `429` status
  * added the required property `error/request_id` to the response with the `409` status
  * added the required property `error/request_id` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `429` status

  **GET /v1/withdrawals**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `401` status

  **POST /v1/withdrawals**

  * added the required property `error/doc_url` to the response with the `401` status
  * added the required property `error/doc_url` to the response with the `402` status
  * added the required property `error/doc_url` to the response with the `422` status
  * added the required property `error/request_id` to the response with the `401` status
  * added the required property `error/request_id` to the response with the `402` status
  * added the required property `error/request_id` to the response with the `422` status

  **GET /v1/withdrawals/\{id}**

  * added the required property `error/doc_url` to the response with the `404` status
  * added the required property `error/request_id` to the response with the `404` status
</details>

**1.31.0, 6 November 2026**

developer earnings on the ledger, and a store with no plan

The ledger gains a `developer_share` type: what you earn on a delivered trip of your own store, credited to you when the trip is delivered. A store of a partner on pricing with no Plan Listo has `plan` `null`, because it needs no plan.

**1.30.0, 6 November 2026**

rehearse a return, a missing courier and a late pickup on a test key

`POST /v1/deliveries` accepts an optional `simulate` on a test key: `returned` brings the order back to the store, `no_courier` answers the same `409 no_couriers_available` a live create does and creates nothing, and `delayed_pickup` sends a courier who collects the order about 25 minutes after the create. A live key that sends `simulate` is refused with `422 validation_failed`.

<details>
  <summary>Schema changes</summary>

  **POST /v1/deliveries**

  * added the new optional request property `simulate`
</details>

**1.29.0, 6 November 2026**

see your own calls, events and delivery attempts, then resend an event or send a test one

You can now debug an integration yourself. `GET /v1/request_logs` and `GET /v1/request_logs/{id}` list the calls your keys made, with what you sent and what we answered. `GET /v1/events` and `GET /v1/events/{id}` list the events Listo emitted for you, and `GET /v1/webhook_deliveries` lists every attempt to deliver them and what your endpoint answered. `POST /v1/events/{id}/resend` sends one event to your endpoint again, `POST /v1/test_webhooks` sends a sample event of any type with `"test": true`, and four new error codes (`webhook_endpoint_not_configured`, `event_not_resendable`, `resend_limit_reached` and `test_webhook_limit_reached`) say when one is refused. A resent event is the snapshot from when it happened, so `GET /v1/deliveries` is still how you recover where things stand now.

<details>
  <summary>Schema changes</summary>

  **GET /v1/events**

  * endpoint added

  **POST /v1/events/\{event\_id}/resend**

  * endpoint added

  **GET /v1/events/\{id}**

  * endpoint added

  **GET /v1/request\_logs**

  * endpoint added

  **GET /v1/request\_logs/\{id}**

  * endpoint added

  **POST /v1/test\_webhooks**

  * endpoint added

  **GET /v1/webhook\_deliveries**

  * endpoint added

  **POST webhook:delivery.courier\_location**

  * added the new optional request property `allOf[#/components/schemas/WebhookEvent]/test`

  **POST webhook:delivery.status\_changed**

  * added the new optional request property `allOf[#/components/schemas/WebhookEvent]/test`

  **POST webhook:delivery.updated**

  * added the new optional request property `allOf[#/components/schemas/WebhookEvent]/test`

  **POST webhook:store.connected**

  * added the new optional request property `allOf[#/components/schemas/WebhookEvent]/test`

  **POST webhook:store.updated**

  * added the new optional request property `allOf[#/components/schemas/WebhookEvent]/test`

  **POST webhook:withdrawal.updated**

  * added the new optional request property `allOf[#/components/schemas/WebhookEvent]/test`
</details>

**1.28.0, 27 October 2026**

the return code's description, wording only

The description of `return_verification` now says plainly what the code is for and when `pincode` is set: a 4 digit string while the delivery is `returning`, `null` otherwise. Nothing in the API changed.

**1.27.0, 18 October 2026**

every delivery carries a return code

Every delivery carries `return_verification`, whose `pincode` is the 4 digit return code the store gives the courier to complete a return. The object is always there, and `pincode` is a 4 digit string while `status` is `returning`, and `null` otherwise.

<details>
  <summary>Schema changes</summary>

  **GET /v1/deliveries**

  * added the required property `data/items/return_verification` to the response with the `200` status

  **POST /v1/deliveries**

  * added the required property `return_verification` to the response with the `201` status

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * added the required property `return_verification` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/refunds**

  * added the required property `return_verification` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * added the required property `return_verification` to the response with the `200` status

  **GET /v1/deliveries/\{id}**

  * added the required property `return_verification` to the response with the `200` status

  **PATCH /v1/deliveries/\{id}**

  * added the required property `return_verification` to the response with the `200` status

  **POST webhook:delivery.status\_changed**

  * added the new required request property `allOf[subschema #2]/data/return_verification`

  **POST webhook:delivery.updated**

  * added the new required request property `allOf[subschema #2]/data/return_verification`
</details>

**1.26.0, 18 October 2026**

deliveries carry their proofs, and phone numbers are checked as E.164

Every delivery carries `proofs`, the evidence the trip left at pickup, drop-off and return, and the links in `proof` are now Listo's own 24 hour signed links, `null` for the few seconds before Listo holds its copy. Phone numbers are checked more strictly as E.164, and a quote sent without `payment_method` is priced as `prepaid` (`business_fee_share` 100), so only a `prepaid` create can bind it.

<details>
  <summary>Schema changes</summary>

  **GET /v1/deliveries**

  * the response property `data/items/proof/captured_at` became nullable for the status `200`
  * the response property `data/items/proof/picture_url` became nullable for the status `200`
  * the response property `data/items/proof/signature_image_url` became nullable for the status `200`
  * the response property `data/items/proof/signature_name` became nullable for the status `200`
  * added the required property `data/items/proofs` to the response with the `200` status

  **POST /v1/deliveries**

  * added the required property `proofs` to the response with the `201` status

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * added the required property `proofs` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/refunds**

  * added the required property `proofs` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * added the required property `proofs` to the response with the `200` status

  **GET /v1/deliveries/\{id}**

  * the response property `proof/captured_at` became nullable for the status `200`
  * the response property `proof/picture_url` became nullable for the status `200`
  * the response property `proof/signature_image_url` became nullable for the status `200`
  * the response property `proof/signature_name` became nullable for the status `200`
  * added the required property `proofs` to the response with the `200` status

  **PATCH /v1/deliveries/\{id}**

  * added the required property `proofs` to the response with the `200` status

  **POST webhook:delivery.status\_changed**

  * added the new required request property `allOf[subschema #2]/data/proofs`

  **POST webhook:delivery.updated**

  * added the new required request property `allOf[subschema #2]/data/proofs`
</details>

**1.25.0, 16 October 2026**

Listo sends your customer the payment link and the courier's messages

On a `card` order, Listo now sends the customer the payment link itself. The
moment the order is created and waiting for payment, it goes out as a WhatsApp
from Listo's own number, in Spanish, with the amount owed and `payment.url`, and
if that WhatsApp does not reach the customer Listo sends the same link by SMS.
`payment.url` is still on the response, so you can show it or keep it, but you no
longer need to send it, and you should not: the customer would get the same link
twice from two senders. Nothing in the schema changed, and no partner had created
a `card` order before this, so no existing integration changes behaviour.

We are also documenting something that was already true and that the docs
denied. Listo was already sending the customer of every API order its courier
messages, from the same number: courier assigned, on the way, arriving and
delivered, with the tracking link and the drop-off code when you asked for one.
That includes `prepaid` and `cash` orders, and the line saying Listo never meets
your customer on a prepaid order was wrong. See
[what Listo sends your customer](https://docs.listo.delivery/en/guides/quote-and-create.md#what-listo-sends-your-customer).

**1.24.0, 15 October 2026**

a plan awaiting its first payment, and a spent plan refuses deliveries

A store whose first Plan Listo month your balance and card could not cover now reads `plan.status` `awaiting_payment` instead of `past_due`, and Listo charges it by itself once they can. A plan whose included deliveries for the cycle are all used refuses deliveries with `402 plan_required`.

<details>
  <summary>Schema changes</summary>

  **POST webhook:store.connected**

  * added the new `awaiting_payment` enum value to the request property `allOf[subschema #2]/data/plan/status`

  **POST webhook:store.updated**

  * added the new `awaiting_payment` enum value to the request property `allOf[subschema #2]/data/plan/status`
</details>

**1.23.0, 12 October 2026**

each restaurant can pay its own Plan Listo

Your account can be set up so that each restaurant pays its own Plan Listo, and then a live store is created with `plan` null and cannot be `api_only`.

**1.22.0, 5 October 2026**

a quote fixes what the order is charged, and booking differences land on your ledger

`GET /v1/ledger` has two new row types: `requote_adjustment`, explained below, and `listo_charge_correction`, a charge Listo made in error and gave back.

A quote used to read as a promise that you would pay exactly what you were
quoted, however the underlying cost moved before the delivery was created. That
promise is withdrawn. Binding a quote on `POST /v1/deliveries` still charges the
order the quote's `fee_cents` and split, and the total your customer sees never
moves. What changes is what happens when the courier network books the trip at a
slightly different price: the difference is no longer absorbed for you. It
appears on your ledger as its own `requote_adjustment` row on `GET /v1/ledger`,
negative when the booked trip cost more and positive when it cost less.

This should be rare: a create now books the very quote you were shown whenever it
is still valid, and asks for a new one only when it has expired or the order
changed what it was priced for. A cash order always books a fresh quote, because
the quote you were shown carries no amount for the courier to collect.
`requote_adjustment` is a new `type` value, and `type` values grow in ordinary
releases, so keep counting the ones you do not recognise toward your balance.

**1.21.0, 1 October 2026**

balances show the cash still in review

`GET /v1/balance` and `GET /v1/stores/{store_id}/balance` carry `in_review_cents`, cash still under review that deliveries cannot draw on.

<details>
  <summary>Schema changes</summary>

  **GET /v1/balance**

  * added the required property `in_review_cents` to the response with the `200` status

  **GET /v1/stores/\{store\_id}/balance**

  * added the required property `in_review_cents` to the response with the `200` status
</details>

**1.20.0, 29 September 2026**

a busy courier network answers 409 no\_couriers\_available

When every courier near a trip is busy, the courier network refuses to price it
for the moment. That refusal used to reach you as `503 provider_unavailable`,
which says our dispatch is down, and your monitoring counted it as a server
error. It now answers `409 no_couriers_available` with `retryable: true`, on
`POST /v1/quotes` and on `POST /v1/deliveries`, and nothing is created or
debited. The identical request, with the same `Idempotency-Key` on a create,
goes through once a courier is free, usually within minutes.

`no_couriers_available` is the word a delivery that ended without a courier
already carries in `failure_reason`, so one fact now has one name wherever you
meet it. If you retry every `503` at once, this refusal no longer reaches that
loop: retry it after a few minutes, a bounded number of times, and then tell
whoever is waiting for the order. `provider_unavailable` still means what it
says, a dispatch outage.

**1.19.0, 28 September 2026**

the service area is 15 km, and its edge refuses with out\_of\_service\_area

The distance Listo delivers from a store is now 15 km in a straight line from
the store's position, up from 10 km. A quote or a delivery whose drop-off is
farther than that is refused with `422 out_of_service_area`, as before, at the
new distance.

A drop-off within a few tens of metres of that edge can also be refused by the
courier network, which measures the same 15 km from its own record of the
store. That refusal used to reach you as `503 provider_unavailable` with
`retryable: true`, which invited you to retry a distance no retry can change.
It now answers `422 out_of_service_area` with `retryable: false`, on
`POST /v1/quotes`, on `POST /v1/deliveries`, and on
`POST /v1/deliveries/{id}/retries`, where the delivery stays at `no_courier`
and nothing is charged. A delivery the network refuses this way after it was
created reads `failure_reason: delivery_failed`, as any other failure of ours
does.

Rarely, the refusal comes on `POST /v1/deliveries` itself, a moment after the
network priced the trip. The create answers the same `422`, with the same body,
and replaying it with the same `Idempotency-Key` answers it again. The delivery
had already been recorded by then, so it stays, ended at `no_courier` under your
`external_id`, with its fee debit returned in full and nothing else charged. To
send that order somewhere else, create it with a new `external_id`.

Repeating a create with the same `Idempotency-Key` while the original request is
still being processed, its dispatch included, answers `409 idempotency_conflict`
(in progress) until the original has answered, and from then on the replay
returns the original's answer, that `422` included. A repeat that arrived while
the dispatch was still running used to be answered `201` from the delivery,
even when the original went on to answer `422`.

If you already branch on `out_of_service_area`, there is nothing to change. If
you retry every `503`, a drop-off at the edge now stops at the first answer
instead of at your retry limit.

<details>
  <summary>Schema changes</summary>

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * added the non-success response with the status `422`
</details>

**1.18.0, 27 September 2026**

the drop-off arrival time is null once a drop-off fails

`dropoff_eta_at` is when the courier is expected at the customer. After a
failed drop-off it used to carry a different time: from the moment a delivery
entered `returning` it held when the courier was expected back at the store,
kept moving as the courier drove there, and stayed on the delivery once it was
`returned`. It is now `null` on a `returning` and on a `returned` delivery, in
every response and every webhook that carries a delivery, because the customer
is not receiving anything and there is no arrival at their door left to
describe. The time the order gets back to the store is not published in its
place.

If you show `dropoff_eta_at` to your customers or your merchants as an arrival
time, a returning order now shows none, where before it showed when the food
would be back in the kitchen as though it were arriving at the customer.
`returned` still marks the moment the order is back.

Nothing about the request or the response shape moved: the field is still
always present, and `null` was already one of its values before the courier had
an estimate.

**1.17.0, 24 September 2026**

every live store carries a Plan Listo, charged to you

Every store you create with a live key now carries one Plan Listo, and the plan
is charged to you: MX\$1,990 plus IVA a month for each store at list price, or the
price you agreed with Listo. `POST /v1/stores` with a live key charges the new
store's first month in the same request, from your live balance or from the card
saved on your account, so fund one of them before you create a store and send an
`Idempotency-Key` on every live create. A month paid from the balance appears on
`GET /v1/ledger` as a `plan_charge` row, and every ledger row now carries
`store_id`, the store it belongs to, or `null` when it belongs to none.

A live store whose plan is unpaid or has ended has its quotes, deliveries and
retries refused with `402 plan_required`, whatever your balance holds. Every
store object carries a new `plan` block, which is `null` on a test store and on
a live store created before Plan Listo existed: those keep requesting couriers
as before. Three new endpoints manage a plan:
`POST /v1/stores/{id}/plan_cancellation` ends it when the period already paid
runs out, `DELETE` on the same path undoes that, and `POST /v1/stores/{id}/plan`
restarts one that ended. A restaurant that connects an account of its own and
already pays its own plan keeps paying it until its next renewal, and from then
on it is charged to you. The store object in `store.updated` and
`store.connected` now documents `plan`, `access_tier`, `billing` and
`markup_cents` as always present; the last three were already sent on every
event, and the reference now says so. Every plan block also carries `courtesy`,
always present: it is true while Listo waives the store's plan, when nothing is
charged and `next_charge_on` is null.

Everything about it is in [plan and billing](https://docs.listo.delivery/en/guides/plan-and-billing.md).

<details>
  <summary>Schema changes</summary>

  **POST /v1/connections**

  * added the required property `plan` to the response with the `201` status

  **GET /v1/ledger**

  * added the required property `data/items/store_id` to the response with the `200` status

  **GET /v1/stores**

  * added the required property `data/items/plan` to the response with the `200` status

  **POST /v1/stores**

  * added the required property `plan` to the response with the `201` status

  **GET /v1/stores/\{id}**

  * added the required property `plan` to the response with the `200` status

  **PATCH /v1/stores/\{id}**

  * added the required property `plan` to the response with the `200` status

  **GET /v1/stores/\{store\_id}/ledger**

  * added the required property `data/items/store_id` to the response with the `200` status

  **POST /v1/stores/\{store\_id}/plan**

  * endpoint added

  **DELETE /v1/stores/\{store\_id}/plan\_cancellation**

  * endpoint added

  **POST /v1/stores/\{store\_id}/plan\_cancellation**

  * endpoint added

  **POST webhook:store.connected**

  * added the new required request property `allOf[subschema #2]/data/access_tier`
  * added the new required request property `allOf[subschema #2]/data/billing`
  * added the new required request property `allOf[subschema #2]/data/markup_cents`
  * added the new required request property `allOf[subschema #2]/data/plan`

  **POST webhook:store.updated**

  * added the new required request property `allOf[subschema #2]/data/access_tier`
  * added the new required request property `allOf[subschema #2]/data/billing`
  * added the new required request property `allOf[subschema #2]/data/markup_cents`
  * added the new required request property `allOf[subschema #2]/data/plan`
</details>

**1.16.0, 23 September 2026**

deliveries by car, and a cart too large for one trip is refused

A quote and a delivery take `vehicle` (`moto` or `car`), and `manifest.items[].size` (`small`, `medium`, `large` or `xlarge`) decides when a trip needs a car; a cart too large for one trip is refused with `422 order_too_large`.

<details>
  <summary>Schema changes</summary>

  **GET /v1/deliveries**

  * added the required property `data/items/manifest/items/items/size` to the response with the `200` status
  * added the required property `data/items/vehicle` to the response with the `200` status

  **POST /v1/deliveries**

  * added the new optional request property `manifest/items/items/size`
  * added the new optional request property `vehicle`
  * the request property `manifest` became nullable
  * the request property `manifest/items` became nullable
  * the request property `manifest/items` became optional
  * added the required property `manifest/items/items/size` to the response with the `201` status
  * added the required property `vehicle` to the response with the `201` status

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * added the required property `manifest/items/items/size` to the response with the `200` status
  * added the required property `vehicle` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/refunds**

  * added the required property `vehicle` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * added the required property `manifest/items/items/size` to the response with the `200` status
  * added the required property `vehicle` to the response with the `200` status

  **GET /v1/deliveries/\{id}**

  * added the required property `manifest/items/items/size` to the response with the `200` status
  * added the required property `vehicle` to the response with the `200` status

  **PATCH /v1/deliveries/\{id}**

  * added the required property `manifest/items/items/size` to the response with the `200` status
  * added the required property `vehicle` to the response with the `200` status

  **POST /v1/quotes**

  * added the new optional request property `manifest`
  * added the new optional request property `vehicle`
  * added the required property `vehicle` to the response with the `201` status

  **POST webhook:delivery.status\_changed**

  * added the new required request property `allOf[subschema #2]/data/manifest/items/items/size`
  * added the new required request property `allOf[subschema #2]/data/vehicle`

  **POST webhook:delivery.updated**

  * added the new required request property `allOf[subschema #2]/data/manifest/items/items/size`
  * added the new required request property `allOf[subschema #2]/data/vehicle`
</details>

**1.15.0, 23 September 2026**

a connected restaurant's stores carry the business name

A store's `name` is the name you gave it, and for every store you created that
is unchanged. A restaurant that connects an account with several branches now
arrives with each store named after the business and the branch, `Tortería La
  Mera Mera, Zapopan`, the way its own customers read it, where it used to arrive
as the bare branch (`Zapopan`). A branch whose own name already begins with the
business's name, such as `Tortería La Mera Mera Centro`, is published as it is.
The same name comes back from the exchange, on `store.connected` and
`store.updated`, and on `GET /v1/stores`. When a connected restaurant renames
its business, you receive a `store.updated` for each of its stores, carrying the
new name.

Renaming a store with `PATCH /v1/stores/{id}` now renames its business with it
when the two carry one name, which every store you created does. Before, only
the store's own name moved, so what the restaurant's customers were shown still
led with the old one. A branch of a restaurant with several branches, or a store
whose name already differs from its business's, is renamed alone and reads as
the business followed by the new name. Sending back the name you read is safe: a
name that begins with the business's name and a comma is read as the business
and the branch, so it renames nothing, and `Tortería La Mera Mera, Centro`
renames only the branch.

A `store.updated` is no longer sent when the store object it would carry is
exactly the one you were last sent for that store, so a save that changes
nothing you can see sends nothing, and one change is one event. The event for a
store whose card readiness changed is sent as before, although its object does
not change.

Nothing about the request or the response shape moved.

**1.14.0, 10 September 2026**

same-day withdrawals, and a refusal while a pickup point is confirmed

Withdrawals can be same-day: `POST /v1/withdrawals` takes `kind`, `GET /v1/balance` carries `same_day`, and a withdrawal carries `kind`, `fee_cents` and `due_at`. A store whose pickup point is still being confirmed is refused with a retryable `409 pickup_point_pending`.

<details>
  <summary>Schema changes</summary>

  **GET /v1/balance**

  * added the required property `same_day` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/refunds**

  * the `tracking_url` response's property `type` was widened from `null` to `string, null` for status `200`

  **POST /v1/quotes**

  * added the non-success response with the status `409`

  **GET /v1/withdrawals**

  * added the required property `data/items/due_at` to the response with the `200` status
  * added the required property `data/items/fee_cents` to the response with the `200` status
  * added the required property `data/items/kind` to the response with the `200` status

  **POST /v1/withdrawals**

  * added the new optional request property `kind`
  * added the required property `due_at` to the response with the `201` status
  * added the required property `fee_cents` to the response with the `201` status
  * added the required property `kind` to the response with the `201` status

  **GET /v1/withdrawals/\{id}**

  * added the required property `due_at` to the response with the `200` status
  * added the required property `fee_cents` to the response with the `200` status
  * added the required property `kind` to the response with the `200` status

  **POST webhook:withdrawal.updated**

  * added the new required request property `allOf[subschema #2]/data/due_at`
  * added the new required request property `allOf[subschema #2]/data/fee_cents`
  * added the new required request property `allOf[subschema #2]/data/kind`
</details>

**1.13.0, 4 September 2026**

a store's timezone follows its position, and deliveries can originate on WhatsApp

A delivery's `origin` has a third value, `whatsapp`: a delivery created from an order a customer placed on WhatsApp and the store accepted.

`POST /v1/stores` and `PATCH /v1/stores/{id}` accept a `timezone`, and a zone
you sent used to be kept exactly as sent. It is now the fallback: the store's
own position decides its zone, and what you send is used only when the position
cannot answer (a store with no coordinates, or a position no zone claims).

Sending a zone that disagrees with the position changes nothing and is not an
error. The store is created or updated, everything else you sent is applied,
and the response carries the zone the position gives, so what you read back is
always what the store actually keeps.

The timezone change moves nothing in the request or the response shape, and
the field is not deprecated. What changed is which of two answers wins. We reversed it because
we cannot tell the two cases apart from here: a zone sent by default out of a
form that never asked its user arrives looking exactly like a zone somebody
chose, and a store on the wrong clock silently moves its opening hours, its
delivery timestamps and the week its earnings settle in. If a store's clock
looks wrong to you, its coordinates are what to fix.

<details>
  <summary>Schema changes</summary>

  **POST webhook:delivery.status\_changed**

  * added the new `whatsapp` enum value to the request property `allOf[subschema #2]/data/origin`

  **POST webhook:delivery.updated**

  * added the new `whatsapp` enum value to the request property `allOf[subschema #2]/data/origin`
</details>

**1.12.0, 2 September 2026**

stores can split the delivery fee by a fixed amount

A store's `default_fee_split_mode` and `default_fee_split_amount_cents` tell you when the restaurant splits the delivery fee by a fixed peso amount instead of a percentage, so read the mode before `default_business_fee_share`.

<details>
  <summary>Schema changes</summary>

  **POST /v1/connections**

  * added the required property `default_fee_split_amount_cents` to the response with the `201` status
  * added the required property `default_fee_split_mode` to the response with the `201` status

  **GET /v1/stores**

  * added the required property `data/items/default_fee_split_amount_cents` to the response with the `200` status
  * added the required property `data/items/default_fee_split_mode` to the response with the `200` status

  **POST /v1/stores**

  * added the required property `default_fee_split_amount_cents` to the response with the `201` status
  * added the required property `default_fee_split_mode` to the response with the `201` status

  **GET /v1/stores/\{id}**

  * added the required property `default_fee_split_amount_cents` to the response with the `200` status
  * added the required property `default_fee_split_mode` to the response with the `200` status

  **PATCH /v1/stores/\{id}**

  * added the new optional request property `default_business_fee_share`
  * added the required property `default_fee_split_amount_cents` to the response with the `200` status
  * added the required property `default_fee_split_mode` to the response with the `200` status

  **POST webhook:store.connected**

  * added the new required request property `allOf[subschema #2]/data/default_fee_split_amount_cents`
  * added the new required request property `allOf[subschema #2]/data/default_fee_split_mode`

  **POST webhook:store.updated**

  * added the new required request property `allOf[subschema #2]/data/default_fee_split_amount_cents`
  * added the new required request property `allOf[subschema #2]/data/default_fee_split_mode`
</details>

**1.11.0, 29 August 2026**

a wasted trip is billed at the delivery fee

A `provider_charge` on `GET /v1/ledger`, and the matching entry in a delivery's
`charges` array, used to be what the wasted trip cost Listo. It is now the
delivery fee for each leg that was actually driven, less your own store markup:
one leg for a cancellation late enough that a courier was already working on the
order, two for a return trip after a failed drop-off, and none at all when no leg
was driven.

Nothing about the response shape moved. The same fields and the same types come back, and no
integration has to change. What changes is the amount: expect larger values on the same orders from this date, and if you bill
these charges on to your own merchants, bill what the row says rather than a
figure you worked out before.

**1.10.0, 29 August 2026**

editable drop-off notes on the way, and stores outside Mexico are refused

`PATCH /v1/deliveries/{id}` now also takes `dropoff.notes`, so you can correct what the courier is told about the drop-off while the order is on its way, and it answers `409 not_editable` once it is too late. A store outside Mexico is refused with `422 unsupported_country`. The `PATCH` reference also stops listing four request fields the endpoint never read.

<details>
  <summary>Schema changes</summary>

  **GET /v1/deliveries**

  * the response property `data/items/dropoff/notes` became nullable for the status `200`

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * the response property `dropoff/notes` became nullable for the status `200`

  **POST /v1/deliveries/\{delivery\_id}/refunds**

  * the response property `dropoff/notes` became nullable for the status `200`

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * the response property `dropoff/notes` became nullable for the status `200`

  **GET /v1/deliveries/\{id}**

  * the response property `dropoff/notes` became nullable for the status `200`

  **PATCH /v1/deliveries/\{id}**

  * the response property `courier` became nullable for the status `200`
  * the response property `courier_assigned_at` became nullable for the status `200`
  * the response property `dropoff/notes` became nullable for the status `200`
  * removed the request property `external_id`
  * removed the request property `order_value_cents`
  * removed the request property `status`
  * removed the request property `store_id`
  * added the new optional request property `dropoff`
  * the request property `pickup_ready_at` became optional
</details>

**1.9.0, 26 August 2026**

a delivery whose drop-off failed is now returning

A delivery whose drop-off failed now has the status `returning` while the courier brings the order back to the store, until it ends in `returned`. Its `charges` are already complete on the first `returning` event.

<details>
  <summary>Schema changes</summary>

  **GET /v1/deliveries**

  * the response property `data/items/courier/vehicle` became nullable for the status `200`

  **POST webhook:delivery.status\_changed**

  * added the new `returning` enum value to the request property `allOf[subschema #2]/data/status`

  **POST webhook:delivery.updated**

  * added the new `returning` enum value to the request property `allOf[subschema #2]/data/status`
</details>

**1.8.0, 21 August 2026**

refund your customer's card payment

You can refund your customer's card payment with `POST /v1/deliveries/{delivery_id}/refunds`, and every delivery carries `refunds`, `refunded_cents` and `refundable_cents`.

<details>
  <summary>Schema changes</summary>

  **GET /v1/deliveries**

  * added the required property `data/items/refundable_cents` to the response with the `200` status
  * added the required property `data/items/refunded_cents` to the response with the `200` status
  * added the required property `data/items/refunds` to the response with the `200` status

  **POST /v1/deliveries**

  * added the required property `refundable_cents` to the response with the `201` status
  * added the required property `refunded_cents` to the response with the `201` status
  * added the required property `refunds` to the response with the `201` status

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * added the required property `refundable_cents` to the response with the `200` status
  * added the required property `refunded_cents` to the response with the `200` status
  * added the required property `refunds` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/refunds**

  * endpoint added

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * added the required property `refundable_cents` to the response with the `200` status
  * added the required property `refunded_cents` to the response with the `200` status
  * added the required property `refunds` to the response with the `200` status

  **GET /v1/deliveries/\{id}**

  * added the required property `refundable_cents` to the response with the `200` status
  * added the required property `refunded_cents` to the response with the `200` status
  * added the required property `refunds` to the response with the `200` status

  **PATCH /v1/deliveries/\{id}**

  * added the required property `refundable_cents` to the response with the `200` status
  * added the required property `refunded_cents` to the response with the `200` status
  * added the required property `refunds` to the response with the `200` status

  **POST webhook:delivery.status\_changed**

  * added the new required request property `allOf[subschema #2]/data/refundable_cents`
  * added the new required request property `allOf[subschema #2]/data/refunded_cents`
  * added the new required request property `allOf[subschema #2]/data/refunds`

  **POST webhook:delivery.updated**

  * added the new required request property `allOf[subschema #2]/data/refundable_cents`
  * added the new required request property `allOf[subschema #2]/data/refunded_cents`
  * added the new required request property `allOf[subschema #2]/data/refunds`
</details>

**1.7.0, 12 August 2026**

withdrawals carry a tracking key and need a registered bank account

A withdrawal now carries `clave_de_rastreo`, the SPEI tracking key your bank uses to find the deposit, once it is paid, and `POST /v1/withdrawals` is refused with `422 payout_account_not_ready` until you have a bank account registered.

<details>
  <summary>Schema changes</summary>

  **GET /v1/withdrawals**

  * added the required property `data/items/clave_de_rastreo` to the response with the `200` status

  **POST /v1/withdrawals**

  * the response property `error/param` became nullable for the status `422`
  * added the required property `clave_de_rastreo` to the response with the `201` status

  **GET /v1/withdrawals/\{id}**

  * added the required property `clave_de_rastreo` to the response with the `200` status

  **POST webhook:withdrawal.updated**

  * added the new required request property `allOf[subschema #2]/data/clave_de_rastreo`
</details>

**1.6.0, 10 August 2026**

connect a restaurant that already has a Listo account

`POST /v1/connect_requests` and `POST /v1/connections` connect a restaurant that already has a Listo account, with its owner's approval, and the new `store.connected` webhook tells you when it happens. `POST /v1/stores` also accepts `owner_email`.

<details>
  <summary>Schema changes</summary>

  **POST /v1/connect\_requests**

  * endpoint added

  **POST /v1/connections**

  * endpoint added

  **POST /v1/stores**

  * added the new optional request property `owner_email`

  **POST webhook:delivery.courier\_location**

  * added the new `store.connected` enum value to the request property `allOf[#/components/schemas/WebhookEvent]/type`

  **POST webhook:delivery.status\_changed**

  * added the new `store.connected` enum value to the request property `allOf[#/components/schemas/WebhookEvent]/type`

  **POST webhook:delivery.updated**

  * added the new `store.connected` enum value to the request property `allOf[#/components/schemas/WebhookEvent]/type`

  **POST webhook:store.updated**

  * added the new `store.connected` enum value to the request property `allOf[#/components/schemas/WebhookEvent]/type`

  **POST webhook:withdrawal.updated**

  * added the new `store.connected` enum value to the request property `allOf[#/components/schemas/WebhookEvent]/type`
</details>

**1.5.0, 10 August 2026**

your own store ids, idempotent store creation and a delivery origin

A store carries your own `external_id`, which you can send on create and update and filter `GET /v1/stores` by, and `POST /v1/stores` honours `Idempotency-Key`, answering `409` for a key reused with another body. Each delivery also says where it came from in `origin`, which `GET /v1/deliveries` can filter by.

<details>
  <summary>Schema changes</summary>

  **GET /v1/deliveries**

  * added the new optional `query` request parameter `origin`
  * added the optional property `data/items/origin` to the response with the `200` status

  **POST /v1/deliveries**

  * added the optional property `origin` to the response with the `201` status

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * added the optional property `origin` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * added the optional property `origin` to the response with the `200` status

  **GET /v1/deliveries/\{id}**

  * added the optional property `origin` to the response with the `200` status

  **PATCH /v1/deliveries/\{id}**

  * added the optional property `origin` to the response with the `200` status

  **GET /v1/stores**

  * added the new optional `query` request parameter `external_id`
  * added the required property `data/items/external_id` to the response with the `200` status

  **POST /v1/stores**

  * added the new optional `header` request parameter `idempotency-key`
  * added the new optional request property `external_id`
  * added the non-success response with the status `409`
  * added the required property `external_id` to the response with the `201` status

  **GET /v1/stores/\{id}**

  * added the required property `external_id` to the response with the `200` status

  **PATCH /v1/stores/\{id}**

  * added the new optional request property `external_id`
  * added the required property `external_id` to the response with the `200` status

  **POST webhook:delivery.status\_changed**

  * added the new required request property `allOf[subschema #2]/data/origin`

  **POST webhook:delivery.updated**

  * added the new required request property `allOf[subschema #2]/data/origin`

  **POST webhook:store.updated**

  * added the new required request property `allOf[subschema #2]/data/external_id`
</details>

**1.4.0, 8 August 2026**

deliveries accept a tip for the courier

`POST /v1/deliveries` accepts `tip_cents`, a tip for the courier that every delivery carries back. The reference now marks `charges`, `access_tier`, `billing` and `markup_cents` as always present, which they already were.

<details>
  <summary>Schema changes</summary>

  **GET /v1/deliveries**

  * the response property `data/items/charges` became required for the status `200`
  * added the required property `data/items/tip_cents` to the response with the `200` status

  **POST /v1/deliveries**

  * added the new optional request property `tip_cents`
  * the response property `charges` became required for the status `201`
  * added the required property `tip_cents` to the response with the `201` status

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * the response property `charges` became required for the status `200`
  * added the required property `tip_cents` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * the response property `charges` became required for the status `200`
  * added the required property `tip_cents` to the response with the `200` status

  **GET /v1/deliveries/\{id}**

  * the response property `charges` became required for the status `200`
  * added the required property `tip_cents` to the response with the `200` status

  **PATCH /v1/deliveries/\{id}**

  * the response property `charges` became required for the status `200`
  * added the required property `tip_cents` to the response with the `200` status

  **GET /v1/stores**

  * the response property `data/items/access_tier` became required for the status `200`
  * the response property `data/items/billing` became required for the status `200`
  * the response property `data/items/markup_cents` became required for the status `200`

  **POST /v1/stores**

  * the response property `access_tier` became required for the status `201`
  * the response property `billing` became required for the status `201`
  * the response property `markup_cents` became required for the status `201`

  **GET /v1/stores/\{id}**

  * the response property `access_tier` became required for the status `200`
  * the response property `billing` became required for the status `200`
  * the response property `markup_cents` became required for the status `200`

  **PATCH /v1/stores/\{id}**

  * the response property `access_tier` became required for the status `200`
  * the response property `billing` became required for the status `200`
  * the response property `markup_cents` became required for the status `200`

  **POST webhook:delivery.status\_changed**

  * added the new required request property `allOf[subschema #2]/data/tip_cents`
  * the request property `allOf[subschema #2]/data/charges` became required

  **POST webhook:delivery.updated**

  * added the new required request property `allOf[subschema #2]/data/tip_cents`
  * the request property `allOf[subschema #2]/data/charges` became required
</details>

**1.3.0, 5 August 2026**

a cap on your share of the delivery fee

`POST /v1/quotes` and `POST /v1/deliveries` accept `business_fee_cap_cents`, a ceiling in cents on your share of the delivery fee.

<details>
  <summary>Schema changes</summary>

  **POST /v1/deliveries**

  * added the new optional request property `business_fee_cap_cents`

  **POST /v1/quotes**

  * added the new optional request property `business_fee_cap_cents`
</details>

**1.2.0, 2 August 2026**

stores have an access tier and a markup, with their own balance and ledger

Stores now have an `access_tier` (`api_only`, `wallet` or `full`) and a `markup_cents`, and `billing` says whose balance pays their deliveries. A store's own balance and ledger are at `GET /v1/stores/{store_id}/balance` and `GET /v1/stores/{store_id}/ledger`, and `POST /v1/stores/{store_id}/owner` invites the person who runs it to its Listo console.

<details>
  <summary>Schema changes</summary>

  **GET /v1/deliveries**

  * the response property `data/items/external_id` became nullable for the status `200`

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * the response property `external_id` became nullable for the status `200`

  **GET /v1/deliveries/\{id}**

  * the response property `external_id` became nullable for the status `200`

  **GET /v1/stores**

  * added the optional property `data/items/access_tier` to the response with the `200` status
  * added the optional property `data/items/billing` to the response with the `200` status
  * added the optional property `data/items/markup_cents` to the response with the `200` status

  **POST /v1/stores**

  * added the new optional request property `access_tier`
  * added the new optional request property `markup_cents`
  * added the optional property `access_tier` to the response with the `201` status
  * added the optional property `billing` to the response with the `201` status
  * added the optional property `markup_cents` to the response with the `201` status

  **GET /v1/stores/\{id}**

  * added the optional property `access_tier` to the response with the `200` status
  * added the optional property `billing` to the response with the `200` status
  * added the optional property `markup_cents` to the response with the `200` status

  **PATCH /v1/stores/\{id}**

  * added the new optional request property `access_tier`
  * added the new optional request property `markup_cents`
  * added the optional property `access_tier` to the response with the `200` status
  * added the optional property `billing` to the response with the `200` status
  * added the optional property `markup_cents` to the response with the `200` status

  **GET /v1/stores/\{store\_id}/balance**

  * endpoint added

  **GET /v1/stores/\{store\_id}/ledger**

  * endpoint added

  **POST /v1/stores/\{store\_id}/owner**

  * endpoint added
</details>

**1.1.0, 1 August 2026**

deliveries carry their charges, and the ledger lists your balance movements

Each delivery now carries `charges`, what a cancelled or returned trip cost you, and `GET /v1/ledger` lists every movement on your balance. The reference also shows the shape of a retry that fails.

<details>
  <summary>Schema changes</summary>

  **GET /v1/deliveries**

  * added the optional property `data/items/charges` to the response with the `200` status

  **POST /v1/deliveries**

  * the `failure_reason` response's property `type` was widened from `null` to `string, null` for status `201`
  * added the optional property `charges` to the response with the `201` status

  **POST /v1/deliveries/\{delivery\_id}/cancellations**

  * the `failure_reason` response's property `type` was widened from `null` to `string, null` for status `200`
  * added the optional property `charges` to the response with the `200` status

  **POST /v1/deliveries/\{delivery\_id}/retries**

  * the response property `dropoff_eta_at` became nullable for the status `200`
  * the response property `pickup_eta_at` became nullable for the status `200`
  * the response property `support_reference` became nullable for the status `200`
  * the response property `tracking_url` became nullable for the status `200`
  * the `failure_reason` response's property `type` was widened from `null` to `string, null` for status `200`
  * added the optional property `charges` to the response with the `200` status

  **GET /v1/deliveries/\{id}**

  * added the optional property `charges` to the response with the `200` status

  **PATCH /v1/deliveries/\{id}**

  * added the optional property `charges` to the response with the `200` status

  **GET /v1/ledger**

  * endpoint added

  **POST webhook:delivery.status\_changed**

  * added the new optional request property `allOf[subschema #2]/data/charges`

  **POST webhook:delivery.updated**

  * added the new optional request property `allOf[subschema #2]/data/charges`
</details>

**1.0.0, 31 July 2026**

the first published version

The first published version of the Partner Delivery API.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.