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

# Retrieve delivery options

Use the [Retrieve a list of delivery options](/api/v3/dynamic-checkout/retrieve-a-list-of-delivery-options) endpoint during checkout to retrieve the delivery options available for a specific cart or order context.

The endpoint evaluates a published Dynamic Checkout configuration against shipment details and returns the delivery options that are eligible at that moment in the checkout flow.

Each returned delivery option can include a `checkout_identifier` that maps directly to a `shipping_option_code`, allowing you to create a shipment later during fulfillment using the Shipments API.

The Dynamic Checkout endpoint is read-only. It does not create shipments, generate labels, or store delivery selections — it only resolves which options are available.

## Before you begin

To use this endpoint, you must:

1. Make sure you’ve completed basic account set up. See [Quickstart guide](/docs/getting-started).
2. Authenticate using HTTP Basic Authentication (API public and secret keys). See [Authentication](/docs/getting-started/authentication).
3. Create and publish a Dynamic Checkout configuration in the Sendcloud platform.

The `configuration_id` in requests must refer to a published configuration linked to your API integration.

## Calling the endpoint

To retrieve delivery options, send a `GET` request to the [Retrieve a list of delivery options endpoint](/api/v3/dynamic-checkout/retrieve-a-list-of-delivery-options), including the required checkout context as query parameters.

```http theme={null}
GET https://panel.sendcloud.sc/api/v3/checkout/configurations/{configuration_id}/delivery-options?weight_value=2500&total_order_value=45.90&from_country_code=NL&to_country_code=NL
```

### Required query parameters

The endpoint determines delivery eligibility based on:

* `configuration_id`: UUID of the published Dynamic Checkout configuration
* `weight_value`: Total cart/order weight (in grams)
* `total_order_value`:Total cart/order value (in the configuration currency)
* `from_country_code`: ISO 3166-1 alpha-2 sender country
* `to_country_code`: ISO 3166-1 alpha-2 recipient country

These values determine which delivery methods, pricing rules, and carrier services apply.

### Optional query parameters

Use these when using [Checkout Rules](https://support.sendcloud.com/hc/en-us/articles/18580048370705-Checkout-rules):

* `to_postal_code`
* `parcel_length`, `parcel_width`, `parcel_height`
* `checkout_metadata` (custom value used in rule evaluation)
* `checkout_identifier_type` (default: shipping\_option\_code)

<Note>
  Note: To create a shipment from a selected delivery option, request delivery options with: `checkout_identifier_type`
  \= `shipping_option_code`. This ensures the returned `checkout_identifier` contains the shipping option code required
  for shipment creation.
</Note>

## Response

If the request is successful, you’ll receive:

* **HTTP 200** status code
* The evaluated `configuration_id`
* A list of `delivery_options`

Each delivery option represents a valid shipping choice for the given Dynamic Checkout configuration and includes:

* A unique `id`
* A `checkout_identifier` (used for shipment creation)
* Delivery method and carrier information
* Pricing details
* Estimated delivery timing

The API returns one delivery option per configured carrier. If multiple carriers are configured under the same delivery method, multiple delivery options are returned. These may share the same underlying delivery method ID, allowing you to group them in your checkout UI if desired.

<Info>
  Note: Field names are aligned to API payload — see the [Dynamic Checkout API v3
  reference](/api/v3/dynamic-checkout/retrieve-a-list-of-delivery-options) for the full schema.
</Info>

## Error Handling

If required parameters are missing or invalid, the API will return an error response.

Always validate:

* That the `configuration_id` is published and linked to your integration
* That weight and order value meet expected formats and ranges
* That country codes follow ISO 3166-1 alpha-2 standards

<Info>
  Note: See the [Dynamic Checkout API v3 reference](/api/v3/dynamic-checkout/retrieve-a-list-of-delivery-options) for
  full error response details.
</Info>
