Создание invoice

Для создания invoice на оплату, необходимо отправить зарос в API сервиса по адресу:

https://bpa.payanyway.ru/api/invoice?key=***

где invoice - это имя метода

key - ключ партнера, будет ему сгенерирован и выдан сервисом ПА ООО "ПЭЙ ЭНИ ВЭЙ"

через json POST следует передать данные:

{
  "signature": "***",
  "paymentAmount": 9.00,
  "debitMntAccount": номер счета списания,
  "creditMntAccount": номер счета пополнения,
  "sourceTariffMultiplier": комиссия с продавца,
  "mntTransactionId": "***",
  "customerEmail": "***@***.**",
  "mntSubscriberId": идентификатор покупателя,
  "storeCard": true/false,
  "useCard": true/false,
  "inventory": [
    {"sellerAccount": "30990009",
     "sourceTariffMultiplier": комиссия с продавца,
     "sellerInn": "1234", 
     "sellerName": "ООО Название 1", 
     "sellerPhone": "71234567890",
     "clientTransaction": "N1",
     "productName": "test1",
     "productQuantity": 1, 
     "productPrice": 0.20,
     "productVatCode": 1105,
     "po": "***",
     "pm": "***"},
    {"sellerAccount": "60252006",
     "sourceTariffMultiplier": комиссия с продавца,
     "sellerInn": "5678", 
     "sellerName": "ООО Название 2",
     "sellerPhone": "71234567890",
     "clientTransaction": "N2",
     "productName": "test2", 
     "productQuantity": 2, 
     "productPrice": 4,
     "productVatCode": 1105},
    {"sellerAccount": "30990009",
     "sourceTariffMultiplier": комиссия с продавца,
     "sellerInn": "1234",
     "sellerName": "ООО Название 1", 
     "sellerPhone": "71234567890",
     "clientTransaction": "N3",
     "productName": "test3",
     "productQuantity": 2,
     "productPrice": 0.40,
     "productVatCode": 1105,
     "po": "***",
     "pm": "***"}
  ]
}

где:

  • signature - подпись запроса - должна быть равна md5(debitMntAccount + mntTransactionId + secret). Символ + это конкатенация строк, secret - секретный код партнера, который будет выдан сервисом ПА ООО "ПЭЙ ЭНИ ВЭЙ"

  • paymentAmount - общая сумма платежа. Десятичный разделитель - точка с двумя десятичными знаками даже если это нули.

  • debitMntAccount - не обязательный параметр - счет списания в Системе МОНЕТА.РУ - необходимо уточнить в коммерческом отделе. Если не указывается, в сигнатуре вместо него следует оставить пустую строку.

  • creditMntAccount - счет ПА ООО "ПЭЙ ЭНИ ВЭЙ" в Системе МОНЕТА.РУ, на который необходимо принять денежные средства. Необходимо уточнить в коммерческом отделе.

  • sourceTariffMultiplier - не обязательный параметр - размер комиссии с продавца в процентах, разделенных на 100, то есть значение 0.015 соответствует 1,5%. Поле sourceTariffMultiplier для позиции является необязательным и если указано перекрывает значение sourceTariffMultiplier указанное для всего документа.

  • mntTransactionId - уникальный внешний идентификатор транзакции.

  • customerEmail - e-mail покупателя, на который надо отправить чек от ОФД.

  • mntSubscriberId - не обязательный параметр - идентификатор покупателя в учетной системе продавца.

  • storeCard - не обязательный параметр - true/false - сохранять ли банковскую карту покуателя. Для стандартных торговых площакок, за исключением cvv карты. Если передано значение true, то параметр mntSubscriberId становится обязательным. В комбинации с параметром QRTTL осуществляется привязка СБП покупателя с возможностью повторного списания средств по аналогии как это произходит при посторном списании с банковских карт покупателей.

  • useCard - не обязательный параметр, если передано true, то для данного покупателя с mntSubscriberId на платежной форме будет восстановлен номер банковской карты, за исключением кода CVV.

  • QRTTL - период в минутах, в течение которого будет возможна оплата через СБП. При передаче данного параметра в запрос invoice, платеж будет приниматься через СБП. Иначе - банковской картой.

  • inventory - номенклатура по поставщикам с указанием данных о поставщиках:

    • sellerAccount - номер бизнес-счета продавца в Системе МОНЕТА.РУ.

    • sellerInn - ИНН продавца.

    • sellerName - название продавца.

    • sellerPhone - номер телефона продавца.

    • clientTransaction - внешний идентификатор транзакции второго шага (при расщеплении).

    • productName - название товара.

    • productQuantity - количество товара.

    • productPrice - окончательная цена товара с учетом всех скидок и наценок.

    • productVatCode - код ставки НДС - одно из значений:

      • 1104 - НДС 0%

      • 1103 - НДС 10%

      • 1102 - c 01.01.2019 ставка 20%

      • 1105 - НДС не облагается

      • 1107 - НДС с рассч. ставкой 10%

      • 1106 - c 01.01.2019 НДС с расчётной ставкой 20%

    • po - необязательный параметр - объект оплаты

    • pm - необязательный параметр - метод оплаты

