cURL
PHP
Python
YooMoney API Reference
The YooMoney API Reference describes all the YooMoney API methods. The API allows you to process online payments: send payment requests, save details for recurring payments, make refunds, and more.
More about integration via the YooMoney API 
cURL
PHP
Python
Payment object
The
Payment
object contains all currently relevant information about the payment. The object is generated during creation of a payment, and sent in response to any payment-related requests.
Parameter descriptions
Parameters
Description
id
string, required
Payment ID in YooMoney.
status
string, required
Payment status. Possible values:
pending
,
waiting_for_capture
,
succeeded
, and
canceled
. More about the life cycle of a payment 
amount
object, required
Payment amount. Sometimes YooMoney's partners charge additional commission from the users that is not included in this amount.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
income_amount
object, optional
Amount of payment to be received by the store: the 
amount
value minus the YooMoney commission. If you're a partner  using an OAuth token for request authentication, make a request to the store for a right  to get information about commissions on payments.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
description
string, optional
Description of the transaction (maximum 128 characters) displayed in your YooMoney Merchant Profile, and shown to the user during checkout. For example, "Payment for order No. 72 for user@yoomoney.ru".
recipient
object, required
Payment recipient.
Nested parameters
account_id
string, required
Store's ID in YooMoney.
gateway_id
string, required
Subaccount's ID. Used for separating payment flows within one account.
payment_method
object, optional
Payment method 
used for this payment.
Nested parameters
Payment methods
Alfa-Click
type
string, required
Value:
alfabank
.
Payment method code.
id
string, required
Payment method ID.
saved
boolean, required
Saving payment methods allows conducting automatic recurring payments .
title
string, optional
Payment method name.
login
string, optional
User's login in Alfa-Click (linked phone number or the additional login).
captured_at
string, optional
Time of payment capture, based on UTC and specified in the ISO 8601 format.
created_at
string, required
Time of order creation, based on UTC and specified in the ISO 8601 format. Example:
2017-11-03T11:52:31.827Z
expires_at
string, optional
The period during which you can cancel or capture a payment for free. The payment with the 
waiting_for_capture
status will be automatically canceled at the specified time. Based on UTC and specified in the ISO 8601 format. Example:
2017-11-03T11:52:31.827Z
confirmation
object, optional
Selected payment confirmation scenario. For payments requiring confirmation from the user. More about confirmation scenarios 
Nested parameters
Confirmation scenarios
Embedded
type
string, required
Value:
embedded
.
Confirmation scenario code.
confirmation_token
string, required
Token for the YooMoney Checkout Widget  initialization.
test
boolean, required
The attribute of a test transaction.
refunded_amount
object, optional
The amount refunded to the user. Specified if the payment has successful refunds.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
paid
boolean, required
The attribute of a paid order.
refundable
boolean, required
Availability of the option to make a refund via API.
receipt_registration
string, optional
Delivery status of receipt data to online sales register (
pending
,
succeeded
, or
canceled
). For those who use the solution for 54-FZ .
metadata
object, optional
Any additional data you might require for processing payments (for example, order number), specified as a “key-value” pair and returned in response from YooMoney. Limitations: no more than 16 keys, no more than 32 characters in the key’s title, no more than 512 characters in the key’s value, data type is a string in the UTF-8 format.
cancellation_details
object, optional
Commentary to the 
canceled
status: who and why canceled the payment. More about canceled payments 
Nested parameters
party
string, required
The participant of the payment process that made the decision to cancel the payment. Possible values are
yoo_money
,
payment_network
, and
merchant
. More about initiators of payment cancelation 
reason
string, required
Reason behind the cancelation. The list and descriptions of possible values 
authorization_details
object, optional
Payment authorization details.
Nested parameters
rrn
string, optional
Retrieval Reference Number is a unique identifier of a transaction in the issuer's system. Used for payments via bank card.
auth_code
string, optional
Bank card's authorization code. Provided by the issuer to confirm authorization.
three_d_secure
object, optional
Information about user’s 3‑D Secure authentication for confirming the payment.
Nested parameters
applied
boolean, required
Information on whether the 3-D Secure authentication form is displayed to the user for confirming the payment or not. Possible values:
  • true
    : YooMoney displayed the form to the user, so that they could complete 3-D Secure authentication;
  • false
    : payment was processed without 3-D Secure authentication.
