Merchant API
version: 1.0.0
To run the Merchant API, you need the public IP of your backend. Specify the address in the Callback URL field in the Yandex Pay console on the developer page.
Your backend must authorize the request before starting processing it.
Authenticating Yandex Pay request
In the response body, Yandex Pay delivers a JWT token signed by the ES256 algorithm.
The token consists of three parts: the header, the payload, and the signature,
concatenated with a '.': <base64-encoded headers JSON>.<base64-encoded payload JSON>.<signature>
.
base64-decoded header is a JSON document with the following structure:
{
"alg": "ES256", // Signature algorithm
"kid": "key-id", // Key ID; used when determining a public key
"iat": "1639408318", // UNIX time when the token was issued
"exp": "1639429918", // UNIX time; When the token expires, it's invalidated
"typ": "JWT" // token type
}
The payload is also JSON, with the specific field structure determined by the called method. The signature is needed to validate the JWT token.
IMPORTANT: Before deserializing a token you need to validate it.
Token validity verification algorithm
To validate the JWT token, it's convenient to use one of the standard libraries from the list: https://jwt.io/libraries. Avoid manual implementation of such checks.
Generally speaking, the algorithm for checking a JWT token by a library includes:
- Validating the signature of a JWT token using public JWT keys available at:
https://sandbox.pay.yandex.ru/api/jwks for the test environment and https://pay.yandex.ru/api/jwks
for the production environment. The public key used for validating the signature of a specific JWT token
is selected based on the
alg
andkid
in the token's header. - Checking standard requirements for the JWT token header:
alg
,typ
,iat
,exp
, etc.
Only if both checks are successful, the user can deserialize the JSON payload of the JWT token.
After that, the recipient should additionally check that merchantId
in the token's payload is the same as the merchant ID in
Yandex Pay. Otherwise, the token cannot be used.
If any of the checks fails, the token is considered invalid and the request is considered unauthenticated.
Such a request should be rejected. The response expected in this case is 403 Forbidden
with reasonCode
equal to FORBIDDEN
.
Example of response:
{
"status": "fail",
"reasonCode": "FORBIDDEN",
"reason": "Invalid merchantId"
}
Caching public JWK keys
The keys used to validate JWT tokens can be cached on the merchant's backend. For such a cache, the TTL has to be set to avoid token validation errors when JWK keys are rotated on the Yandex Pay side. For practical reasons, some libraries set a TTL of ten minutes for such a cache by default. In the case of caching of JWK keys, you need to implement the following scenarios of checks.
Scenario A: Successful validation of a token by cached jwk keys.
- The backend receives a request with the token whose
kid
is found among the cached JWK keys and whose TTL for the cache hasn't expired. - The token's signature is validated successfully.
- The token is considered valid.
Scenario B: Unsuccessful validation of a token by cached JWK keys.
- The backend receives a request with the token whose
kid
is found among the cached JWK keys and whose TTL for the cache hasn't expired. - The token's signature validation fails.
- The token is invalidated, the request is rejected.
Scenario C: Token validation with resettings of JWK key cache.
- The backend receives a request with a token whose
kid
isn't among the cached JWK keys or the TTL has expired for the cache. - The merchant has to reset the JWK key cache and to request a fresh complete list of active JWK keys from the address corresponding to the environment.
- The validation process continues by Scenario A or Scenario B.
Same as with token validation, we recommend using standard libraries, avoiding manual implementation of the scenarios.
Example of JWT token validation code
Below is an example of successful validation of a JWT token in a sandbox environment. To validate tokens in the production environment, use public keys available at https://pay.yandex.ru/api/jwks.
import json
from urllib.request import urlopen
from jose import jwt
YANDEX_JWK_ENDPOINT = "https://sandbox.pay.yandex.ru/api/jwks"
JWT_TOKEN = (
"eyJhbGciOiJFUzI1NiIsImlhdCI6MTY1MDE5Njc1OCwia2lkIjoidGVzdC1rZXkiLCJ0eXAiOiJKV1QifQ.eyJjYXJ0Ijp7Iml0ZW1zIjpbeyJwcm9kdWN"
"0SWQiOiJwMSIsInF1YW50aXR5Ijp7ImNvdW50IjoiMSJ9fV19LCJjdXJyZW5jeUNvZGUiOiJSVUIiLCJtZXJjaGFudElkIjoiMjc2Y2YxZjEtZjhlZC00N"
"GZlLTg5ZTMtNWU0MTEzNDZkYThkIn0.YmQjHlh3ddLWgBexQ3QrwtbgAA3u1TVnBl1qnfMIvToBwinH3uH92KGB15m4NAQXdz5nhkjPZZu7RUStJt40PQ"
)
with urlopen(YANDEX_JWK_ENDPOINT) as response:
public_jwks = json.load(response)
payload = jwt.decode(JWT_TOKEN, public_jwks, algorithms=["ES256"])
print(json.dumps(payload, indent=2))
use Firebase\JWT\JWT;
use Firebase\JWT\JWK;
$sandboxJwk = 'https://sandbox.pay.yandex.ru/api/jwks';
$JWT_TOKEN =
"eyJhbGciOiJFUzI1NiIsImlhdCI6MTY1MDE5Njc1OCwia2lkIjoidGVzdC1rZXkiLCJ0eXAiOiJKV1QifQ.eyJjYXJ0Ijp7Iml0ZW1zIjpbeyJwcm9kdWN"
. "0SWQiOiJwMSIsInF1YW50aXR5Ijp7ImNvdW50IjoiMSJ9fV19LCJjdXJyZW5jeUNvZGUiOiJSVUIiLCJtZXJjaGFudElkIjoiMjc2Y2YxZjEtZjhlZC00N"
. "GZlLTg5ZTMtNWU0MTEzNDZkYThkIn0.YmQjHlh3ddLWgBexQ3QrwtbgAA3u1TVnBl1qnfMIvToBwinH3uH92KGB15m4NAQXdz5nhkjPZZu7RUStJt40PQ";
$client = new GuzzleHttp\Client();
$keysJson = $client->get($sandboxJwk)->getBody();
$keysData = json_decode($keysJson, JSON_OBJECT_AS_ARRAY);
$keys = JWK::parseKeySet($keysData);
$payload = JWT::decode($JWT_TOKEN, $keys);
print_r($payload);
To run this example, use the dependencies:
composer require firebase/php-jwt
composer require guzzlehttp/guzzle
Endpoints
- /v1/order/render
- /v1/order/create
- /v1/webhook
- /v1/pickup-options
- /v1/pickup-option-details
- /v1/onboard
Specification
Open API
{
"components": {
"schemas": {
"Address": {
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"Agent": {
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
},
"BillingContactFields": {
"properties": {
"email": {
"type": "boolean"
}
},
"type": "object"
},
"BoundingBox": {
"properties": {
"ne": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Upper-right corner (Northeast)"
},
"sw": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Lower-left corner (Southwest)"
}
},
"required": [
"ne",
"sw"
],
"type": "object"
},
"Cart": {
"properties": {
"cartId": {
"description": "The internal ID of the Yandex Pay cart.\n\nThe 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`).",
"type": "string"
},
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"description": "Cart item",
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"finalPrice": {
"description": "Price per product unit with all discounts per item and on the cart",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Total cart cost that the customer is to pay"
}
},
"required": [
"items"
],
"type": "object"
},
"CartItem": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"finalPrice": {
"description": "Price per product unit with all discounts per item and on the cart",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"CartItemWithoutFinalPrice": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"CartTotal": {
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
},
"CartWithoutFinalPrice": {
"properties": {
"cartId": {
"description": "The internal ID of the Yandex Pay cart.\n\nThe 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`).",
"type": "string"
},
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Total cart cost that the customer is to pay"
}
},
"type": "object"
},
"Contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"ContactFields": {
"properties": {
"email": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"phone": {
"type": "boolean"
}
},
"type": "object"
},
"Coupon": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"CourierOption": {
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Date and interval selected by the user. Only for `type: FLEXIBLE`"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"CourierOption1": {
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"Discount": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"FlexibleCustomerChoice": {
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
},
"FlexibleTimeIntervals": {
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
},
"FlexibleTimeIntervalsGridDescriptor": {
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
},
"ItemQuantity": {
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
},
"ItemReceipt": {
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
},
"Location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"MarkQuantity": {
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
},
"Measurements": {
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
},
"MerchantCreateOrderResponse": {
"properties": {
"metadata": {
"type": "string"
},
"orderId": {
"description": "ID assigned to the created order on the merchant side",
"type": "string"
},
"redirectUrls": {
"allOf": [
{
"properties": {
"onAbort": {
"description": "Link to redirect the user on payment cancellation. Payment can be canceled by the user in the payment form.",
"type": "string"
},
"onError": {
"description": "The field is required for online stores only. A link to redirect the user in case of a payment error or TTL expiry for a payment link",
"type": "string"
},
"onSuccess": {
"description": "The field is required for online stores only. Link to redirect the user on payment success.",
"type": "string"
}
},
"required": [
"onError",
"onSuccess"
],
"type": "object"
}
]
},
"ttl": {
"default": null,
"description": "Order's time to live (in seconds)",
"format": "int32",
"type": "integer"
}
},
"required": [
"orderId"
],
"type": "object"
},
"MerchantCreateOrderV1Request": {
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
}
]
},
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "The internal ID of the Yandex Pay cart.\n\nThe 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`).",
"type": "string"
},
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"description": "Cart item",
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"finalPrice": {
"description": "Price per product unit with all discounts per item and on the cart",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Total cart cost that the customer is to pay"
}
},
"required": [
"items"
],
"type": "object"
}
],
"description": "Cart"
},
"currencyCode": {
"description": "Three-letter code of the order currency code (ISO 4217)",
"enum": [
"RUB"
],
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"description": "Arbitrary data transmitted at button initialization",
"type": "string"
},
"orderAmount": {
"description": "Total cost of the order to be paid, including refunds, delivery costs, discounts, and promo codes",
"example": "123.45",
"format": "double",
"type": "string"
},
"orderId": {
"description": "ID assigned to the existing order on the merchant side and transmitted at button initialization",
"type": "string"
},
"paymentMethod": {
"allOf": [
{
"properties": {
"cardLast4": {
"type": "string"
},
"cardNetwork": {
"description": "Payment system",
"enum": [
"AMEX",
"DISCOVER",
"JCB",
"MASTERCARD",
"MAESTRO",
"VISAELECTRON",
"VISA",
"MIR",
"UNIONPAY",
"UZCARD",
"HUMOCARD",
"UNKNOWN",
"UNDEFINED",
null
],
"type": "string"
},
"methodType": {
"enum": [
"CARD",
"SPLIT",
"SBP",
"SPLIT_SBP",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Selected payment method"
},
"shippingAddress": {
"allOf": [
{
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
}
],
"description": "Delivery address is available if the COURIER method is selected"
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
}
]
},
"shippingMethod": {
"allOf": [
{
"properties": {
"courierOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Date and interval selected by the user. Only for `type: FLEXIBLE`"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
}
],
"description": "if methodType == COURIER"
},
"methodType": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"pickupOption": {
"allOf": [
{
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
],
"description": "if methodType == PICKUP"
},
"yandexDeliveryOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "ID of the Yandex Delivery offer",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
}
],
"description": "if methodType == YANDEX_DELIVERY"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Selected delivery method."
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
},
"MerchantCreateOrderV1Response": {
"properties": {
"data": {
"properties": {
"metadata": {
"type": "string"
},
"orderId": {
"description": "ID assigned to the created order on the merchant side",
"type": "string"
},
"redirectUrls": {
"allOf": [
{
"properties": {
"onAbort": {
"description": "Link to redirect the user on payment cancellation. Payment can be canceled by the user in the payment form.",
"type": "string"
},
"onError": {
"description": "The field is required for online stores only. A link to redirect the user in case of a payment error or TTL expiry for a payment link",
"type": "string"
},
"onSuccess": {
"description": "The field is required for online stores only. Link to redirect the user on payment success.",
"type": "string"
}
},
"required": [
"onError",
"onSuccess"
],
"type": "object"
}
]
},
"ttl": {
"default": null,
"description": "Order's time to live (in seconds)",
"format": "int32",
"type": "integer"
}
},
"required": [
"orderId"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
},
"MerchantErrorResponse": {
"properties": {
"reason": {
"type": "string"
},
"reasonCode": {
"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"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
},
"MerchantOnboardRequest": {
"properties": {
"apiKey": {
"type": "string"
},
"force": {
"default": false,
"type": "boolean"
},
"merchantAuthToken": {
"description": "Authorization token generated by the merchant",
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
}
},
"required": [
"apiKey",
"merchantAuthToken"
],
"type": "object"
},
"MerchantPickupOptionDetailsRequest": {
"properties": {
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "The internal ID of the Yandex Pay cart.\n\nThe 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`).",
"type": "string"
},
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Total cart cost that the customer is to pay"
}
},
"type": "object"
}
],
"description": "Cart with prices, dimensions, and weight of the products"
},
"currencyCode": {
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"type": "string"
},
"pickupPointId": {
"type": "string"
}
},
"required": [
"cart",
"currencyCode",
"merchantId",
"pickupPointId"
],
"type": "object"
},
"MerchantPickupOptionDetailsResponse": {
"properties": {
"data": {
"properties": {
"pickupOption": {
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"amount",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
},
"required": [
"pickupOption"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
},
"MerchantPickupOptionDetailsResponseData": {
"properties": {
"pickupOption": {
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"amount",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
},
"required": [
"pickupOption"
],
"type": "object"
},
"MerchantPickupOptionsRequest": {
"properties": {
"boundingBox": {
"allOf": [
{
"properties": {
"ne": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Upper-right corner (Northeast)"
},
"sw": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Lower-left corner (Southwest)"
}
},
"required": [
"ne",
"sw"
],
"type": "object"
}
],
"description": "Area borders on the map"
},
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "The internal ID of the Yandex Pay cart.\n\nThe 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`).",
"type": "string"
},
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Total cart cost that the customer is to pay"
}
},
"type": "object"
}
],
"description": "Cart with prices, dimensions, and weight of the products"
},
"currencyCode": {
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"type": "string"
}
},
"required": [
"boundingBox",
"cart",
"currencyCode",
"merchantId"
],
"type": "object"
},
"MerchantPickupOptionsResponse": {
"properties": {
"data": {
"properties": {
"pickupOptions": {
"items": {
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"pickupOptions"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
},
"MerchantPickupOptionsResponseData": {
"properties": {
"pickupOptions": {
"items": {
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"pickupOptions"
],
"type": "object"
},
"MerchantRedirectUrls": {
"properties": {
"onAbort": {
"description": "Link to redirect the user on payment cancellation. Payment can be canceled by the user in the payment form.",
"type": "string"
},
"onError": {
"description": "The field is required for online stores only. A link to redirect the user in case of a payment error or TTL expiry for a payment link",
"type": "string"
},
"onSuccess": {
"description": "The field is required for online stores only. Link to redirect the user on payment success.",
"type": "string"
}
},
"required": [
"onError",
"onSuccess"
],
"type": "object"
},
"MerchantRenderOrderRequest": {
"properties": {
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "The internal ID of the Yandex Pay cart.\n\nThe 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`).",
"type": "string"
},
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Total cart cost that the customer is to pay"
}
},
"type": "object"
}
],
"description": "Cart with prices, dimensions, and weight of the products"
},
"currencyCode": {
"description": "Three-letter code of the order currency code (ISO 4217)",
"enum": [
"RUB"
],
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"description": "Arbitrary data transmitted at button initialization",
"type": "string"
},
"orderId": {
"description": "ID assigned to the existing order on the merchant side and transmitted at button initialization",
"type": "string"
},
"paymentMethod": {
"allOf": [
{
"properties": {
"cardLast4": {
"type": "string"
},
"cardNetwork": {
"description": "Payment system",
"enum": [
"AMEX",
"DISCOVER",
"JCB",
"MASTERCARD",
"MAESTRO",
"VISAELECTRON",
"VISA",
"MIR",
"UNIONPAY",
"UZCARD",
"HUMOCARD",
"UNKNOWN",
"UNDEFINED",
null
],
"type": "string"
},
"methodType": {
"enum": [
"CARD",
"SPLIT",
"SBP",
"SPLIT_SBP",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Selected payment method"
},
"shippingAddress": {
"allOf": [
{
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
}
],
"description": "Delivery address is available if the COURIER method is selected"
},
"shippingMethod": {
"allOf": [
{
"properties": {
"courierOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Date and interval selected by the user. Only for `type: FLEXIBLE`"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
}
],
"description": "if methodType == COURIER"
},
"methodType": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"pickupOption": {
"allOf": [
{
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
],
"description": "if methodType == PICKUP"
},
"yandexDeliveryOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "ID of the Yandex Delivery offer",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
}
],
"description": "if methodType == YANDEX_DELIVERY"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Selected delivery method."
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
},
"MerchantRenderOrderResponse": {
"properties": {
"data": {
"properties": {
"availablePaymentMethods": {
"description": "Payment methods available in the Yandex Pay payment form.\n\nBe sure to specify all the possible methods the user can choose both when paying online and when paying on delivery. If you are integrating payments only with one method (for example, Split), specify a single method (`[\"SPLIT\"]`).",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"cart": {
"allOf": [
{
"properties": {
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"description": "Cart items that the customer pays for.",
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity",
"total"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"description": "Final order cost."
}
},
"required": [
"items",
"total"
],
"type": "object"
}
],
"description": "Cart"
},
"currencyCode": {
"description": "Three-letter code of the order currency code (ISO 4217)",
"enum": [
"RUB"
],
"type": "string"
},
"enableCommentField": {
"type": "boolean"
},
"enableCoupons": {
"type": "boolean"
},
"metadata": {
"description": "Arbitrary data transmitted at button initialization",
"type": "string"
},
"orderAmount": {
"description": "Total cost of the order to be paid, including refunds, delivery costs, discounts, and promo codes",
"example": "123.45",
"format": "double",
"type": "string"
},
"requiredFields": {
"allOf": [
{
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
}
},
"type": "object"
}
]
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"phone": {
"type": "boolean"
}
},
"type": "object"
}
]
}
},
"type": "object"
}
],
"description": "User data needed to create an order"
},
"shipping": {
"allOf": [
{
"properties": {
"availableCourierOptions": {
"description": "Available delivery options (if the request includes an address)",
"items": {
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"type": "array"
},
"availableMethods": {
"items": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"courierOptionsError": {
"description": "Error of identifying a delivery option. When this parameter is specified, an error description will be shown in the user interface.",
"enum": [
"WRONG_ADDRESS",
"DELIVERY_NOT_AVAILABLE_FOR_ADDRESS",
null
],
"type": "string"
},
"yandexDelivery": {
"allOf": [
{
"properties": {
"warehouse": {
"allOf": [
{
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Redefined schedule for specific dates. The keys are dates in the format \"YYYY-MM-DD\", and the values are objects {\"start\": string, \"end\": string} or null for non-business days",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Time zone offset from UTC, in minutes. For example, 180 for Moscow (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Friday"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Monday"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Saturday"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Sunday"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Thursday"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Tuesday"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Wednesday"
}
},
"type": "object"
}
],
"description": "Weekly working schedule"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Working schedule"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
}
]
}
},
"type": "object"
}
]
}
},
"required": [
"availableMethods"
],
"type": "object"
}
]
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
},
"MerchantRenderOrderResponseData": {
"properties": {
"availablePaymentMethods": {
"description": "Payment methods available in the Yandex Pay payment form.\n\nBe sure to specify all the possible methods the user can choose both when paying online and when paying on delivery. If you are integrating payments only with one method (for example, Split), specify a single method (`[\"SPLIT\"]`).",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"cart": {
"allOf": [
{
"properties": {
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"description": "Cart items that the customer pays for.",
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity",
"total"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"description": "Final order cost."
}
},
"required": [
"items",
"total"
],
"type": "object"
}
],
"description": "Cart"
},
"currencyCode": {
"description": "Three-letter code of the order currency code (ISO 4217)",
"enum": [
"RUB"
],
"type": "string"
},
"enableCommentField": {
"type": "boolean"
},
"enableCoupons": {
"type": "boolean"
},
"metadata": {
"description": "Arbitrary data transmitted at button initialization",
"type": "string"
},
"orderAmount": {
"description": "Total cost of the order to be paid, including refunds, delivery costs, discounts, and promo codes",
"example": "123.45",
"format": "double",
"type": "string"
},
"requiredFields": {
"allOf": [
{
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
}
},
"type": "object"
}
]
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"phone": {
"type": "boolean"
}
},
"type": "object"
}
]
}
},
"type": "object"
}
],
"description": "User data needed to create an order"
},
"shipping": {
"allOf": [
{
"properties": {
"availableCourierOptions": {
"description": "Available delivery options (if the request includes an address)",
"items": {
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"type": "array"
},
"availableMethods": {
"items": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"courierOptionsError": {
"description": "Error of identifying a delivery option. When this parameter is specified, an error description will be shown in the user interface.",
"enum": [
"WRONG_ADDRESS",
"DELIVERY_NOT_AVAILABLE_FOR_ADDRESS",
null
],
"type": "string"
},
"yandexDelivery": {
"allOf": [
{
"properties": {
"warehouse": {
"allOf": [
{
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Redefined schedule for specific dates. The keys are dates in the format \"YYYY-MM-DD\", and the values are objects {\"start\": string, \"end\": string} or null for non-business days",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Time zone offset from UTC, in minutes. For example, 180 for Moscow (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Friday"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Monday"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Saturday"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Sunday"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Thursday"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Tuesday"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Wednesday"
}
},
"type": "object"
}
],
"description": "Weekly working schedule"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Working schedule"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
}
]
}
},
"type": "object"
}
]
}
},
"required": [
"availableMethods"
],
"type": "object"
}
]
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
},
"MerchantSuccessResponse": {
"properties": {
"status": {
"default": "success",
"type": "string"
}
},
"type": "object"
},
"MerchantWebhookV1Request": {
"properties": {
"event": {
"enum": [
"TRANSACTION_STATUS_UPDATE",
"ORDER_STATUS_UPDATED",
"OPERATION_STATUS_UPDATED",
"SUBSCRIPTION_STATUS_UPDATED"
],
"type": "string"
},
"eventTime": {
"description": "Event time in the format `RFC 3339`; `YYYY-MM-DDThh:mm:ssTZD`",
"format": "date-time",
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"operation": {
"allOf": [
{
"properties": {
"externalOperationId": {
"type": "string"
},
"operationId": {
"format": "uuid",
"type": "string"
},
"operationType": {
"enum": [
"AUTHORIZE",
"BIND_CARD",
"REFUND",
"CAPTURE",
"VOID",
"RECURRING",
"PREPAYMENT",
"SUBMIT"
],
"type": "string"
},
"orderId": {
"type": "string"
},
"pointsUpdated": {
"description": "Shows whether Plus points have been updated. If yes, sync the cart.",
"type": "boolean"
},
"status": {
"enum": [
"PENDING",
"SUCCESS",
"FAIL"
],
"type": "string"
}
},
"required": [
"operationId",
"operationType",
"orderId",
"status"
],
"type": "object"
}
]
},
"order": {
"allOf": [
{
"properties": {
"deliveryStatus": {
"description": "Delivery statuses",
"enum": [
"NEW",
"ESTIMATING",
"EXPIRED",
"READY_FOR_APPROVAL",
"COLLECTING",
"PREPARING",
"DELIVERING",
"DELIVERED",
"RETURNING",
"RETURNED",
"FAILED",
"CANCELLED",
null
],
"type": "string"
},
"orderId": {
"description": "Order ID received in the /order/create response",
"type": "string"
},
"paymentStatus": {
"description": "Order status",
"enum": [
"PENDING",
"AUTHORIZED",
"CAPTURED",
"VOIDED",
"REFUNDED",
"CONFIRMED",
"PARTIALLY_REFUNDED",
"FAILED",
null
],
"type": "string",
"x-enumDescriptions": {
"AUTHORIZED": "Payment for the order has been authorized. Funds locked on the payer account",
"CAPTURED": "The order has been paid for successfully. Funds debited from the payer account",
"CONFIRMED": "Order placed successfully",
"FAILED": "Order payment failed",
"PARTIALLY_REFUNDED": "Funds were partially refunded for the order",
"PENDING": "Pending payment",
"REFUNDED": "Funds were refunded for the order",
"VOIDED": "The payment has been canceled (voided). No funds were debited"
}
}
},
"required": [
"orderId"
],
"type": "object"
}
],
"description": "if event == ORDER_STATUS_UPDATED"
},
"subscription": {
"allOf": [
{
"properties": {
"customerSubscriptionId": {
"description": "Subscription ID. The SDK returns it when the subscription is created successfully. You can also save a subscription when you get the first notification on it. The same value will arrive in this field every time the subscription is updated.",
"format": "uuid",
"type": "string"
},
"nextWriteOff": {
"description": "Date of the next attempt to debit a subscription fee",
"format": "date-time",
"type": "string"
},
"status": {
"description": "Subscription type",
"enum": [
"NEW",
"ACTIVE",
"CANCELLED",
"EXPIRED"
],
"type": "string"
},
"subscriptionPlanId": {
"description": "ID of the subscription plan created in the dashboard or over the API.",
"format": "uuid",
"type": "string"
}
},
"required": [
"customerSubscriptionId",
"status",
"subscriptionPlanId"
],
"type": "object"
}
],
"description": "Subscription status. Transmitted if event == SUBSCRIPTION_STATUS_UPDATED."
}
},
"required": [
"event",
"eventTime",
"merchantId"
],
"type": "object"
},
"OperationWebhookData": {
"properties": {
"externalOperationId": {
"type": "string"
},
"operationId": {
"format": "uuid",
"type": "string"
},
"operationType": {
"enum": [
"AUTHORIZE",
"BIND_CARD",
"REFUND",
"CAPTURE",
"VOID",
"RECURRING",
"PREPAYMENT",
"SUBMIT"
],
"type": "string"
},
"orderId": {
"type": "string"
},
"pointsUpdated": {
"description": "Shows whether Plus points have been updated. If yes, sync the cart.",
"type": "boolean"
},
"status": {
"enum": [
"PENDING",
"SUCCESS",
"FAIL"
],
"type": "string"
}
},
"required": [
"operationId",
"operationType",
"orderId",
"status"
],
"type": "object"
},
"OrderWebhookData": {
"properties": {
"deliveryStatus": {
"description": "Delivery statuses",
"enum": [
"NEW",
"ESTIMATING",
"EXPIRED",
"READY_FOR_APPROVAL",
"COLLECTING",
"PREPARING",
"DELIVERING",
"DELIVERED",
"RETURNING",
"RETURNED",
"FAILED",
"CANCELLED",
null
],
"type": "string"
},
"orderId": {
"description": "Order ID received in the /order/create response",
"type": "string"
},
"paymentStatus": {
"description": "Order status",
"enum": [
"PENDING",
"AUTHORIZED",
"CAPTURED",
"VOIDED",
"REFUNDED",
"CONFIRMED",
"PARTIALLY_REFUNDED",
"FAILED",
null
],
"type": "string",
"x-enumDescriptions": {
"AUTHORIZED": "Payment for the order has been authorized. Funds locked on the payer account",
"CAPTURED": "The order has been paid for successfully. Funds debited from the payer account",
"CONFIRMED": "Order placed successfully",
"FAILED": "Order payment failed",
"PARTIALLY_REFUNDED": "Funds were partially refunded for the order",
"PENDING": "Pending payment",
"REFUNDED": "Funds were refunded for the order",
"VOIDED": "The payment has been canceled (voided). No funds were debited"
}
}
},
"required": [
"orderId"
],
"type": "object"
},
"PaymentMethod": {
"properties": {
"cardLast4": {
"type": "string"
},
"cardNetwork": {
"description": "Payment system",
"enum": [
"AMEX",
"DISCOVER",
"JCB",
"MASTERCARD",
"MAESTRO",
"VISAELECTRON",
"VISA",
"MIR",
"UNIONPAY",
"UZCARD",
"HUMOCARD",
"UNKNOWN",
"UNDEFINED",
null
],
"type": "string"
},
"methodType": {
"enum": [
"CARD",
"SPLIT",
"SBP",
"SPLIT_SBP",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
}
},
"required": [
"methodType"
],
"type": "object"
},
"PaymentsOperator": {
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"PickupOption": {
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
},
"PickupOptionDetails": {
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"amount",
"location",
"pickupPointId",
"title"
],
"type": "object"
},
"PickupSchedule": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"RenderedCart": {
"properties": {
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"description": "Cart items that the customer pays for.",
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity",
"total"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"description": "Final order cost."
}
},
"required": [
"items",
"total"
],
"type": "object"
},
"RenderedCartItem": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity",
"total"
],
"type": "object"
},
"RequiredFields": {
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
}
},
"type": "object"
}
]
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"phone": {
"type": "boolean"
}
},
"type": "object"
}
]
}
},
"type": "object"
},
"Schedule": {
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Redefined schedule for specific dates. The keys are dates in the format \"YYYY-MM-DD\", and the values are objects {\"start\": string, \"end\": string} or null for non-business days",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Time zone offset from UTC, in minutes. For example, 180 for Moscow (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Friday"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Monday"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Saturday"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Sunday"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Thursday"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Tuesday"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Wednesday"
}
},
"type": "object"
}
],
"description": "Weekly working schedule"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
},
"ShippingMethod": {
"properties": {
"courierOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Date and interval selected by the user. Only for `type: FLEXIBLE`"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
}
],
"description": "if methodType == COURIER"
},
"methodType": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"pickupOption": {
"allOf": [
{
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
],
"description": "if methodType == PICKUP"
},
"yandexDeliveryOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "ID of the Yandex Delivery offer",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
}
],
"description": "if methodType == YANDEX_DELIVERY"
}
},
"required": [
"methodType"
],
"type": "object"
},
"ShippingOptions": {
"properties": {
"availableCourierOptions": {
"description": "Available delivery options (if the request includes an address)",
"items": {
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"type": "array"
},
"availableMethods": {
"items": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"courierOptionsError": {
"description": "Error of identifying a delivery option. When this parameter is specified, an error description will be shown in the user interface.",
"enum": [
"WRONG_ADDRESS",
"DELIVERY_NOT_AVAILABLE_FOR_ADDRESS",
null
],
"type": "string"
},
"yandexDelivery": {
"allOf": [
{
"properties": {
"warehouse": {
"allOf": [
{
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Redefined schedule for specific dates. The keys are dates in the format \"YYYY-MM-DD\", and the values are objects {\"start\": string, \"end\": string} or null for non-business days",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Time zone offset from UTC, in minutes. For example, 180 for Moscow (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Friday"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Monday"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Saturday"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Sunday"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Thursday"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Tuesday"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Wednesday"
}
},
"type": "object"
}
],
"description": "Weekly working schedule"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Working schedule"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
}
]
}
},
"type": "object"
}
]
}
},
"required": [
"availableMethods"
],
"type": "object"
},
"ShippingWarehouse": {
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Redefined schedule for specific dates. The keys are dates in the format \"YYYY-MM-DD\", and the values are objects {\"start\": string, \"end\": string} or null for non-business days",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Time zone offset from UTC, in minutes. For example, 180 for Moscow (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Friday"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Monday"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Saturday"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Sunday"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Thursday"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Tuesday"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Wednesday"
}
},
"type": "object"
}
],
"description": "Weekly working schedule"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Working schedule"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
},
"SubscriptionWebhookData": {
"properties": {
"customerSubscriptionId": {
"description": "Subscription ID. The SDK returns it when the subscription is created successfully. You can also save a subscription when you get the first notification on it. The same value will arrive in this field every time the subscription is updated.",
"format": "uuid",
"type": "string"
},
"nextWriteOff": {
"description": "Date of the next attempt to debit a subscription fee",
"format": "date-time",
"type": "string"
},
"status": {
"description": "Subscription type",
"enum": [
"NEW",
"ACTIVE",
"CANCELLED",
"EXPIRED"
],
"type": "string"
},
"subscriptionPlanId": {
"description": "ID of the subscription plan created in the dashboard or over the API.",
"format": "uuid",
"type": "string"
}
},
"required": [
"customerSubscriptionId",
"status",
"subscriptionPlanId"
],
"type": "object"
},
"Supplier": {
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"TimeInterval": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"TimeInterval1": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"TransferOperator": {
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"WeeklySchedule": {
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Friday"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Monday"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Saturday"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Sunday"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Thursday"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Tuesday"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Wednesday"
}
},
"type": "object"
},
"YandexDeliveryOption": {
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "ID of the Yandex Delivery offer",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
},
"YandexDeliveryShippingParams": {
"properties": {
"warehouse": {
"allOf": [
{
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Redefined schedule for specific dates. The keys are dates in the format \"YYYY-MM-DD\", and the values are objects {\"start\": string, \"end\": string} or null for non-business days",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Time zone offset from UTC, in minutes. For example, 180 for Moscow (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Friday"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Monday"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Saturday"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Sunday"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Thursday"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Tuesday"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Wednesday"
}
},
"type": "object"
}
],
"description": "Weekly working schedule"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Working schedule"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
}
]
}
},
"type": "object"
}
}
},
"info": {
"description": "\nTo run the Merchant API, you need the public IP of your backend. Specify the address\nin the **Callback URL** field in the Yandex Pay console [on the developer page](https://console.pay.yandex.ru/settings).\n\nYour backend must authorize the request before starting processing it.\n\n### Authenticating Yandex Pay request {#auth}\n\nIn the response body, Yandex Pay delivers a JWT token signed by the ES256 algorithm.\nThe token consists of three parts: the header, the payload, and the signature,\nconcatenated with a '.': `<base64-encoded headers JSON>.<base64-encoded payload JSON>.<signature>`.\nbase64-decoded header is a JSON document with the following structure:\n\n```json\n{\n \"alg\": \"ES256\", // Signature algorithm\n \"kid\": \"key-id\", // Key ID; used when determining a public key\n \"iat\": \"1639408318\", // UNIX time when the token was issued\n \"exp\": \"1639429918\", // UNIX time; When the token expires, it's invalidated\n \"typ\": \"JWT\" // token type\n}\n```\n\nThe payload is also JSON, with the specific field structure determined by the\ncalled method. The signature is needed to validate the JWT token.\n\n__IMPORTANT:__ Before deserializing a token you need to validate it.\n\n#### Token validity verification algorithm {#validate}\n\nTo validate the JWT token, it's convenient to use one of the standard libraries\nfrom the list: <https://jwt.io/libraries>. Avoid manual implementation of such checks.\n\nGenerally speaking, the algorithm for checking a JWT token by a library includes:\n\n1. Validating the signature of a JWT token using public JWT keys available at:\n<https://sandbox.pay.yandex.ru/api/jwks> for the test environment and <https://pay.yandex.ru/api/jwks>\nfor the production environment. The public key used for validating the signature of a specific JWT token\nis selected based on the `alg` and `kid` in the token's header.\n1. Checking standard requirements for the JWT token header: `alg`, `typ`, `iat`, `exp`, etc.\n\nOnly if both checks are successful, the user can deserialize the JSON payload of the JWT token.\nAfter that, the recipient should additionally check that `merchantId` in the token's payload is the same as the merchant ID in\nYandex Pay. Otherwise, the token cannot be used.\n\nIf any of the checks fails, the token is considered invalid and the request is considered unauthenticated.\nSuch a request should be rejected. The response expected in this case is `403 Forbidden` with `reasonCode` equal to `FORBIDDEN`.\nExample of response:\n\n```json\n{\n \"status\": \"fail\",\n \"reasonCode\": \"FORBIDDEN\",\n \"reason\": \"Invalid merchantId\"\n}\n```\n\n#### Caching public JWK keys {#jwk-cache}\n\nThe keys used to validate JWT tokens can be cached on the merchant's backend.\nFor such a cache, the TTL has to be set to avoid token validation errors\nwhen JWK keys are rotated on the Yandex Pay side. For practical reasons, \n[some libraries](https://github.com/auth0/node-jwks-rsa#caching) set a TTL of ten minutes for\nsuch a cache by default. In the case of caching of JWK keys, you need to implement the following\nscenarios of checks.\n\nScenario A: Successful validation of a token by cached jwk keys.\n\n1. The backend receives a request with the token whose `kid` is found among the cached JWK keys and whose TTL for the cache hasn't expired.\n1. The token's signature is validated successfully.\n1. The token is considered valid.\n\nScenario B: Unsuccessful validation of a token by cached JWK keys.\n\n1. The backend receives a request with the token whose `kid` is found among the cached JWK keys and whose TTL for the cache hasn't expired.\n1. The token's signature validation fails.\n1. The token is invalidated, the request is rejected.\n\nScenario C: Token validation with resettings of JWK key cache.\n\n1. The backend receives a request with a token whose `kid` isn't among the cached JWK keys or the TTL has expired for the cache.\n1. The merchant has to reset the JWK key cache and to request a fresh complete list of active JWK keys from the address corresponding to the environment.\n1. The validation process continues by Scenario A or Scenario B.\n\nSame as with token validation, we recommend using standard libraries, avoiding\nmanual implementation of the scenarios.\n\n#### Example of JWT token validation code {#jwk-verify-example}\n\nBelow is an example of successful validation of a JWT token in a sandbox environment.\nTo validate tokens in the production environment, use public keys available at <https://pay.yandex.ru/api/jwks>.\n\n{% list tabs %}\n\n- Python\n\n ```python\n import json\n from urllib.request import urlopen\n\n from jose import jwt\n\n YANDEX_JWK_ENDPOINT = \"https://sandbox.pay.yandex.ru/api/jwks\"\n\n JWT_TOKEN = (\n \"eyJhbGciOiJFUzI1NiIsImlhdCI6MTY1MDE5Njc1OCwia2lkIjoidGVzdC1rZXkiLCJ0eXAiOiJKV1QifQ.eyJjYXJ0Ijp7Iml0ZW1zIjpbeyJwcm9kdWN\"\n \"0SWQiOiJwMSIsInF1YW50aXR5Ijp7ImNvdW50IjoiMSJ9fV19LCJjdXJyZW5jeUNvZGUiOiJSVUIiLCJtZXJjaGFudElkIjoiMjc2Y2YxZjEtZjhlZC00N\"\n \"GZlLTg5ZTMtNWU0MTEzNDZkYThkIn0.YmQjHlh3ddLWgBexQ3QrwtbgAA3u1TVnBl1qnfMIvToBwinH3uH92KGB15m4NAQXdz5nhkjPZZu7RUStJt40PQ\"\n )\n\n with urlopen(YANDEX_JWK_ENDPOINT) as response:\n public_jwks = json.load(response)\n\n payload = jwt.decode(JWT_TOKEN, public_jwks, algorithms=[\"ES256\"])\n print(json.dumps(payload, indent=2))\n ```\n\n- PHP\n\n ```php\n use Firebase\\JWT\\JWT;\n use Firebase\\JWT\\JWK;\n\n $sandboxJwk = 'https://sandbox.pay.yandex.ru/api/jwks';\n\n $JWT_TOKEN =\n \"eyJhbGciOiJFUzI1NiIsImlhdCI6MTY1MDE5Njc1OCwia2lkIjoidGVzdC1rZXkiLCJ0eXAiOiJKV1QifQ.eyJjYXJ0Ijp7Iml0ZW1zIjpbeyJwcm9kdWN\"\n . \"0SWQiOiJwMSIsInF1YW50aXR5Ijp7ImNvdW50IjoiMSJ9fV19LCJjdXJyZW5jeUNvZGUiOiJSVUIiLCJtZXJjaGFudElkIjoiMjc2Y2YxZjEtZjhlZC00N\"\n . \"GZlLTg5ZTMtNWU0MTEzNDZkYThkIn0.YmQjHlh3ddLWgBexQ3QrwtbgAA3u1TVnBl1qnfMIvToBwinH3uH92KGB15m4NAQXdz5nhkjPZZu7RUStJt40PQ\";\n\n $client = new GuzzleHttp\\Client();\n $keysJson = $client->get($sandboxJwk)->getBody();\n $keysData = json_decode($keysJson, JSON_OBJECT_AS_ARRAY);\n\n $keys = JWK::parseKeySet($keysData);\n $payload = JWT::decode($JWT_TOKEN, $keys);\n\n print_r($payload);\n ```\n\n To run this example, use the dependencies:\n\n ```bash\n composer require firebase/php-jwt\n composer require guzzlehttp/guzzle\n ```\n\n{% endlist %}",
"title": "Merchant API",
"version": "1.0.0"
},
"openapi": "3.0.3",
"paths": {
"/v1/order/render": {
"post": {
"description": "Request data to display the cart.\n\nIn the request parameters, transmit the product IDs and product quantities or the order number.\nThe response returns the parameters and content for the Yandex Pay form.\n\nProduct IDs and quantities are provided as the input. <br/>\nYou can pass arbitrary data in the `metadata` field from the merchant's frontend\nto the store's backend. The method is invoked when adding or removing items from the cart, selecting a delivery address and delivery method,\nor applying promo codes. The merchant needs to double check items in the order and fill out detailed information about\nproducts, delivery methods, and promo codes, recalculate product totals and order totals.\n\nDetailed information on the order and products is expected in response:\n- Available types of payment methods and delivery methods is in `availablePaymentMethods`, `shipping.availableMethods`, respectively\n- Additional user data needed for ordering is in `requiredFields`\n- The cost and name of each product. The maximum available quantity of product (optional)\n- The information about discounts applied to the cart is in `discounts`",
"operationId": "order-render",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "The internal ID of the Yandex Pay cart.\n\nThe 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`).",
"type": "string"
},
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Total cart cost that the customer is to pay"
}
},
"type": "object"
}
],
"description": "Cart with prices, dimensions, and weight of the products"
},
"currencyCode": {
"description": "Three-letter code of the order currency code (ISO 4217)",
"enum": [
"RUB"
],
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"description": "Arbitrary data transmitted at button initialization",
"type": "string"
},
"orderId": {
"description": "ID assigned to the existing order on the merchant side and transmitted at button initialization",
"type": "string"
},
"paymentMethod": {
"allOf": [
{
"properties": {
"cardLast4": {
"type": "string"
},
"cardNetwork": {
"description": "Payment system",
"enum": [
"AMEX",
"DISCOVER",
"JCB",
"MASTERCARD",
"MAESTRO",
"VISAELECTRON",
"VISA",
"MIR",
"UNIONPAY",
"UZCARD",
"HUMOCARD",
"UNKNOWN",
"UNDEFINED",
null
],
"type": "string"
},
"methodType": {
"enum": [
"CARD",
"SPLIT",
"SBP",
"SPLIT_SBP",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Selected payment method"
},
"shippingAddress": {
"allOf": [
{
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
}
],
"description": "Delivery address is available if the COURIER method is selected"
},
"shippingMethod": {
"allOf": [
{
"properties": {
"courierOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Date and interval selected by the user. Only for `type: FLEXIBLE`"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
}
],
"description": "if methodType == COURIER"
},
"methodType": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"pickupOption": {
"allOf": [
{
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
],
"description": "if methodType == PICKUP"
},
"yandexDeliveryOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "ID of the Yandex Delivery offer",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
}
],
"description": "if methodType == YANDEX_DELIVERY"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Selected delivery method."
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"availablePaymentMethods": {
"description": "Payment methods available in the Yandex Pay payment form.\n\nBe sure to specify all the possible methods the user can choose both when paying online and when paying on delivery. If you are integrating payments only with one method (for example, Split), specify a single method (`[\"SPLIT\"]`).",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"cart": {
"allOf": [
{
"properties": {
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"description": "Cart items that the customer pays for.",
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity",
"total"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"description": "Final order cost."
}
},
"required": [
"items",
"total"
],
"type": "object"
}
],
"description": "Cart"
},
"currencyCode": {
"description": "Three-letter code of the order currency code (ISO 4217)",
"enum": [
"RUB"
],
"type": "string"
},
"enableCommentField": {
"type": "boolean"
},
"enableCoupons": {
"type": "boolean"
},
"metadata": {
"description": "Arbitrary data transmitted at button initialization",
"type": "string"
},
"orderAmount": {
"description": "Total cost of the order to be paid, including refunds, delivery costs, discounts, and promo codes",
"example": "123.45",
"format": "double",
"type": "string"
},
"requiredFields": {
"allOf": [
{
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
}
},
"type": "object"
}
]
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "boolean"
},
"name": {
"type": "boolean"
},
"phone": {
"type": "boolean"
}
},
"type": "object"
}
]
}
},
"type": "object"
}
],
"description": "User data needed to create an order"
},
"shipping": {
"allOf": [
{
"properties": {
"availableCourierOptions": {
"description": "Available delivery options (if the request includes an address)",
"items": {
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
},
"type": "array"
},
"availableMethods": {
"items": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"courierOptionsError": {
"description": "Error of identifying a delivery option. When this parameter is specified, an error description will be shown in the user interface.",
"enum": [
"WRONG_ADDRESS",
"DELIVERY_NOT_AVAILABLE_FOR_ADDRESS",
null
],
"type": "string"
},
"yandexDelivery": {
"allOf": [
{
"properties": {
"warehouse": {
"allOf": [
{
"properties": {
"address": {
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
},
"contact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"emergencyContact": {
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
},
"schedule": {
"allOf": [
{
"properties": {
"custom": {
"additionalProperties": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"nullable": true
},
"description": "Redefined schedule for specific dates. The keys are dates in the format \"YYYY-MM-DD\", and the values are objects {\"start\": string, \"end\": string} or null for non-business days",
"nullable": true,
"type": "object"
},
"tzoffset": {
"description": "Time zone offset from UTC, in minutes. For example, 180 for Moscow (UTC+3)",
"format": "int32",
"maximum": 840,
"minimum": -720,
"type": "integer"
},
"weekly": {
"allOf": [
{
"properties": {
"fri": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Friday"
},
"mon": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Monday"
},
"sat": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Saturday"
},
"sun": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Sunday"
},
"thu": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Thursday"
},
"tue": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Tuesday"
},
"wed": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
],
"description": "Wednesday"
}
},
"type": "object"
}
],
"description": "Weekly working schedule"
}
},
"required": [
"tzoffset",
"weekly"
],
"type": "object"
}
],
"description": "Working schedule"
}
},
"required": [
"address",
"contact",
"emergencyContact"
],
"type": "object"
}
]
}
},
"type": "object"
}
]
}
},
"required": [
"availableMethods"
],
"type": "object"
}
]
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
}
}
},
"description": "success"
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"type": "string"
},
"reasonCode": {
"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"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "bad request"
}
},
"summary": "/v1/order/render"
}
},
"/v1/order/create": {
"post": {
"description": "Request for validation or creation of an order on the merchant side.\n\nIn the request parameters, it passes a cart with items and their prices, selected delivery method,\nand the total order cost (`orderAmount`). The merchant checks that the prices and items in the cart are correct.\n\nIf the cart is correct, the merchant reserves the items for 30 minutes and responds with the success code\nto the Yandex Pay backend. Within 30 minutes, the Yandex Pay backend should send a notification about the payment status.\nThe merchant can also poll the order status by the order details handle\nin the [Yandex Pay API](https://pay.yandex.ru/ru/docs/custom/backend/yandex-pay-api/).\n\nIf the cart is correct, the merchant reserves the items for 30 minutes and responds by the success code\nwith the order ID. If the merchant doesn't get the [notification](./webhook) about the change in the order payment status within 30 minutes,\nyou need to get the [order details](../yandex-pay-api/order/merchant_v1_orders-post) synchronously before\nreleasing the items.\n\n{% note warning %}\n\nOnly after receiving the `FAILED` payment status, the merchant can release the items and mark\nthe order as canceled.\n\n{% endnote %}\n\nIf the merchant receives code 4xx in response, the validation of the order is considered unsuccessful, the order won't be paid, and there\nwon't be any repeat attempts to check the order. In the case of response\n5xx, the request is repeated.",
"operationId": "order-create",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"billingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
}
]
},
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "The internal ID of the Yandex Pay cart.\n\nThe 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`).",
"type": "string"
},
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"description": "Cart item",
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"finalPrice": {
"description": "Price per product unit with all discounts per item and on the cart",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Total cart cost that the customer is to pay"
}
},
"required": [
"items"
],
"type": "object"
}
],
"description": "Cart"
},
"currencyCode": {
"description": "Three-letter code of the order currency code (ISO 4217)",
"enum": [
"RUB"
],
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"description": "Arbitrary data transmitted at button initialization",
"type": "string"
},
"orderAmount": {
"description": "Total cost of the order to be paid, including refunds, delivery costs, discounts, and promo codes",
"example": "123.45",
"format": "double",
"type": "string"
},
"orderId": {
"description": "ID assigned to the existing order on the merchant side and transmitted at button initialization",
"type": "string"
},
"paymentMethod": {
"allOf": [
{
"properties": {
"cardLast4": {
"type": "string"
},
"cardNetwork": {
"description": "Payment system",
"enum": [
"AMEX",
"DISCOVER",
"JCB",
"MASTERCARD",
"MAESTRO",
"VISAELECTRON",
"VISA",
"MIR",
"UNIONPAY",
"UZCARD",
"HUMOCARD",
"UNKNOWN",
"UNDEFINED",
null
],
"type": "string"
},
"methodType": {
"enum": [
"CARD",
"SPLIT",
"SBP",
"SPLIT_SBP",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Selected payment method"
},
"shippingAddress": {
"allOf": [
{
"properties": {
"addressLine": {
"description": "Full address",
"type": "string"
},
"building": {
"type": "string"
},
"comment": {
"type": "string"
},
"country": {
"type": "string"
},
"district": {
"type": "string"
},
"entrance": {
"type": "string"
},
"floor": {
"type": "string"
},
"intercom": {
"type": "string"
},
"locale": {
"type": "string"
},
"locality": {
"type": "string"
},
"location": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
]
},
"region": {
"type": "string"
},
"room": {
"type": "string"
},
"street": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"building",
"country"
],
"type": "object"
}
],
"description": "Delivery address is available if the COURIER method is selected"
},
"shippingContact": {
"allOf": [
{
"properties": {
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"phone": {
"type": "string"
},
"phoneAdditionalCode": {
"type": "string"
},
"secondName": {
"type": "string"
}
},
"type": "object"
}
]
},
"shippingMethod": {
"allOf": [
{
"properties": {
"courierOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"courierOptionId": {
"description": "ID of the selected delivery method in the merchant system",
"type": "string"
},
"customerChoice": {
"allOf": [
{
"properties": {
"date": {
"format": "date",
"type": "string"
},
"time": {
"allOf": [
{
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
}
]
}
},
"required": [
"date"
],
"type": "object"
}
],
"description": "Date and interval selected by the user. Only for `type: FLEXIBLE`"
},
"fromDate": {
"description": "Closest delivery date for `type: PLAIN`. Start of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"fromTime": {
"description": "Start of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"provider": {
"description": "Delivery service type.",
"enum": [
"BOXBERRY",
"CDEK",
"RUSSIAN_POST",
"EMS",
"COURIER",
"DHL",
"EXPRESS_DELIVERY",
"FIVEPOST",
"OZON_ROCKET",
"DPD",
"SBER_LOGISTICS",
"PEK",
"PICKPOINT",
"KCE",
"PONY_EXPRESS",
"YANDEX_DELIVERY",
null
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"timeIntervals": {
"allOf": [
{
"properties": {
"grid": {
"allOf": [
{
"properties": {
"duration": {
"description": "Duration of each interval",
"type": "string"
},
"end": {
"description": "Maximum start time for the latest interval",
"type": "string"
},
"start": {
"description": "Start time for the very first interval",
"type": "string"
},
"step": {
"description": "Difference in time between the starts of two neighboring intervals",
"type": "string"
}
},
"required": [
"duration",
"end",
"start",
"step"
],
"type": "object"
}
],
"description": "Encodes the intervals as a grid. Use this format if you want to set more than 20 delivery intervals.\nExample: `{\"start\": \"09:00\", \"end\": \"21:00\", \"duration\": \"00:20\", \"step\": \"01:00\"}` is treated as a set of intervals: `[{\"start\": \"09:00\", \"end\": \"09:20\"}, {\"start\": \"10:00\", \"end\": \"10:20\"}, ..., {\"start\": \"20:00\", \"end\": \"20:20\"}]`"
},
"type": {
"description": "For the `GRID` type, fill in the `grid` field. If the `VALUES` type is specified, set the `values` field.",
"enum": [
"GRID",
"VALUES"
],
"type": "string"
},
"values": {
"description": "Set the list of intervals directly. Suitable for a small number of delivery intervals. The maximum recommended number of intervals is 20",
"items": {
"properties": {
"end": {
"description": "Interval end time",
"type": "string"
},
"start": {
"description": "Interval start time",
"type": "string"
}
},
"required": [
"end",
"start"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "Codes the intervals of the delivery time available for selection. Only for `type: FLEXIBLE`"
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDate": {
"description": "Latest delivery date for `type: PLAIN`. End of the interval of the delivery date selection for `type: FLEXIBLE`",
"format": "date",
"type": "string"
},
"toTime": {
"description": "End of the delivery time interval. Only for `type: PLAIN`",
"type": "string"
},
"type": {
"default": "PLAIN",
"description": "Option type.\nFor `FLEXIBLE` delivery options, the user can select the desirable date and interval:\n- The delivery date is selected by the user in the interval `[fromDate, toDate]`\n- To give the user an option to select an interval within a day, fill out `timeIntervals`\nNo such choice is provided for `PLAIN` options.",
"enum": [
"PLAIN",
"FLEXIBLE"
],
"type": "string"
}
},
"required": [
"amount",
"category",
"courierOptionId",
"title"
],
"type": "object"
}
],
"description": "if methodType == COURIER"
},
"methodType": {
"enum": [
"DIRECT",
"PICKUP",
"COURIER",
"YANDEX_DELIVERY"
],
"type": "string"
},
"pickupOption": {
"allOf": [
{
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
],
"description": "if methodType == PICKUP"
},
"yandexDeliveryOption": {
"allOf": [
{
"properties": {
"allowedPaymentMethods": {
"description": "Individual payment methods for the delivery 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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Delivery cost",
"example": "123.45",
"format": "double",
"type": "string"
},
"category": {
"enum": [
"EXPRESS",
"TODAY",
"STANDARD"
],
"type": "string"
},
"fromDatetime": {
"format": "date-time",
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"title": {
"description": "Delivery method name. Shown to the user in the option list",
"type": "string"
},
"toDatetime": {
"format": "date-time",
"type": "string"
},
"yandexDeliveryOptionId": {
"description": "ID of the Yandex Delivery offer",
"type": "string"
}
},
"required": [
"amount",
"category",
"title",
"yandexDeliveryOptionId"
],
"type": "object"
}
],
"description": "if methodType == YANDEX_DELIVERY"
}
},
"required": [
"methodType"
],
"type": "object"
}
],
"description": "Selected delivery method."
}
},
"required": [
"cart",
"currencyCode"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"metadata": {
"type": "string"
},
"orderId": {
"description": "ID assigned to the created order on the merchant side",
"type": "string"
},
"redirectUrls": {
"allOf": [
{
"properties": {
"onAbort": {
"description": "Link to redirect the user on payment cancellation. Payment can be canceled by the user in the payment form.",
"type": "string"
},
"onError": {
"description": "The field is required for online stores only. A link to redirect the user in case of a payment error or TTL expiry for a payment link",
"type": "string"
},
"onSuccess": {
"description": "The field is required for online stores only. Link to redirect the user on payment success.",
"type": "string"
}
},
"required": [
"onError",
"onSuccess"
],
"type": "object"
}
]
},
"ttl": {
"default": null,
"description": "Order's time to live (in seconds)",
"format": "int32",
"type": "integer"
}
},
"required": [
"orderId"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
}
}
},
"description": "success"
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"type": "string"
},
"reasonCode": {
"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"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "bad request"
}
},
"summary": "/v1/order/create"
}
},
"/v1/webhook": {
"post": {
"description": "Notifications of status change.\n\nThe request is sent when changing the order status.\n\nSupported events:\n- `ORDER_STATUS_UPDATED` - a change in the payment status or delivery status\n- `OPERATION_STATUS_UPDATED` - a change in the status of the operation to confirm, cancel, or refund a payment",
"operationId": "webhook",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"event": {
"enum": [
"TRANSACTION_STATUS_UPDATE",
"ORDER_STATUS_UPDATED",
"OPERATION_STATUS_UPDATED",
"SUBSCRIPTION_STATUS_UPDATED"
],
"type": "string"
},
"eventTime": {
"description": "Event time in the format `RFC 3339`; `YYYY-MM-DDThh:mm:ssTZD`",
"format": "date-time",
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"operation": {
"allOf": [
{
"properties": {
"externalOperationId": {
"type": "string"
},
"operationId": {
"format": "uuid",
"type": "string"
},
"operationType": {
"enum": [
"AUTHORIZE",
"BIND_CARD",
"REFUND",
"CAPTURE",
"VOID",
"RECURRING",
"PREPAYMENT",
"SUBMIT"
],
"type": "string"
},
"orderId": {
"type": "string"
},
"pointsUpdated": {
"description": "Shows whether Plus points have been updated. If yes, sync the cart.",
"type": "boolean"
},
"status": {
"enum": [
"PENDING",
"SUCCESS",
"FAIL"
],
"type": "string"
}
},
"required": [
"operationId",
"operationType",
"orderId",
"status"
],
"type": "object"
}
]
},
"order": {
"allOf": [
{
"properties": {
"deliveryStatus": {
"description": "Delivery statuses",
"enum": [
"NEW",
"ESTIMATING",
"EXPIRED",
"READY_FOR_APPROVAL",
"COLLECTING",
"PREPARING",
"DELIVERING",
"DELIVERED",
"RETURNING",
"RETURNED",
"FAILED",
"CANCELLED",
null
],
"type": "string"
},
"orderId": {
"description": "Order ID received in the /order/create response",
"type": "string"
},
"paymentStatus": {
"description": "Order status",
"enum": [
"PENDING",
"AUTHORIZED",
"CAPTURED",
"VOIDED",
"REFUNDED",
"CONFIRMED",
"PARTIALLY_REFUNDED",
"FAILED",
null
],
"type": "string",
"x-enumDescriptions": {
"AUTHORIZED": "Payment for the order has been authorized. Funds locked on the payer account",
"CAPTURED": "The order has been paid for successfully. Funds debited from the payer account",
"CONFIRMED": "Order placed successfully",
"FAILED": "Order payment failed",
"PARTIALLY_REFUNDED": "Funds were partially refunded for the order",
"PENDING": "Pending payment",
"REFUNDED": "Funds were refunded for the order",
"VOIDED": "The payment has been canceled (voided). No funds were debited"
}
}
},
"required": [
"orderId"
],
"type": "object"
}
],
"description": "if event == ORDER_STATUS_UPDATED"
},
"subscription": {
"allOf": [
{
"properties": {
"customerSubscriptionId": {
"description": "Subscription ID. The SDK returns it when the subscription is created successfully. You can also save a subscription when you get the first notification on it. The same value will arrive in this field every time the subscription is updated.",
"format": "uuid",
"type": "string"
},
"nextWriteOff": {
"description": "Date of the next attempt to debit a subscription fee",
"format": "date-time",
"type": "string"
},
"status": {
"description": "Subscription type",
"enum": [
"NEW",
"ACTIVE",
"CANCELLED",
"EXPIRED"
],
"type": "string"
},
"subscriptionPlanId": {
"description": "ID of the subscription plan created in the dashboard or over the API.",
"format": "uuid",
"type": "string"
}
},
"required": [
"customerSubscriptionId",
"status",
"subscriptionPlanId"
],
"type": "object"
}
],
"description": "Subscription status. Transmitted if event == SUBSCRIPTION_STATUS_UPDATED."
}
},
"required": [
"event",
"eventTime",
"merchantId"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"status": {
"default": "success",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "success"
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"type": "string"
},
"reasonCode": {
"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"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "bad request"
}
},
"summary": "/v1/webhook"
}
},
"/v1/pickup-options": {
"post": {
"description": "Request to retrieve pickup points.\n\nA request to retrieve available pickup points based on the items in the cart.",
"operationId": "pickup-options",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"boundingBox": {
"allOf": [
{
"properties": {
"ne": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Upper-right corner (Northeast)"
},
"sw": {
"allOf": [
{
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
}
],
"description": "Lower-left corner (Southwest)"
}
},
"required": [
"ne",
"sw"
],
"type": "object"
}
],
"description": "Area borders on the map"
},
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "The internal ID of the Yandex Pay cart.\n\nThe 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`).",
"type": "string"
},
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Total cart cost that the customer is to pay"
}
},
"type": "object"
}
],
"description": "Cart with prices, dimensions, and weight of the products"
},
"currencyCode": {
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"type": "string"
}
},
"required": [
"boundingBox",
"cart",
"currencyCode",
"merchantId"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"pickupOptions": {
"items": {
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"location",
"pickupPointId",
"title"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"pickupOptions"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
}
}
},
"description": "success"
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"type": "string"
},
"reasonCode": {
"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"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "bad request"
}
},
"summary": "/v1/pickup-options"
}
},
"/v1/pickup-option-details": {
"post": {
"description": "Request to get pickup point details.\n\nGiven a pickup point (`pickupPointId`) and items in the cart, the store's backend returns the\ndetails of the pickup point.",
"operationId": "pickup-option-details",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"cart": {
"allOf": [
{
"properties": {
"cartId": {
"description": "The internal ID of the Yandex Pay cart.\n\nThe 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`).",
"type": "string"
},
"coupons": {
"description": "Coupons applied to the cart",
"items": {
"properties": {
"description": {
"description": "Description For example, \"3% discount\"",
"type": "string"
},
"status": {
"enum": [
"VALID",
"INVALID",
"EXPIRED",
null
],
"type": "string"
},
"value": {
"description": "Coupon code",
"type": "string"
}
},
"required": [
"value"
],
"type": "object"
},
"type": "array"
},
"discounts": {
"description": "Discounts applied to the cart",
"items": {
"properties": {
"amount": {
"description": "Discount amount",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Text description",
"type": "string"
},
"discountId": {
"description": "Discount ID in the merchant system",
"type": "string"
}
},
"required": [
"amount",
"description",
"discountId"
],
"type": "object"
},
"type": "array"
},
"externalId": {
"description": "Cart ID passed by the merchant",
"type": "string"
},
"items": {
"items": {
"properties": {
"description": {
"description": "Product description",
"type": "string"
},
"discountedUnitPrice": {
"description": "Price per product unit with discount per item",
"example": "123.45",
"format": "double",
"type": "string"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
],
"description": "Product dimensions and weight. Required for the `PHYSICAL` product"
},
"pointsAmount": {
"description": "Number of Plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
},
"productId": {
"description": "Product ID in the merchant system Make sure that each `productId` in the request parameters is unique.",
"type": "string"
},
"quantity": {
"allOf": [
{
"properties": {
"available": {
"description": "Maximum available product quantity",
"example": "123.45",
"format": "double",
"type": "string"
},
"count": {
"description": "Product quantity in the order",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
}
},
"required": [
"count"
],
"type": "object"
}
],
"description": "Product quantity in the order"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
],
"description": "Data for receipt generation"
},
"subtotal": {
"description": "Total price per item without discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"title": {
"description": "Product name",
"type": "string"
},
"total": {
"description": "Total price per item with item discount",
"example": "123.45",
"format": "double",
"type": "string"
},
"type": {
"default": "UNSPECIFIED",
"description": "Product type. Important for integrating with delivery services",
"enum": [
"PHYSICAL",
"DIGITAL",
"UNSPECIFIED"
],
"type": "string"
},
"unitPrice": {
"description": "Total price per product unit without discount",
"example": "123.45",
"format": "double",
"type": "string"
}
},
"required": [
"productId",
"quantity"
],
"type": "object"
},
"type": "array"
},
"measurements": {
"allOf": [
{
"properties": {
"height": {
"description": "Height, in meters",
"format": "float",
"type": "number"
},
"length": {
"description": "Length, in meters",
"format": "float",
"type": "number"
},
"weight": {
"description": "Weight, in kilograms",
"format": "float",
"type": "number"
},
"width": {
"description": "Width, in meters",
"format": "float",
"type": "number"
}
},
"required": [
"height",
"length",
"weight",
"width"
],
"type": "object"
}
]
},
"total": {
"allOf": [
{
"properties": {
"amount": {
"description": "Cart cost with all discounts",
"example": "123.45",
"format": "double",
"type": "string"
},
"label": {
"description": "Name of measurement units, for example, \"kg\" or \"pcs\"",
"type": "string"
},
"pointsAmount": {
"description": "Number of plus points",
"example": "123.45",
"format": "double",
"readOnly": true,
"type": "string"
}
},
"required": [
"amount"
],
"type": "object"
}
],
"default": null,
"description": "Total cart cost that the customer is to pay"
}
},
"type": "object"
}
],
"description": "Cart with prices, dimensions, and weight of the products"
},
"currencyCode": {
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
},
"metadata": {
"type": "string"
},
"pickupPointId": {
"type": "string"
}
},
"required": [
"cart",
"currencyCode",
"merchantId",
"pickupPointId"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"data": {
"properties": {
"pickupOption": {
"properties": {
"address": {
"description": "Address in string format",
"type": "string"
},
"allowedPaymentMethods": {
"description": "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.",
"items": {
"enum": [
"CARD",
"SPLIT",
"CASH_ON_DELIVERY",
"CARD_ON_DELIVERY"
],
"type": "string"
},
"type": "array"
},
"amount": {
"description": "Cost of delivery to the location",
"example": "123.45",
"format": "double",
"type": "string"
},
"description": {
"description": "Additional description",
"type": "string"
},
"fromDate": {
"description": "YYYY-MM-DD. Closest possible delivery date",
"format": "date",
"type": "string"
},
"location": {
"properties": {
"latitude": {
"format": "float",
"type": "number"
},
"longitude": {
"format": "float",
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"type": "object"
},
"phones": {
"description": "Contact phone numbers",
"items": {
"type": "string"
},
"type": "array"
},
"pickupPointId": {
"description": "Unique pickup point ID in the merchant's system",
"type": "string"
},
"provider": {
"description": "Pickup point's type.",
"enum": [
"YANDEX_MARKET",
"BOXBERRY",
"CDEK",
"IN_STORE",
"RUSSIAN_POST",
"PICKPOINT",
"DPD"
],
"type": "string"
},
"receipt": {
"allOf": [
{
"properties": {
"agent": {
"allOf": [
{
"properties": {
"agentType": {
"description": "Agent type by taxable object. See [values](https://pay.yandex.ru/ru/docs/custom/fns#agent-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7
],
"type": "integer"
},
"operation": {
"type": "string"
},
"paymentsOperator": {
"allOf": [
{
"properties": {
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
},
"transferOperator": {
"allOf": [
{
"properties": {
"address": {
"type": "string"
},
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
}
},
"required": [
"agentType"
],
"type": "object"
}
]
},
"excise": {
"description": "It shouldn't include more than two decimal digits.\nFor example: 1.12, 5.1, 10, 11.00 .",
"example": "123.45",
"format": "double",
"type": "string"
},
"markQuantity": {
"allOf": [
{
"properties": {
"denominator": {
"format": "int32",
"type": "integer"
},
"numerator": {
"format": "int32",
"type": "integer"
}
},
"required": [
"denominator",
"numerator"
],
"type": "object"
}
]
},
"measure": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#measure-code)",
"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
],
"type": "integer"
},
"paymentMethodType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-method-type)",
"enum": [
1,
2,
3,
4,
5,
6,
7,
null
],
"type": "integer"
},
"paymentSubjectType": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#payment-subject-type)",
"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
],
"type": "integer"
},
"productCode": {
"description": "Product code (a base64-encoded array of 1 to 32 bytes)",
"format": "base64",
"type": "string"
},
"supplier": {
"allOf": [
{
"properties": {
"inn": {
"type": "string"
},
"name": {
"type": "string"
},
"phones": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
]
},
"tax": {
"description": "Value description: [Link](https://pay.yandex.ru/ru/docs/custom/backend/fns#tax)",
"enum": [
1,
2,
3,
4,
5,
6
],
"type": "integer"
},
"title": {
"type": "string"
}
},
"required": [
"tax"
],
"type": "object"
}
]
},
"schedule": {
"description": "Pickup point's schedule",
"items": {
"properties": {
"fromTime": {
"description": "HH:mm, \"08:00\"",
"type": "string"
},
"label": {
"description": "For example, \"Mon-Fri\"",
"type": "string"
},
"toTime": {
"description": "HH:mm, \"20:00\"",
"type": "string"
}
},
"required": [
"fromTime",
"label",
"toTime"
],
"type": "object"
},
"type": "array"
},
"storagePeriod": {
"description": "Optional. Storage period at the pickup point, in days.",
"format": "int32",
"type": "integer"
},
"title": {
"description": "Pickup point's name",
"type": "string"
},
"toDate": {
"description": "YYYY-MM-DD. Latest delivery date",
"format": "date",
"type": "string"
}
},
"required": [
"address",
"amount",
"location",
"pickupPointId",
"title"
],
"type": "object"
}
},
"required": [
"pickupOption"
],
"type": "object"
},
"status": {
"type": "string"
}
},
"required": [
"data",
"status"
],
"type": "object"
}
}
},
"description": "success"
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"type": "string"
},
"reasonCode": {
"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"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "bad request"
}
},
"summary": "/v1/pickup-option-details"
}
},
"/v1/onboard": {
"post": {
"description": "Request to confirm registration in the Yandex Pay console.",
"operationId": "onboard",
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"apiKey": {
"type": "string"
},
"force": {
"default": false,
"type": "boolean"
},
"merchantAuthToken": {
"description": "Authorization token generated by the merchant",
"type": "string"
},
"merchantId": {
"format": "uuid",
"type": "string"
}
},
"required": [
"apiKey",
"merchantAuthToken"
],
"type": "object"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"status": {
"default": "success",
"type": "string"
}
},
"type": "object"
}
}
},
"description": "success"
},
"400": {
"content": {
"application/json": {
"schema": {
"properties": {
"reason": {
"type": "string"
},
"reasonCode": {
"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"
],
"type": "string"
},
"status": {
"default": "fail",
"type": "string"
}
},
"required": [
"reasonCode"
],
"type": "object"
}
}
},
"description": "bad request"
}
},
"summary": "/v1/onboard"
}
}
},
"servers": [
{
"description": "Production",
"url": "https://example.merchant.ru"
},
{
"description": "Sandbox",
"url": "https://sandbox.example.merchant.ru"
}
]
}