---
title: "Notify the result of a request delivery quote event"
method: POST
path: "/v1/delivery/{deliveryReferenceId}/quotes"
tags: ["delivery_endpoints"]
---

# Notify the result of a request delivery quote event

`POST /v1/delivery/{deliveryReferenceId}/quotes`

## Request

- Base URL: `https://partners.tryotter.com`
- URL: `https://partners.tryotter.com/v1/delivery/{deliveryReferenceId}/quotes`
- Auth: OAuth 2
  - Authorization code: `/v1/auth/oauth2/authorize`
  - Client credentials
  - Token URL: `/v1/auth/token` scopes: `delivery.provider`
- TypeScript: <https://skmtc.dev/cloudkitchens/apis/otter-api/docs/v1/delivery/:deliveryReferenceId/quotes/post.ts> (a function with typed inputs; its response is checked against the schema)

Respond with `availability: AVAILABLE` plus pricing and pickup estimates when you can fulfill the delivery. Respond with `availability: UNAVAILABLE` and an optional `unavailableReason` when you cannot fulfill it.
Rate limit: 8 requests per minute.

## Path parameters

- `deliveryReferenceId` string, required: A unique identifier of the delivery in a UUID format.

## Headers

- `X-Store-Id` string, required: The unique identifier of the store in your app. This ID, along with the `Application ID`, will be used to match the correct store when performing operations. It cannot be longer than 255 characters and must only contain printable ASCII characters. During on-boarding, this ID will be similar to `onboarding:905bb725-b141-4a9b-832a-1f254f772c94` (where the UUID is the Internal Store ID). During off-boarding, this field will be filled with the last known Store ID, or with an empty string, in case none is found. In that case, please fall back to the provided `internalStoreId` (a.k.a. Sku-Sku ID).
- `X-Event-Id` string, required: Unique identifier of the event that this callback refers to.

## Request body

- RequestDeliveryQuoteCallbackRequest: Delivery quote result. Send pricing and pickup estimates for `AVAILABLE`, or send `UNAVAILABLE` with an optional reason when you cannot fulfill the request.
  - `availability` 'AVAILABLE' | 'UNAVAILABLE': Whether you can fulfill the requested delivery. Defaults to `AVAILABLE` for backward compatibility. When `UNAVAILABLE`, omit pricing and pickup estimates and optionally provide `unavailableReason`.
  - `unavailableReason` string, nullable: Optional provider-readable reason why the delivery is unavailable.
  - `minPickupDuration` integer, nullable: Required when availability is `AVAILABLE`. Estimated minimum courier arrival time in minutes.
  - `maxPickupDuration` integer, nullable: Maximum time that the courier's arrival at pick up location can be delayed. If not provided, it will default to 60 minutes or minPickUpDuration, whichever is greater. This value is an estimation and expressed in minutes.
  - `deliveryDistance` Distance, nullable: Delivery distance.
    - `unit` 'KILOMETERS' | 'MILES': Distance unit value.
    - `value` number: Distance value.
  - `currencyCode` string, nullable: Required when availability is `AVAILABLE`. The 3-letter ISO 4217 currency code for monetary values.
  - `cost` DeliveryCost: Delivery cost details.
    - `baseCost` number, double: Base delivery cost value.
    - `extraCost` number, double: Extra delivery cost value.
  - `provider` string, nullable: Delivery Service Provider Slug.
  - `fulfillmentPath` FulfillmentPathEntity[], nullable: List of entities involved in the fulfillment processing path.
    - `name` string: Describes the entity name.
    - `type` 'FULFILLMENT_PROCESSOR' | 'INTERMEDIARY': Type of entities in the fulfillment path.
  - `createdAt` string, date-time, nullable: Required when availability is `AVAILABLE`. The time that the quote was created.
  - `accountBalance` number, nullable: The remaining account balance of the requester for the delivery provider.

## Response `204`

The event callback was successfully accepted.

## Other responses

- `400`: The request is malformed.
- `401`: Invalid authorization.
- `403`: Authorization not valid for the requested resource.
- `404`: Resource not found.
- `422`: The request body is not valid.

---

[API](https://skmtc.dev/cloudkitchens/apis/otter-api.md) - [All operations](https://skmtc.dev/cloudkitchens/apis/otter-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cloudkitchens/apis/otter-api/revisions/4c868194a467?raw)
