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

Начать приём платежей

Банковскими картами

  1. Отправьте заявку на подключение.

  2. На вашу почту сразу придут все необходимые параметры для технической интеграции. Вы сможете незамедлительно начать интеграцию платежного виджета на ваш сайт.

  3. Необходимо подготовить сайт согласно требованиям международных платёжных систем, желательно до отправки документов в банк, это ускорит процесс подключения.

  4. Подготовьте сканы, либо фото документов для согласования вашего сервиса в банках. Результат согласования сообщается в течении 5 рабочих дней.

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

Баланс мобильного телефона

Раздел находится в стадии оформления.

Без сайта

Если у вас нет сайта, то вы можете принимать платежи на личной странице на сайте arsenalpay.ru в разделе Оплата услуг. Отправляйте своим клиентам вашу именную ссылку в социальных сетях, в чате на вашем сайте, мессенджерах или по электронной почте. Покупатель по ссылке переходит на вашу страницу и оплачивает покупку удобным ему способом. Напишите на pay@arsenalpay.ru и мы создадим для вас страницу.

Без юридического лица

Если у вас нет юрлица, то вы можете принимать переводы на свою банковскую карту. Для подключения нужны только ваш email и номер карты, на которую будут приходить переводы. Переводы поступают на карту мгновенно, а уведомления о каждом переводе приходят на ваш email. Вы сразу знаете кто и сколько денег вам перевел. После подключения вы получите персональную страницу для приема переводов. Размещайте ссылку на эту страницу в любых социальных сетях, например, ВКонтакте, в Одноклассниках или в Facebook. Отправляйте ее через WhatsApp или по почте. Все, у кого есть ссылка, смогут в любое время перевести вам деньги.

Также, вы можете встраивать форму переводов на вашу страницу. Если вам нужно настроить автоматические уведомления о платежах при помощи HTTP‑запросов, напишите на pay@arsenalpay.ru

54-ФЗ. Интеграция с онлайн кассой

С 1 июля 2017 года закон 54-ФЗ “О применении контрольно-кассовой техники” обязывает российские интернет-магазины после каждого платежа, в том числе банковской картой, использовать контрольно-кассовую технику, отправлять покупателю электронный чек в момент расчета и отправлять фискальный чек в налоговую. Если этого не сделать, магазин могут оштрафовать. Закон касается большинства интернет-магазинов и онлайн-сервисов. Подробнее на сайте налоговой.

Основные положения закона

Решение для наших клиентов

У нас есть готовое решение: выберите онлайн‑кассу, а мы поможем интегрировать ее с вашим сервисом. Мы будем отправлять данные для чека в онлайн-кассу, а она в ОФД и налоговую. Чтобы онлайн-касса заработала, нужно заключить договор с ОФД (оператор фискальных данных) и зарегистрировать свою кассу в налоговой.

Основные преимущества для вас:

Этапы подключения

  1. Возьмите в аренду онлайн-кассу у одного из наших партнеров.
    Сейчас мы поддерживаем:

    Оба подключены к операторам фискальных данных, подходят для соблюдения 54-ФЗ интернет магазинами и интегрированы с нами. Оба работают одинаково: у них арендуется касса, размещается в их датацентре, кассы регистрируются в ФНС, при каждом платеже передают данные через нас в ФНС.

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

  2. Партнер помогает заключить договор с оператором фискальных данных.

  3. Зарегистрировать онлайн-кассу в налоговой:

    • в личном кабинете юрлица
    • в личном кабинете ИП
  4. После регистрации онлайн-касс в налоговой, вам присвоят уникальный идентификатор кассы. Передайте его нам, чтобы мы прописали его у нас в системе.

  5. Чтобы после каждой покупки в вашем сервисе мы могли отправлять данные для чека в вашу онлайн-кассу и фискальные данные в ОФД, сайту необходимо передавать нам информацию о проданных товарах (наименование, цена, количество, сумма, ставка НДС) через HTTP-уведомление.

Отправка чека клиенту

По новому порядку применения ККТ, независимо от способа оплаты (наличные, электронные средства платежа, оплата в сети Интернет), интернет-магазин должен выдать чек покупателю в момент расчета (сразу же после прохождения оплаты): для интернет-платежей с использованием банковской карты отправлять чек на e-mail или по SMS.

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

При условии передачи нам email адреса или номера телефона покупателя, ArsenalPay может отправить чек автоматически. ОФД, также, может отправлять чек покупателю, но он берет за эту дополнительная плату. Обычно отправкой чеков занимается интернет-магазин, это лучше, так как коммуникации с его клиентом находятся под его контролем без вмешательства внешних компаний.

Как работает решение

  1. Клиент как обычно совершает покупку в вашем интернет-магазине. Вместе с запросом на оплату вы передаете нам данные для чека: названия товаров, количество, цены, ставку НДС и email или телефон покупателя.

  2. Мы отправляем вашей онлайн-кассе данные для чека и ждем ответ.

  3. Онлайн-касса формирует чек и отправляет в ОФД.

  4. ОФД регистрирует чек, присваивает чеку фискальные параметры и отправляет обратно онлайн-кассе.

  5. Онлайн-касса сообщает нам, что с чеком всё в порядке и мы отправляем вам сообщение об успешной оплате вместе с фискальными данными для отправки чека клиенту.

  6. ОФД один раз в сутки отправляет данные чека в налоговую.

Отсрочка

Для некоторых компаний есть отсрочка до 01.07.2018. Организации и ИП, применяющие ЕНВД, а также те ИП, которые используют патентную систему налогообложения, имеют право не применять ККТ в большинстве случаев. У них есть лишь обязанность выдать чек (либо документ, его заменяющий), по требованию покупателя. Это прописано в законе от 22 мая 2003 г. № 54-ФЗ. Однако обязанность применять кассовую технику у таких налогоплательщиков все равно появится, но только с 1 июля 2018 года.

Согласно сообщения Минфина от 30.05.2017 № 03-01-15/33121 и официального письма заместителя министра: если вы как минимум заключили договор на поставку касс, то штрафных санкций применяться не будет. Вы можете продолжать оказывать услуги и принимать платежи через сайт по старой схеме.

Партнерская программа

Вы ежемесячно получаете 10% от нашей прибыли по каждому клиенту, которому были подключены электронные платежи. Рассказывайте о продуктах и услугах ArsenalPay своим знакомым, и когда они захотят стать нашими клиентами, передайте их контактные данные нам любым удобным для вас способом. После их подключения, вы начнете получать ежемесячно свой доход. Клиентом может стать любая компания.

Все наши отношения строго конфиденциальны. Чтобы стать нашим агентом, отправьте заявку.

Подготовка сайта

