div img(src="//ms.yandex.ru/watch/28148454" style="position:absolute;left:-9999px;" alt="")

Введение

Термины и сокращения

АМ – Общество с ограниченной ответственностью "Арсенал Медиа".

ИТО – Информационно-технологическое взаимодействие.

ИЭ – Интернет-эквайринг. Процесс приёма платёжных карт в качестве источника оплаты за товары и услуги с использованием средств электронной коммерции.

НЭ – Наземный эквайринг. Процесс приёма платёжных карт в качестве источника оплаты за товары и услуги торгового предприятия с использованием платёжных POS-терминалов.

МК – Мобильная коммерция. Процесс использования баланса мобильного телефона в качестве источника оплаты за товары и услуги с использованием средств электронной коммерции.

ЭК – Электронный кошелек. Процесс использования средств электронного кошелька в качестве источника оплаты за товары и услуги.

ПЦ – Процессинговый Центр. Интернет-шлюз, информационная система управления платежами, система взаиморасчётов ООО "Арсенал Медиа". Имеет фиксированный IP-адрес и доменное имя.

ТСП – Торгово-Сервисное Предприятие, состоящее в договорных отношениях с ООО "Арсенал Медиа", которому присвоен уникальный номер, единый на всех информационных системах ООО "Арсенал Медиа".

Система учёта ТСП – биллинговая, либо бухгалтерская, либо иная информационная система, способная принимать, сохранять и учитывать "on-line" начисления средств, поступающих при информационно-техническом взаимодействии со стороны ПЦ.

CMS – Content Management System (Система Управления Контентом). Информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления контентом сайта (Bitrix, Joomla, OpenCart, VirtueMart и др.)

SDK – Software Development Kit (Комплект Средств Разработки). Позволяет создавать приложения для определенного пакета программ, программного обеспечения, операционных систем и платформ.

API – Application Programming Interface (Интерфейс Программирования Приложений). Набор готовых классов, процедур, функций, структур и констант для использования во внешних программных продуктах.

Виды интеграции

Единый платёжный фрейм
HTML-код, встраиваемый в страницу ТСП для обеспечения взаимодействия с ПЦ по приему платежей.
Отдельная платёжная страница на домене ArsenalPay.ru
Специально разработанная платёжная страница на сайте АМ для приёма платежей в пользу определённого ТСП.
Плагин CMS
Модуль по приёму платежей через ПЦ, разработанный специально для конкретной CMS.
SDK
Готовые библиотеки для работы с ArsenalPay API. Внедряется как модуль к одной из поддерживаемых нами платформ.
Нативная интеграция с мобильным приложением
Разработка специального приложения для приёма платежей под наиболее популярные платформы (iOS, Android).
Низкоуровневое API
Набор методов, позволяющих ТСП самому реализовать на своей стороне механизм приёма платежей через ПЦ.

Списание средств

Единый платёжный фрейм

Единый фрейм для оплаты услуг, который внедряется в браузер и настраивается на все возможные способы онлайн оплаты: Баланс МобильногоБанковские КартыЭлектронный Кошелек.

Как это работает?

Разработчик внедряет HTML код на страницу оплаты, используя тег <iframe> cо ссылкой на наш единый фрейм, указав параметры, объявляющие идентификатор ТСП и прочие данные.
Пользователь видит форму с выбором способа оплаты, а также необходимыми полями для заполнения с целью осуществления транзакции. Заполнив необходимые данные (такие, как номер карты, телефона и прочие), пользователь либо переходит на сайт ArsenalPay, с последующим подтверждением оплаты и возвращением на сайт, либо остается на вашей странице, также подтверждая оплату.

Интеграция

Разместите следующий код в желаемом месте в теле вашей страницы: (реальная ссылка выдаётся только на этапе интеграции)

<iframe src="https://arsenalpay.ru/payframe/pay.php?src=&t=&n=&a="></iframe>
Параметры

Если необязательные параметры не заданы, то абонент может самостоятельно ввести информацию в форме ввода. В случае, если один или несколько необязательных параметров заданы, то данные поля будут выводится абоненту в информативном порядке и не будут доступны для редактирования. Этот подход может быть полезен при оплате услуг с фиксированной ценой, при платеже из личного кабинета (когда номер получателя известен) и прочих случаях.

  • Обязательные параметры
  • Необязательные параметры
