# Создание invoice

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

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

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

key - ключ партнера, будет ему сгенерирован и выдан сервисом БПА ПА PayAnyWay (bpa.payanyway.ru)

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

```
{
  "signature": "***",
  "paymentAmount": 9.00,
  "debitMntAccount": 317,
  "mntTransactionId": "***",
  "customerEmail": "***@***.**",
  "inventory": [
    {"sellerAccount": "30990009", 
     "sellerInn": "1234", 
     "sellerName": "ООО Рога и копыта", 
     "sellerPhone": "71234567890",
     "productName": "test1",
     "productQuantity": 1, 
     "productPrice": 0.20,
     "productVatCode": 1105},
    {"sellerAccount": "60252006",
     "sellerInn": "5678", 
     "sellerName": "ООО Ромашка",
     "sellerPhone": "71234567890",
     "productName": "test2", 
     "productQuantity": 2, 
     "productPrice": 4,
     "productVatCode": 1105},
    {"sellerAccount": "30990009",
     "sellerInn": "1234",
     "sellerName": "ООО Рога и копыта", 
     "sellerPhone": "71234567890",
     "productName": "test3",
     "productQuantity": 2,
     "productPrice": 0.40,
     "productVatCode": 1105}
  ]
}
```

где:

* **signature** - подпись запроса - должна быть равна md5(debitMntAccount + mntTransactionId + secret). Символ + это конкатенация строк, secret - секретный код партнера, который будет выдан сервисом БПА ПА PayAnyWay (bpa.payanyway.ru).
* **paymentAmount** - общая сумма платежа. Десятичный разделитель - точка с двумя десятичными знаками даже если это нули.
* **debitMntAccount** - счет списания в системе PayAnyWay (Монета.ру) - не обязательный параметр.
* **mntTransactionId** - уникальный внешний идентификатор транзакции.
* **customerEmail** - e-mail покупателя, на который надо отправить чек от ОФД.
* **inventory** - номенклатура по поставщикам с указанием данных о поставщиках:
  * **sellerAccount** - номер бизнес-счета продавца в PayAnyWay.
  * **sellerInn** - ИНН продавца.
  * **sellerName** - название продавца.
  * **sellerPhone** - номер телефона продавца.
  * **productName** - название товара.
  * **productQuantity** - количество товара.
  * **productPrice** - окончательная цена товара с учетом всех скидок и наценок.
  * **productVatCode** - код ставки НДС - одно из значений:
    * 1104 - НДС 0%
    * 1103 - НДС 10%
    * 1102 - c 01.01.2019 ставка 20%
    * 1105 - НДС не облагается
    * 1107 - НДС с рассч. ставкой 10%
    * 1106 - c 01.01.2019 НДС с рассч. ставкой 20%

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

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

API БПА ПА PayAnyWay выполнит проверку входящих данных и сообщит об ошибке если:

* **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 операции, созданной в системе PayAnyWay (Монета.ру).

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

{% embed url="<https://www.payanyway.ru/assistant?operationId=>\*\*\*" %}

\*\*\* - ID операции, созданной в системе PayAnyWay (Монета.ру).

В ссылку можно добавить дополнительные параметры по протоколу [MONETA.Assistant](https://www.moneta.ru/doc/MONETA.Assistant.ru.pdf).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.payanyway.ru/rabota-cherez-bpa-pa-payanyway/sozdanie-invoice.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