transfers
array, optional
Information about money distribution: the amounts of transfers and the stores to be transferred to. Specified if you use Split payments .
Nested parameters
account_id
string, required
ID of the store in favor of which you're accepting the receipt. Provided by YooMoney, displayed in the Sellers section of your Merchant Profile (shopId column).
amount
object, required
Amount to be transferred to the store.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
status
string, required
Status of the money distribution between stores. Possible values:
pending
,
waiting_for_capture
,
succeeded
,
canceled
.
platform_fee_amount
object, optional
Commission for sold products or services charged in your favor.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
metadata
object, optional
Any additional data you might require for processing payments (for example, order number), specified as a “key-value” pair and returned in response from YooMoney. Limitations: no more than 16 keys, no more than 32 characters in the key’s title, no more than 512 characters in the key’s value, data type is a string in the UTF-8 format.
deal
object, optional
The deal within which the payment is being carried out. Specified if you use Safe deal .
Nested parameters
id
string, required
Deal ID.
settlements
array, required
Information about money distribution.
Nested parameters
type
string, required
Transaction type. Fixed value: payout —
payout
to seller.
amount
object, required
Amount of seller’s remuneration.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
merchant_customer_id
string, optional
The identifier of the customer in your system, such as email address or phone number. No more than 200 characters. Specified if you want to save a bank card and offer it for a recurring payment in the YooMoney payment widget .
Example of Payment object
{
  "id": "22e12f66-000f-5000-8000-18db351245c7",
  "status": "waiting_for_capture",
  "paid": true,
  "amount": {
    "value": "2.00",
    "currency": "RUB"
  },
  "authorization_details": {
    "rrn": "10000000000",
    "auth_code": "000000",
    "three_d_secure": {
      "applied": true
    }
  },
  "created_at": "2018-07-18T10:51:18.139Z",
  "description": "Order No. 72",
  "expires_at": "2018-07-25T10:52:00.233Z",
  "metadata": {},
  "payment_method": {
    "type": "bank_card",
    "id": "22e12f66-000f-5000-8000-18db351245c7",
    "saved": false,
    "card": {
      "first6": "555555",
      "last4": "4444",
      "expiry_month": "07",
      "expiry_year": "2022",
      "card_type": "MasterCard",
      "issuer_country": "RU",
      "issuer_name": "Sberbank"
    },
    "title": "Bank card *4444"
  },
  "recipient": {
    "account_id": "100500",
    "gateway_id": "100700"
  },
  "refundable": false,
  "test": false,
  "income_amount": {
    "value": "1.97",
    "currency": "RUB"
  }
}
Create a payment
To accept a payment, you need to create a payment object,
Payment
. It contains all the necessary payment information (amount, currency, and status). Payments have a linear life cycle, going from one status to the next sequentially.
Request parameters
Request parameter descriptions
Request parameters
Description
amount
object, required
Payment amount. Sometimes YooMoney's partners charge additional commission from the users that is not included in this amount.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
description
string, optional
Description of the transaction (maximum 128 characters) displayed in your YooMoney Merchant Profile, and shown to the user during checkout. For example, "Payment for order No. 72 for user@yoomoney.ru".
receipt
object, optional
Data for creating a receipt in the online sales register (for compliance with 54-FZ ). Specify this parameter if you send the data for creating the receipt using one of these scenarios: Payment and receipt at the same time  or Payment after receipt .
Nested parameters
customer
object, optional
User details. You should specify at least the basic contact information: email address (
customer.email
) or phone number (
customer.phone
).
Nested parameters
full_name
string, optional
Name of the organization for companies, full name for sole proprietors and individuals. If the individual doesn't have a Tax Identification Number (INN), specify their passport information in this parameter. Maximum 256 characters.
Online sales register that support this parameter: Orange Data, ATOL Online.
inn
string, optional
User's Tax Identification Number (INN) (10 or 12 digits). If the individual doesn't have an INN, specify their passport information in the 
full_name
parameter.
Online sales register that support this parameter: Orange Data, ATOL Online.
email
string, optional
User's email address for sending the receipt. Required parameter if
phone
isn't specified.
phone
string, optional
User's phone number for sending the receipt. Specified in the ITU-T E.164 format, for example,
79000000000
. Required parameter if
email
isn't specified.
items
array, required
List of products in an order (maximum 100 items).
Nested parameters
description
string, required
Product name (maximum 128 characters). Tag 1030 in 54-FZ.
quantity
string, required
Product quantity. Tag 1023 in 54-FZ. Maximum possible value depends on the model of your online sales register.
measure
string, optional
Unit of measurement of product quantity: for example, items or grams. Tag 2108 in 54-FZ. This parameter must be specified starting from FFD 1.2.
List of possible values 
mark_quantity
object, optional
Fraction of a marked product (tag 1291 in 54-FZ). Must be specified if all of the following applies:
  • FFD version 1.2 is used;
  • payment is made for a marked product;
  • the 
    measure
    field has the 
    piece
    value.
Example: you're selling pencils by the piece. They're supplied in packages 100 pencils each with one marking code. To sell one pencil, enter
1
in
numerator
and
100
in
denominator
.
Nested parameters
numerator
integer, required
The number of products sold from one customer package (tag 1293 in 54-FZ). Cannot exceed the 
denominator
.
denominator
integer, required
The total number of products in the customer package (tag 1294 in 54-FZ).
amount
object, required
Product price (tag 1079 in 54-FZ).
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
vat_code
number, required
VAT rate (tag 1199 in 54-FZ). Possible value is a number from 1 to 6. More about VAT rates codes 
payment_subject
string, optional
Payment subject attribute (tag 1212 in 54-FZ): what the payment is made for, for example, a product or service. List of possible values 
payment_mode
string, optional
Payment method attribute (tag 1214 in 54-FZ): contains information about the payment method and shows whether the product has been handed over to the customer. Example: a customer makes a full payment for a product and immediately receives it. In this case, the 
full_payment
(full payment) value must be specified. List of possible values 
country_of_origin_code
string, optional
Country of origin code according to the Russian classifier of world countries (OK (MK (ISO 3166) 004-97) 025-2001). Tag 1230 in 54-FZ. Example:
RU
.
Online sales register that support this parameter: Orange Data, Kit Invest.
customs_declaration_number
string, optional
Customs declaration number (1 to 32 characters). Tag 1231 in 54-FZ.
Online sales register that support this parameter: Orange Data, Kit Invest.
excise
string, optional
Amount of excise tax on products including kopeks. Tag 1229 in 54-FZ. Decimal number with 2 digits after the period.
Online sales register that support this parameter: Orange Data, Kit Invest.
product_code
string, optional
Product code is a unique number assigned to a unit of product during marking process. Tag 1162 in 54-FZ.
Format: hexadecimal number with spaces. Maximum length is 32 bytes. Example:
00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00
.
Required parameter for marked products.
mark_code_info
object, optional
Product code (tag 1163 in 54-FZ). Must be specified if the FFD 1.2 protocol is used and if the product must be marked. At least one of the fields must be filled in.
Nested parameters
mark_code_raw
string, optional
Product code as it was read by the scanner (tag 2000 in 54-FZ).
Must be specified if an online sales register from Orange Data is used.
Example:
010460406000590021N4N57RTCBUZTQ\u001d2403054002410161218\u001d1424010191ffd0\u001g92tIAF/YVpU4roQS3M/m4z78yFq0nc/WsSmLeX6QkF/YVWwy5IMYAeiQ91Xa2m/fFSJcOkb2N+uUUtfr4n0mOX0Q==
unknown
string, optional
Unknown product code (tag 1300 in 54-FZ).
ean_8
string, optional
Product code in the EAN-8 format (tag 1301 in 54-FZ).
ean_13
string, optional
Product code in the EAN-13 format (tag 1302 in 54-FZ).
itf_14
string, optional
Product code in the ITF-14 format (tag 1303 in 54-FZ).
gs_10
string, optional
Product code in the GS1.0 format (tag 1304 in 54-FZ).
gs_1m
string, optional
Product code in the GS1.M format (tag 1305 in 54-FZ).
short
string, optional
Product code in the short marking code format (tag 1306 in 54-FZ).
fur
string, optional
Control ID of a fur product (tag 1307 in 54-FZ).
egais_20
string, optional
Product code in the EGAIS-2.0 (unified state automated information system) format. Tag 1308 in 54-FZ.
egais_30
string, optional
Product code in the EGAIS-3.0 (unified state automated information system) format .Tag 1309 in 54-FZ.
mark_mode
string, optional
Method of processing the marking code (tag 2102 in 54-FZ). Must be specified if all of the following applies:
  • FFD version 1.2 is used;
  • payment is made for a marked product;
  • an online sales register from ATOL Online or BusinessRu is used.