ПолеФорматОписание
SRCStringТип платежа. Возможные варианты:
mk – оплата с мобильного телефона (мобильная коммерция)
card – оплата с банковской карты (интернет-эквайринг)
wallet – оплата с электронного кошелька
TStringУникальный токен, который присваивается ТСП для работы с фреймом
NStringНомер получателя платежа (номер договора, номер заказа, номер объявления, лицевой счёт в системе получателя и т.п)
AStringСумма платежа в диапазоне от 10 до 14999 рублей
MSISDNStringНомер телефона в 10-ти значном формате (например, 9001234455)
Только при выборе типа платежа с МК (SRC=mk)
PAYER_IDStringИдентификатор плательщика
Только при выборе типа платежа с ЭД (SRC=wallet)
SStringДополнительный номер или код, необходимый для оплаты
Данный параметр не доступен для абонента
CSSStringАдрес до CSS файла с кастомизацией стилей
FRAMEStringРежим отображения платёжной страницы:
1 – во фрейме, иначе – на всю страницу

Банковские карты

Приём платежей с банковских карт международных платёжных систем (Visa, Visa Electron, MasterCard, Maestro) реализовывается путём интеграции единого платёжного фрейма на сайте ТСП.

Баланс мобильного

Данный раздел даёт спецификацию для процесса инициализации платежа со стороны информационной системы ТСП, где источником средств является счёт мобильного телефона. Информационный обмен осуществляется по методике “запрос – ответ“ с системой учёта ТСП.

Запрос на инициализацию платежа

Для инициализации платежа ТСП выполняет запрос по протоколу HTTP(S) с использованием метода: GET или POST. Предполагается, что PHONE и номер лицевого счёта абонента ТСП достоверно получило с помощью собственных форм авторизаций. Инициализация осуществляется путём запроса на ПЦ, используя нижеописанную команду.

Параметры запроса
  • Обязательные параметры
  • Необязательные параметры
ПолеФорматОписание
IDNumeric(6)Уникальный идентификатор ТСП
FUNCTIONString(15)Тип запроса (только  init_pay_mk)
ACCOUNTNumeric(20)Номер лицевого абонента ПУ
PHONENumeric(12)Номер мобильного телефона клиента (MSISDN)
AMOUNTDoubleСумма платежа
SIGNString(512)Подпись запроса. Формируется по правилу:
md5(md5(ID).md5(FUNCTION).md5(ACCOUNT).
md5(PHONE).md5(AMOUNT).md5(PASSWORD))
Параметр PASSWORD является ключевым словом и выдаётся ТСП по защищённому каналу
CURRENCYString(3)Валюта платежа. Трёхбуквенное мнемоническое имя в сотв. с ISO-4217
Параметры ответа
ПолеОписание
RRNУникальный номер транзакции
AccountНомер лицевого абонента ПУ (из запроса)
PhoneФедеральный мобильный номер пользователя (из запроса)
AmountСумма платежа (из запроса)
StatusРезультат платежа
Пример запроса
ID=1025&FUNCTION=init_pay_mk&ACCOUNT=12345&PHONE=9147894125
&AMOUNT=52.40&CURRENCY=RUB&SIGN=PSAiaHR0cDovL3d3dy53M
Пример ответа
<MAIN>
  <RRN>657456755678</RRN>
  <Account>123456</Account>
  <Phone>9147894125</Phone>
  <Amount>52.40</Amount>
  <Status>OK</Status>
<MAIN>
Запрос статуса транзакции

Для запроса статуса транзакции по технологии SMS&PAY Поставщик услуги (ПУ) инициирует запрос по протоколу HTTPS c помощью метода GET или POST. Для использования данной функции ПУ обязательно должен при вызове команды init_pay_status передавать уникальный номер транзакции RRN.

Параметры запроса
  • Обязательные параметры
ПолеФорматОписание
IDNumeric(6)Уникальный идентификатор ТСП
FUNCTIONString(15)Тип запроса (только init_pay_mk_status)
RRNNumeric(20)Уникальный номер транзакции
SIGNString(512)Подпись запроса. Формируется по правилу:
md5(md5(ID).md5(FUNCTION).md5(RRN).md5(PASSWORD))
Параметр PASSWORD является ключевым словом и выдаётся ТСП по защищённому каналу
Параметры ответа
ПолеОписание
RRNУникальный номер транзакции
AccountНомер лицевого абонента ПУ
PhoneФедеральный мобильный номер пользователя
AmountСумма платежа
DatetimeВремя совершения транзакции
StatusКод результата
Пример запроса
ID=1025&FUNCTION=init_pay_mk_status&RRN=123456789&
&SIGN=PSAiaHR0cDovL3d3dy53M
Пример ответа
<MAIN>
  <RRN>657456755678</RRN>
  <Account>123456</Account>
  <Phone>9147894125</Phone>
  <Amount>52.40</Amount>
  <Datetime>2015-10-01 13:54:22</Datetime>
  <Status>OK_PAY</Status>
<MAIN>

Электронный кошелек

Данный раздел даёт спецификацию для процесса инициализации платежа со стороны информационной системы ТСП, где источником средств является электронный кошелек плательщика. Информационный обмен осуществляется по методике “запрос – ответ“ с системой учёта ТСП.

Запрос на инициализацию платежа

