README.md

    PHPOrangeData

    PHP integration for OrangeData service

    Актуальная версия библиотеки: 4.0.0

    Версия PHP: 5.6.6+

    Версия протокола взаимодействия с интернет кассой: 2.29.1 от 15.11.2023

    Содержание

    Начало работы

    Подключение библиотеки

    Для начала работы необходимо подключить файл класса:

    <?php
    include_once 'orangedata_client.php';
    

    Создание клиента

    <?php
    $client = [
      'inn' => '0123456789',
      'api_url' => '2443',
      // 'api_url' => 'https://apip.orangedata.ru:2443', // link access
      'sign_pkey' => dirname(__DIR__) . '/secure_path/private_key.pem',
      'ssl_client_key' => dirname(__DIR__) . '/secure_path/client.key',
      'ssl_client_crt' => dirname(__DIR__) . '/secure_path/client.crt',
      'ssl_ca_cert' => dirname(__DIR__) . '/secure_path/cacert.pem',
      'ssl_client_crt_pass' => 1234,
    ];
    
    $buyer = new orangedata\orangedata_client($client); // create new client
    

    Cвойства клиента

    Имя Обязательное поле Описание
    inn Да ИНН организации (строка от 1 до 64)
    api_url Да Порт, на который будем отправлять запросы или Адрес API или прокси
    sign_pkey Да Путь к приватному ключу, который используется для подписи “чека”
    ssl_client_key Да Путь к приватному ключу используемому для 2ssl взаимодействия
    ssl_client_crt Да Путь к клиентскому сертификату используемому для 2ssl
    ssl_ca_cert Да Путь к cacert.pem
    ssl_client_crt_pass Да Пароль к клиентскому сертификату

    Для включения записи логов в файл ‘curl.log’, прописываем:

    <?php
    $buyer->is_debug();
    

    Заказ

    Создание заказа

    После того, как создали клиента, можно приступить к созданию заказа.

    <?php
    $order = [
      'id' => '23423423434',
      'type' => 1,
      'customerContact' => 'example@example.com',
      'taxationSystem' => 1,
      'key' => '1234567',
      'ffdVersion' => 4
    ];
    
    $buyer->create_order($order);
    

    Cвойства заказа

    Имя Обязательное поле Описание
    id Да Идентификатор документа (строка от 1 до 64)
    type Да 1 - Приход
    2 - Возврат прихода
    3 - Расход
    4 - Возврат расхода
    customerContact Да Телефон или электронный адрес покупателя (строка от 1 до 64)
    taxationSystem Да 0 - Общая, ОСН
    1 - Упрощенная доход, УСН доход
    2 - Упрощенная доход минус расход, УСН доход - расход
    3 - Единый налог на вмененный доход, ЕНВД
    4 - Единый сельскохозяйственный налог, ЕСН
    5 - Патентная система налогообложения, Патент
    key Да Название ключа, который должен быть использован для проверки подпись. Для клиентов используется их ИНН, для партнеров и платежных агентов код с маской 301****, для вендинга 401**** (cтрока от 1 до 32 )
    group Да Группа устройств, с помощью которых будет пробит чек (строка от 1 до 32 символов), по умолчанию ‘Main’. Чтобы работать с ФФД1.2 - ‘Main_2’
    ffdVersion Нет Версия ФФД.
    2 - ФФД1.05
    4 - ФФД1.2
    По умолчанию - 2
    ignoreItemCodeCheck Нет Булево значение, указывающее стоит ли игнорировать проверку КМ. Если флаг не указан, то для формирования чека все КМ должны успешно пройти проверку: в тэге 2106 биты номер 0, 1, 2, 3 имеют состояние «1» Если же флаг не указан и КМ не прошел проверку чек не будет сформирован и запрос статуса будет возвращать статус 422 Unprocessable Entity. По умолчанию - false

    Добавление позиции в заказ

    <?php
    $position = [
      'quantity' => '10',
      'price' => 100,
      'tax' => 1,
      'text' => 'some text',
      'paymentMethodType' => 3,
      'paymentSubjectType' => 1,
      'nomenclatureCode' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
      'supplierInfo' => [
        'phoneNumbers' => ['+79266660011', '+79293456723'],
        'name' => 'PAO Example',
      ],
      'supplierINN' => 1234567890,
      'agentType' => 127,
      'agentInfo' => [
        'paymentTransferOperatorPhoneNumbers' => ['+79266660011', '+79293456723'],
        'paymentAgentOperation' => 'some operartion',
        'paymentAgentPhoneNumbers' => ['+79266660011', '+79293456723'],
        'paymentOperatorPhoneNumbers' => ['+79266660011'],
        'paymentOperatorName' => 'OAO ATLANT',
        'paymentOperatorAddress' => 'Address',
        'paymentOperatorInn' => 1234567890,
      ],
      'unitOfMeasurement' => 'kg',
      'additionalAttribute' => 'attribute',
      'manufacturerCountryCode' => '534',
      'customsDeclarationNumber' => 'AD 11/77 from 01.08.2018',
      'excise' => '12.43',
    ];
    
    $buyer->add_position_to_order($position);
    

    Cвойства позиции

    Имя Обязательное поле Описание
    quantity Да Количество предмета расчета (десятичное число)
    price Да Цена за единицу предмета расчета с учетом скидок и наценок (десятичное число)
    tax Да Ставка НДС:
    1 - ставка НДС 20%
    2 - ставка НДС 10%
    3 - ставка НДС расч. 20/120
    4 - ставка НДС расч. 10/110
    5 - ставка НДС 0%
    6 - НДС не облагается
    taxSum Сумма НДС за предмет расчета (Десятичное число)
    Параметр актуален дляставок НДС 1-4. Для ставок 5 и 6 данный тэг в предмете расчета не передается, переданное значение игнорируется.
    text Да Наименование предмета расчета (строка до 128 символов)
    paymentMethodType Да Признак способа расчета:
    1 - Предоплата 100%
    2 - Частичная предоплата
    3 - Аванс
    4 - Полный расчет
    5 - Частичный расчет и кредит
    6 - Передача в кредит
    7 - оплата кредита
    paymentSubjectType Да Признак предмета расчета:
    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 – Платеж казино
    27 – Выдача денежных средств
    30 – АТНМ (не имеющем кода маркировки)
    31 – АТМ (имеющем код маркировки)
    32 – ТНМ
    33 – ТМ
    nomenclatureCode Код товарной номенклатуры (строка, содержащая base64 кодированный массив от 1 до 32 байт)
    itemCode Код маркировки (Строка от 1 до 223 символов)
    supplierInfo Данные поставщика (смотреть “Свойства supplierInfo”)
    supplierINN ИНН поставщика (строка длиной от 10 до 12 символов)
    agentType Признак агента по предмету расчета (Число от 1 до 127)
    agentInfo Данные агента (смотреть “Свойства agentInfo”)
    unitOfMeasurement Единица измерения предмета расчета (строка от 1 до 16)
    quantityMeasurementUnit Мера количества предмета расчета (Число от 0 до 255, если не указан – 0)
    additionalAttribute Дополнительный реквизит предмета расчета (строка от 1 до 64)
    manufacturerCountryCode Код страны происхождения товара (строка длиной от 1 до 3 )
    customsDeclarationNumber Номер таможенной декларации (строка от 1 до 32)
    excise Акциз (десятичное число)
    industryAttribute Отраслевой реквизит чека (смотреть “Свойства industryAttribute”)
    unitTaxSum Размер НДС за единицу предмета расчета (десятичное число)
    plannedStatus Планируемый статус (Число от 0 до 256)
    1 Штучный товар, подлежащий обязательной маркировке средством идентификации, реализован
    2 Мерный товар, подлежащий обязательной маркировке средством идентификации, в стадии реализации,
    3 Штучный товар, подлежащий обязательной маркировке средством идентификации, возвращен,
    4 Часть товара, подлежащего обязательной маркировке средством идентификации, возвращена,
    255 Статус товара, подлежащего обязательной маркировке средством идентификации, не изменился
    fractionalQuantity Дробное количество маркированного товара (смотреть “Свойства fractionalQuantity”)
    barcodes Штрих-коды предмета расчета (смотреть “Свойства barcodes”)

    Параметры nomenclatureCode, unitOfMeasurement используются для ФФД 1.05
    Параметры itemCode, quantityMeasurementUnit, industryAttribute, plannedStatus, fractionalQuantity, barcodes используются для ФФД 1.2

    Cвойства supplierInfo

    Имя Обязательное поле Описание
    phoneNumbers Номера телефонов поставщика (массив строк длиной от 1 до 19 символов)
    name Наименование поставщика (строка до 239 символов)

    Cвойства agentInfo

    Имя Обязательное поле Описание
    paymentTransferOperatorPhoneNumbers Телефон оператора перевода (массив строк длиной от 1 до 19 символов)
    paymentAgentOperation Операция платежного агента (строка до 24 символов)
    paymentAgentPhoneNumbers Телефон платежного агента (массив строк длиной от 1 до 19 символов)
    paymentOperatorPhoneNumbers Телефон оператора по приему платежей (массив строк длиной от 1 до 19 символов)
    paymentOperatorName Наименование оператора перевода (строка до 64 символов)
    paymentOperatorAddress Адрес оператора перевода (строка до 243 символов)
    paymentOperatorINN ИНН оператора перевода (cтрока длиной от 10 до 12 символов)

    Cвойства industryAttribute

    Имя Обязательное поле Описание
    foivId Идентификатор ФОИВ
    causeDocumentDate Дата документа основания
    causeDocumentNumber Номер документа основания
    value Значение отраслевого реквизита

    Cвойства fractionalQuantity

    Имя Обязательное поле Описание
    Numerator Числитель (Целое беззнаковое число)
    Denominator Знаменатель (Целое беззнаковое число)

    Cвойства barcodes

    Имя Обязательное поле Описание
    ean8 КТ EAN-8 (Строка 8 символов)
    ean13 КТ EAN-13 (Строка 13 символов)
    itf14 КТ ITF-14 (Строка 14 символов)
    gs1 КТ GS1.0 (Строка от 1 до 38 символов)
    mi КТ МИ (Строка 20 символов)
    egais20 КТ ЕГАИС-2.0 (Строка 23 символов)
    egais30 КТ ЕГАИС-3.0 (Строка 14 символов)
    f1 КТ Ф.1 (Строка от 1 до 32 символов)
    f2 КТ Ф.2 (Строка от 1 до 32 символов)
    f3 КТ Ф.3 (Строка от 1 до 32 символов)
    f4 КТ Ф.4 (Строка от 1 до 32 символов)
    f5 КТ Ф.5 (Строка от 1 до 32 символов)
    f6 КТ Ф.6 (Строка от 1 до 32 символов)

    Добавление оплаты в заказ

    <?php
    $payment = [
      'type' => 16,
      'amount' => 131.23,
    ];
    
    $buyer->add_payment_to_order($payment);
    

    Cвойства оплаты

    Имя Обязательное поле Описание
    type Да Тип оплаты:
    1 - сумма по чеку наличными, 1031
    2 - сумма по чеку безналичными, 1081
    14 - сумма по чеку предоплатой (зачетом аванса и (или) предыдущих платежей), 1215
    15 - сумма по чеку постоплатой (в кредит), 1216
    16 - сумма по чеку (БСО) встречным предоставлением, 1217
    amount Да Сумма оплаты (десятичное число)

    Добавление агента в заказ

    Не поддерживается для ФФД1.2

    <?php
    $agent = [
      'agentType' => 127,
      'paymentTransferOperatorPhoneNumbers' => ['+79998887766', '+76667778899'],
      'paymentAgentOperation' => 'Operation',
      'paymentAgentPhoneNumbers' => ['+79998887766'],
      'paymentOperatorPhoneNumbers' => ['+79998887766'],
      'paymentOperatorName' => 'Name',
      'paymentOperatorAddress' => 'ulitsa Adress, dom 7',
      'paymentOperatorINN' => '3123011520',
      'supplierPhoneNumbers' => ['+79998887766', '+76667778899'],
    ];
    
    $buyer->add_agent_to_order($agent);
    

    Cвойства агента

    Имя Обязательное поле Описание
    agentType Признак агента по предмету расчета (число от 1 до 127)
    paymentTransferOperatorPhoneNumbers Телефон оператора перевода (массив строк длиной от 1 до 19 символов)
    paymentAgentOperation Операция платежного агента (строка до 24 символов)
    paymentAgentPhoneNumbers Телефон платежного агента (массив строк длиной от 1 до 19 символов)
    paymentOperatorPhoneNumbers Телефон оператора по приему платежей (массив строк длиной от 1 до 19 символов)
    paymentOperatorName Наименование оператора перевода (строка до 64 символов)
    paymentOperatorAddress Адрес оператора перевода (строка до 243 символов)
    paymentOperatorINN ИНН оператора перевода (cтрока длиной от 10 до 12 символов)
    supplierPhoneNumbers Телефон поставщика (массив строк длиной от 1 до 19 символов)

    Добавление дополнительного реквизита пользователя

    <?php
    $userAttribute = [
      'name' => 'Like',
      'value' => 'Example',
    ];
    
    $buyer->add_user_attribute($userAttribute);
    

    Cвойства дополнительного реквизита пользователя

    Имя Обязательное поле Описание
    name Наименование дополнительного реквизита пользователя (строка от 1 до 64 символов)
    value Значение дополнительного реквизита пользователя (строка от 1 до 234 символов)

    Добавление дополнительных полей

    <?php
    $additional = [
      'additionalAttribute' => 'Attribute',
      'customer' => 'Ivanov Ivan',
      'customerINN' => '0987654321',
    ];
    
    $buyer->add_additional_attributes($additional);
    

    Cвойства дополнительных полей

    Имя Обязательное поле Описание
    additionalAttribute Дополнительный реквизит чека(БСО) (строка от 1 до 16 символов)
    customer Покупатель (клиент) (строка от 1 до 243 символов)
    customerINN ИНН покупателя (клиента) (Строка длиной от 10 до 12 символов)
    customerInfo Сведения о покупателе (смотреть “Свойства customerInfo”)
    senderEmail Адрес электронной почты отправителя чека (Строка от 1 до 64 символов)
    operationalAttribute Операционный реквизит чека (смотреть “Свойства operationalAttribute”)
    industryAttribute Отраслевой реквизит чека (смотреть “Свойства industryAttribute”)
    totalSum Сумма расчета, указанного в чеке (БСО) (десятичное число)
    Форматы Фискальных Документов допускают в данном поле округление в нижнюю сторону. Дословно требование ФФД звучит так: «Значение в рублях, без учета копеек, должно быть равно значению суммы всех реквизитов «стоимость предмета расчета с учетом скидок и наценок» (тег 1043) в рублях, без учета копеек». Во избежание нестыковок рекомендуем использовать точное значение без округлений.
    vat1Sum Сумма НДС чека по ставке 20% (десятичное число)
    vat2Sum Сумма НДС чека по ставке 10% (десятичное число)
    vat3Sum Сумма расчета по чеку с НДС по ставке 0% (десятичное число)
    vat4Sum Сумма расчета по чеку без НДС (десятичное число)
    vat5Sum Сумма НДС чека по расч. ставке 20/120 (десятичное число)
    vat6Sum Сумма НДС чека по расч. ставке 10/110 (десятичное число)

    Cвойства customerInfo

    Имя Обязательное поле Описание
    name Покупатель (Строка от 1 до 239 символов)
    inn ИНН покупателя (Строка длиной от 10 до 12 символов, формат ЦЦЦЦЦЦЦЦЦЦ)
    birthDate Дата рождения покупателя (Строка 10 символов, формат ДД.ММ.ГГГГ)
    citizenship Гражданство (Строка длиной от 1 до 3 символов, формат ЦЦЦ. Сервис автоматически дополнит строку до 3 символов пробелами)
    identityDocumentCode Код вида документа, удостоверяющего личность (Строка длиной 2 символа, формат ЦЦ)
    identityDocumentData Данные документа, удостоверяющего личность (Строка до 64 символов)
    address Адрес покупателя (Строка от 1 до 239 символов)

    Cвойства operationalAttribute

    Имя Обязательное поле Описание
    date Дата, время операции (Время в виде строки в формате ISO8601)
    id Идентификатор операции (Число от 0 до 255)
    value Данные операции (Строка от 1 до 64 символов)

    Cвойства industryAttribute

    Имя Обязательное поле Описание
    foivId Идентификатор ФОИВ
    causeDocumentDate Дата документа основания
    causeDocumentNumber Номер документа основания
    value Значение отраслевого реквизита

    Для ФФД1.2 Параметры Customer и customerINN изменяется на один параметр customerInfo.

    Добавление вендинга в заказ

    <?php
    $vending = [
      'automatNumber' => '21321321123',
      'settlementAddress' => 'Address',
      'settlementPlace' => 'Place',
    ];
    
    $buyer->add_vending_to_order($vending);
    

    Cвойства вендинга

    Имя Обязательное поле Описание
    automatNumber Номер автомата (строка от 1 до 20 символов)
    settlementAddress Адрес расчетов (строка от 1 до 243 символов)
    settlementPlace Место расчетов (Строка длиной от 10 до 12 символов)

    Добавление курьера в заказ

    <?php
    $courier = [
      'settlementAddress' => 'Address',
      'settlementPlace' => 'Place',
      'cashier' => 'Test'
      'cashierINN' => '123456789012'
    ];
    
    $buyer->add_courier_to_order($courier);
    

    Cвойства курьера

    Имя Обязательное поле Описание
    settlementAddress Адрес расчетов (строка от 1 до 243 символов)
    settlementPlace Место расчетов (Строка длиной от 10 до 12 символов)
    cashier Кассир (Строка длиной от 1 до 64 символов)
    cashierINN ИНН кассира (Строка длиной 12 символов)

    Отправка заказа

    После того, как заполнены все поля заказа и добавлены все параметры, можно отправлять заказ на обработку:

    <?php
    $result = $buyer->send_order();
    var_dump($result);
    

    Проверка статуса заказа

    <?php
    $order_status = $buyer->get_order_status(23423423434);
    var_dump($order_status);
    

    Чек коррекции

    Создание чека коррекции ФФД1.05

    <?php
    $correction = [
      'id' => '23423423',
      'key' => '1234567',
      'correctionType' => 0,
      'type' => 1,
      'description' => 'cashier error',
      'causeDocumentDate' => new \DateTime(),
      'causeDocumentNumber' => '56ce',
      'totalSum' => 567.9,
      'cashSum' => 567,
      'eCashSum' => 0.9,
      'prepaymentSum' => 0,
      'postpaymentSum' => 0,
      'otherPaymentTypeSum' => 0,
      'tax1Sum' => 0,
      'tax2Sum' => 0,
      'tax3Sum' => 0,
      'tax4Sum' => 0,
      'tax5Sum' => 0,
      'tax6Sum' => 0,
      'taxationSystem' => 2,
    ];
    
    $buyer->create_correction($correction);
    

    Cвойства чека коррекции

    Имя Обязательное поле Описание
    id Да Идентификатор документа (строка от 1 до 64 символов)
    group Да Группа устройств, с помощью которых будет пробит чек (строка от 1 до 32 символов), по умолчанию ‘Main’
    key Да Название ключа, который должен быть использован для проверки подписи (строка от 1 до 32 символов)
    correctionType Да Тип коррекции 1173:
    0. Самостоятельно
    1. По предписанию
    type Да Признак расчета, 1054:
    1. Приход
    3. Расход
    description Да Описание коррекции (cтрока от 1 до 243 символов. )
    causeDocumentDate Да Дата документа основания для коррекции (время в виде строки в формате ISO8601)
    causeDocumentNumber Да Номер документа основания для коррекции (строка от 1 до 32 символов)
    totalSum Да Сумма расчета, указанного в чеке (десятичное число)
    cashSum Сумма по чеку (БСО) наличными (десятичное число)
    eCashSum Сумма по чеку (БСО) безналичными (десятичное число)
    prepaymentSum Сумма по чеку (БСО) предоплатой (зачетом аванса и (или) предыдущих платежей) (десятичное число)
    postpaymentSum Сумма по чеку (БСО) постоплатой (в кредит) (десятичное число)
    otherPaymentTypeSum Сумма по чеку (БСО) встречным предоставлением (десятичное число)
    tax1Sum Сумма НДС чека по ставке 20% (десятичное число)
    tax2Sum Сумма НДС чека по ставке 10% (десятичное число)
    tax3Sum Сумма расчета по чеку с НДС по ставке 0% (десятичное число)
    tax4Sum Сумма расчета по чеку без НДС (десятичное число)
    tax5Sum Сумма НДС чека по расч. ставке 20/120 (десятичное число)
    tax6Sum Сумма НДС чека по расч. ставке 10/110 (десятичное число)
    taxationSystem Применяемая система налогообложения, 1055:
    0. Общая
    1. Упрощенная доход
    2. Упрощенная доход минус расход
    3. Единый налог на вмененный доход
    4. Единый сельскохозяйственный налог
    5. Патентная система налогообложения
    ignoreItemCodeCheck Булево значение, указывающее стоит ли игнорировать проверку КМ. Если флаг не указан, то для формирования чека все КМ должны успешно пройти проверку: в тэге 2106 биты номер 0, 1, 2, 3 имеют состояние «1» Если же флаг не указан и КМ не прошел проверку чек не будет сформирован и запрос статуса будет возвращать статус 422 Unprocessable Entity. По умолчанию - false

    Отправка чека коррекции ФФД1.05

    <?php
    $result = $buyer->post_correction();
    var_dump($result);
    

    Создание чека коррекции ФФД1.2

    <?php
      $correction = [
          'ffdVersion' => 4,
          'id' => '23423423',
          'inn' => '7725327863',
          'key' => '1234567',
          'correctionType' => 0,
          'type' => 1,
          'group' => 'main_2',
          'causeDocumentDate' => new \DateTime(),
          'causeDocumentNumber' => '56ce',
          'totalSum' => 0,
          'customerContact' => 'liza@ya.ru',
          'vat1Sum' => 0,
          'vat2Sum' => 0,
          'vat3Sum' => 0,
          'vat4Sum' => 0,
          'vat5Sum' => 0,
          'vat6Sum' => 0,
      ];
    
    $buyer->create_correction12($correction);
    

    Cвойства чека коррекции

    Имя Обязательное поле Описание
    id Да Идентификатор документа (строка от 1 до 64 символов)
    group Да Группа устройств, с помощью которых будет пробит чек (строка от 1 до 32 символов), по умолчанию ‘Main_2’
    inn Да ИНН организации, для которой пробивается чек
    key Да Название ключа, который должен быть использован для проверки подписи (строка от 1 до 32 символов)
    correctionType Да Тип коррекции 1173:
    0. Самостоятельно
    1. По предписанию
    type Да Признак расчета, 1054:
    1. Приход
    3. Расход
    customerContact Да Телефон или электронный адрес покупателя
    ffdVersion Да Номер версии, по умолчанию - 4 (ФФД1.2). Для ФФД1.05 - используйте create_correction
    description Да Описание коррекции (cтрока от 1 до 243 символов. )
    causeDocumentDate Да Дата документа основания для коррекции (время в виде строки в формате ISO8601)
    causeDocumentNumber Да Номер документа основания для коррекции (строка от 1 до 32 символов)
    totalSum Сумма расчета, указанного в чеке (десятичное число)
    vat1Sum Сумма НДС чека по ставке 20% (десятичное число)
    vat2Sum Сумма НДС чека по ставке 10% (десятичное число)
    vat3Sum Сумма расчета по чеку с НДС по ставке 0% (десятичное число)
    vat4Sum Сумма расчета по чеку без НДС (десятичное число)
    vat5Sum Сумма НДС чека по расч. ставке 20/120 (десятичное число)
    vat6Sum Сумма НДС чека по расч. ставке 10/110 (десятичное число)
    taxationSystem Применяемая система налогообложения, 1055:
    0. Общая
    1. Упрощенная доход
    2. Упрощенная доход минус расход
    3. Единый налог на вмененный доход
    4. Единый сельскохозяйственный налог
    5. Патентная система налогообложения
    ignoreItemCodeCheck Булево значение, указывающее стоит ли игнорировать проверку КМ. Если флаг не указан, то для формирования чека все КМ должны успешно пройти проверку: в тэге 2106 биты номер 0, 1, 2, 3 имеют состояние «1» Если же флаг не указан и КМ не прошел проверку чек не будет сформирован и запрос статуса будет возвращать статус 422 Unprocessable Entity. По умолчанию - false

    Отправка чека коррекции ФФД1.2

    <?php
    $result = $buyer->post_correction12();
    var_dump($result);
    

    Добавление вендинга в чек коррекции

    <?php
    $correctionVending = [
      'automatNumber' => '21321321123',
      'settlementAddress' => 'Address',
      'settlementPlace' => 'Place',
    ];
    
    $buyer->add_vending_to_correction($correctionVending);
    

    Cвойства вендинга

    Имя Обязательное поле Описание
    automatNumber Номер автомата (строка от 1 до 20 символов)
    settlementAddress Адрес расчетов (строка от 1 до 243 символов)
    settlementPlace Место расчетов (Строка длиной от 10 до 12 символов)

    Добавление курьера в чек коррекции

    <?php
    $correctionСourier = [
      'settlementAddress' => 'Address',
      'settlementPlace' => 'Place',
      'cashier' => 'Test'
      'cashierINN' => '123456789012'
    ];
    
    $buyer->add_courier_to_correction($correctionСourier);
    

    Cвойства курьера

    Имя Обязательное поле Описание
    settlementAddress Адрес расчетов (строка от 1 до 243 символов)
    settlementPlace Место расчетов (Строка длиной от 10 до 12 символов)
    cashier Кассир (Строка длиной от 1 до 64 символов)
    cashierINN ИНН кассира (Строка длиной 12 символов)

    Добавление дополнительных аттрибутов, позиции и оплаты в чек коррекции (только для ФФД1.2)

    <?php
     $correctionPos = [
          "quantity" => 1.000,
          "price" => 1,
          "tax" => 6,
          "text" => "Булка",
          "excise" => 23.45,
          "paymentMethodType" => 4, "paymentSubjectType" => 1,
          "agentType" => 127,
          "agentInfo" => 
          [
            "paymentTransferOperatorPhoneNumbers" => ["+79200000001", "+74997870001"], 
            "paymentAgentOperation" => "Какая-то операция 1",
            "paymentAgentPhoneNumbers" => ["+79200000003"], 
            "paymentOperatorPhoneNumbers" => ["+79200000002", "+74997870002"], 
            "paymentOperatorName" => "ООО \"Атлант\"", 
            "paymentOperatorAddress" => "Воронеж, ул. Недогонная, д. 84", 
            "paymentOperatorINN" => "7727257386"
          ]
      ];
    
      $correctionPayment =
          [
              'type' => 1,
              'amount' => 1,
          ];
    
      $userAttribute = [
        "value" => "2132",
        "name" => "21212"
      ];
    
      $additional = [
          'additionalAttribute' => 'Attribute',
           "customerInfo" =>[
                "name"=> "Кузнецов Иван Петрович",
                "inn"=> "7725327863",
                "birthDate"=> "15.09.1988",
                "citizenship"=> "643",
                "identityDocumentCode"=> "01",
                "identityDocumentData"=> "multipassport",
                "address"=> "Басеенная 36"
            ],
      ];
    
    $buyer->add_position_to_correction12($correctionPos)
          ->add_payment_to_correction12($correctionPayment)
          ->add_user_attribute_to_correction12($userAttribute)
          ->add_additional_attributes_to_correction12($additional);
    

    Cвойства функций см. в аналогичных блоках для заказа

    Проверка статуса чека коррекции

    <?php
    $cor_status = $buyer->get_correction_status('23423423');
    var_dump($cor_status);
    
    Конвейеры
    0 успешных
    0 с ошибкой