Must get a value equal to "0".
payment_subject_industry_details
array, optional
Industry attribute of the payment subject (tag 1260 in 54-FZ). Must be specified if FFD 1.2 is used.
Nested parameters
federal_id
string, required
ID of the federal executive authority (tag 1262 in 54-FZ).
document_date
string, required
Date of the incorporation document. Tag 1263 in 54-FZ. Specified in the ISO 8601 format.
document_number
string, required
Number of the regulation issued by the federal executive authority prescribing how the "Industry attribute value" attribute must be filled in. Tag 1264 in 54-FZ.
value
string, required
Industry attribute value (tag 1265 in 54-FZ).
phone
string, optional
User's phone number for sending the receipt. Set in the ITU-T E.164 format, for example,
79000000000
.
Deprecated parameter: we recommend specifying the details in the 
receipt.customer.phone
parameter.
email
string, optional
User's email address for sending the receipt.
Deprecated parameter: we recommend specifying the details in the 
receipt.customer.email
parameter.
tax_system_code
number, optional
Store's tax system (tag 1055 in 54-FZ). The parameter is required if you use the ATOL online sales register updated to FFD 1.2, or if you use several tax systems. Otherwise, the parameter is not specified.
List of possible values 
receipt_industry_details
array, optional
Industry attribute of the receipt (tag 1261 in 54-FZ). Must be specified if FFD 1.2 is used.
Nested parameters
federal_id
string, required
ID of the federal executive authority (tag 1262 in 54-FZ).
document_date
string, required
Date of the incorporation document. Tag 1263 in 54-FZ. Specified in the ISO 8601 format.
document_number
string, required
Number of the regulation issued by the federal executive authority prescribing how the "Industry attribute value" attribute must be filled in. Tag 1264 in 54-FZ.
value
string, required
Industry attribute value (tag 1265 in 54-FZ).
receipt_operational_details
object, optional
Transaction attribute of the receipt (tag 1270 in 54-FZ). Must be specified if FFD 1.2 is used.
Nested parameters
operation_id
integer, required
Transaction ID (tag 1271 in 54-FZ). From 0 to 255 characters.
value
string, required
Transaction details (tag 1272 in 54-FZ).
created_at
string, required
Time when the transaction was initiated (tag 1273 in 54-FZ). Formatted in accordance with UTC standart and specified in the ISO 8601. Example:
2017-11-03T11:52:31.827Z
recipient
object, optional
Payment recipient. Required for separating payment flows within one account or making payments to other accounts.
Nested parameters
gateway_id
string, required
Subaccount's ID. Used for separating payment flows within one account.
payment_token
string, optional
One-time payment token generated with Checkout.js  or mobile SDK .
payment_method_id
string, optional
payment_method_data
object, optional
Data for making payments using a certain method  (
payment_method
). You can send the request without this object. If you do so, the user will be able to select the payment method on the YooMoney's side.
Nested parameters
Payment methods
Alfa-Click
type
string, required
Value:
alfabank
.
Payment method code.
login
string, optional
User's login in Alfa-Click. Mandatory for the External  scenario.
confirmation
object, optional
Information required to initiate the selected payment confirmation scenario by the user. More about confirmation scenarios 
Nested parameters
Confirmation scenarios
Embedded
type
string, required
Value:
embedded
.
Confirmation scenario code.
locale
string, optional
Language of the interface, emails, and text messages that will be displayed or sent to the user. Formatted in accordance with ISO/IEC 15897. Possible values:
ru_RU
,
en_US
. Case sensitive.
save_payment_method
boolean, optional
Saving payment data (can be used for direct debits ). The
true
value initiates the creation of a reusable
payment_method
.
capture
boolean, optional
Automatic acceptance 
of an incoming payment.
client_ip
string, optional
User’s IPv4 or IPv6 address. If not specified, the TCP connection’s IP address is used.
metadata
object, optional
Any additional data you might require for processing payments (for example, order number), specified as a “key-value” pair and returned in response from YooMoney. Limitations: no more than 16 keys, no more than 32 characters in the key’s title, no more than 512 characters in the key’s value, data type is a string in the UTF-8 format.
airline
object, optional
Object containing the data for selling airline tickets , used only for bank card payments.
Nested parameters
ticket_number
string, optional
Unique ticket number. If you already know the ticket number during payment creation,
ticket_number
is a required parameter. If you don't, specify
booking_reference
instead of
ticket_number
.
booking_reference
string, optional
Booking reference number, required if
ticket_number
is not specified.
passengers
array, optional
List of passengers.
Nested parameters
first_name
string, required
Passenger's first name. Only use Latin characters, for example, SERGEI.
last_name
string, required
Passenger's last name. Only use Latin characters, for example, IVANOV.
legs
array, optional
List of flight legs.
Nested parameters
departure_airport
string, required
Code of the departure airport according to IATA, for example, LED.
destination_airport
string, required
Code of the arrival airport according to IATA, for example, AMS.
departure_date
string, required
Departure date in the YYYY-MM-DD ISO 8601:2004 format.
carrier_code
string, optional
Airline code according to IATA.
transfers
array, optional
Information about money distribution: the amounts of transfers and the stores to be transferred to. Specified if you use Split payments .
Nested parameters
account_id
string, required
ID of the store in favor of which you're accepting the receipt. Provided by YooMoney, displayed in the Sellers section of your Merchant Profile (shopId column).
amount
object, required
Amount to be transferred to the store.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
platform_fee_amount
object, optional
Commission for sold products or services charged in your favor.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
metadata
object, optional
Any additional data you might require for processing payments (for example, order number), specified as a “key-value” pair and returned in response from YooMoney. Limitations: no more than 16 keys, no more than 32 characters in the key’s title, no more than 512 characters in the key’s value, data type is a string in the UTF-8 format.
deal
object, optional
The deal within which the payment is being carried out. Specified if you use Safe deal .
Nested parameters
id
string, required
Deal ID.
settlements
array, required
Information about money distribution.
Nested parameters
type
string, required
Transaction type. Fixed value: payout —
payout
to seller.
amount
object, required
Amount of seller’s remuneration.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
merchant_customer_id
string, optional
The identifier of the customer in your system, such as email address or phone number. No more than 200 characters. Specified if you want to save a bank card and offer it for a recurring payment in the YooMoney payment widget .
Response
The response to the request will contain the payment object with the current status.
cURL
PHP
Python
Request example
curl https://api.yookassa.ru/v3/payments \
  -X POST \
  -u <Shop ID>:<Secret Key> \
  -H 'Idempotence-Key: <Idempotence Key>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        },
        "payment_method_data": {
          "type": "bank_card"
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.merchant-website.com/return_url"
        },
        "description": "Order No. 72"
      }'