Признак предмета расчёта po (payment_object):

commodity – товар (за исключением подакцизного товара)

excise – подакцизный товар

job – работа

service – услуга.

Признак способа расчёта pm (payment_method):

full_prepayment – предоплата 100%. Полная предварительная оплата до момента передачи предмета расчета

prepayment – предоплата. Частичная предварительная оплата до момента передачи предмета расчета

advance – аванс

full_payment – полный расчет. Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета

Все передаваемые значения не должны содержать кавычки, спецсимволы, символы слэш и обратный слэш, амперсанд.

Для приема платежа с холдированием, необходимо передать также параметр hold в значении 1.

Чтобы сформировать invoice для оплаты по QR СБП, счёт получателя обязательно должен быть настроен для работы с СБП (по согласованию с коммерческим отделом системы Монета). Также необходимо передать параметр QRTTL - это время в течение которого будет возможна оплата по платёжной ссылке (QR-коду). Минимальное значение - одна минута, максимальное значение - 129600 (90 дней в минутах).

API ПА ООО "ПЭЙ ЭНИ ВЭЙ" выполнит проверку входящих данных и сообщит об ошибке если:

  • incorrect input data - отсутствует часть входящих данных.

  • incorrect signature - не верная подпись запроса.

  • incorrect inventory data, line: N - где N - номер строки номенклатуры - отсутствует часть данных по строке номенклатуры.

  • incorrect amount - отсутствует общая сумма.

  • inventoryTotal (***) and paymentAmount (***) are missmatch - не совпала общая сумма и сумма по всем позициям inventory.

  • invoice could not be created - не удалось создать invoice.

Ошибка отдается в формате json:

{"error": "***"}

В результате выполнения команды будет создан invoice на оплату, а метод отдаст следующие данные в json:

{"operation": ***}

*** - ID операции, созданной в Системе МОНЕТА.РУ.

Если был передан параметр QRTTL, в результат бедет так же возвращен массив operationInfo, ключи и значения которого содержат в том числе ссылку на оплату по СБП, которую можно отобразить в виде QR-кода покупателю. В этом случае переадресания на оплату через Assistant может не потребоваться.

Покупателя следует перенаправить на оплату данного invoice по ссылке:

https://www.payanyway.ru/assistant.htm?operationId=***

*** - ID операции, созданной в Системе МОНЕТА.РУ.

В ссылку можно добавить дополнительные параметры по протоколу MONETA.Assistant.

При передаче storeCard и mntSubscriberId будет сохранена использованная при оплате карта. Чтобы воспользоваться ей, нужно при последующих вызовах метода снова передать storeCard, тогда на платежной форме будет виден маскированный номер карты и expire date. Покупателю останется ввести cvv код для проведения оплаты.

Last updated