---
metadata:
  - name: generator
    content: Diplodoc Platform v5.15.5
alternate:
  - https://delivery.yango.com/docs/en/api/express/openapi/IntegrationV2CheckPrice.md
---
> **Documentation Index:** Fetch the complete configuration index at https://delivery.yango.com/docs/en/llms.txt

<div class="openapi">

# Preliminary evaluation without creating a claim

## Request

<div class="openapi__requests">

<div class="openapi__request__wrapper" style="--method: var(--dc-openapi-methods-post);margin-bottom: 12px">

<div class="openapi__request">

POST {.openapi__method} 
```text translate=no
b2b.delivery.yango.tech/b2b/cargo/integration/v2/check-price
```



</div>

Service URL

</div>

</div>

### Headers

#|||
 **Name** 
|
 **Description** 
||

||
 Accept-Language<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Preferred response language. Examples: "en" — English<br>Example: `en` 
|||#{.openapi-table}

<div class="openapi-entity">

### Body

{% cut "application/json" %}


```json translate=no
{
    "items": [
        {
            "size": {
                "length": 0.1,
                "width": 0.2,
                "height": 0.3
            },
            "weight": 2.105,
            "quantity": 1,
            "pickup_point": 1,
            "dropoff_point": 2
        }
    ],
    "route_points": [
        {
            "id": 1,
            "coordinates": [
                0.1,
                0.1
            ],
            "fullname": "One Central Building 5, Trade Center Second, Dubai"
        }
    ],
    "requirements": {
        "taxi_class": "cargo",
        "cargo_type": "lcv_m",
        "cargo_loaders": 1,
        "pro_courier": false,
        "cargo_options": [
            "thermobag"
        ],
        "same_day_data": {
            "delivery_interval": {
                "from": "2020-01-01T00:00:00+00:00",
                "to": "2020-01-02T00:00:00+00:00"
            }
        }
    },
    "skip_door_to_door": false
}
```


{% endcut %}


#|||
 **Name** 
|
 **Description** 
||