Сайт магазина должен соответствовать указанным ниже требованиям и размещать следующую информацию:

  1. В интернет-магазине не должно быть ссылок или баннеров сайтов, а также ссылок баннерных сетей, противоречащих требованиям действующего законодательства Российской Федерации, в том числе подозрительных сайтов (например, сайтов для взрослых и т.п.), а также ссылок баннерных сетей, в которых могут всплыть баннеры подозрительного/запрещенного содержания.

  2. Логотипы Международных Платежных Систем (МПС) не должны вводить в заблуждение покупателей в отношении того, от чьего имени ведется бизнес. Следует использовать брендовую марку МПС в полном цвете, которая бы свидетельствовала о приеме соответствующих карт к оплате и использовании технологии 3D Secure. Актуальные изображения логотипов МПС можно скачать здесь.

  3. Наличие в интернет-магазине актуальной справочной информации о предприятии и/или о интернет-магазине, недвусмысленно описывающий род его деятельности. Обязательным условием является наличие в интернет-магазине страны, адреса места нахождения предприятия, адреса для корреспонденции (адрес не может быть до востребования), а также контактных телефонов предприятия, по которым покупатель может связаться со службой поддержки интернет-магазина.

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

    Контактная информация

    На сайте должна быть размещена информация об организации:
    адрес, номер телефона, реквизиты юридического лица.

    ООО «Интернет Магазин»
    8 (495) 11-22-333
    info@example.ru
    Почтовый адрес: г. Москва, ул. Ленина, д. 1, оф. 1
    Физический адрес: г. Москва, ул. Ленина, д. 1, оф. 1
    Юридический адрес: г. Москва, ул. Ленина, д. 1, оф. 1

  4. Перечень оказываемых интернет-магазином услуг, должен соответствовать перечню услуг предприятия, предлагаемых на странице сайта интернет-магазина. Услуги (с описанием потребительских характеристик, параметров электропотребления, габаритов и т.д.), а также тарифы (цены) на услуги в обязательном порядке должны быть описаны и размещены в полном объеме и регулярно обновляться с учетом изменения цен на услуги и наличии ассортимента услуг в интернет-магазине. Банк и платёжный сервис вправе проверять описанные на сайте интернет-магазина услуги и тарифы для того, чтобы неполная и/или неточная информация об услугах и тарифах не могла стать причиной операций возврата.

    Описание товаров и услуг

    На сайте продавца должно быть размещено подробное описание предлагаемых товаров и услуг. В обязательном порядке требуются: цена, характеристики товара/услуги, комплектация и гарантийные условия.

  5. Описание процедуры оплаты услуг с использованием карт должна быть доступна плательщикам без регистрации и до момента нажатия кнопки «Оплатить» или аналогичной по смыслу.

    Платежи. Оплата банковской картой онлайн

    На нашем сайте вы можете оплатить товар банковской картой Visa, MasterCard или Мир. После подтверждения выбранного товара откроется защищенное окно со страницей платёжного сервис провайдера ArsenalPay, где Вам необходимо ввести данные Вашей банковской карты. Для дополнительной аутентификации держателя карты используется протокол 3D Secure. Если Ваш банк поддерживает данную технологию, Вы будете перенаправлены на его сервер для дополнительной идентификации. Информацию о правилах и методах дополнительной идентификации уточняйте, пожалуйста, в банке, выдавшем Вам банковскую карту.

  6. Наличие в интернет-магазине информации о предоставлении услуг, такой как сроки, способы доставки, а также любой другой информации, необходимой для получения ясного представления о получении услуги после совершения операции оплаты с использованием карты.

    Правила доставки

    В этом разделе необходимо описать правила и условия доставки, если она предусмотрена.

    Возврат товаров

    Согласно постановления правительства РФ от 19 января 1998 г. в случае обнаружения недостатков товара, свойства которого не позволяют устранить их (продовольственные товары, парфюмерно-косметические изделия, товары бытовой химии и другие товары), покупатель вправе по своему выбору потребовать замены такого товара товаром надлежащего качества либо соразмерного уменьшения покупной цены. Вместо предъявления указанных требований покупатель вправе отказаться от приобретенного товара и потребовать возврата уплаченной за товар денежной суммы. При этом покупатель по требованию продавца и за его счет должен возвратить полученный товар ненадлежащего качества.

  7. Предприятие должно разместить информацию о способах ограничения и осуществления контроля рисков мошеннических операций, применяя возможности банка и платёжного сервис провайдера по борьбе с мошенническими операциями, путем реализации ограничений

    Гарантии безопасности онлайн платежей

    Процессинговый центр ArsenalPay защищает и обрабатывает данные Вашей банковской карты по максимальному международному стандарту безопасности — Payment Card Industry Data Security Standard 3.2 level 1 (сокращенно PCI DSS). Этот стандарт разработан платёжными системами Visa и MasterCard. Каждый год сертифицированные аудиторы проверяют, соответствует ли процессинговый центр всем требованиям и после этого выдают сертификат.

    Передача информации в платёжный шлюз происходит с применением технологии шифрования TLS. Дальнейшая передача информации происходит по закрытым банковским сетям, имеющим наивысший уровень надежности. ArsenalPay не передает данные Вашей карты нам и иным третьим лицам. Для дополнительной аутентификации держателя карты используется протокол 3D Secure.

    Предоставляемая Вами персональная информация (имя, адрес, телефон, email, номер кредитной карты) является конфиденциальной и не подлежит разглашению. Данные Вашей кредитной карты передаются только в зашифрованном виде и не сохраняются на нашем сервере.

    В случае, если у Вас есть вопросы по совершенному платежу, Вы можете обратиться в службу поддержки клиентов по электронной почте pay@arsenalpay.ru

  8. Все страницы, которые связаны с работой электронной витрины интернет-магазина должны находиться под единым доменным именем. Рекомендуется, чтобы домен интернет-магазина был доменом второго уровня. Например, www.site.ru.

  9. Рекомендуется полное соответствие юридического лица, на которое зарегистрировано доменное имя интернет-магазина и юридического лица предприятия, подключающего прием платежей. Юридическое лицо, на которое зарегистрировано доменное имя, устанавливается с помощью соответствующих баз данных в сети Интернет (БД РосНИИРоса, http://www.ripn.net:8080/nic/, http://www.ripe.net, http://www.whois.net).

  10. Сайт должен поддерживать защищенное HTTPS соединение с типом сертификата не ниже SSL123 с действительным сроком действия.

    • Если на сайте реализован личный кабинет, то:
      • процесс аутентификации пользователя должен быть защищен HTTPS;
      • процесс регистрации нового покупателя должен быть защищен HTTPS и защитой от подбора паролей роботами;
      • оформление услуги (ввод контактных данных, выбор доставки и т.д.) должно быть защищено HTTPS и защитой от подбора паролей роботами);
    • Если на сайте отсутствует личный кабинет, то:
      • оформление услуги (ввод контактных данных, выбор доставки и т.д.) должно быть защищено HTTPS и защитой от подбора паролей роботами.
  11. Панель управления (панель администратора) сайтом, при ее наличии, должна быть защищена HTTPS и защитой от подбора паролей роботами.

Требования к электронным витринам интернет-магазинов являются существенными условиями совершения операций оплаты услуг с использованием банковских карт в интернет-магазине предприятия и должны быть выполнены до начала проведения операций по договору. В требованиях отражены правила международных платёжных систем по предварительному анализу, технологии корректного обслуживания покупателей и последующего мониторинга интернет-магазина. Требования в полном объеме должны выполняться интернет-магазином. Предоставляемые предприятием услуги должны соответствовать требованиям действующего законодательства Российской Федерации, правилам, установленным Банком России и МПС.

Документы для договора

Требования к документам

Документы должны содержать подпись лица заверившего документ, с указанием фамилии, имени, отчества (при наличии) и наименование должности, а также оттиск печати (при наличии) или штампа Предприятия и дату заверения.

Сканируйте или делайте фотографию документов и отправляйте на pay@arsenalpay.ru

Юридические лица

  1. Свидетельство о регистрации юридического лица (для зарегистрированных до 01.01.2017).

  2. Свидетельство о постановке на налоговый учет.

  3. Свидетельство о внесении записи в Единый государственный реестр юридических лиц (для зарегистрированных до 01.07.2002г.).

  4. Устав (действующий, с учетом всех изменений, при регистрации изменений в устав в виде отдельного документа).

  5. Свидетельство (листы записи) о регистрации изменений в Уставе (при наличии).

  6. Решение (протокол) о назначении руководителя.

  7. Решение (протокол) о создании юридического лица.

  8. Доверенность в случае, если Предприятие действует в лице уполномоченного представителя по доверенности.

  9. Заполненные страницы паспорта уполномоченного представителя юридического лица.

  10. Лицензии (при их наличии).