Для инициализации платежа ТСП выполняет запрос по протоколу HTTP(S) с использованием метода: GET или POST. Предполагается, что PAYER_ID и номер лицевого счёта абонента ТСП достоверно получило с помощью собственных форм авторизаций. Инициация осуществляется путём запроса на ПЦ, используя нижеописанную команду.

Параметры запроса
  • Обязательные параметры
  • Необязательные параметры
ПолеФорматОписание
IDNumeric(6)Уникальный идентификатор ТСП
FUNCTIONString(15)Тип запроса (только  init_pay_wallet)
ACCOUNTNumeric(20)Номер лицевого абонента ПУ
PAYER_IDNumeric(2)Идентификатор электронного кошелька
WALLET_IDNumeric(2)Тип электронного кошелька
(1 - Qiwi, 2 - WebMoney, 3 - Yandex.Money)
AMOUNTDoubleСумма платежа
SIGNString(512)Подпись запроса. Формируется по правилу:
md5(md5(ID).md5(FUNCTION).md5(ACCOUNT).
md5(PAYER_ID).md5(AMOUNT).md5(PASSWORD))
Параметр PASSWORD является ключевым словом и выдаётся ТСП по защищённому каналу
CURRENCYString(3)Валюта платежа. Трёхбуквенное мнемоническое имя в сотв. с ISO-4217
Параметры ответа
ПолеОписание
RRNУникальный номер транзакции
AccountНомер лицевого абонента ПУ (из запроса)
Payer_idИдентификатор электронного кошелька
AmountСумма платежа (из запроса)
StatusРезультат платежа
Пример запроса
ID=1025&FUNCTION=init_pay_wallet&ACCOUNT=12345&PAYER_ID=9147894125
&AMOUNT=52.40&CURRENCY=RUB&SIGN=PSAiaHR0cDovL3d3dy53M
Пример ответа
<MAIN>
  <RRN>657456755678</RRN>
  <Account>123456</Account>
  <Payer_id>9147894125</Payer_id>
  <Amount>52.40</Amount>
  <Status>OK</Status>
<MAIN>
Запрос статуса транзакции

Для запроса статуса транзакции по технологии SMS&PAY Поставщик услуги (ПУ) инициирует запрос по протоколу HTTPS c помощью метода GET или POST. Для использования данной функции ПУ обязательно должен при вызове команды init_pay_status передавать уникальный номер транзакции RRN.

Параметры запроса
  • Обязательные параметры
ПолеФорматОписание
IDNumeric(6)Уникальный идентификатор ТСП
FUNCTIONString(15)Тип запроса (только init_pay_wallet_status)
RRNNumeric(20)Уникальный номер транзакции
SIGNString(512)Подпись запроса. Формируется по правилу:
md5(md5(ID).md5(FUNCTION).md5(RRN).md5(PASSWORD))
Параметр password является ключевым словом и выдаётся ТСП по защищённому каналу
Параметры ответа
ПолеОписание
RRNУникальный номер транзакции
AccountНомер лицевого абонента ПУ
Payer_idИдентификатор электронного кошелька
AmountСумма платежа
DatetimeВремя совершения транзакции
StatusКод результата
Пример запроса
ID=1025&FUNCTION=init_pay_wallet_status&RRN=123456789&
&SIGN=PSAiaHR0cDovL3d3dy53M
Пример ответа
<MAIN>
  <RRN>657456755678</RRN>
  <Account>123456</Account>
  <Payer_id>9147894125</Payer_id>
  <Amount>52.40</Amount>
  <Datetime>2015-10-01 13:54:22</Datetime>
  <Status>OK_PAY</Status>
<MAIN>

Зачисление средств

ArsenalPay API

Протокол поддерживает функции с использованием HTTPS через POST:

  • Регистрация сессии (Login)
  • Выход из сессии (Logout)
  • Определение номера счёта (проверка корректности введённых данных)
  • Платёж указанной суммы в определённой валюте на указанный номер счёта

Использование функций Login/Logout подразумевает сессионный характер на сообщениями. Сессионность поддерживается с помощью специализированной переменной идентификатора сессии (SID). Интернет-шлюз при старте автоматически создает заданное количество сессий и поддерживает их в активном состоянии. Для дополнительной аутентификации канала связи может использоваться клиентский SSL-сертификат.

В качестве ответа интернет-интерфейс системы формирует XML-сообщение о результатах операции. Информационный обмен в рамках данного раздела охватывает область передачи информации о начислениях в пользу ТСП.

Рассматриваются следующие запросы:

  • Регистрация сессии
  • Выход из сессии
  • Запрос номера счёта
  • Запрос на платёж
  • Запрос финансовых итогов
  • Запрос на генерацию отчёта

Управление потоком данных осуществляется с помощью информационных сообщений – ответов на запросы в формате XML. Информационный обмен осуществляется по методике «запрос-ответ» с системой учёта ТСП.

