/v1/pickup-options

Request to retrieve pickup points.

A request to retrieve available pickup points based on the items in the cart.

Request

POST

https://example.merchant.ru/v1/pickup-options

Production

POST

https://sandbox.example.merchant.ru/v1/pickup-options

Sandbox

Body

application/json
{
    "boundingBox": {
        "ne": {
            "latitude": 0,
            "longitude": 0
        },
        "sw": {
            "latitude": 0,
            "longitude": 0
        }
    },
    "cart": {
        "cartId": "string",
        "coupons": [
            {
                "description": "string",
                "status": "VALID",
                "value": "string"
            }
        ],
        "discounts": [
            {
                "amount": "123.45",
                "description": "string",
                "discountId": "string"
            }
        ],
        "externalId": "string",
        "items": [
            {
                "description": "string",
                "discountedUnitPrice": "123.45",
                "measurements": {
                    "height": 0,
                    "length": 0,
                    "weight": 0,
                    "width": 0
                },
                "pointsAmount": "123.45",
                "productId": "string",
                "quantity": {
                    "available": "123.45",
                    "count": "123.45",
                    "label": "string"
                },
                "receipt": {
                    "agent": {
                        "agentType": 1,
                        "operation": "string",
                        "paymentsOperator": {
                            "phones": [
                                "string"
                            ]
                        },
                        "phones": [
                            "string"
                        ],
                        "transferOperator": {
                            "address": "string",
                            "inn": "string",
                            "name": "string",
                            "phones": [
                                "string"
                            ]
                        }
                    },
                    "excise": "123.45",
                    "markQuantity": {
                        "denominator": 0,
                        "numerator": 0
                    },
                    "measure": 0,
                    "paymentMethodType": 1,
                    "paymentSubjectType": 1,
                    "productCode": "string",
                    "supplier": {
                        "inn": "string",
                        "name": "string",
                        "phones": [
                            "string"
                        ]
                    },
                    "tax": 1,
                    "title": "string"
                },
                "subtotal": "123.45",
                "title": "string",
                "total": "123.45",
                "type": "PHYSICAL",
                "unitPrice": "123.45"
            }
        ],
        "measurements": {
            "height": 0,
            "length": 0,
            "weight": 0,
            "width": 0
        },
        "total": {
            "amount": "123.45",
            "label": "string",
            "pointsAmount": "123.45"
        }
    },
    "currencyCode": "string",
    "merchantId": "c3073b9d-edd0-49f2-a28d-b7ded8ff9a8b",
    "metadata": "string"
}

Name

Description

boundingBox*

Type: BoundingBox

Area borders on the map

cart*

Type: CartWithoutFinalPrice

Cart with prices, dimensions, and weight of the products

currencyCode*

Type: string

merchantId*

Type: string<uuid>

metadata

Type: string

BoundingBox

Name

Description

ne*

Type: Location

Upper-right corner (Northeast)

sw*

Type: Location

Lower-left corner (Southwest)

CartWithoutFinalPrice

Name

Description

cartId

Type: string

The internal ID of the Yandex Pay cart.

The store's backend must use this parameter as the ID of the customer cart and the idempotency key for the /order/create request. If the store's backend receives a repeat /order/create request, return the existing order ID. The store's backend can create no more than one order (orderId) per cart (cartId).

coupons

Type: Coupon[]

Coupons applied to the cart

discounts

Type: Discount[]

Discounts applied to the cart

externalId

Type: string

Cart ID passed by the merchant

items

Type: CartItemWithoutFinalPrice[]

measurements

Type: Measurements

total

Type: CartTotal

Total cart cost that the customer is to pay

Location

Name

Description

latitude*

Type: number<float>

longitude*

Type: number<float>

Coupon

Name

Description

value*

Type: string

Coupon code

description

Type: string

Description For example, "3% discount"

status

Type: string

Enum: VALID, INVALID, EXPIRED, null

Discount

Name

Description

amount*

Type: string<double>

Discount amount

Example: 123.45

description*

Type: string

Text description

discountId*

Type: string

Discount ID in the merchant system

CartItemWithoutFinalPrice

Name

Description

productId*

Type: string

Product ID in the merchant system Make sure that each productId in the request parameters is unique.

quantity*

Type: ItemQuantity

Product quantity in the order

description

Type: string

Product description

discountedUnitPrice

Type: string<double>

Price per product unit with discount per item

Example: 123.45

measurements

Type: Measurements

Product dimensions and weight. Required for the PHYSICAL product

pointsAmount

Type: string<double>

Number of Plus points

Example: 123.45

receipt

Type: ItemReceipt

Data for receipt generation

subtotal

Type: string<double>

Total price per item without discount

Example: 123.45

title

Type: string

Product name

total

Type: string<double>

Total price per item with item discount

Example: 123.45

type

Type: string

Product type. Important for integrating with delivery services

Default: UNSPECIFIED

Enum: PHYSICAL, DIGITAL, UNSPECIFIED

unitPrice

Type: string<double>

Total price per product unit without discount

Example: 123.45

Measurements

Name

Description

height*

Type: number<float>

Height, in meters

length*

Type: number<float>

Length, in meters

weight*

Type: number<float>

Weight, in kilograms

width*

Type: number<float>

Width, in meters

CartTotal

Name

Description

amount*

Type: string<double>

Cart cost with all discounts

Example: 123.45

label

Type: string

Name of measurement units, for example, "kg" or "pcs"

pointsAmount

Type: string<double>

Number of plus points

Example: 123.45

ItemQuantity

Name

Description

count*

Type: string<double>

Product quantity in the order

Example: 123.45

available