ИП

  1. Для индивидуальных предпринимателей, зарегистрированных до 01.01.2017 — свидетельство о регистрации физического лица в качестве ИП, после 01.01.2017 — уведомление о постановке на учёт физического лица в налоговом органе.

  2. Заполненные страницы паспорта индивидуального предпринимателя или его уполномоченного представителя.

  3. Нотариальная доверенность в случае, если индивидуальный предприниматель действует в лице уполномоченного представителя по доверенности.

  4. Свидетельство о постановке физического лица на налоговый учёт.

Банки партнеры

Альфа-Банк
Акционерное общество “Альфа-Банк”. Генеральная лицензия Банка России № 1326 от 16 января 2015 года.

Банк ВТБ 24
Деятельность ВТБ 24 (ПАО) осуществляется в соответствии с генеральной лицензией Банка России № 1623 от 29.10.2014 года.

Газпромбанк
Акционерное общество “Газпромбанк”. Генеральная лицензия Банка России на осуществление банковских операций № 354 от 29.12.2014.

Раунд банк
ООО “банк Раунд”. Генеральная лицензия на осуществление банковских операций № 2506 от 14 ноября 2012 года.

Московский Индустриальный банк
ПАО “МИнБанк”. Генеральная лицензия Банка России № 912 от 26.08.2015 года.

РФИ банк
Акционерное общество Банк “Резервные финансы и инвестиции”. Лицензия на осуществление банковских операций № 3351, выданная Банком России 06 августа 2015 года.

Открытие
ПАО Банк “ФК Открытие”. Генеральная лицензия Банка России № 2209 от 24.11.2014.

Примсоцбанк
ПАО CКБ Приморья “Примсоцбанк”. Генеральная лицензия ЦБ РФ № 2733 от 21.08.2015 года.

Платёжные функции

Запоминание карт

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

Чем проще клиентам платить за покупки, тем больше успешных платежей.

Чтобы использовать эту опцию:

Автоплатежи

Воспользуйтесь этой опцией, если ваш сервис подразумевает приём регулярных платежей. Опция поможет вам:

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

Чтобы использовать эту опцию:

Предавторизация

Опцию также называют холдирование, заморозка или двухстадийное списание. Функция позволяет производить оплату с карты по команде со стороны магазина в два этапа. Сначала блокируется на карте сумма оплаты, затем после вашего дополнительного подтверждения списывается.

Опция даем вам уверенность, что у клиента есть нужная сумма и товар можно резервировать или готовить к отправке. Если заказ будет отменен или товара не будет в наличии, деньги можно вернуть клиенту, разморозив средства на его карте. Комиссия за такой возврат с магазина не взимается.

Чтобы использовать эту опцию:

Разделение платежей

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

Оплата происходит одним платежом, при этом платеж клиента автоматически распределяется на банковские реквизиты всех участников сделки.

Удобство для клиента:

Удобство для витрины:

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

Чтобы использовать эту опцию:

Массовые выплаты

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

Чтобы использовать эту опцию, напишите нам на pay@arsenalpay.ru

Маркетплейсы

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

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

Чтобы использовать эту опцию, напишите нам на pay@arsenalpay.ru

SMS рассылка и оплата

Отправляйте своим клиентам SMS с суммой необходимой для оплаты.

Например,
Ваш баланс 100 руб. Доступ в интернет будет закрыт через 3 дня. Отправьте “ОК 200” в ответном сообщении, чтобы пополнить счет на 200 руб.

Клиент совершает мгновенную оплату в ответном SMS. Деньги списываются с баланса его мобильного телефона или привязанной банковской карты.

Также, вы можете использовать этот инструмент для уведомления ваших пользователей о скидках, распродажах, бонусах за покупки, об изменении времени работы, поздравления клиентов с праздниками и многое другое.

Чтобы использовать эту опцию, напишите нам на pay@arsenalpay.ru

Функции описаны в разделе SMS уведомления и оплата.

Интеграция

Платёжный виджет

Платёжный виджет поддерживает прием платежей при помощи банковских карт, баланса мобильного телефона и электронных кошельков. Виджет автоматически определяет тип платёжной системы: Visa, MasterCard или МИР, а также, валидирует номер мобильного телефона всех операторов России. Виджет адаптирован для топовых браузеров, как для десктоп, так и для мобильных устройств. Виджет обеспечивает безопасность обработки данных банковских карт и не требует от магазина сертификации PCI DSS.

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

Платёжный виджет с редиректом

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

Платёжный виджет, встраиваемый на сайт

Виджет можно встроить на любую страницу вашего сайта. При таком методе интеграции пользователь производит оплату непосредственно на вашем сайте, без переходов на внешние страницы. Если у вас нет специалистов готовых внедрить виджет, мы возьмем всю техническую интеграцию на себя, напишите нам на pay@arsenalpay.ru.

Скопируйте код виджета и вставьте его на ваш сайт

Интеграция виджета

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

По-умолчанию, виджет приема платежей настроен с переходом на внешнюю страницу оплаты. Если вам нужен виджет встраиваемый в сайт, напишите на pay@arsenalpay.ru

Пример кода

<!doctype html>
<html lang="ru">

<head>
  <!-- скрипт виджета подключаем в любом месте,
       например, в head-->
  <script 
    type="text/javascript"
    id="arsenalpay-widget-script"
    src="https://arsenalpay.ru/widget/script.js">
  </script>
</head>  

<body>
  <!-- указываем html-элемент,
       в котором будет отображаться виджет -->
  <div id="app-widget"></div>

  <!-- инициализируем экземпляр виджета,
       после загрузки скрипта в head -->
  <script>
    var APWidget = new ArsenalpayWidget ({
                  element: 'app-widget',
                  widget: 38,
                  destination: 'demo-shop',
                  amount: amount
              });

    APWidget.render();
  </script>   
</body>
</html>
  1. Добавьте загрузку скрипта платежного виджета на вашу страницы, например, в секции head.

  2. Разместите HTML элемент в любое удобное место кода, где будет отображаться виджет.

  3. Инициализируйте экземпляр виджета при помощи класса ArsenalpayWidget. Используйте свойства и методы для настройки виджета под ваши задачи.

    Параметры можно передать в объект при инициализации или позже. Чтобы показать виджет, используйте метод render(). Чтобы его уничтожить, очистив память, используйте destroy(). В случае изменения таких свойств, как сумма, получатель, кошелек или номер телефона, эти значения изменятся и в виджете, переинициализировав себя заново.

  4. Настройте HTTP уведомления.

Если у вас нет специалистов, которые могут выполнить интеграцию, напишите нам на pay@arsenalpay.ru и мы настроим вам платежи своими силами.

Параметры класса ArsenalpayWidget

Поле Описание
element

String

Идентификатор HTML-элемента для отображения
widget

Numeric

Уникальный идентификатор виджета (выдается автоматически при регистрации)
destination

String

Идентификатор заказа или счета в магазине
amount

Double

Сумма платежа
phone

String

Номер телефона в 10-ти значном формате (например, 9001234455)
wallet

Numeric

Идентификатор кошелька плательщика
userId

Numeric

Идентификатор держателя карты (необходим для автоплатежей и запоминания карты)

HTTP уведомления

Уведомления (также, используются термины callback, webhook) позволяют обмениваться информацией между платёжной системой и магазином об успешных и неуспешных платежах, а также о различных других событиях. Обработку уведомлений вы можете реализовать как самостоятельно, так и при помощи готовых SDK. При подключении к платёжной системе при помощи платёжного виджета, SDK, низкоуровневого API или любого плагина для CMS, то уведомления о платежах будут приходить вам в виде http запросов. При использовании email протокола уведомления об успешных платежах будут приходить на вашу электронную почту.

Валидация параметров заказа перед платежом

Для проверки получателя платежа рекомендуется осуществлять запрос в систему магазина, и только после успешного ответа осуществлять запрос на проведение платежа. Запрос на проверку осуществляется по протоколу HTTPS с помощью метода POST.