Сообщения типа “запрос” всегда содержат переменную FUNCTION, определяющую формат и подтип запроса. Все сообщения протокола содержат переменную STAN, формируемую интернет-шлюзом. Ответное сообщение должно содержать “эхо” — значение этой переменной. Такой механизм позволяет однозначно устанавливать пары запрос—ответ для асинхронных транспортных протоколов, а также отслеживать транспортные ошибки (потерянные и дуплицированные сообщения) без привязки к конкретным транспортным протоколам.

Регистрация сессии

Время существования сессии ограничено 30 минутами. Таким образом, по истечении 30 минут при отсутствии вызова серверных функций сеанс работы с системой будет автоматически завершён.

Параметры запроса
  • Обязательные параметры
ПолеФорматОписание
FUNCTIONString(16)Тип запроса (только bank_login)
STANNumeric(6)Идентификатор запроса (6-разрядный)
USERAlpha Numeric(20)Идентификатор доступа
PASSWORDAlpha Numeric(50)Пароль доступа
Параметры ответа
ПолеОписание
STANИдентификатор запроса
ResponseКод ответа
SIDИдентификатор сессии
Пример запроса
FUNCTION=bank_login&STAN=123456&USER=AMTest&PASSWORD=wer32fcs3rc
Пример ответа
<XML>
  <mBilling Version="1.0">
    <STAN>123456</STAN>
    <Response>OK</Response>
    <SID>D5EAA1DD</SID>
  </mBilling>
</XML>

Интернет-шлюз проверяет выполнение следующих условий:

  • Элемент STAN присутствует и соответствует значению одноименного поля из запроса
  • Элемент Response  присутствует и является кодом ответа
  • Элемент SID присутствует и содержит идентификатор сессии (данный идентификатор присутствует только при успешном входе в систему)
Выход из сессии

Для принудительного завершения сессии разработана специальная команда bank_exit. Она очищает на сервере все данные о текущей сессии.

Параметры запроса
  • Обязательные параметры
  • Необязательные параметры
ПолеФорматОписание
FUNCTIONString(16)Тип запроса (только bank_exit)
STANNumeric(6)Идентификатор запроса (6-разрядный)
SIDAlpha Numeric(20)Идентификатор доступа
Параметры ответа
ПолеОписание
STANИдентификатор запроса
ResponseКод ответа
Пример запроса
FUNCTION=bank_exit&STAN=123456&SID=D5EAA1DD
Пример ответа
<XML>
  <mBilling Version="1.0">
    <STAN>123456</STAN>
    <Response>OK</Response>
  </mBilling>
</XML>

Интернет-щлюз проверяет выполнение следующих условий:

  • Элемент STAN присутствует и соответствует значению одноименного поля из запроса
  • Элемент Response присутствует и является кодом ответа
Запрос номера счёта

Для успешного перечисления средств получателю в системе ТСП, предварительно необходимо проверять существование указанного получателя с помощью команды bank_account. Получателем в системе ТСП может быть номер лицевого счета, номер аккаунта, номер товара, номер заказа, код объявления и т.д. в зависимости от целевой направленности пополняемых пользовательских объектов ТСП.

Параметры запроса
  • Обязательные параметры
  • Необязательные параметры
ПолеФорматОписание
FUNCTIONString(16)Тип запроса (только bank_account)
SIDAlpha Numeric(20)Идентификатор доступа
PHONENumeric(16)Номер лицевого счёта клиента 
(мобильный номер, лицевой счёт, номер товара)
STANNumeric(6)Идентификатор запроса (6-разрядный)
CURRENCYString(3)Валюта платежа. Трёхбуквенное мнемоническое имя в соотв. с ISO-4217
AMOUNTDoubleСумма платежа
SOURCEString(20)Источник платежа. Возможные варианты:
mk (МК), paycard(ИЭ), wallet (ЭК), poscard(НЭ), 
operator(ручные проверки оператора)
RRNAlpha Numeric(23)Идентификатор платежа (Acquirer Retrieval Reference Number)
Этот номер будет одинаковым в пределах цепочки операций: ACCOUNT, PAYMENT
Является уникальным номером финансовой цепочки в пределах интерфейса
Состоит из идентификатора (6-11 символов) и номера операции (12)
Параметры ответа
ПолеОписание
STANИдентификатор запроса
ResponseКод ответа
RRNИдентификатор транзакции
AccountИдентификатор получателя
CurrencyКод валюты
AmountСумма платежа
PhoneНомер плательщика
Пример запроса
FUNCTION=bank_account&STAN=123456&RRN=000001123456789012&
SID=D5EAA1DD&PHONE=123456789012&CURRENCY=RUB&
AMOUNT=100&SOURCE=paycard
Пример ответа
<XML>
  <mBilling Version="1.0">
    <STAN>123456</STAN>
    <Response>OK</Response>
    <AccountInfo>
      <RRN>00000112345678012</RRN>
      <Account>12345</Account>
      <Currency>RUB</Currency>
      <Amount>100</Amount>
      <Phone>123456789012</Phone>
    </AccountInfo>
  </mBilling>