Response body example
{
  "id": "22e12f66-000f-5000-8000-18db351245c7",
  "status": "pending",
  "paid": false,
  "amount": {
    "value": 2,
    "currency": "RUB"
  },
  "confirmation": {
    "type": "redirect",
    "return_url": "https://www.merchant-website.com/return_url",
    "confirmation_url": "https://yoomoney.ru/payments/external/confirmation?orderId=22e12f66-000f-5000-8000-18db351245c7"
  },
  "created_at": "2018-07-18T10:51:18.139Z",
  "description": "Order No. 72",
  "metadata": {
    
  },
  "payment_method": {
    "type": "bank_card",
    "id": "22e12f66-000f-5000-8000-18db351245c7",
    "saved": false
  },
  "recipient": {
    "account_id": 100500,
    "gateway_id": 100700
  },
  "refundable": false,
  "test": false
}
List payments
The request allows you to receive the list of payments filtered by specified criteria. More about working with lists 
Request parameters
Request parameter descriptions
Request parameters
Description
created_at.gte
string, optional
Filter by creation date: time must be greater than the specified value or equal ("from a certain moment inclusive"). Specified in the ISO 8601 format. Example:
created_at.gte=2018-07-18T10:51:18.139Z
created_at.gt
string, optional
Filter by creation date: time must be greater than the specified value ("from a certain moment exclusive"). Specified in the ISO 8601 format. Example:
created_at.gt=2018-07-18T10:51:18.139Z
created_at.lte
string, optional
Filter by creation date: time must be less than the specified value or equal ("until a certain moment inclusive"). Specified in the ISO 8601 format. Example:
created_at.lte=2018-07-18T10:51:18.139Z
created_at.lt
string, optional
Filter by creation date: time must be less than the specified value ("until a certain moment exclusive"). Specified in the ISO 8601 format. Example:
created_at.lt=2018-07-18T10:51:18.139Z
captured_at.gte
string, optional
Filter by time of payment capture: time must be greater than the specified value or equal ("from a certain moment inclusive"). Specified in the ISO 8601 format. Example:
captured_at.gte=2018-07-18T10:51:18.139Z
captured_at.gt
string, optional
Filter by time of payment capture: time must be greater than the specified value ("from a certain moment exclusive"). Specified in the ISO 8601 format. Example:
captured_at.gt=2018-07-18T10:51:18.139Z
captured_at.lte
string, optional
Filter by time of payment capture: time must be less than the specified value or equal ("until a certain moment inclusive"). Specified in the ISO 8601 format. Example:
captured_at.lte=2018-07-18T10:51:18.139Z
captured_at.lt
string, optional
Filter by time of payment capture: time must be less than the specified value ("until a certain moment exclusive") Specified in the ISO 8601 format. Example:
captured_at.lt=2018-07-18T10:51:18.139Z
payment_method
string, optional
Filter by payment method  code. Example:
payment_method=bank_card
status
string, optional
Filter by payment status . Example:
status=succeeded
limit
number, optional
Size of the output of request results: number of objects sent in response. Possible values: 1 to 100. Example:
limit=50

Default value:
10
cursor
string, optional
Cursor to the next fragment in the list. Example:
cursor=37a5c87d-3984-51e8-a7f3-8de646d39ec15

Use the value of the 
next_cursor
parameter received in response to the previous request as the cursor. Used if the size of the list is greater than the output size (
limit
) and the output end hasn't been reached. Example of usage 
Response
The response will contain the list of payments with applied parameters of the request. The list includes the information about the payments created within the last 3 years. The list will be sorted by payment creation time in descending order.
If the number of results exceeds the value of 
limit
, the list will be provided in fragments. In this case, the response to the request will include a fragment of the list and the 
next_cursor
parameter with a cursor to the next fragment.
More about working with lists 
cURL
PHP
Python
Request example
curl https://api.yookassa.ru/v3/payments \
  -u <Shop ID>:<Secret key>