Функция check

Поле Описание
id

String

Уникальный идентификатор магазина
function

String

Тип запроса ( check - проверка)
rrn

Numeric

Уникальный номер транзакции
payer

String

Идентификатор плательщика
amount

Double

Сумма фактического списания по платежу
amount_full

Double

Сумма исходного платежа
merch_type

Numeric

Тип магазина (0 - Юридическое лицо, 1 - Физическое лицо)
account

Char

Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина
status

String

Статус платежа ( check - проверка)
datetime

String

Дата и время по ISO-8601 (YYYY-MM-DDhh:mm:ss±hh:mm)
sign

String

Подпись запроса. Формируется на основании следующего правила:
md5(md5(id).md5(function).md5(rrn).md5(payer).
md5(amount).md5(account).md5(status).md5(password))
Параметр password является ключевым словом и выдается магазину по защищенному каналу

Варианты ответа

Формат ответа по-умолчанию - text/plain. Формат ответа “распределение платежа” - json.

// пример ответа "распределение платежа"
{
  "response": "код ответа (YES/NO/ERR)",
  "bdp": {
    "id": "идентификатор контрагента",
    "amount": "сумма для возмещения контрагенту",
    "feeV": "сумма комиссии витрины",
    "feePC": "сумма комиссии процессинга"
  }
}
Поле Описание
yes Получатель платежа существует в системе магазина
no Получатель не существует в системе магазина
err Ошибка проверки получателя в системе магазина

Платеж успешно проведен

Для информирования магазина о совершенном платеже (результате списания) для последующего учета в системе магазина используется запрос от платёжной системы в сторону магазина по протоколу HTTPS с помощью метода POST.

Функция payment

Поле Описание
id

String

Уникальный идентификатор магазина
function

String

Тип запроса ( payment - платеж)
rrn

Numeric

Уникальный номер транзакции
payer

String

Идентификатор плательщика
amount

Double

Сумма фактического списания по платежу
amount_full

Double

Сумма исходного платежа
account

Char

Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина
merch_type

Numeric

Тип магазина (0 - Юридическое лицо, 1 - Физическое лицо)
status

String

Статус платежа ( payment - платеж)
datetime

String

Дата и время по ISO-8601 (YYYY-MM-DDhh:mm:ss±hh:mm)
sign

String

Подпись запроса. Формируется на основании следующего правила:
md5(md5(id).md5(function).md5(rrn).md5(payer).
md5(amount).md5(account).md5(status).md5(password))
Параметр password является ключевым словом и выдается магазину по защищенному каналу

Варианты ответа

Формат ответа по-умолчанию - text/plain.

Поле Описание
ok Уведомление успешно получено магазином
err Ошибка получения уведомления магазином

Платеж отклонен

Для информирования магазина об отклонении платежа (отказ в списании по какой-либо причине) для последующего учета в системе магазина используется запрос от платёжной системы в сторону магазина по протоколу HTTPS с помощью метода POST.

Функция cancel

Поле Описание
id

String

Уникальный идентификатор магазина
function

String

Тип запроса ( cancel - отклонен)
rrn

Numeric

Уникальный номер транзакции
payer

String

Идентификатор плательщика
amount

Double

Сумма фактического списания по платежу
amount_full

Double

Сумма исходного платежа
account

Char

Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина
merch_type

Numeric

Тип магазина (0 - Юридическое лицо, 1 - Физическое лицо)
status

String

Статус платежа ( cancel - отклонен)
datetime

String

Дата и время по ISO-8601 (YYYY-MM-DDhh:mm:ss±hh:mm)
sign

String

Подпись запроса. Формируется на основании следующего правила:
md5(md5(id).md5(function).md5(rrn).md5(payer).
md5(amount).md5(account).md5(status).md5(password))
Параметр password является ключевым словом и выдается магазину по защищенному каналу

Варианты ответа

Формат ответа по-умолчанию - text/plain.

Поле Описание
ok Уведомление успешно получено магазином
err Ошибка получения уведомления магазином

Платеж отменен

Для информирования магазина о полной отмене платежа используется запрос от платёжной системы в сторону магазина по протоколу HTTPS с помощью метода POST.

Функция reverse

Поле Описание
id

String

Уникальный идентификатор магазина
function

String

Тип запроса ( reverse - отмена)
rrn

Numeric

Уникальный номер транзакции
payer

String

Идентификатор плательщика
amount

Double

Сумма фактического списания по платежу
amount_full

Double

Сумма исходного платежа
account

Char

Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина
merch_type

Numeric

Тип магазина (0 - Юридическое лицо, 1 - Физическое лицо)
status

String

Статус платежа ( reverse - отмена)
datetime

String

Дата и время по ISO-8601 (YYYY-MM-DDhh:mm:ss±hh:mm)
sign

String

Подпись запроса. Формируется на основании следующего правила:
md5(md5(id).md5(function).md5(rrn).md5(payer).
md5(amount).md5(account).md5(status).md5(password))
Параметр password является ключевым словом и выдается магазину по защищенному каналу

Варианты ответа

Формат ответа по-умолчанию - text/plain.

Поле Описание
ok Уведомление успешно получено магазином
err Ошибка получения уведомления магазином

Возврат платежа

Для информирования магазина о возврате платежа клиенту используется запрос от платёжной системы в сторону магазина по протоколу HTTPS с помощью метода POST.

Функция refund

Поле Описание
id

String

Уникальный идентификатор магазина
function

String

Тип запроса ( refund - возврат)
rrn

Numeric

Уникальный номер транзакции
payer

String

Идентификатор плательщика
amount

Double

Сумма фактического списания по платежу
status

String

Статус платежа ( refund - возврат)
merch_type

Numeric

Тип магазина (0 - Юридическое лицо, 1 - Физическое лицо)
datetime

String

Дата и время по ISO-8601 (YYYY-MM-DDhh:mm:ss±hh:mm)
sign

String

Подпись запроса. Формируется на основании следующего правила:
md5(md5(id).md5(function).md5(rrn).md5(payer).
md5(amount).md5(account).md5(status).md5(password))
Параметр password является ключевым словом и выдается магазину по защищенному каналу

Варианты ответа

Формат ответа по-умолчанию - text/plain.

Поле Описание
ok Уведомление успешно получено магазином
err Ошибка получения уведомления магазином

Периодический платеж изменен

Раздел находится в стадии оформления.

Проверка подлинности уведомлений

SSL сертификаты

Для обеспечения дополнительной безопасности возможен обмен сертификатами. Если вам необходимо этот вариант, напишите на pay@arsenalpay.ru

Общая схема работы с сертификатами:

Цифровая подпись

Цифровая подпись sign генерируется по ключевым данным запроса, а также, по секретному паролю, передаваемому по защищенному каналу на этапе интеграции магазина и представляет из себя контрольную сумму запроса с использованием 128-битного алгоритма хеширования (описан в RFC 1321)). Для каждого запроса есть своя формула расчета цифровой подписи. Описание расчета приведено в соответствующих разделах API.

IP фильтрация

IP адреса платёжного шлюза, с которых отправляются уведомления 91.142.82.240/29. Настройте свои системы для работы только с этими IP адресами для обеспечения безопасности обмена данными.

Магазин предоставляет IP адреса своих хостов, которые участвуют в информационном обмене. Мы прописываем их на своей стороне.

Email уведомления

Если у вас нет сайта или нет необходимости настраивать http уведомления, но вам необходимо получать уведомления о каждом платеже, напишите на pay@arsenalpay.ru

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

Плагины для CMS

Если ваш сайт разработан на CMS, значит для вас уже есть готовый плагин, просто установите его. Если плагина для вашей CMS нет в списке, то можете использовать подключение через платежный виджет. Также, напишите на pay@arsenalpay.ru и мы обязательно добавим отсутствующий плагин.