</XML>

Интернет-шлюз проверяет выполнение следующих условий:

  • Элемент STAN присутствует и соответствует значению одноименного поля из запроса
  • Элемент Response  присутствует и является кодом ответа
  • При наличии элемента Currency  происходит проверка поддержки операции в данной валюте (передаваемая валюта сравнивается с реквизитами, указанными в шаблоне загрузки платежа)
  • Элемент AccountInfo присутствует и содержит элементы Account и Phone
  • Элемент Phone отсутствует полю из запроса
  • Если элемент Currency отсутствует, будет использована валюта RUB
  • Если элемент Currency присутствует, а элемент Amount (сумма платежа) отсутствует, то сумма платежа считается равной нулю
Запрос на платёж

Завершающим этапом процедуры оплаты является вызов команды пополнения bank_payment. В результате в систему ТСП будет направлена команда на пополнение счёта указанного получателя. Эта команда не является переводом реальных денежных средств. Она сообщает системе ТСП, что указанному получателю требуется пополнить “баланс” на  указанную сумму.

Параметры запроса
  • Обязательные параметры
  • Необязательные параметры
  • Необязательные параметры
ПолеФорматОписание
FUNCTIONString(15)Тип запроса (только bank_payment)
RRNAlpha Numeric(23)Идентификатор платежа
SIDAlpha Numeric(20)Идентификатор доступа
PHONENumeric(16)Номер лицевого счёта клиента 
(мобильный номер, лицевой счёт, номер товара)
AMOUNTDoubleСумма платежа
CURRENCYString(3)Валюта платежа. Трёхбуквенное мнемоническое имя в соотв. с ISO-4217
STANNumeric(6)Идентификатор запроса (6-разрядный)
ACCOUNTNumeric(20)Номер счёта клиента(мобильный номер, лицевой счёт и т.п.)
DATEString(YYYYMMDD)Дата операции
TIMEString(HHMMSS)Время операции
SOURCEString(20)Источник платежа. Возможные варианты:
mk (МК), paycard(ИЭ), wallet (ЭК), poscard(НЭ)
operator (ручные проверки оператора)
Параметры ответа
ПолеОписание
STANИдентификатор запроса
ResponseКод ответа
RRNИдентификатор транзакции
AccountИдентификатор получателя
CurrencyКод валюты
AmountСумма платежа
PhoneНомер плательщика
DateДата операции
TimeВремя операции
ReferenceДополнительный идентификатор
Пример запроса
FUNCTION=bank_payment&STAN=123456&RRN=000001123456789012&
SID=D5EAA1DD&PHONE=123456789012&CURRENCY=RUB&
AMOUNT=100&SOURCE=paycard
Пример ответа
<XML>
  <mBilling Version="1.0">
    <STAN>123456</STAN>
    <Response>OK</Response>
    <AccountInfo>
      <RRN>00000112345678012</RRN>
      <Account>12345</Account>
      <Currency>RUB</Currency>
      <Amount>100</Amount>
      <Phone>123456789012</Phone>
    </AccountInfo>
  </mBilling>
</XML>

Интернет-шлюз проверяет выполнение следующих условий:

  • Элемент STAN присутствует и соответствует значению одноименного поля из запроса
  • Элемент Response присутствует и является кодом ответа
  • Элемент AccountInfo присутствует и содержит элементы RRNAccountPhone и Amount
  • DateTimeCurrency соответствуют полям запроса
  • Если опциональный элемент Reference присутствует, то он может сохраняться для отчетности
Запрос финансовых итогов

Для сверки финансовых итогов за определённый период используется агрегированный отчёт о проведённых транзакциях с помощью команды bank_totals.

Параметры запроса
  • Обязательные параметры
  • Необязательные параметры
ПолеФорматОписание
FUNCTIONString(15)Тип запроса (только  bank_totals)
SIDAlpha Numeric(20)Идентификатор доступа
FROMString(YYYYMMDDHHMMSS)Значения полей Date и Time должны быть больше или равны
TOString(YYYYMMDDHHMMSS)Значения полей Date и Time должны быть меньше
STANNumeric(6)Идентификатор запроса (6-разрядный)
Параметры ответа
ПолеОписание
STANИдентификатор запроса
ResponseКод ответа
Totals CurrencyВалюта платежей
CreditsСумма пополнений
Credits NumberКоличество пополнение
DebitsСумма списаний
RRNИдентификатор транзакции
DateДата платежа
TimeВремя платежа
PhoneМобильный номер плательщика
AccountИдентификатор плательщика
AmountСумма платежа
CurrencyВалюта платежа
ReferenceДополнительный идентификатор
Пример запроса
FUNCTION=bank_totals&STAN=123456&SID=D5EAA1DD&
FROM=20020510140000&TO=200205111400
AMOUNT=100&SOURCE=paycard
Пример ответа
<XML>
  <mBilling Version="1.0">
    <STAN>123456</STAN>
    <Response>OK</Response>
    <Totals Currency="RUB">
      <Credits Number="2">500.20</Credits>
      <Debits Number="0">0</Debits>
    </Totals>
    <Payment>
    </Payment>
  </mBilling>