Response body example
{
  "type": "list",
  "items": [
    {
      "id": "22e12f66-000f-5000-8000-18db351245c7",
      "status": "waiting_for_capture",
      "paid": true,
      "amount": {
        "value": 2,
        "currency": "RUB"
      },
      "created_at": "2018-07-18T10:51:18.139Z",
      "description": "Order No. 72",
      "expires_at": "2018-07-25T10:52:00.233Z",
      "metadata": {
        
      },
      "payment_method": {
        "type": "bank_card",
        "id": "22e12f66-000f-5000-8000-18db351245c7",
        "saved": false,
        "card": {
          "first6": 555555,
          "last4": 4444,
          "expiry_month": 7,
          "expiry_year": 2022,
          "card_type": "MasterCard",
          "issuer_country": "RU",
          "issuer_name": "Sberbank"
        },
        "title": "Bank card *4444"
      },
      "recipient": {
        "account_id": 100500,
        "gateway_id": 100700
      },
      "refundable": false,
      "test": false
    }
  ],
  "next_cursor": "37a5c87d-3984-51e8-a7f3-8de646d39ec15"
}
Get payment information
This request allows you to get the information about the current payment status by its unique ID.
Request parameters
None.
Response
The response to the request will contain the payment object with the current status.
cURL
PHP
Python
Request example
curl https://api.yookassa.ru/v3/payments/{payment_id} \
  -u <Shop ID>:<Secret Key>
Response body example
{
  "id": "22e12f66-000f-5000-8000-18db351245c7",
  "status": "waiting_for_capture",
  "paid": true,
  "amount": {
    "value": 2,
    "currency": "RUB"
  },
  "created_at": "2018-07-18T10:51:18.139Z",
  "description": "Order No. 72",
  "expires_at": "2018-07-25T10:52:00.233Z",
  "metadata": {
    
  },
  "payment_method": {
    "type": "bank_card",
    "id": "22e12f66-000f-5000-8000-18db351245c7",
    "saved": false,
    "card": {
      "first6": 555555,
      "last4": 4444,
      "expiry_month": 7,
      "expiry_year": 2022,
      "card_type": "MasterCard",
      "issuer_country": "RU",
      "issuer_name": "Sberbank"
    },
    "title": "Bank card *4444"
  },
  "recipient": {
    "account_id": 100500,
    "gateway_id": 100700
  },
  "refundable": false,
  "test": false
}
Capture a payment
Confirm you’re ready to accept the payment. Once the payment is captured, the status will change to
succeeded
. After that, you can provide the customer with the product or service.
You can only capture payments with the 
waiting_for_capture
status, and only for a certain amount of time (depending on the payment method). If you do not capture the payment within the allotted time, the status will change to
canceled
, and the money will be returned to the user.
Request parameters
Request parameter descriptions
Request parameters
Description
amount
object, optional
Total amount charged to the user. For payments made via bank card or from a YooMoney wallet, you can specify a part of the initial amount, so the remainder will be returned to the user.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
receipt
object, optional
Data for creating a receipt in the online sales register (for compliance with 54-FZ ). Specify this parameter if you send the data for creating the receipt using one of these scenarios: Payment and receipt at the same time  or Payment after receipt .
Nested parameters
customer
object, optional
User details. You should specify at least the basic contact information: email address (
customer.email
) or phone number (
customer.phone
).
Nested parameters
full_name
string, optional
Name of the organization for companies, full name for sole proprietors and individuals. If the individual doesn't have a Tax Identification Number (INN), specify their passport information in this parameter. Maximum 256 characters.
Online sales register that support this parameter: Orange Data, ATOL Online.
inn
string, optional
User's Tax Identification Number (INN) (10 or 12 digits). If the individual doesn't have an INN, specify their passport information in the 
full_name
parameter.
Online sales register that support this parameter: Orange Data, ATOL Online.
email
string, optional
User's email address for sending the receipt. Required parameter if
phone
isn't specified.
phone
string, optional
User's phone number for sending the receipt. Specified in the ITU-T E.164 format, for example,
79000000000
. Required parameter if
email
isn't specified.
items
array, required
List of products in an order (maximum 100 items).
Nested parameters
description
string, required
Product name (maximum 128 characters). Tag 1030 in 54-FZ.
quantity
string, required
Product quantity. Tag 1023 in 54-FZ. Maximum possible value depends on the model of your online sales register.
measure
string, optional
Unit of measurement of product quantity: for example, items or grams. Tag 2108 in 54-FZ. This parameter must be specified starting from FFD 1.2.
List of possible values 
mark_quantity
object, optional
Fraction of a marked product (tag 1291 in 54-FZ). Must be specified if all of the following applies:
  • FFD version 1.2 is used;
  • payment is made for a marked product;
  • the 
    measure
    field has the 
    piece
    value.
