Метод createInvoice

Attention. Это старая версия API. Переходите на API Яндекс.Кассы.

Описание

Запрос позволяет инициировать списание денег со счета пользователя во внешних платежных системах (Сбербанк Онлайн, кошелек Webmoney). Счет на оплату выставляется в смс на телефон пользователя. Пользователь подтверждает оплату ответным сообщением или вводом кода на сайте магазина.

Набор доступных способов оплаты определяется значением параметра invoiceType.

Note.

Для выполнения запросов на оплату по смс необходимо подключение по HTTP-протоколу.

Адрес для вызова операции createInvoice

https://server:port/webservice/mws/api/createInvoice

Входные параметры

Параметр

Тип

Описание

clientOrderId

ClientTransactionNumber

Уникальный идентификатор операции. Обеспечивает защиту от ошибочных повторов операций. Рекомендуемые значения: целое, положительное, линейно нарастающее десятичное число.

shopId

xs:string

Идентификатор магазина, выдается при подключении к Яндекс.Кассе.

shopArticleId

xs:string

Идентификатор товара, выдается в Яндекс.Кассе. Применяется, если магазин использует несколько платежных форм для разных товаров.

sum

CurrencyAmount

Сумма платежа. Валюта по умолчанию — рубли.

customerNumber

xs:normalizedString, до 64 символов, обязательный

Идентификатор пользователя на стороне магазина. Присылается в платежной форме.

Возможна повторная оплата по одному и тому же идентификатору ползователя.

description

xs:string

Описание заказа. Может быть показано пользователю на стороне ВПС.

offer_accepted

xs:boolean

Признак согласия пользователя с офертой Яндекс.Денег. Если передано значение, отличное от true, запрос будет отклонен.

smsPhoneNumber

xs:string

Номер телефона плательщика в международном формате (79000000000), привязанный к счету в ВПС. Например, к Мобильному банку Сбербанка.

showcase_url

xs:string

Адрес сайта магазина. Обязателен только для платежей через Сбербанк Онлайн.

invoiceType

xs:string

Идентификатор внешней платежной системы:

  • sberbank — Мобильный банк Сбербанка или Сбербанк Онлайн;
  • webmoney — списание из кошелька в системе WebMoney.
payMethodxs:string

Передается вместе с invoiceType=sberbank. Возможные значения:

  • offline — Мобильный банк Сбербанка, пользователь подтверждает оплату по смс;
  • online — Сбербанк Онлайн, пользователь подтверждает оплату на веб-странице.
ym_merchant_receiptstring

Данные для формирования чека в формате JSON.

Параметр передается и является обязательным, если вы настроили взаимодействие со своей онлайн-кассой через Яндекс.Кассу и передаете в платежной форме данные для формирования чека.

Параметр

Тип

Описание

clientOrderId

ClientTransactionNumber

Уникальный идентификатор операции. Обеспечивает защиту от ошибочных повторов операций. Рекомендуемые значения: целое, положительное, линейно нарастающее десятичное число.

shopId

xs:string

Идентификатор магазина, выдается при подключении к Яндекс.Кассе.

shopArticleId

xs:string

Идентификатор товара, выдается в Яндекс.Кассе. Применяется, если магазин использует несколько платежных форм для разных товаров.

sum

CurrencyAmount

Сумма платежа. Валюта по умолчанию — рубли.

customerNumber

xs:normalizedString, до 64 символов, обязательный

Идентификатор пользователя на стороне магазина. Присылается в платежной форме.

Возможна повторная оплата по одному и тому же идентификатору ползователя.

description

xs:string

Описание заказа. Может быть показано пользователю на стороне ВПС.

offer_accepted

xs:boolean

Признак согласия пользователя с офертой Яндекс.Денег. Если передано значение, отличное от true, запрос будет отклонен.

smsPhoneNumber

xs:string

Номер телефона плательщика в международном формате (79000000000), привязанный к счету в ВПС. Например, к Мобильному банку Сбербанка.

showcase_url

xs:string

Адрес сайта магазина. Обязателен только для платежей через Сбербанк Онлайн.

invoiceType

xs:string

