Changes in the protocol for working under Federal Law No.54 (54-FZ)

On this page, you can find description of amendments made to Merchant Web Services 3.0 in order to comply with Federal Law No. 54. The law prescribes online stores to transmit fiscal data (product names and prices, VAT rate, and other required details) to the tax service. Yandex.Checkout can participate in this process.

Terms

Online sales register—a special sales register with a fiscal storage (cash register equipment; CRE) that works online and transmits fiscal data to the Fiscal Data Operator (FDO).

The FDO—an operator of fiscal information; an agent between online sales registers and the tax service.

The QES—a qualified electronic signature; it is required for registration of online sales register in the tax service.

Our solution for work under Federal Law No. 54

How Yandex.Checkout Helps

Yandex.Checkout can gather details in the required format and send them to your online sales register at the moment of payment or refund. Your online sales register uses these details for creating a receipt, then it sends the receipt to the FDO. The FDO passes it to the tax service.

Restriction. 

We do not send electronic receipt to buyer: even if the buyer receives an email message about the payment, this is not a legitimate receipt. You can only send receipts to buyers via the Fiscal Data Operator.

Requirements
  1. Adopt the online sales register of one of our partners.
  2. Enter into contract with an operator of fiscal data (OFD).
  3. Acquire the qualified electronic signature (QES).
  4. Sign up your online sales register on the tax service's site (under your corporation's dashboard).
  5. Change settings under your Merchant Profile.
  6. Transfer data for creating the receipt to Yandex.Checkout (which means implementing protocol changes set forth by this document).
Protocol changes
  • New parameters are added to the requests to Yandex.Checkout (for instance, name, price, and VAT rate of each product in the order).
  • Executing a payment or refund depends on sending fiscal data to your online sales register: some settings may block executing payments if the online sales register does not respond. (See Sending data for receipts)
Who needs to apply this modification

Only those who are going to use our solution for transmitting data for the receipts to their online sales register. If you prefer setting up interaction with your online sales register independently, you do not need to change anything.

Settings in your Merchant Profile

Under your Yandex.Checkout Merchant Profile, you need to specify the following:

  • you are willing to adopt our solution for work under Federal Law No. 54
  • our partner whose online sales register you will lease or buy
  • when do we need to transmit fiscal data to your online sales register: before notifying about payment (paymentAviso) or simultaneously with it:
  • email address for sending messages with errors to
  • address of your store (business address or URL of your site; to specify it in the receipt).

Help on settings under your Merchant Profile

Changes in payment scenario

Process of paying varies depending on the moment when the data for the receipt are sent: before notifying about successful payment (paymentAviso) or simultaneously with it; you can set it under your Merchant Profile.

More details in the section Sending data for receipts

Transmitting details for the receipts in payment forms

The parameters for transmitting fiscal data are added to our usual payment form.

One additional parameter, ym_merchant_receipt, is added to the form and contains all required data.

More details in the section Parameters for creating a receipt

Refunds: changes in operating of the returnPayment method

The returnPayment method is responsible for refunds.

Parameters for the receipt must be transmitted only if the receipts' contents are altered:

  • a partial refund took place
  • the payment subject to repeating is made without transmitting the receipt.

In this case, the receipt parameter is added to the request. Details for the receipt are transmitted in this parameter (about the products money for which are being returned).

Full refunds do not require transmitting parameters for the receipts (if the receipt was transmitted together with the payment).

Learn more in the description of the returnPayment method.

Linking bank card, automated paying, recurring paying: changes in the work of the repeatCardPayment method

The repeatCardPayment method is responsible for recurring payments from bank cards and linking cards for payment at a certain store.

The parameters for the receipt should be transmitted in the following cases:

  • payments amount is changed
  • order contents is changed
  • the payment subject to repeating is made without transmitting the receipt.

In this case, the ym_merchant_receipt parameter is added to the request; the details are transmitted in the JSON format (as in the payment form).

In other cases, the details transmitted with the initial payment is used for the receipt.

Learn more in the description of the repeatCardPayment method

Preauthorization: changes in the work of the confrimPayment method

The confirmPayment method allows for confirming deferred payment from a bank card (if you carry out payments from cards with authorization).

The parameters for the receipt should be transmitted in the following cases:

  • payment amount differs from the initial amount transmitted in payment form (partial clearing is carried out)
  • the payment subject to confirming is made without transmitting the receipt.

In this case, the ym_merchant_receipt parameter is added to the request; the details are transmitted in the JSON format (as in the payment form).

In other cases, the details transmitted with the initial payment is used for the receipt.

Learn more in the description of the confirmPayment method.

Preauthorization: changes in the work of the cancelPayment method

The cancelPayment method allows for cancelling deferred payment from a bank card (if you carry out payments from cards with authorization).

Parameters for the receipt should be transmitted if the payment subject to cancelling is performed without sending the receipt.

In this case, the ym_merchant_receipt parameter is added to the request; the details are transmitted in the JSON format (as in the payment form).

In other cases, the details transmitted with the initial payment is used for the receipt.

Learn more in the description of the cancelPayment method

Invoicing: changes in operating of the createInvoice method

The createInvoice method allows for debiting a user's account in external payment systems (Sberbank Online, Webmoney).

Data for the receipt is transmitted mandatory in the ym_merchant_receipt parameter, in the JSON format (as in the payment form).