Example: you're selling pencils by the piece. They're supplied in packages 100 pencils each with one marking code. To sell one pencil, enter
1
in
numerator
and
100
in
denominator
.
Nested parameters
numerator
integer, required
The number of products sold from one customer package (tag 1293 in 54-FZ). Cannot exceed the 
denominator
.
denominator
integer, required
The total number of products in the customer package (tag 1294 in 54-FZ).
amount
object, required
Product price (tag 1079 in 54-FZ).
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
vat_code
number, required
VAT rate (tag 1199 in 54-FZ). Possible value is a number from 1 to 6. More about VAT rates codes 
payment_subject
string, optional
Payment subject attribute (tag 1212 in 54-FZ): what the payment is made for, for example, a product or service. List of possible values 
payment_mode
string, optional
Payment method attribute (tag 1214 in 54-FZ): contains information about the payment method and shows whether the product has been handed over to the customer. Example: a customer makes a full payment for a product and immediately receives it. In this case, the 
full_payment
(full payment) value must be specified. List of possible values 
country_of_origin_code
string, optional
Country of origin code according to the Russian classifier of world countries (OK (MK (ISO 3166) 004-97) 025-2001). Tag 1230 in 54-FZ. Example:
RU
.
Online sales register that support this parameter: Orange Data, Kit Invest.
customs_declaration_number
string, optional
Customs declaration number (1 to 32 characters). Tag 1231 in 54-FZ.
Online sales register that support this parameter: Orange Data, Kit Invest.
excise
string, optional
Amount of excise tax on products including kopeks. Tag 1229 in 54-FZ. Decimal number with 2 digits after the period.
Online sales register that support this parameter: Orange Data, Kit Invest.
product_code
string, optional
Product code is a unique number assigned to a unit of product during marking process. Tag 1162 in 54-FZ.
Format: hexadecimal number with spaces. Maximum length is 32 bytes. Example:
00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00
.
Required parameter for marked products.
mark_code_info
object, optional
Product code (tag 1163 in 54-FZ). Must be specified if the FFD 1.2 protocol is used and if the product must be marked. At least one of the fields must be filled in.
Nested parameters
mark_code_raw
string, optional
Product code as it was read by the scanner (tag 2000 in 54-FZ).
Must be specified if an online sales register from Orange Data is used.
Example:
010460406000590021N4N57RTCBUZTQ\u001d2403054002410161218\u001d1424010191ffd0\u001g92tIAF/YVpU4roQS3M/m4z78yFq0nc/WsSmLeX6QkF/YVWwy5IMYAeiQ91Xa2m/fFSJcOkb2N+uUUtfr4n0mOX0Q==
unknown
string, optional
Unknown product code (tag 1300 in 54-FZ).
ean_8
string, optional
Product code in the EAN-8 format (tag 1301 in 54-FZ).
ean_13
string, optional
Product code in the EAN-13 format (tag 1302 in 54-FZ).
itf_14
string, optional
Product code in the ITF-14 format (tag 1303 in 54-FZ).
gs_10
string, optional
Product code in the GS1.0 format (tag 1304 in 54-FZ).
gs_1m
string, optional
Product code in the GS1.M format (tag 1305 in 54-FZ).
short
string, optional
Product code in the short marking code format (tag 1306 in 54-FZ).
fur
string, optional
Control ID of a fur product (tag 1307 in 54-FZ).
egais_20
string, optional
Product code in the EGAIS-2.0 (unified state automated information system) format. Tag 1308 in 54-FZ.
egais_30
string, optional
Product code in the EGAIS-3.0 (unified state automated information system) format .Tag 1309 in 54-FZ.
mark_mode
string, optional
Method of processing the marking code (tag 2102 in 54-FZ). Must be specified if all of the following applies:
  • FFD version 1.2 is used;
  • payment is made for a marked product;
  • an online sales register from ATOL Online or BusinessRu is used.
Must get a value equal to "0".
payment_subject_industry_details
array, optional
Industry attribute of the payment subject (tag 1260 in 54-FZ). Must be specified if FFD 1.2 is used.
Nested parameters
federal_id
string, required
ID of the federal executive authority (tag 1262 in 54-FZ).
document_date
string, required
Date of the incorporation document. Tag 1263 in 54-FZ. Specified in the ISO 8601 format.
document_number
string, required
Number of the regulation issued by the federal executive authority prescribing how the "Industry attribute value" attribute must be filled in. Tag 1264 in 54-FZ.
value
string, required
Industry attribute value (tag 1265 in 54-FZ).
phone
string, optional
User's phone number for sending the receipt. Set in the ITU-T E.164 format, for example,
79000000000
.
Deprecated parameter: we recommend specifying the details in the 
receipt.customer.phone
parameter.
email
string, optional
User's email address for sending the receipt.
Deprecated parameter: we recommend specifying the details in the 
receipt.customer.email
parameter.
tax_system_code
number, optional
Store's tax system (tag 1055 in 54-FZ). The parameter is required if you use the ATOL online sales register updated to FFD 1.2, or if you use several tax systems. Otherwise, the parameter is not specified.
List of possible values 
receipt_industry_details
array, optional
Industry attribute of the receipt (tag 1261 in 54-FZ). Must be specified if FFD 1.2 is used.
Nested parameters
federal_id
string, required
ID of the federal executive authority (tag 1262 in 54-FZ).
document_date
string, required
Date of the incorporation document. Tag 1263 in 54-FZ. Specified in the ISO 8601 format.
document_number
string, required
Number of the regulation issued by the federal executive authority prescribing how the "Industry attribute value" attribute must be filled in. Tag 1264 in 54-FZ.
value
string, required
Industry attribute value (tag 1265 in 54-FZ).
receipt_operational_details
object, optional
Transaction attribute of the receipt (tag 1270 in 54-FZ). Must be specified if FFD 1.2 is used.
Nested parameters
operation_id
integer, required
Transaction ID (tag 1271 in 54-FZ). From 0 to 255 characters.
value
string, required
Transaction details (tag 1272 in 54-FZ).
created_at
string, required
Time when the transaction was initiated (tag 1273 in 54-FZ). Formatted in accordance with UTC standart and specified in the ISO 8601. Example:
2017-11-03T11:52:31.827Z
airline
object, optional
Object containing the data for selling airline tickets , used only for bank card payments.
Nested parameters
ticket_number
string, optional
Unique ticket number. If you already know the ticket number during payment creation,
ticket_number
is a required parameter. If you don't, specify
booking_reference
instead of
ticket_number
.
booking_reference
string, optional
Booking reference number, required if
ticket_number
is not specified.
passengers
array, optional
List of passengers.
Nested parameters
first_name
string, required
Passenger's first name. Only use Latin characters, for example, SERGEI.
last_name
string, required
Passenger's last name. Only use Latin characters, for example, IVANOV.
legs
array, optional
List of flight legs.
Nested parameters
departure_airport
string, required
Code of the departure airport according to IATA, for example, LED.
destination_airport
string, required
Code of the arrival airport according to IATA, for example, AMS.
departure_date
string, required
Departure date in the YYYY-MM-DD ISO 8601:2004 format.
carrier_code
string, optional
Airline code according to IATA.
transfers
array, optional
Information about money distribution: the amounts of transfers and the stores to be transferred to. Specified for partially capturing a payment if you use Split payments .
Nested parameters
account_id
string, required
ID of the store in favor of which you're accepting the receipt. Provided by YooMoney, displayed in the Sellers section of your Merchant Profile (shopId column).
amount
object, required
Amount to be transferred to the store.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
platform_fee_amount
object, optional
Commission for sold products or services charged in your favor.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
deal
object, optional
The deal within which the payment is being carried out. Specified for partially capturing a payment if you use Safe deal .
Nested parameters
settlements
object, required
Information about money distribution.
Nested parameters
type
string, required
Transaction type. Fixed value: payout —
payout
to seller.
amount
object, required
Amount of seller’s remuneration.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
Response
The response to the request will contain the payment object with the current status.
cURL
PHP
Python
Request example
curl https://api.yookassa.ru/v3/payments/{payment_id}/capture \
  -X POST \
  -u <Shop ID>:<Secret Key> \
  -H 'Idempotence-Key: <Idempotence Key>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        }
      }'