Идентификатор внешней платежной системы:

  • sberbank — Мобильный банк Сбербанка или Сбербанк Онлайн;
  • webmoney — списание из кошелька в системе WebMoney.
payMethodxs:string

Передается вместе с invoiceType=sberbank. Возможные значения:

  • offline — Мобильный банк Сбербанка, пользователь подтверждает оплату по смс;
  • online — Сбербанк Онлайн, пользователь подтверждает оплату на веб-странице.
ym_merchant_receiptstring

Данные для формирования чека в формате JSON.

Параметр передается и является обязательным, если вы настроили взаимодействие со своей онлайн-кассой через Яндекс.Кассу и передаете в платежной форме данные для формирования чека.

Note.

Имена параметров этого запроса не чувствительны к регистру.

Параметры для чека

Эти параметры нужны, если вы настроили взаимодействие со своей онлайн-кассой через Яндекс.Кассу. См. Описание процесса оплаты с отправкой данных для чека

Данные для чека передаются обязательно, в параметре ym_merchant_receipt, в формате JSON (так же, как в платежной форме).

Формат ответа

В ответе на запрос createInvoice приходит XML-документ, состоящий из одного элемента: createInvoiceResponse.

Выходные параметры общие для всех типов запросов на исполнение финансовых операций. Результат выполнения операции передается в поле status.

Note.
  • Если в запросе приходит invoiceType=sberbank и payMethod=online, в ответе передается дополнительный параметр: externalPaymentUrl. В нем передается ссылка на страницу подтверждения оплаты в Сбербанке Онлайн. Магазину нужно самостоятельно перенаправить пользователя на эту страницу.
  • Если в ответ на запрос createInvoice с оплатой через Сбербанк Онлайн (invoiceType=sberbank) через час продолжает приходить status=1, платеж считается неуспешным.

Примеры

Пример запроса
POST /webservice/mws/api/createInvoice HTTP/1.1
Host: someshop.ru 
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: length
offer_accepted=true&clientOrderId=1436792567640&description=some_descr&smsPhoneNumber=89052185656&invoiceType=sberbank&sum=10.00&showcase_url=https%3A%2F%2Fexample.com&shopId=900700
Пример запроса с данными для чека
POST
/webservice/mws/api/createInvoice HTTP/1.1
Host: someshop.ru 
Content-Type:
application/x-www-form-urlencoded; charset=UTF-8
Content-Length: length
offer_accepted=true&clientOrderId=1436792567640&description=some_descr&smsPhoneNumber=89123456543&invoiceType=sberbank&sum=500.23&showcase_url=https%3A%2F%2Fexample.com&shopId=900700&ym_merchant_receipt=%7B%22customerContact%22%3A%20%22%2B79123456543%22%2C%22taxSystem%22%3A%201%2C%22items%22%3A%20%5B%7B%22quantity%22%3A%201.154%2C%22price%22%3A%20%7B%22amount%22%3A%20300.23%7D%2C%22tax%22%3A%203%2C%22text%22%3A%20%22%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%D0%90%22%7D%2C%7B%22quantity%22%3A%202%2C%22price%22%3A%20%7B%22amount%22%3A%20200.00%7D%2C%22tax%22%3A%203%2C%22text%22%3A%20%22%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%D0%91%22%7D%5D%7D

Данные для чека, которые передаются в этом запросе, в параметре ym_merchant_receipt:

{"customerContact": "+79123456543","taxSystem": 1,"items": [{"quantity": 1.154,"price": {"amount": 300.23},"tax": 3,"text": "Товар А"},{"quantity": 2,"price": {"amount": 200.00},"tax": 3,"text": "Товар Б"}]}
Пример ответа: запрос в обработке
<createInvoiceResponse orderId="2000003201974" status="1" error="0" processedDT="2015-06-26T14:22:43.824Z" />
Пример ответа при успехе обработки
<createInvoiceResponse orderId="2000003201974" status="0" error="0" processedDT="2015-06-26T14:22:56.245Z" />
Пример ответа при ошибке
<createInvoiceResponse status="3" error="158" processedDT="2015-06-26T14:51:31.033Z" />

Смотрите также

Оплата по счету в смс

Метод confirmInvoice

Правила обработки запросов

Коды ошибок

Типы данных

Уведомление об успешном платеже