Type: string<double>

Maximum available product quantity

Example: 123.45

label

Type: string

Name of measurement units, for example, "kg" or "pcs"

ItemReceipt

Name

Description

tax*

Type: integer

Value description: Link

Enum: 1, 2, 3, 4, 5, 6

agent

Type: Agent

excise

Type: string<double>

It shouldn't include more than two decimal digits. For example: 1.12, 5.1, 10, 11.00 .

Example: 123.45

markQuantity

Type: MarkQuantity

measure

Type: integer

Value description: Link

Enum: 0, 10, 11, 12, 20, 21, 22, 30, 31, 32, 40, 41, 42, 50, 51, 70, 71, 72, 73, 80, 81, 82, 83, 255, null

paymentMethodType

Type: integer

Value description: Link

Enum: 1, 2, 3, 4, 5, 6, 7, null

paymentSubjectType

Type: integer

Value description: Link

Enum: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, null

productCode

Type: string<base64>

Product code (a base64-encoded array of 1 to 32 bytes)

supplier

Type: Supplier

title

Type: string

Agent

Name

Description

agentType*

Type: integer

Agent type by taxable object. See values

Enum: 1, 2, 3, 4, 5, 6, 7

operation

Type: string

paymentsOperator

Type: PaymentsOperator

phones

Type: string[]

transferOperator

Type: TransferOperator

MarkQuantity

Name

Description

denominator*

Type: integer<int32>

numerator*

Type: integer<int32>

Supplier

Name

Description

inn

Type: string

name

Type: string

phones

Type: string[]

PaymentsOperator

Name

Description

phones

Type: string[]

TransferOperator

Name

Description

address

Type: string

inn

Type: string

name

Type: string

phones

Type: string[]

Responses

200 OK

success

Body

application/json
{
    "data": {
        "pickupOptions": [
            {
                "address": "string",
                "allowedPaymentMethods": [
                    "CARD"
                ],
                "amount": "123.45",
                "description": "string",
                "fromDate": "string",
                "location": {
                    "latitude": 0,
                    "longitude": 0
                },
                "phones": [
                    "string"
                ],
                "pickupPointId": "string",
                "provider": "YANDEX_MARKET",
                "receipt": {
                    "agent": {
                        "agentType": 1,
                        "operation": "string",
                        "paymentsOperator": {
                            "phones": [
                                "string"
                            ]
                        },
                        "phones": [
                            "string"
                        ],
                        "transferOperator": {
                            "address": "string",
                            "inn": "string",
                            "name": "string",
                            "phones": [
                                "string"
                            ]
                        }
                    },
                    "excise": "123.45",
                    "markQuantity": {
                        "denominator": 0,
                        "numerator": 0
                    },
                    "measure": 0,
                    "paymentMethodType": 1,
                    "paymentSubjectType": 1,
                    "productCode": "string",
                    "supplier": {
                        "inn": "string",
                        "name": "string",
                        "phones": [
                            "string"
                        ]
                    },
                    "tax": 1,
                    "title": "string"
                },
                "schedule": [
                    {
                        "fromTime": "string",
                        "label": "string",
                        "toTime": "string"
                    }
                ],
                "storagePeriod": 0,
                "title": "string",
                "toDate": "string"
            }
        ]
    },
    "status": "string"
}

Name

Description

data*

Type: MerchantPickupOptionsResponseData

status*

Type: string

MerchantPickupOptionsResponseData

Name

Description

pickupOptions*

Type: PickupOption[]

PickupOption

Name

Description

address*

Type: string

Address in string format

location*

Type: Location

pickupPointId*

Type: string

Unique pickup point ID in the merchant's system

title*

Type: string

Pickup point's name

allowedPaymentMethods

Type: string[]

Individual payment methods for the selected pickup method. Methods that can be used to pay for the order with the selected pickup method. Use this parameter if you want to restrict the payment methods specified in availablePaymentMethods. If the parameter is omitted, all the payment methods listed in availablePaymentMethods are used.

Enum: CARD, SPLIT, CASH_ON_DELIVERY, CARD_ON_DELIVERY

amount

Type: string<double>

Cost of delivery to the location

Example: 123.45

description

Type: string

Additional description

fromDate

Type: string<date>

YYYY-MM-DD. Closest possible delivery date

phones

Type: string[]

Contact phone numbers

provider

Type: string

Pickup point's type.

Enum: YANDEX_MARKET, BOXBERRY, CDEK, IN_STORE, RUSSIAN_POST, PICKPOINT, DPD

receipt

Type: ItemReceipt

schedule

Type: PickupSchedule[]

Pickup point's schedule

storagePeriod

Type: integer<int32>

Optional. Storage period at the pickup point, in days.

toDate

Type: string<date>

YYYY-MM-DD. Latest delivery date

PickupSchedule

Name

Description

fromTime*

Type: string

HH:mm, "08:00"

label*

Type: string

For example, "Mon-Fri"

toTime*

Type: string

HH:mm, "20:00"

400 Bad Request

bad request

Body

application/json
{
    "reason": "string",
    "reasonCode": "FORBIDDEN",
    "status": "fail"
}

Name

Description

reasonCode*

Type: string

Enum: FORBIDDEN, ITEM_NOT_FOUND, ORDER_NOT_FOUND, ORDER_AMOUNT_MISMATCH, ORDER_DETAILS_MISMATCH, OUT_OF_INVENTORY, PICKUP_POINT_NOT_FOUND, SHIPPING_DETAILS_MISMATCH, OTHER, UNAUTHORIZED, TOKEN_EXPIRED, CONFLICT

reason

Type: string

status

Type: string

Default: fail