Response body example
{
  "id": "22e12f66-000f-5000-8000-18db351245c7",
  "status": "succeeded",
  "paid": true,
  "amount": {
    "value": 2,
    "currency": "RUB"
  },
  "captured_at": "2018-07-18T11:17:33.483Z",
  "created_at": "2018-07-18T10:51:18.139Z",
  "description": "Order No. 72",
  "metadata": {
    
  },
  "payment_method": {
    "type": "bank_card",
    "id": "22e12f66-000f-5000-8000-18db351245c7",
    "saved": false,
    "card": {
      "first6": 555555,
      "last4": 4444,
      "expiry_month": 7,
      "expiry_year": 2022,
      "card_type": "MasterCard",
      "issuer_country": "RU",
      "issuer_name": "Sberbank"
    },
    "title": "Bank card *4444"
  },
  "recipient": {
    "account_id": 100500,
    "gateway_id": 100700
  },
  "refundable": true,
  "refunded_amount": {
    "value": 0,
    "currency": "RUB"
  },
  "test": false
}
Cancel a payment
Cancel payments with the 
waiting_for_capture
status. Payment cancelation means you are not ready to dispatch a product or to provide a service to the user. Once you cancel the payment, we will start returning the money to the payer’s account. If the payment was made from a bank card, a YooMoney wallet, or via SberPay, the money will be refunded instantly. If the payment was made using other payment methods, the process can take up to several days.
Request parameters
None.
Response
The response to the request will contain the payment object with the current status.
cURL
PHP
Python
Request example
curl https://api.yookassa.ru/v3/payments/{payment_id}/cancel \
  -X POST \
  -u <Shop ID>:<Secret Key> \
  -H 'Idempotence-Key: <Idempotence Key>' \
  -H 'Content-Type: application/json' \
  -d '{ }'
Response body example
{
  "id": "22e12f66-000f-5000-8000-18db351245c7",
  "status": "canceled",
  "paid": false,
  "amount": {
    "value": 2,
    "currency": "RUB"
  },
  "created_at": "2018-07-18T10:51:18.139Z",
  "description": "Order No. 72",
  "metadata": {
    
  },
  "payment_method": {
    "type": "bank_card",
    "id": "22e12f66-000f-5000-8000-18db351245c7",
    "saved": false,
    "card": {
      "first6": 555555,
      "last4": 4444,
      "expiry_month": 7,
      "expiry_year": 2022,
      "card_type": "MasterCard",
      "issuer_country": "RU",
      "issuer_name": "Sberbank"
    },
    "title": "Bank card *4444"
  },
  "recipient": {
    "account_id": 100500,
    "gateway_id": 100700
  },
  "refundable": false,
  "test": false
}
Refunds
The API allows you to make full or partial refunds. The refund procedure depends on the payment method (
payment_method
) used for the initial payment. If the payment was sent from a bank card, the funds will be returned to the card used for making the payment. How to make refunds 
Some payment methods (for example, cash payments) do not support refunds. Payment methods that support refunds 
Refund object
The
Refund
object contains all currently relevant information about the refund of a successful payment. The object is sent in response to any refund-related requests.
Parameter descriptions
Parameters
Description
id
string, required
Refund's ID in YooMoney.
payment_id
string, required
Payment ID in YooMoney.
status
string, required
Refund status. Possible values:
  • pending
    : refund has been created, but it is still being processed;
  • succeeded
    : refund successfully completed, the amount specified in the request has been refunded to the user's means of payment (final and unchangeable status);
  • canceled
    : refund canceled, the initiator and reasons are specified in the 
    cancellation_details
    object (final and unchangeable status).
cancellation_details
object, optional
Comment to the 
canceled
status: who canceled the refund and what was the reason.
Nested parameters
party
string, required
The party in the payout process which decided to cancel the transaction. Possible value:
yoo_money
 — YooMoney.