VirtueMart 1.1.x, OpenCart 2.3.x, OpenCart 2.x, Webasyst Shop Script 7, Netcat, WooCommerce, WebAsyst Shop Script, OpenCart 1.5.x, Bitrix, Prestashop, VirtueMart, Joomshopping.

SDK

Готовые библиотеки для работы с ArsenalPay API. Внедряется (скопировал - вставил) как модуль к одной из поддерживаемых нами платформ. Сила, простота и элегантность в нескольких строках кода.

Примеры кода.

Все SDK (Java, PHP, Ruby, Python, JavaScript и тд) на GitHub.

SDK для Android и iOS

Помимо обычных SDK, у нас есть SDK для мобильных приложений. Они легко внедряются в ваше iOS или Android приложение. Приём платежей в мобильном приложении происходит полностью нативно только для мобильной коммерции (оплата с мобильного).

iOS, Android.

API

Набор методов, позволяющих магазину реализовать на своей стороне приём платежей. Максимально гибкий способ интеграции удовлетворит потребности крупных компаний.

API доступно по адресу https://arsenalpay.ru/api/ и включает в себя работу с платежными функциями и дополнительными сервисами, перечень которых постоянно расширяется.

Онлайн тестирование API доступно по адресу https://arsenalpay.ru/api/doc/

Для того, чтобы начать работать с API, нужно:

  1. Зарегистрироваться в нашей системе и получить демо-доступ.

  2. Сообщить вашему персональному менеджеру о желании работать с API, либо написать нам об этом на pay@arsenalpay.ru

  3. Получить от нас индивидуальные учетные данные (идентификатор и ключ).

  4. Пройти авторизацию и получить временный токен.

  5. Использовать полученный токен для работы с методами API

API реализовано на основе REST-архитектуры. На входе обрабатываются HTTP-запросы с методами GET, POST, PUT, DELETE (в зависимости от вызываемого метода), а на выходе - ответ в JSON-формате. При успехе выполнения запроса, сервер вернет HTTP-код “200” и тело JSON-ответа в соответствии с описанием использованного метода. В случае ошибки, HTTP-код ответа сервера будет соответствовать возникшей ошибке и содержать HTTP-код ответа и текст сообщения об ошибке.

Пример ответа сервера при ошибке

{
  "code": HTTP_CODE,
  "message": "Расшифровка текста ошибки"
}

Пример кодов ответов (HTTP_CODE) при возникновении ошибок:

Авторизация

POST {{apiUrl}}/oauth2/token

Метод авторизации

// Пример запроса
https://arsenalpay.ru/api/oauth2/token
// Пример тела запроса
{
  "client_id": "k0c084sww0o7gw4k0cws4cg00ocw0gw4cа6hmw47b6xpc0swk",
  "client_secret": "oswo44woogksogcocs4g4okoo6a18sgd7pv8cck4ckcc4c04cw",
  "grant_type": "client_credentials"
}
// Пример ответа
{
  "access_token": "токен для работы с методами",
  "expires_in": "время жизни токена", // значение по умолчанию 3600 секунд
  "token_type": "тип токена", // значение по умолчанию “Bearer”
  "scope": "область доступа"  // значение по умолчанию “”
}

Реализована на основе протокола OAuth2. Принцип авторизации состоит в том, что клиенту изначально выдается идентификатор (client_id) и секретный ключ (client_secret), которые используются для получения временного токена (access_token). Этот токен в дальнейшем используется для доступа к методам API. Он может передаваться дополнительным GET-параметром через URL, либо через заголовок “Authorization (Bearer)”.

Параметры:

Методы

Получение информации по транзакции

GET {{apiUrl}}/v1/transactions/{{id}}
(скоуп “read_transactions”)

Метод получения информации по транзакции

// Пример запроса
https://arsenalpay.ru/api/v1/transactions/558786567
// Пример ответа
{
  "id": "id транзакции",
  "source": "источник (номер карты, номер телефона, номер кошелька)",
  "destination": "назначение",
  "amount": "сумма",
  "date": "дата создания",
  "status": "статус" // см. перечень значений в таблице "Статусы транзакций"
}

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



Обновление транзакции

PUT {{apiUrl}}/v1/transactions/{{id}}
(скоуп “update_transactions”)

Метод обновления транзакции

// Пример запроса
https://arsenalpay.ru/api/v1/transactions
// Пример тела запроса
{
  "status": "hold", // новый статус транзакции, обязательный
  "amount": "500" //сумма транзакции, необязательный
}
// Пример ответа
{
   "code": 200,
   "id": "id транзакции",
   "message": "Статус транзакции успешно изменен"
}

Данный метод позволяет проводить операции по обновлению некоторых атрибутов транзакций в зависимости от текущего статуса. К примеру, для транзакций в статусе “hold” (зарезервирован) можно провести операцию “payment” (оплачен).



Возврат транзакции

DELETE {{apiUrl}}/v1/subscriptions/{{subscriptionId}}
(скоуп “read_transactions”)

Метод возврата транзакции

// Пример запроса
https://arsenalpay.ru/api/v1/transactionRefunds
// Пример тела запроса
{
  "id": "4675856", // идентификатор транзакции, обязательный
  "returnAmount": "500", // сумма возврата по транзакции, обязательный
  "comment": "Возврат бракованного товара", // комментарий к возврату, необязательный
  "email": "payshop@emai.com", // емейл партнера для информирования, необязательный
}
// Пример ответа
{
  "code": HTTP CODE,
  "id": "id транзакции",
  "message": "Запрос на возврат успешно создан"
}

Данный метод позволяет инициировать возврат “refund”, в том числе и частичный, по транзакции, находящейся в статусе “payment” (оплачен). При этом, если запрос на возврат идет на полную сумму транзакции и в те же астрономические сутки по времени процессинга, то автоматически он будет преобразован в запрос на отмену транзакции - “reversal”.



Получение списка подписок

GET {{apiUrl}}/v1/subscriptions
(скоуп “read_subscriptions”)

Метод получения списка подписок

// Пример запроса
https://arsenalpay.ru/api/v1/subscriptions?maskedPan=424242xxxx4242&userId=108A72ACBD46C5B8CFF6B
// Пример ответа
{
  "total": "Общее количество подписок",
  "items": [{
    "id": "идентификатор подписки",
    "userId": "идентификатор плательщика",
    "maskedPan": "маскированный номер карты",
    "frequency": "частота подписки в днях",
    "amount": "сумма платежа в подписке в рублях",
    "destination": "назначение платежа",
    "endDate": "дата окончания подписки",
    "lastDate": "дата последней отправки по подписке",
    "nextDate": "дата следующей отправки по подписке"
  }]
}

Данный метод позволяет получить подписки плательщиков на авто-платежи (рекуррентные платежи)

Параметры:

Удаление подписки

DELETE {{apiUrl}}/v1/subscriptions/{{subscriptionId}}
(скоуп “update_subscriptions”)

Метод удаления подписки

// Пример запроса
https://arsenalpay.ru/api/v1/subscriptions/558786567
// Пример ответа
{
  "deleted": true,
  "id": "идентификатор подписки"
}

Данный метод позволяет удалить (отключить) подписку на авто-платеж (рекуррентный платеж) по его идентификатору



Создание фискального документа

POST {{apiUrl}}/v1/fiscalDocuments
(скоуп “create_fiscal_documents”)

Метод создания фискального документа