</XML>

Интернет-шлюз проверяет выполнение следующих условий:

  • Элемент STAN присутствует и соответствует значению одноименного поля из запроса
  • Элемент Response присутствует и является кодом ответа
  • Один или несколько элементов Totals присутствуют и содержат элементы Credits и опционально Debits
  • Атрибут Number присутствует в элементах Credits и Debits
  • Если элемент Totals один и атрибут Currency отсутствует, будет использована валюта по умолчанию.
Запрос на генерацию отчёта

В случае, если финансовые итоги за определенный период различаются, то для сверки применяется пооперационный отчет по транзакциям с помощью команды bank_report.

Параметры запроса
  • Обязательные параметры
  • Опциональные параметры (зависит от настроек)
ПолеФорматОписание
FUNCTIONString(15)Тип запроса (только bank_report)
SIDAlpha Numeric(20)Идентификатор сессии
FROMString(YYYYMMDDHHMMSS)Значения полей Date и Time должны быть больше или равны
TOString(YYYYMMDDHHMMSS)Значения полей Date и Time должны быть меньше
STANNumeric(6)Идентификатор запроса (6-разрядный)
Параметры ответа
ПолеОписание
STANИдентификатор запроса
ResponseКод ответа
Totals Currency
Credits Number
Debits NumberКод валюты
Пример запроса
FUNCTION=bank_report&STAN=123456&SID=D5EAA1DD&
FROM=20020510140000&TO=200205111400
AMOUNT=100&SOURCE=paycard
Пример ответа
<XML>
  <mBilling Version="1.0">
    <STAN>123456</STAN>
    <Response>OK</Response>
    <Total Currency="RUB">
      <Credits Number="2">500.20</Credits>
      <Debits Number="0">0</Debits>
    </Totals>
    <Report>
      <Payment>
        <RRN>000001123456789012</RRN>
        <Date>20020710</Date>
        <Time>142312</Time>
        <Phone>123456789</Phone>
        <Account>12345</Account>
        <Amount>100.20</Amount>
        <Currency>RUB</Currency>
        <Reference>12345</Reference>
      </Payment>
    </Report>
  </mBilling>
</XML>