||
 route_points<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** [RoutePointWithAddress](#routepointwithaddress)[]

Route points. Sorted in order of visits A-B1....BN<br>

*Min items:*{.openapi-description-annotation} `1`
 
||

||
 items {.openapi-table-parameter-name} 
|
 **Type:** [Item](#item)[]

Item parameters<br>

*Min items:*{.openapi-description-annotation} `1`
 
||

||
 requirements {.openapi-table-parameter-name} 
|
 **Type:** [ClientRequirements](#clientrequirements)

Delivery requirements (vehicle class, options) 
||

||
 skip_door_to_door {.openapi-table-parameter-name} 
|
 **Type:** boolean

Disable door-to-door delivery (disable the "Door-to-door" option).
Possible values:
- true (the courier will deliver the order only at the entrance outside)
- false (the courier will deliver the order at the door) - default value.

*Default:*{.openapi-description-annotation} `false`

*Example:*{.openapi-description-annotation} `false`
 
|||#{.openapi-table}

</div>

<div class="openapi-entity">

### RoutePointWithAddress

#|||
 **Name** 
|
 **Description** 
||

||
 coordinates {.openapi-table-parameter-name} 
|
 **Type:** number[]

Coordinates of points in the form of an array of two real numbers: longitude and latitude — exactly in that order.<br>

*Example:*{.openapi-description-annotation} 
```
[
  0.1,
  0.1
]
```

*Min items:*{.openapi-description-annotation} `2`

*Max items:*{.openapi-description-annotation} `2`
 
||

||
 fullname {.openapi-table-parameter-name} 
|
 **Type:** string

Full address with an indication of the city, street, and house number.
You don't need to specify the flat, the entrance number, or the floor. 

*Example:*{.openapi-description-annotation} `One Central Building 5, Trade Center Second, Dubai`
 
||

||
 id {.openapi-table-parameter-name} 
|
 **Type:** integer&lt;int64&gt;

Numeric point id (int64). The parameter is mandatory if there are multiple delivery points in the order

*Example:*{.openapi-description-annotation} `1`
 
|||#{.openapi-table}

</div>

<div class="openapi-entity">

### Item

#|||
 **Name** 
|
 **Description** 
||

||
 quantity<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** integer&lt;int64&gt;

Number of items

*Example:*{.openapi-description-annotation} `1`

*Min value:*{.openapi-description-annotation} `1`
 
||

||
 dropoff_point {.openapi-table-parameter-name} 
|
 **Type:** integer&lt;int64&gt;

ID of the point (int64) to deliver the item to.
It can be any number. Must match the route_points[].id value of the destination point.
The parameter is mandatory if there are multiple delivery points in the order.

*Example:*{.openapi-description-annotation} `2`
 
||

||
 pickup_point {.openapi-table-parameter-name} 
|
 **Type:** integer&lt;int64&gt;

ID of the point (int64) to pick up the item from.
It can be any number. Must match the route_points[].id value of the dispatch point.
The parameter is mandatory if there are multiple delivery points in the order.

*Example:*{.openapi-description-annotation} `1`
 
||

||
 size {.openapi-table-parameter-name} 
|
 **Type:** [CargoItemSizes](#cargoitemsizes)

Unit dimensions in meters. The actual values should be added to the fields.
If the dimensions aren't added, the order is placed, taking into account the maximum dimensions allowed for the selected rate.
If the actual characteristics of the unit exceed the allowed dimensions, the courier has the right to refuse to fulfill the order on site.
In this case, the minimum fee will be withheld.
Courier: up to 0.80 m × 0.50 m × 0.50 м
Express: up to 1.00 m × 0.60 m × 0.50 m
Cargo:
- Small body: up to 1.70 m × 0.96 m × 0.90 m
- Medium body: up to 2.60 m × 1.30 m × 1.50 m
- Large body: up to 3.80 m × 1.80 m × 1.80 m
 
||

||
 weight {.openapi-table-parameter-name} 
|
 **Type:** number

Item weight in kilograms.
Example: 2.105

*Example:*{.openapi-description-annotation} `2.105`
 
|||#{.openapi-table}

</div>

<div class="openapi-entity">

### ClientRequirements

Customer requirements specified when creating or editing a claim

#|||
 **Name** 
|
 **Description** 
||

||
 taxi_class<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Delivery rate. Possible values: courier, express, cargo

*Example:*{.openapi-description-annotation} `express`
 
||

||
 cargo_loaders {.openapi-table-parameter-name} 
|
 **Type:** integer&lt;int64&gt;

Number of loaders for the cargo rate.
Possible values: 0, 1, 2.
For an exact list of possible values for a particular point, use the method for obtaining rates [tariffs](https://delivery.yango.com/docs/en/api/express/openapi/IntegrationV2Tariffs.md).

*Example:*{.openapi-description-annotation} `0`

*Min value:*{.openapi-description-annotation} `0`
 
||

||
 cargo_options {.openapi-table-parameter-name} 
|
 **Type:** string[]

List of additional rate options.

Possible separate options:
  - auto_courier (a courier with a vehicle only)
  - thermobag (a courier with a thermobag)
        
Example of a list of options: ["auto_courier"].

For an exact list of possible values for a particular geo point,
use the method for obtaining rates [tariffs](https://delivery.yango.com/docs/en/api/express/openapi/IntegrationV2Tariffs.md)
<br>

*Example:*{.openapi-description-annotation} `thermobag`
 
||

||
 cargo_type {.openapi-table-parameter-name} 
|
 **Type:** [CargoType](#cargotype)

 Body type (size) for the cargo rate.\nPossible values:
- van (\"Small body\")
- lcv_m (\"Medium body\")
- lcv_l (\"Large body\")
- lcv_xl ("XL body")
For an exact list of possible values for a particular geo point,\nuse the method for obtaining rates [tariffs](https://delivery.yango.com/docs/en/api/express/openapi/IntegrationV2Tariffs.md)

*Example:*{.openapi-description-annotation} `lcv_m`

*Enum:*{.openapi-description-annotation} `van`, `lcv_m`, `lcv_l`, `lcv_xl`
 
||

||
 pro_courier {.openapi-table-parameter-name} 
|
 **Type:** boolean

Enable the "Pro" option for "Express" and "Courier" rates.
In this case, we will look only for experienced couriers.

*Example:*{.openapi-description-annotation} `false`
 
|||#{.openapi-table}

</div>

<div class="openapi-entity">

### CargoItemSizes

Unit dimensions in meters. The actual values should be added to the fields.
If the dimensions aren't added, the order is placed, taking into account the maximum dimensions allowed for the selected rate.
If the actual characteristics of the unit exceed the allowed dimensions, the courier has the right to refuse to fulfill the order on site.
In this case, the minimum fee will be withheld.
Courier: up to 0.80 m × 0.50 m × 0.50 м
Express: up to 1.00 m × 0.60 m × 0.50 m
Cargo:
- Small body: up to 1.70 m × 0.96 m × 0.90 m
- Medium body: up to 2.60 m × 1.30 m × 1.50 m
- Large body: up to 3.80 m × 1.80 m × 1.80 m


#|||
 **Name** 
|
 **Description** 
||

||
 height<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** number

Height in meters

*Example:*{.openapi-description-annotation} `0.3`
 
||

||
 length<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** number

Length in meters

*Example:*{.openapi-description-annotation} `0.1`
 
||

||
 width<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** number

Width in meters

*Example:*{.openapi-description-annotation} `0.2`
 
|||#{.openapi-table}

</div>

<div class="openapi-entity">

### CargoType

 Body type (size) for the cargo rate.\nPossible values:
- van (\"Small body\")
- lcv_m (\"Medium body\")
- lcv_l (\"Large body\")
- lcv_xl ("XL body")
For an exact list of possible values for a particular geo point,\nuse the method for obtaining rates [tariffs](https://delivery.yango.com/docs/en/api/express/openapi/IntegrationV2Tariffs.md)


#|||
 **Type** 
|
 **Description** 
||

||
 [CargoType](#cargotype) 
|
 

*Example:*{.openapi-description-annotation} `lcv_m`

*Enum:*{.openapi-description-annotation} `van`, `lcv_m`, `lcv_l`, `lcv_xl`
 
|||#{.openapi-table}

</div>

## Responses

<div class="openapi__response__code__200">

## 200 OK

OK

<div class="openapi-entity">

### Body

{% cut "application/json" %}


```json translate=no
{
    "price": "12.50",
    "currency_rules": {
        "code": "AED",
        "text": "AED",
        "template": "$VALUE$ $SIGN$$CURRENCY$",
        "sign": "₽"
    },
    "requirements": {
        "taxi_class": "cargo",
        "cargo_type": "lcv_m",
        "cargo_loaders": 1,
        "pro_courier": false,
        "cargo_options": [
            "thermobag"
        ],
        "same_day_data": {
            "delivery_interval": {
                "from": "2020-01-01T00:00:00+00:00",
                "to": "2020-01-02T00:00:00+00:00"
            }
        }
    },
    "distance_meters": 10,
    "eta": 10,
    "zone_id": "moscow"
}
```


{% endcut %}


#|||
 **Name** 
|
 **Description** 
||

||
 price<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Delivery cost in Decimal(18, 4) format

*Example:*{.openapi-description-annotation} `12.50`

*Pattern:*{.openapi-description-annotation} `^-?[0-9]{1,14}(\.[0-9]{0,4})?$`
 
||

||
 requirements<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** [ClientRequirements](#clientrequirements)

Delivery requirements (vehicle class, options) 
||

||
 currency_rules {.openapi-table-parameter-name} 
|
 **Type:** [CurrencyRules](#currencyrules)

Currency display rules 
||

||
 distance_meters {.openapi-table-parameter-name} 
|
 **Type:** number

Distance in meters for the specified route, from the first to the last point

*Example:*{.openapi-description-annotation} `10`
 
||

||
 eta {.openapi-table-parameter-name} 
|
 **Type:** number

Estimated time of arrival in minutes

*Example:*{.openapi-description-annotation} `10`
 
||

||
 zone_id {.openapi-table-parameter-name} 
|
 **Type:** string

Delivery zone ID

*Example:*{.openapi-description-annotation} `moscow`
 
|||#{.openapi-table}

</div>

<div class="openapi-entity">

### CurrencyRules

Currency display rules

#|||
 **Name** 
|
 **Description** 
||

||
 code<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Three-digit code of the payment currency

*Example:*{.openapi-description-annotation} `AED`

*Min length:*{.openapi-description-annotation} `3`

*Max length:*{.openapi-description-annotation} `3`
 
||

||
 template<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Currency display template

*Example:*{.openapi-description-annotation} `$VALUE$ $SIGN$$CURRENCY$`
 
||

||
 text<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Short currency name

*Example:*{.openapi-description-annotation} `AED`
 
||

||
 sign {.openapi-table-parameter-name} 
|
 **Type:** string

Currency symbol

*Example:*{.openapi-description-annotation} `₽`
 
|||#{.openapi-table}

</div>

</div>

<div class="openapi__response__code__400">

## 400 Bad Request

Invalid request

<div class="openapi-entity">

### Body

{% cut "application/json" %}


```json translate=no
{
    "code": "bad_request",
    "message": "bad request"
}
```


{% endcut %}


#|||
 **Name** 
|
 **Description** 
||

||
 code<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Error code

*Example:*{.openapi-description-annotation} `bad_request`

*Enum:*{.openapi-description-annotation} `bad_request`, `address_not_found`
 
||

||
 message<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Error description

*Example:*{.openapi-description-annotation} `bad request`
 
|||#{.openapi-table}

</div>

</div>

<div class="openapi__response__code__409">

## 409 Conflict

No suitable vehicles | Couldn't build the route

<div class="openapi-entity">

### Body

{% cut "application/json" %}


```json translate=no
{
    "code": "estimating.requirement_unavailable",
    "message": "requirement unavailable"
}
```


{% endcut %}


#|||
 **Name** 
|
 **Description** 
||

||
 code<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Error code

*Example:*{.openapi-description-annotation} `estimating.requirement_unavailable`

*Enum:*{.openapi-description-annotation} `errors.suitable_offer_not_found`, `estimating.cant_construct_route`, `estimating.cargocorp_payment_failure`, `estimating.claim.no_zone_id`, `estimating.limited_by_claims_creation_overflow`, `estimating.no_pickup_point`, `estimating.payment_method_cant_order`, `estimating.payment_method_zone_unavailable`, `estimating.permitted_tariffs_not_enough`, `estimating.requirement_unavailable`, `estimating.route_too_long`, `estimating.tariff.no_categories`, `estimating.tariff.no_categories_in_zone`, `estimating.tariff.no_sdd_tariff`, `estimating.tariff.no_tariff_plan`, `estimating.too_large_linear_size`, `estimating.too_many_loaders`, `estimating.warning.too_heavy_item`, `estimating.warning.too_large_item`
 
||

||
 message<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Error description

*Example:*{.openapi-description-annotation} `requirement unavailable`
 
|||#{.openapi-table}

</div>

</div>

<div class="openapi__response__code__429">

## 429 Too Many Requests

Too many requests

<div class="openapi-entity">

### Body

{% cut "application/json" %}


```json translate=no
{
    "code": "too_many_requests",
    "message": "Too many requests"
}
```


{% endcut %}


#|||
 **Name** 
|
 **Description** 
||

||
 code<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Error code

*Example:*{.openapi-description-annotation} `too_many_requests`

*Enum:*{.openapi-description-annotation} `too_many_requests`
 
||

||
 message<span class="openapi__required">*</span> {.openapi-table-parameter-name} 
|
 **Type:** string

Error description

*Example:*{.openapi-description-annotation} `Too many requests`
 
|||#{.openapi-table}

</div>

</div>
<!-- markdownlint-disable-file -->

</div>



[*Deprecated]: No longer supported, please use an alternative and newer version.