// Пример запроса
https://arsenalpay.ru/api/v1/fiscalDocuments
// Пример тела запроса
{
  "id":"внешний идентификатор документа", // Идентификатор документа внешней системы, уникальный среди всех документов, отправляемых в данную группу ККТ. Тип данных – строка до 256 символов.
  "type": "тип операции", // см. перечень значений в таблице "Типы операций"
  "receipt": {
    "attributes": { // атрибуты чека
      "email": "электронная почта плательщика", // длина строки не более 64 символов. В запросе обязательно должно присутствовать одно из полей: email или phone.
      "phone": "мобильный номер плательщика" // 10 цифр в федеральном формате (без префикса “+7”), длина строки не более 64 символов. В запросе обязательно должно присутствовать одно из полей: email или phone.
    },
    "items":[{ // массив позиций в чеке, от 1 до 100 позиций
      "name":"Название товара или услуги", // длина строки не более 64 символов
      "price": "цена в рублях", // целая часть не более 8 знаков, дробная часть не более 2 знаков
      "quantity": "количество", // целая часть не более 8 знаков, дробная часть не более 3 знаков
      "sum": "сумма в рублях", // целая часть не более 8 знаков, дробная часть не более 2 знаков. Если значение sum меньше значения (price*quantity), то разница является скидкой
      "tax":"размер налога в ККТ", // см. перечень значений в таблице "Размер налога в ККТ"
      "tax_sum": "сумма налога в рублях" // целая часть не более 8 знаков, дробная часть не более 2 знаков
    }]
  }
}

Данный метод отправляет запрос на регистрацию фискального документа в облачном ККТ и ФНС.

Типы операций (поле “type”)

Значение Описание
sell приход
// Пример ответа
{
  "code": 201,
  "message": "Ресурс успешно создан"
}

Размер налога в ККТ (поле “tax”)

Значение Описание
none без НДС
vat0 НДС по ставке 0%
vat10 НДС чека по ставке 10%
vat18 НДС чека по ставке 18%
vat110 НДС чека по расчетной ставке 10/110
vat118 НДС чека по расчетной ставке 18/118





Получение фискального документа

GET {{apiUrl}}/v1/fiscalDocuments/{{id}}
(скоуп “read_fiscal_documents”)

Метод получения фискального документа

// Пример запроса
https://arsenalpay.ru/api/v1/fiscalDocuments/55927865
// Пример ответа
{
  "id": "внешний идентификатор документа", // Идентификатор документа внешней системы, уникальный среди всех документов, отправляемых в данную группу ККТ. Тип данных – строка до 256 символов.
  "status": "статус документа в ОФД",// см. перечень значений в таблице "Статусы документа в ОФД"
  "errorCode": "код ошибки от ОФД",// см. перечень значений в таблице "Коды ошибок от ОФД"
  "document": "содержание документа",
}

Данный метод позволяет запросить информацию о статусе фискального документа и его содержимое по внешнему идентификатору

Статусы документа в ОФД (поле “status”)

Значение Описание
fail ошибка
wait ожидание

Коды ошибок от ОФД (поле “errorCode”)

Код ошибки Описание
1 Ошибка при парсинге JSON
2 Ошибка в значении операции
3 Передано некорректное значение операции
4 Передан некорректный токен
5 Переданный токен не выдавался
6 Срок действия переданного токена истёк

Статусы транзакций

Статус Описание
init Создан
cancelinit Отклонен
payment Оплачен
hold Зарезервирован
refund Возвращён
reversal Отменен





Получение списка 3ds хостов

GET {{apiUrl}}/v1/acsHosts
(скоуп “read_acs_hosts”)

Метод получения списка 3ds хостов

// Пример запроса
https://arsenalpay.ru/api/v1/acsHosts
// Пример тела запроса
{
  "dateFrom": "01.12.17" // искать с указанной даты, необязательный
}
// Пример ответа
{
  "total": "Общее количество записей",
    "items":[{
        "id": 1,
        "host": "https://acs3.sbrf.ru",
        "createdDate": "2017-06-26 07:58:52"
      },
      {/*...*/}
    ]
}

Данный метод позволяет получить список 3DS-хостов банков-эмитентов. Список постоянно пополняется, поэтому можно получать список в аддитивном режиме, то есть только новые хосты, добавленные после указанной даты.

Платежи банковскими картами

Набор методов, позволяющих магазину реализовать на своей стороне приём платежей при помощи банковских карт. Для этого вам необходимо заполнить лист самооценки SAQ A-EP и ежеквартально проходить ASV сканирование (требования PCI DSS). После этого вам станет доступен API приема платежей по токену карточных данных. Вы сможете получать карточные данные от клиента из любой формы на сайте магазина и передавать их в специальный скрипт на стороне ArsenalPay, который шифрует данные и создает токен для их безопасной передачи между магазином и платежным сервисом.

Проведение платежа

Функция позволяет совершить разовый платеж.

Функция make_payment

Пример запроса

function=make_payment&rrn=000001123456789012&
sid=D5EAA1DD&currency=rub&
amount=100&source=paycard

Параметры ответа

Значение Описание
sid

Alpha Numeric

Идентификатор доступа
token

String

Токен платежных данных держателя карты
account

String

Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина
amount

Numeric

Сумма платежа
currency

String

Валюта платежа. Трёхбуквенное мнемоническое имя в соотв. с ISO-4217
date

YYYYMMDD

Дата операции
time

HHMMSS

Время операции
source

String

Источник платежа. Возможные варианты: mk, paycard, wallet, poscard, operator (ручные проверки оператора)
description

String

Свободное описание платежа
email

String

Email клиента, на который будет отправлена квитанция об оплате
any_data

String

Любые дополнительные данные для платежа

Пример ответа

<xml>
  <arsenalpay_api version="1.2">
    <response>ok</response>
    <accountinfo>
      <rrn>00000112345678012</rrn>
      <account>12345</account>
      <currency>rub</currency>
      <amount>100</amount>
    </accountinfo>
  </arsenalpay_api>
</xml>

Параметры ответа

Поле Описание
response Код ответа
rrn Идентификатор транзакции
account Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина (из запроса)
currency Код валюты
amount Сумма платежа
date Дата операции
time Время операции

Платежная система проверяет выполнение следующих условий:

Запоминание карты

Функция запоминания карты доступна только в безопасном режиме инициализации платежного виджета. Для этого вы должны сообщить ArsenalPay о необходимости включения данного режима и добавить следующие дополнительные параметры инициализации виджета:

Пример кода инициализации виджета в безопасном режиме:

<?php
$userId = 'XXX';
$destination = 'XXX';
$amount = XXX;
$widget = XXX;
$widgetKey = 'XXX';
$nonce = md5(microtime(true).mt_rand(100000, 999999));
$signParam = "$userId;$destination;$amount;$widget;$nonce";
$widgetSign = hash_hmac('sha256', $signParam, $widgetKey);
?>
<!doctype html>
<html lang="ru">
<head>
  <!-- скрипт виджета подключаем в любом месте, например, в head-->
  <script 
    type="text/javascript"
    id="arsenalpay-widget-script"
    src="https://arsenalpay.ru/widget/script.js">
  </script>
</head>  
<body>
  <!-- указываем html-элемент, в котором будет отображаться виджет -->
  <div id='arsenalpay-widget'></div>  
  <!-- инициализируем экземпляр виджета, после загрузки скрипта в head -->
  <script>
    var widget = new ArsenalpayWidget();
    widget.element = 'arsenalpay-widget';
    widget.widget = <?=$widget?>;
    widget.destination = '<?=$destination?>';
    widget.amount = <?=$amount?>;
    widget.userId = '<?=$userId?>';
    widget.nonce = '<?=$nonce?>';
    widget.widgetSign = '<?=$widgetSign?>';
    widget.render();
  </script>   
</body>
</html>

Параметры класса ArsenalpayWidget (безопасный режим)

Поле Описание
nonce

String

Случайно сгенерированное значение, например,
$nonce = md5(microtime(true) . mt_rand(100000, 999999));
widgetSign

String