reason
string, required
Reason for the cancellation of the refund. List of possible values with descriptions 
receipt_registration
string, optional
Delivery status of receipt data to online sales register (
pending
,
succeeded
, or
canceled
). For those who use the solution for 54-FZ .
created_at
string, required
Time to refund creation, based on UTC and specified in the ISO 8601 format, for example,
2017-11-03T11:52:31.827Z
amount
object, required
Amount refunded to the user.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
description
string, optional
Reason behind the refund.
sources
array, optional
Information about money held for refunds: the amount to be held and the stores getting the refunds. Specified if you use Split payments .
Nested parameters
account_id
string, required
ID of the store in favor of which you're accepting the receipt. Provided by YooMoney, displayed in the Sellers section of your Merchant Profile (shopId column).
amount
object, required
Refund amount.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
platform_fee_amount
object, optional
Commission that you charged during payment.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
deal
object, optional
The deal within which the refund is being carried out. Specified if you use Safe deal .
Nested parameters
id
string, required
Deal ID. Taken from the linked payment.
refund_settlements
array, required
Information about money distribution.
Nested parameters
type
string, required
Transaction type. Fixed value: payout —
payout
to seller.
amount
object, required
Amount by which the seller’s remuneration must be reduced. Must be less than or equal to the refund amount.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
Example of Refund object
{
  "id": "216749f7-0016-50be-b000-078d43a63ae4",
  "status": "succeeded",
  "amount": {
    "value": "1",
    "currency": "RUB"
  },
  "created_at": "2017-10-04T19:27:51.407Z",
  "payment_id": "216749da-000f-50be-b000-096747fad91e"
}
Create a refund
Create a refund for a specified amount on a successfully completed payment. A payment can be refunded within three years of its creation. The commission charged by YooMoney for carrying out the initial transaction is non-refundable.
Request parameters
Request parameter descriptions
Request parameters
Description
payment_id
string, required
Payment ID in YooMoney.
amount
object, required
Amount to be refunded to the user.
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
description
string, optional
Commentary to the refund, reason behind returning the funds to the user.
receipt
object, optional
Data for creating a receipt in the online sales register (for compliance with 54-FZ ). Specify this parameter if you send the data for creating the receipt using one of these scenarios: Payment and receipt at the same time  or Payment after receipt .
Nested parameters
customer
object, optional
User details. You should specify at least the basic contact information: email address (
customer.email
) or phone number (
customer.phone
).
Nested parameters
full_name
string, optional
Name of the organization for companies, full name for sole proprietors and individuals. If the individual doesn't have a Tax Identification Number (INN), specify their passport information in this parameter. Maximum 256 characters.
Online sales register that support this parameter: Orange Data, ATOL Online.
inn
string, optional
User's Tax Identification Number (INN) (10 or 12 digits). If the individual doesn't have an INN, specify their passport information in the 
full_name
parameter.
Online sales register that support this parameter: Orange Data, ATOL Online.
email
string, optional
User's email address for sending the receipt. Required parameter if
phone
isn't specified.
phone
string, optional
User's phone number for sending the receipt. Specified in the ITU-T E.164 format, for example,
79000000000
. Required parameter if
email
isn't specified.
items
array, required
List of products in an order (maximum 100 items).
Nested parameters
description
string, required
Product name (maximum 128 characters). Tag 1030 in 54-FZ.
quantity
string, required
Product quantity. Tag 1023 in 54-FZ. Maximum possible value depends on the model of your online sales register.
measure
string, optional
Unit of measurement of product quantity: for example, items or grams. Tag 2108 in 54-FZ. This parameter must be specified starting from FFD 1.2.
List of possible values 
mark_quantity
object, optional
Fraction of a marked product (tag 1291 in 54-FZ). Must be specified if all of the following applies:
  • FFD version 1.2 is used;
  • payment is made for a marked product;
  • the 
    measure
    field has the 
    piece
    value.
Example: you're selling pencils by the piece. They're supplied in packages 100 pencils each with one marking code. To sell one pencil, enter
1
in
numerator
and
100
in
denominator
.
Nested parameters
numerator
integer, required
The number of products sold from one customer package (tag 1293 in 54-FZ). Cannot exceed the 
denominator
.
denominator
integer, required
The total number of products in the customer package (tag 1294 in 54-FZ).
amount
object, required
Product price (tag 1079 in 54-FZ).
Nested parameters
value
string, required
Amount in the selected currency, in the form of a string with a dot separator, for example,
10.00
. The number of digits after the dot depends on the selected currency.
currency
string, required
Currency code in the ISO-4217 format. It should match the currency of your subaccount (
recipient.gateway_id
) if you separate payment flows, or the currency of the account (shopId in the Merchant Profile) if you don't.
vat_code
number, required
VAT rate (tag 1199 in 54-FZ). Possible value is a number from 1 to 6. More about VAT rates codes 
payment_subject
string, optional
Payment subject attribute (tag 1212 in 54-FZ): what the payment is made for, for example, a product or service. List of possible values 
payment_mode
string, optional
Payment method attribute (tag 1214 in 54-FZ): contains information about the payment method and shows whether the product has been handed over to the customer. Example: a customer makes a full payment for a product and immediately receives it. In this case, the 
full_payment
(full payment) value must be specified. List of possible values 
country_of_origin_code
string, optional
Country of origin code according to the Russian classifier of world countries (OK (MK (ISO 3166) 004-97) 025-2001). Tag 1230 in 54-FZ. Example:
RU
.
Online sales register that support this parameter: Orange Data, Kit Invest.
customs_declaration_number
string, optional
Customs declaration number (1 to 32 characters). Tag 1231 in 54-FZ.
Online sales register that support this parameter: Orange Data, Kit Invest.
excise
string, optional
Amount of excise tax on products including kopeks. Tag 1229 in 54-FZ. Decimal number with 2 digits after the period.
Online sales register that support this parameter: Orange Data, Kit Invest.
product_code
string, optional
Product code is a unique number assigned to a unit of product during marking process. Tag 1162 in 54-FZ.
Format: hexadecimal number with spaces. Maximum length is 32 bytes. Example:
00 00 00 01 00 21 FA 41 00 23 05 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 AB 00
.
Required parameter for marked products.
mark_code_info
object, optional
Product code (tag 1163 in 54-FZ). Must be specified if the FFD 1.2 protocol is used and if the product must be marked. At least one of the fields must be f