Интернет-шлюз проверяет выполнение следующих условий:

  • Элемент RRN присутствует и соответствует значению одноименного поля из запроса
  • Элемент Response присутствует и является кодом ответа
  • Один или несколько элементов Totals присутствуют и содержат элементы Credits и опционально Debits
  • Атрибут Number присутствует в элементах Credits и Debits
  • Если элемент Totals один и атрибутCurrency отсутствует, будет использована валюта по умолчанию
  • Элемент Report присутствует и содержит ноль (в случае нулевых итогов по Debits и ( Credits) или несколько элементов Payment или Cancel с суб-элементами RRNDateTimePhoneAccountAmountCurrency и опционально Reference
Запрос на возврат

Для отмены платежа используется команда bank_refund. В результате в систему ТСП будет направлена команда на отмену пополнения счёта получателя.

Параметры запроса
  • Обязательные параметры
  • Опциональные параметры (зависит от настроек)
ПолеФорматОписание
FUNCTIONString(15)Тип запроса (только bank_refund)
RRNAlpha Numeric(23)Идентификатор платежа
SIDAlpha Numeric(20)Идентификатор доступа
AMOUNTDoubleСумма возврата
DATEString(YYYYMMDD)Дата операции
TIMEString(HHMMSS)Время операции
Параметры ответа
ПолеОписание
ResponseКод ответа
RRNИдентификатор транзакции
AmountСумма возврата
DateДата операции
TimeВремя операции
Пример запроса
FUNCTION=bank_refund&RRN=000001123456789012&
SID=D5EAA1DD&AMOUNT=100
Пример ответа
<XML>
  <mBilling Version="1.0">
    <Response>OK</Response>
      <AccountInfo>
        <RRN>000001123456789012</RRN>
        <Amount>100.20</Amount>
      </AccountInfo>
  </mBilling>
</XML>
Коды ответов

Элемент Response должен присутствовать во всех ответах от шлюза и может принимать следующие значения

ПолеОписание
OKОперация завершена успешно
ERRORОшибка обработки операции или неверный формат сообщения
ERR_AMOUNTПоле Amount содержит недопустимое значение
ERR_SIDНеверный идентификатор сессии
ERR_PHONEНесуществующий номера телефона или счёта
ERR_FUNCTIONФункция не поддерживается
ERR_CURRENCYОперации в данной валюте не поддерживаются
ERR_DATEFORMATНекорректный формат даты
ERR_ACCESSНет доступа к данной функции
ERR_NOBDНет соединения с БД

Если операция закончилась ошибкой, то ответное сообщение должно содержать только STAN и Response субэлементы. Опционально может содержаться текстовое описание ошибки в субэлементах Error.

Пример ответа об ошибке
<XML>
  <mBilling Version="1.0">
    <STAN>123456</STAN>
    <Response>OK</Response>
    <Error Language="RU">Счет не найден</Error>
  </mBilling>
</XML>

Обработка уведомлений

Проверка получателя платежа

Для проверки получателя платежа рекомендуется осуществлять запрос в систему ТСП, и только после успешного ответа осуществлять запрос на проведение платежа. Запрос на проверку осуществляется по протоколу HTTP(S) с помощью метода GET или POST.

Параметры запроса
  • Обязательные параметры
ПолеФорматОписание
FUNCTIONString(15)Тип запроса (только check)
IDString(32)Уникальный идентификатор ТСП
RRNNumeric(20)Уникальный номер транзакции
PAYERString(20)Идентификатор плательщика
AMOUNTDoubleСумма фактического списания по платежу
AMOUNT_FULLDoubleСумма исходного платежа
MERCH_TYPENumeric(1)Тип магазина
(0 - Юридическое лицо, 1 - Физическое лицо)
ACCOUNTNumeric(20)Номер лицевого счёта получателя в системе ТСП
STATUSString(10)Статус платежа(check - проверка)
DATETIMEString(25)Дата и время по ISO-8601 (YYYY-MM-DDThh:mm:ss±hh:mm)
SIGNString(32)Подпись запроса. Формируется на основании следующего правила:
md5(md5(ID).md5(FUNCTION).md5(RRN).md5(PAYER).
md5(AMOUNT).md5(ACCOUNT).md5(STATUS).
md5(password))
Параметр password является ключевым словом и выдается ТСП по защищенному каналу
Варианты ответа
ПолеОписание
YESПолучатель платежа существует в системе ТСП
NOПолучатель не существует в системе ТСП
ERRОшибка проверки получателя в системе ТСП
Отправка уведомления о платеже

Для информирования ТСП о совершенном платеже (результата списания) для последующего учета в системе ТСП используется запрос от ПЦ в сторону ТСП по протоколу HTTP(S) с помощью метода GET или POST.

Параметры запроса
  • Обязательные параметры
ПолеФорматОписание
FUNCTIONString(15)Тип запроса (только payment)
IDString(32)Уникальный идентификатор ТСП
RRNNumeric(20)Уникальный номер транзакции
PAYERString(20)Идентификатор плательщика
AMOUNTDoubleСумма платежа
AMOUNT_FULLDoubleСумма исходного платежа
ACCOUNTNumeric(20)Номер лицевого счёта получателя в системе ТСП
MERCH_TYPENumeric(1)Тип магазина (0 – Юридическое лицо, 1 – Физическое лицо)
STATUSString(10)Статус платежа(payment - платеж)
DATETIMEString(25)Дата и время по ISO-8601 (YYYY-MM-DDThh:mm:ss±hh:mm)
SIGNString(32)Подпись запроса. Формируется на основании следующего правила:
md5(md5(ID).md5(FUNCTION).md5(RRN).md5(PAYER).
md5(AMOUNT).md5(ACCOUNT).md5(STATUS).
md5(password))
Параметр password является ключевым словом и выдается ТСП по защищенному каналу
Варианты ответа
ПолеОписание
OKУведомление успешно получено системой ТСП
ERRОшибка получения уведомления системой ТСП
Запрос на возврат

Для информирования ТСП об отмене платежа используется запрос от ПЦ в сторону ТСП по протоколу HTTP(S) с помощью метода GET или POST.

Параметры запроса
  • Обязательные параметры
ПолеФорматОписание
FUNCTIONString(15)Тип запроса (только refund)
IDString(32)Уникальный идентификатор ТСП
RRNNumeric(20)Уникальный номер транзакции
AMOUNTDoubleСумма возврата
STATUSString(10)Статус платежа(refund - возврат)
MERCH_TYPENumeric(1)Тип магазина(0 - Юридическое лицо, 1- Физическое лицо)
DATETIMEString(25)Дата и время по ISO-8601(YYY-MM-DDThh:mm:ss±hh:mm)
SIGNString(32)Подпись запроса. Формируется на основании следующего правила:
md5(md5(ID).md5(FUNCTION).md5(RRN).
md5(AMOUNT).md5(STATUS).md5(PASSWORD)
Параметр PASSWORD является ключевым словом и выдается ТСП по защищенному каналу
Варианты ответа
ПолеОписание
YESПолучатель платежа существует в системе ТСП
NOПолучатель не существует в системе ТСП
ERRОшибка проверки получателя в системе ТСП

Дополнительные сервисы

SMS & PAY

Для информирования ТСП о совершенном платеже (результата списания) для последующего учета в системе ТСП используется запрос от ПЦ в сторону ТСП.

Запрос на пополнение счёта

Для осуществления платежей по технологии SMS&PAY, ТСП инициирует запрос по протоколу HTTP(S) c помощью метода GET или POST. ТСП обязательно должно иметь соответствие лицевого счёта абонента и его номера мобильного телефона. Это необходимое условие для работы сервиса, так как отсутствие мобильного номера не позволит произвести списание средств с мобильного лицевого счёта в пользу лицевого счёта ТСП. Инициация осуществляется путем запроса на ПЦ, используя нижеописанной командой. Параметрами запроса будет являться IDfunctionACCOUNTNUMPHONEAMOUNTTEXT и SIGN.

Параметры запроса
  • Обязательные параметры
ПолеФорматОписание
FUNCTIONString(15)Тип запроса (только sms_pay)
IDNumeric(32)Уникальный идентификатор ТСП
NUMString(11)Номер отправителя SMS-уведомления
TEXTString(512)Текст SMS-уведомления в UTF-8, отправляемое абоненту
ACCOUNTNumeric(20)Номер лицевого счёта получателя в системе ТСП
PHONEString(11)Номер мобильного телефона счёта
SIGNString(32)Подпись запроса. Формируется на основании следующего правила:
md5(md5(ID).md5(FUNCTION). md5(ACCOUNT).md5(NUM).
md5(PHONE).md5(AMOUNT). md5(TEXT).md5(PASSWORD))
Параметр PASSWORD является ключевым словом и выдается ТСП по защищенному каналу
AMOUNTDoubleСумма платежа
CURRENCYString(3)Валюта платежа. Трёхбуквенное имя в соотв. с ISO-4217
Параметры ответа
ПолеОписание
AccountИдентификатор получателя
NumНомер отправителя
PhoneМобильный номер плательщика
AmountСумма платежа
StatusКод результата
Пример запроса
FUNCTION=sms_pay&ACCOUNT=12345&NUM=QWERTY&
PHONE=9147894125&AMOUNT=520.40&TEXT=PD94bWwgdmVyc2lvbiA9ICI&
CURRENCY=RUB&SIGN=PSAiaHR0cDovL3d3dy53M
Пример ответа
<MAIN>
  <Account>123456<Account>
  <Num>QWERTY<Num>
  <Phone>9645565854<Phone>
  <Amount>520.40<Amount>
  <Status>OK_PAY<Status>
<MAIN>
Запрос статуса транзакции

Для запроса статуса транзакции по технологии SMS&PAY ТСП  инициирует запрос по протоколу HTTP(S) c помощью метода GET или POST. Для использования данной функции ТСП обязательно должно при вызове команды sms_pay_status передавать уникальный номер транзакции RRN.

Параметры запроса
  • Обязательные параметры
  • Опциональные параметры (зависит от настроек)
ПолеФорматОписание
FUNCTIONString(15)Тип запроса (только sms_pay_status)
RRNAlpha Numeric(32)Идентификатор транзакции (Retrieval Reference Number)
Параметры ответа
ПолеОписание
RRNИдентификатор транзакции
AccountИдентификатор получателя
PhoneМобильный номер плательщика
StatusКод результата
Пример запроса
FUNCTION=sms_pay_status&RRN=000001123456789012
Пример ответа
<MAIN>
  <Account>123456<Account>
  <Num>QWERTY<num>
  <Phone>9645565854<Phone>
  <Status>OK_PAY<Status>
<MAIN>
Коды ответов

Элемент status  должен присутствовать во всех ответах от шлюза и может принимать следующие значения

ПолеОписание
NO_ANSWERАбонент не отправил запрос на платёж
OK_ANSWERАбонент отправил запрос на платёж
OK_PAYПлатёж успешно завершен
ERR_PAYОшибка при проведении платежа
×
  • Юридическим лицам
  • Физическим лицам
Подключиться

После подачи заявки с вами свяжется персональный менеджер ArsenalPay, который будет сопровождать вас на всех этапах подключения и дальнейшей работы
Переводы на карту для физических лиц
Без договора
Подробно о сервисе
переводы будут приходить на эту карту
(подойдет Visa или MasterCard)
на этот адрес будут приходить уведомления о переводах
Подключиться
Авторизация
Заполните поле email

×