Подпись запроса. Формируется путем получения HMAC SHA256 от строки, полученной путем конкатенации параметров класса ArsenalpayWidget через точку с запятой в порядке, например:
$signParam = "$userId;$destination;$amount;$widget;$nonce";
$widgetSign = hash_hmac('sha256', $signParam, $widgetKey);
Параметр widgetKey является ключевым словом и выдается магазину по защищенному каналу.
В случае, если параметры destination и amount необязательные, вместо них в формулу подписи ставится пустое значение, например:
$signParam = "$userId;;;$widget;$nonce";
userId

String

Идентификатор держателя карты в системе магазина, например: внутренний уникальный идентификатор, логин в личном кабинете, email, номер договора и т.д.

Если инициализация виджета в безопасном режиме прошла успешно, то на форме ввода карточных данных появится чекбокс “Запомнить мою карту”. При его активации после успешно проведенного платежа пользователю не придется повторно вводить все данные карты (номер, дата истечения) - достаточно ввести только секретный код CVC или 3DS-пароль (в зависимости от типа карты).

Отмена платежа

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

Функция reverse

Раздел находится в стадии оформления.

Возврат платежа

Функция возврата платежа, в том числе частичного. Производится либо позже, чем сутки списания (по MSK), либо с суммой, меньшей, чем сумма списания. Клиент получит деньги только после того, как запрос обработает банк-эмитент. Обычно это занимает 2-3 рабочих дня.

Пример запроса

function=refund&rrn=000001123456789012&
sid=D5EAA1DD&amount=100

Функция refund

Поле Описание
rrn

Alpha Numeric

Идентификатор платежа
sid

Alpha Numeric

Идентификатор доступа
amount

Double

Сумма платежа
date

YYYYMMDD

Дата операции
time

HHMMSS

Время операции

Пример ответа

<xml>
  <arsenalpay_api version="1.2">
    <response>ok</response>
      <accountinfo>
        <rrn>000001123456789012</rrn>
        <amount>100.20</amount>
      </accountinfo>
  </arsenalpay_api>
</xml>

Параметры ответа

Поле Описание
response Код ответа
rrn Идентификатор транзакции
amount Сумма возврата
date Дата операции
time Время операции

Просмотр транзакции

Для просмотра информации о транзакции используйте функцию get_trans_info с указанием номера интересующей транзакции. Если транзакция с этим номером была найдена, система отобразит информацию о ней.

Функция get_trans_info

Поле Описание
rrn

Alpha Numeric

Идентификатор платежа

Раздел находится в стадии оформления.

Автоплатежи банковскими картами

Функционал позволяет совершать оплату без участия клиента по токену карты. После первой оплаты или авторизации на 1 рубль, платежный сервис назначает платежным данным держателя карты специальный уникальный идентификатор — токен, который можно безопасно хранить и использовать для автоплатежей.

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

Создание автоплатежа

Раздел находится в стадии оформления.

Изменение автоплатежа

Раздел находится в стадии оформления.

Отмена автоплатежа

Раздел находится в стадии оформления.

Статус автоплатежа

Раздел находится в стадии оформления.

Список автоплатежей

Раздел находится в стадии оформления.

Баланс мобильного телефона

Функционал позволяет оплачивать заказ при помощи баланса мобильного телефона. Покупатель указывает номер мобильного телефона, с которого нужно списать деньги и нажимает Оплатить. На телефон придет смс от мобильного оператора с кодом для подтверждения оплаты. После подтверждения оплаты, придет смс об успехе платежа.

Для инициализации платежа магазин выполняет запрос по протоколу HTTPS с использованием метода POST.

Пример запроса

id=1025&function=init_pay_mk&account=12345&
phone=9147894125&amount=52.40&currency=rub&
sign=PSAiaHR0cDovL3d3dy53M

Функция init_pay_mk

Поле Описание
id

Numeric

Уникальный идентификатор магазина
account

Char

Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина
phone

Numeric

Номер мобильного телефона клиента (MSISDN)
amount

Double

Сумма платежа
sign

String

Подпись запроса. Формируется по правилу:
md5(md5(id).md5(function).md5(account).
md5(phone).md5(amount).md5(password))
Параметр password является ключевым словом и выдаётся магазину по защищённому каналу
currency

String

Валюта платежа. Трёхбуквенное мнемоническое имя в сотв. с ISO-4217

Пример ответа

<main>
  <rrn>657456755678</rrn>
  <account>123456</account>
  <phone>9147894125</phone>
  <amount>52.40</amount>
  <status>ок</status>
</main>

Параметры ответа

Поле Описание
rrn Уникальный номер транзакции
account Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина (из запроса)
phone Федеральный мобильный номер пользователя (из запроса)
amount Сумма платежа (из запроса)
status Результат платежа

SMS уведомления и оплата

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

Магазин инициирует запрос по протоколу HTTPS с помощью метода POST. Магазин обязательно должен иметь соответствие идентификатора абонента и его номера мобильного телефона. Это необходимое условие для работы сервиса, так как отсутствие мобильного номера не позволит произвести списание средств со счёта мобильного телефона в пользу магазина.

Пример запроса

function=sms_pay&account=12345&num=QWERTY&
phone=9147894125&amount=520.40&text=PD94bWwgdmVyc2lvbiA9ICI&
currency=rub&sign=PSAiaHR0cDovL3d3dy53M

Функция sms_pay

Поле Описание
id

Numeric

Уникальный идентификатор магазина
num

String

Номер отправителя SMS-уведомления
text

String

Текст SMS-уведомления в UTF-8, отправляемое абоненту
account

Char

Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина
phone

String

Номер мобильного телефона счёта
sign

String

Подпись запроса. Формируется на основании следующего правила:
md5(md5(id).md5(function). md5(account).md5(NUM).
md5(phone).md5(amount). md5(text).md5(password))
Параметр password является ключевым словом и выдается магазину по защищенному каналу
amount

Double

Сумма платежа
currency

String

Валюта платежа. Трёхбуквенное имя в соотв. с ISO-4217

Пример ответа

<main>
  <account>123456</account>
  <num>QWERTY</num>
  <phone>9645565854</phone>
  <amount>520.40</amount>
  <status>ok_pay</status>
</main>

Параметры ответа

Поле Описание
account Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина (из запроса)
num Номер отправителя
phone Мобильный номер плательщика
amount Сумма платежа
status Код результата

Электронные кошельки

Для инициализации платежа магазина выполняет запрос по протоколу HTTPS с использованием метода POST. Предполагается, что payer_id и номер лицевого счёта абонента магазина достоверно получило с помощью собственных форм авторизаций.

Пример запроса

id=1025&function=init_pay_wallet&account=12345&
payer_id=9147894125&amount=52.40&currency=rub&
sign=PSAiaHR0cDovL3d3dy53M

Функция init_pay_wallet

Поле Описание
id

Numeric

Уникальный идентификатор магазина
account

Char

Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина
payer_id

Numeric

Идентификатор электронного кошелька
wallet_id

Numeric

Тип электронного кошелька (1 - Qiwi, 2 - WebMoney, 3 - Yandex.Money)
amount

Double

Сумма платежа
sign

String

Подпись запроса. Формируется по правилу:
md5(md5(id).md5(function).md5(account).
md5(payer_id).md5(amount).md5(password))
Параметр password является ключевым словом и выдаётся магазину по защищённому каналу
currency

String

Валюта платежа. Трёхбуквенное мнемоническое имя в сотв. с ISO-4217

Пример ответа

<main>
  <rrn>657456755678</rrn>
  <account>123456</account>
  <payer_id>9147894125</payer_id>
  <amount>52.40</amount>
  <status>ok</status>
</main>

Параметры ответа

Поле Описание
rrn Уникальный номер транзакции
account Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина (из запроса)
payer_id Идентификатор электронного кошелька
amount Сумма платежа
status Результат платежа

Дополнительные API

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

Для запроса статуса транзакции магазин инициирует запрос по протоколу HTTPS с помощью метода POST. При вызове команды init_pay_status обязательно передавайте уникальный номер транзакции rrn.

