У приват банка новый Приват 24 для корпопатива и там появился API.
вот что написано на привате:
Уважаемые клиенты, партнеры, разработчики!
Рады сообщить Вам, что мы становимся еще более открытыми :-) и готовим набор финансовых и информационных API, которые позволят подключать к нашим платежным сервисам и базам данных любые интернет-сервисы, киоски, программы.
первые API уже доступны!
пользуйтесь на здоровье. За технической поддержкой обращайтесь в комментариях, на почтовый ящик
api@privatbank.ua или в онлайн-поддержку.
Обмен даными осуществляется XML запросами на адрес
https://api.privatbank.ua:9083/p24api/xxxxxx, где xxxxxx - идентификатор типа операции, которая должна быть проведена в результате запроса.
Внимание! Все кириллические символы, передаваемые по API должны быть представлены в кодировке UTF-8 и закодированы как URL-encoded
На данный момент доступны такие идентификаторы (точки доступа):
pay_ua - платёж по Украине
pay_visa - платёж на карту visa любого банка
pay_pb - платёж на карту Приватбанка
prp_skype - покупка ваучера Skype
prp_ks - покупка ваучера Киевстар
prp_mts - покупка ваучера МТС
prp_pnet - покупка ваучера PeopleNet
prp_ukash - покупка ваучера Ukash
rest_yur - выписки по счёту мерчанта - юрлица
rest_fiz - выписки по счёту мерчанта - физлица
prp_skypeopt - оптовая покупка ваучеров Skype
balance - текущий баланс по счёту мерчанта
wu_send - отправка перевода Western Union
pm_send - отправка перевода PrivatMoney
mg_send - отправка перевода MoneyGram
directfill - пополнение мобильной связи на свободную сумму
sendsms - отправка sms (стоимость 1 sms - 20 коп.)
depozilka - открытие депозита-копилки
ishop_pstatus - проверка статуса платежа отправленного мерчанту через интернет-эквайринг
cardlist - Список карт в аккаунте мерчанта
В теле запроса передается xml следующей структуры:
1. Запрос списка реквизитов:
<?xml version="1.0" encoding="UTF-8"?>
<request version="1.0">
<merchant>
<id>XXXX</id>
<signature>YYYY</signature>
</merchant>
<data>
<oper>prp</oper>
</data>
</request>
где: XXXX - id партнера платежей, YYYY - сигнатура запроса
Сигнатура запроса рассчитывется следующим образом (PHP):
$sign = sha1(md5($data.$password));
- где $data - содержимое тега <data> данного запроса а $password - личный пароль мерчанта, полученный им при регистрации.
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response version="1.0">
<merchant>
<id>XXXX</id>
<signature>YYYY</signature>
</merchant>
<data>
<oper>prp</oper>
<props>
<prop desc="eee" name="aaa" type="bbb" size="ccc" value="ddd" />
<prop desc="eee" name="aaa" type="bbb" size="ccc" value="ddd" />
<prop desc="eee" name="aaa" type="list" size="ccc">
<value desc="eee">sss</value>
<value desc="eee">ddd</value>
</prop>
</props>
</data>
</response>
где: aaa - имя реквизита платежа, bbb - тип реквизита (текст - txt, многострочный текст - txtar, целое число - int, список - list, cумма - amt, дата/время - date), ccc - максимальная длина значения реквизита (в символах), ddd - значение реквизита по умолчанию (для типа list задаются несколько значений во вложенных тегах), eee - название реквизита или варианта значения (для отображения в интерфейсе клиента). Число реквизитов может быть любым.
2. Команда на выполнение операции:
<?xml version="1.0" encoding="UTF-8"?>
<request version="1.0">
<merchant>
<id>XXXX</id>
<signature>YYYY</signature>
</merchant>
<data>
<oper>cmt</oper>
<wait>wwww</wait>
<test>ttt</test>
<payment id="qqqq">
<prop name="aaa1" value="ddd1" />
<prop name="aaa2" value="ddd2" />
</payment>
</data>
</request>
где qqqq - уникальный идентификатор платежа, присвоенный партнером платежей. Повторяется в ответе на запрос, сохраняется в базе Приват24, служит для однозначного сопоставления операций на стороне партнера платежей с операциями в приват24.
aaa1, aaa2 - имена реквизитов (должны совпадать с именами, полученными в ответе на запрос 1.), ddd1, ddd2 - значения реквизитов.
ttt - признак тестового платежа (0 - нет: платёж будет проведён немедленно, 1 - платёж будет проверен на корректность, но не будет проведён) .
wwww - интервал ожидания перед отправкой платежа на проводку (в секундах).
Внимание: ВСЕ поля, полученные в ответе на первый запрос должны быть обязательно заполнены и переданы во втором запросе.
Пример построения запроса на выполнение операции исходя из ответа на запрос списка реквизитов
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response version="1.0">
<merchant>
<id>XXXX</id>
<signature>YYYY</signature>
</merchant>
<data>
<oper>cmt</oper>
<payment id="qqqq" state="rrrr" message="mmmm" ref="ffff" amt="aaaa" ccy="ccccc" comis="sssss" code="dddd"/>
</data>
</response>
где: rrrr - состояние платежа (1 - проведён, 0 - забракован), mmmm - расширенное сообщение о состоянии платежа, может содержать описание причины, из-за которой платёж был забракован, ffff - внутренний рефреренс платежа в приват24 (если платёж забракован - пустое поле), aaaa - сумма платежа (без комиссии), ccccc - валюта операции, sssss - сумма комиссии банка по данному типу платежа, dddd - код ваучера (для prepaid-операций).
Пакетный режим передачи платежей
API позволяет передавать на проводку платежи в пакетном режиме. При этом второй запрос может включать любое число тегов <payment> c различными id. Ответ также будет содержать соответствующее число тегов с id равными id платежей в запросе. id платежей должны быть уникальными в пределах запроса. В случае нарушения этого правила второй платёж с этим же id будет забракован.
В пакетном режиме могут передаваться платежи только одного типа с одинаковым набором реквизитов.
И т.д .. Появился вопрос, а можно теперь автоматизировать провод платежей автоматом?