Пример запроса

id=1025&function=init_pay_status&
rrn=123456789&&sign=PSAiaHR0cDovL3d3dy53M

Функция init_pay_status

Поле Описание
id

Numeric

Уникальный идентификатор магазина
rrn

Numeric

Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина
sign

String

Подпись запроса. Формируется по правилу:
md5(md5(id).md5(function).md5(rrn).md5(password))
Параметр password является ключевым словом и выдаётся магазину по защищённому каналу

Пример ответа

<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>

Параметры ответа

Поле Описание
rrn Уникальный номер транзакции
account Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина (из запроса)
phone Федеральный мобильный номер пользователя
amount Сумма платежа
datetime Время совершения транзакции
status Код результата

Финансовые итоги

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

Пример запроса

function=totals&stan=123456&sid=D5EAA1DD&
from=20020510140000&to=200205111400
amount=100&source=paycard

Функция totals

Поле Описание
sid

Alpha Numeric

Идентификатор доступа
from

YYYYMMDDHHMMSS

Начало периода
to

YYYYMMDDHHMMSS

Конец периода
stan

Numeric

Идентификатор запроса (6-разрядный)

Пример ответа

<xml>
  <arsenalpay_api version="1.2">
    <stan>123456</stan>
    <response>ok</response>
    <totals currency="rub">
      <credits number="2">500.20</credits>
      <debits number="0">0</debits>
    </totals>
    <payment>
    </payment>
  </arsenalpay_api>
</xml>

Параметры ответа

Поле Описание
stan Идентификатор запроса
response Код ответа
totals Валюта платежей ( currency )
credits Сумма пополнений
credits Количество пополнений ( number )
debits Сумма списаний
rrn Идентификатор транзакции
date Дата платежа
time Время платежа
phone Мобильный номер плательщика
account Произвольный параметр, обычно назначение платежа или лицевой счет клиента в системе магазина (из запроса)
amount Сумма платежа
currency Валюта платежа
reference Дополнительный идентификатор

Платежная система проверяет выполнение следующих условий:

Транзакционный отчёт

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

Пример запроса

function=report&stan=123456&sid=D5EAA1DD&
from=20020510140000&to=200205111400
amount=100&source=paycard

Функция report

Поле Описание
sid

Alpha Numeric

Идентификатор доступа
from

YYYYMMDDHHMMSS

Начало периода
to

YYYYMMDDHHMMSS

Конец периода
stan

Numeric

Идентификатор запроса (6-разрядный)

Пример ответа

<xml>
  <arsenalpay_api version="1.2">
    <stan>123456</stan>
    <response>ok</response>
    <totals 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>
  </arsenalpay_api>
</xml>

Параметры ответа

Поле Описание
stan Идентификатор запроса
response Код ответа
totals currency Валюта итогов
credits number Количество кредитовых операций
debits number Код валюты

Платежная система проверяет выполнение следующих условий:

Аутентификация

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

Использование функций login / logout подразумевает сессионный характер на сообщениями. Сессионность поддерживается с помощью специализированной переменной идентификатора сессии (sid). Платежная система при старте автоматически создает заданное количество сессий и поддерживает их в активном состоянии. Для дополнительной аутентификации канала связи может использоваться клиентский SSL-сертификат. В качестве ответа платёжная система формирует xml-сообщение о результатах операции. Информационный обмен в рамках данного раздела охватывает область передачи информации о начислениях в пользу магазина. Рассматриваются следующие запросы:

Управление потоком данных осуществляется с помощью информационных сообщений – ответов на запросы в формате XML. Информационный обмен осуществляется по методике «запрос-ответ» с системой учёта магазина. Сообщения типа “запрос” всегда содержат переменную function, определяющую формат и подтип запроса. Все сообщения протокола содержат переменную stan, формируемую платёжной системой. Ответное сообщение должно содержать “эхо” — значение этой переменной. Такой механизм позволяет однозначно устанавливать пары запрос — ответ для асинхронных транспортных протоколов, а также отслеживать транспортные ошибки (потерянные и дуплицированные сообщения) без привязки к конкретным транспортным протоколам.

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

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

Функция login

Пример запроса

function=login&stan=123456&user=AMTest&password=wer32fcs3rc
Поле Описание
stan

Numeric

Идентификатор запроса (6-разрядный)
user

Alpha Numeric

Идентификатор доступа
password

Alpha Numeric

Пароль доступа

Пример ответа

<xml>
  <arsenalpay_api version="1.2">
    <stan>123456</stan>
    <response>ok</response>
    <sid>D5EAA1DD</sid>
  </arsenalpay_api>
</xml>

Параметры ответа

Поле Описание
stan Идентификатор запроса
response Код ответа
sid Идентификатор сессии

Платежная система проверяет выполнение следующих условий:

Завершение сессии

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

Пример запроса

function=exit&stan=123456&sid=D5EAA1DD

Функция exit

Поле Описание
stan

Numeric

Идентификатор запроса (6-разрядный)
sid

Alpha Numeric

Идентификатор доступа

Пример ответа

<xml>
  <arsenalpay_api version="1.2">
    <stan>123456</stan>
    <response>ok</response>
  </arsenalpay_api>
</xml>

Параметры ответа

Поле Описание
stan Идентификатор запроса
response Код ответа

Платежная система проверяет выполнение следующих условий:

Определение оператора по номеру телефона

С помощью этой функции по номеру телефона (MSISDN) вы можете определить страну, город или мобильного оператора. Мобильные операторы России определяются с учетом базы данных перенесенных номеров (MNP). По данным Минкомсвязи России на 2 февраля 2017 года количество перенесенных мобильных номеров между операторами превысило пять миллионов.

Функционал предоставляется по отдельному запросу.

Какого банка карта

С помощью этой функции вы можете узнать различные параметры банковской карты по первым её цифрам. Номер банковской карты – это уникальное число, которое имеет каждая банковская карта. Он располагается на лицевой части карты и обычно состоит из 16 цифр. Первые 6 цифр означают Банковский Идентификационный Номер карты, сокращенно БИН (Bank Identification Number, BIN) и позволяют определить, какой банк является ее эмитентом. Этот код показывает, какому банку и в какой стране принадлежит карта, а также определяет ее тип с категорией.

Первая цифра БИН-номера карты указывает принадлежность к платёжной системе: Мир – 2, VISA – 4, MasterCard – 5, Maestro – 3, 5 или 6, American Express – 3, JCB International – 3, China UnionPay – 6, УЭК – 7. Цифры с 7 по 15-ю являются идентификационным номером карты и содержат тип карты (кредитная или дебетовая карта), валюту карты и регион выпуска.

Функционал предоставляется по отдельному запросу.

IP адреса 3D Secure страниц банков

Если ваш сервис связан с предоставлением доступа в интернет и вы ограничиваете доступ своим клиентам при недостаточном балансе, вам могут быть полезны IP адреса 3DS страниц банков. Настроив бесплатный доступ к этим страницам, вы позволите своим клиентам совершать оплату при помощи банковских карт даже при нулевом балансе.

Функционал предоставляется по отдельному запросу.

Коды ответов

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

Пример ответа об ошибке

<xml>
  <arsenalpay_api version="1.2">
    <stan>123456</stan>
    <response>ok</response>
    <error language="ru">Счет не найден</error>
  </arsenalpay_api>
</xml>
Поле Описание
ok Операция завершена успешно
error Ошибка обработки операции или неверный формат сообщения
err_amount Поле amount содержит недопустимое значение
err_sid Неверный идентификатор сессии
err_phone Несуществующий номера телефона или счёта
err_function Функция не поддерживается
err_currency Операции в данной валюте не поддерживаются
err_dateformat Некорректный формат даты
err_access Нет доступа к данной функции
err_nobd Нет соединения с базой данных

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