Чтобы использовать API, Вам необходимо связаться с нами и получить ID, пароль и ключ. А также согласовать финансы.

Далее необходимо делать HTTP-запросы на URL http://money2mobile.ru/api/, используя полученные ID и пароль (далее [ID] и [pass]) для прохождения HTTP-авторизации с реквизитами "api[ID]":"[pass]", а также полученный ключ (далее [key]) для подписи всех запросов.

Формат ответов - JSON:

{
	"error" :"Код ошибки (Integer), 0 означает успешное выполнение операции",
	"msg"   :"Сообщение (String)", # по умолчанию строки JSON передаются в UTF-8, для получения строк в UNICODE передавайте параметр unicode=1
	"data"  :"Ответные данные, если есть (Object)"
}

Список методов

Список ошибок смотрите тут.

Шаблон кода PHP

<?php

$operation      = '';
$credits        = '';
$expire         = '';
$code           = '';
$wallet         = '';
$wallet_type    = '';
$phone          = '';
$change_wallet  = '';
$customer_id    = '[ID]';
$pass           = '[pass]';
$hash           = md5($operation.$credits.$expire.$code.$wallet.$wallet_type.$phone.$change_wallet.$customer_id.'[key]');

$request = "http://money2mobile.ru/api/?"
								."&operation=".urlencode($operation)
								."&credits=".urlencode($credits)
								."&expire=".urlencode($expire)
								."&code=".urlencode($code)
								."&wallet=".urlencode($wallet)
								."&wallet_type=".urlencode($wallet_type)
								."&phone=".urlencode($phone)
								."&change_wallet=".urlencode($change_wallet)
								."&customer_id=".urlencode($customer_id)
								."&hash=".urlencode($hash);


# Пример на PHP

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "api$customer_id:$pass");
curl_setopt($ch, CURLOPT_URL, $request);
$json = curl_exec($ch);
var_dump ( json_decode( $json) );

Выпуск карты/электронного сертификата

Параметр Описание Пример
operation установите значение issue issue
credits номинал карты/ЭС в копейках 2000
expire дата в формате "дд.мм.гггг", до которой карта/ЭС действительна 28.11.2017
customer_id выданный вам [ID] 101
hash задается как MD5-хэш от строки, составленной из значений параметров [operation][credits][expire][customer_id][key] b11e36cadfee38cf5c659f7503b311a8

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

http://money2mobile.ru/api/?operation=issue&credits=2000&expire=28.11.2017&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8

<?php
# Пример на PHP

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "api[ID]:[pass]");
curl_setopt($ch, CURLOPT_URL, "http://money2mobile.ru/api/?operation=issue&credits=2000&expire=28.11.2017&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8");
$json = curl_exec($ch);
var_dump ( json_decode( $json) );

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

{
	"error":0,
	"msg":"Карта выпущена.",
	"data": {
		"id":	    1010371,
		"code":     "A1000000000", # по этому коду карта может быть активирована на http://money2mobile.ru/activate_card.html
		"key":	    "eef32d05b70a633563086f83597a8fed", # ЭС доступен по адресу http://money2mobile.ru/get_sert.php?key=eef32d05b70a633563086f83597a8fed
		"credits":  10000, #номинал карты
		"balance": {
			"credits": 100000, # баланс в копейках
			"credits_limit": 0, # минаимальный баланс в копейках
			"cards_left": 0, # кол-во карт, доступных для операции issue
			"daily_paylimit": 0 # объем средств в коп., доступный для операции pay сегодня
		}
	}
}
Параметр Описание
id номер карты/ЭС
code секретный код, по которому можно активировать карту/ЭС через сайт money2mobile.ru, отправив его на короткий номер 2420 или через API.
key номер электронного сертификата, для получения его по ссылке вида http://money2mobile.ru/get_sert.php?key=[key]

Поиск карты

Поиск одной из карт, которая была выпущена, но еще не была использована.

Параметр Описание Пример
operation установите значение find find
customer_id выданный вам [ID] 101
activated (необязательный) была ли карта активированна через сайт 0
hash задается как MD5-хэш от строки, составленной из значений параметров [operation][customer_id][key] b11e36cadfee38cf5c659f7503b311a8

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

http://money2mobile.ru/api/?operation=find&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8

<?php
# Пример на PHP

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "api[ID]:[pass]");
curl_setopt($ch, CURLOPT_URL, "http://money2mobile.ru/api/?operation=find&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8");
$json = curl_exec($ch);
var_dump ( json_decode( $json) );

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

{
	"error": 0,
	"msg":   "Карта найдена.",
    "data": {
        "id":	    1010371,
        "code":     "A1000000000", # по этому коду карта может быть активирована на http://money2mobile.ru/activate_card.html
        "key":	    "eef32d05b70a633563086f83597a8fed", # ЭС доступен по адресу http://money2mobile.ru/get_sert.php?key=eef32d05b70a633563086f83597a8fed
        "credits":  10000, #номинал карты
    }
}

Аннулирование карты

Отзыв карты, платеж по которой не удалось провести или он не проводился.

Параметр Описание Пример
operation установите значение unissue unissue
code секретный код A1000000000
customer_id выданный вам [ID] 101
hash задается как MD5-хэш от строки, составленной из значений параметров [operation][code][customer_id][key] b11e36cadfee38cf5c659f7503b311a8

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

http://money2mobile.ru/api/?operation=unissue&code=A1000000000&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8

<?php
# Пример на PHP

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "api[ID]:[pass]");
curl_setopt($ch, CURLOPT_URL, "http://money2mobile.ru/api/?operation=unissue&code=A1000000000&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8");
$json = curl_exec($ch);
var_dump ( json_decode( $json) );

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

{
	"error": 0,
	"msg":   "Карта аннулирована, деньги возвращены на баланс."
}

Запуск выплаты по карте

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

Параметр Описание Пример
operation установите значение pay pay
code секретный код A1000000000
wallet номер телефона (в межунароном формате) или электронного кошелька +7 999 9876543
wallet_type тип кошелька. Может быть установлен в "PHONE" (мобильный телефон), "QIWI" (кошелек Qiwi), "YA" (кошелек Яндекс.Деньги), "WM" (кошелек Вебмани), "RBK" (кошелек РБК), "SBP" (перевод через СБП) PHONE
phone (необязательный) для пополнения Вебмани должен содеражать мобильный телефон владельца кошелька -
bank_id (необязательный) для переводов через СБП должен содеражать ID банка получателя -
change_wallet (необязательный) параметр, который должен быть установлен в 1, если Вы хотите сменить реквизиты непрошедшего платежа -
customer_id выданный вам [ID] 101
hash задается как MD5-хэш от строки, составленной из значений параметров [operation][code][wallet][wallet_type][change_wallet][phone][bank_id][customer_id][key] b11e36cadfee38cf5c659f7503b311a8

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

http://money2mobile.ru/api/?operation=pay&code=A1000000000&wallet=+7 999 9876543&wallet_type=PHONE&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8

<?php
# Пример на PHP

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "api[ID]:[pass]");
curl_setopt($ch, CURLOPT_URL, "http://money2mobile.ru/api/?operation=pay&code=A1000000000&wallet=+7%20999%209876543&wallet_type=PHONE&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8");
$json = curl_exec($ch);
var_dump ( json_decode( $json) );

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

{
	"error": 0,
	"msg":   "Платеж по коду A1000000000 на сумму 20.00 руб. поставлен в очередь, ожидайте прихода средств."
}

Проверка статуса карты

Проверка статуса карты. При первом обращении к карте она переводится в статус "активирована" (если не истек срок годности); далее возвращаются статусы, связанные с заданием реквизитов для выплаты или статусом осуществляемого по карте платежа.

Параметр Описание Пример
operation установите значение check check
code секретный код A1000000000
customer_id выданный вам [ID] 101
hash задается как MD5-хэш от строки, составленной из значений параметров [operation][code][customer_id][key] b11e36cadfee38cf5c659f7503b311a8

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

http://money2mobile.ru/api/?operation=check&code=A1000000000&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8

<?php
# Пример на PHP

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "api[ID]:[pass]");
curl_setopt($ch, CURLOPT_URL, "http://money2mobile.ru/api/?operation=check&code=A1000000000&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8");
$json = curl_exec($ch);
var_dump ( json_decode( $json) );

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

{
	"error": 0,
	"msg":   "Код выплачен 28.11.2014 19:00:00 на мобильный телефон, оканчивающийся на 6543."
}

Проверка баланса

Баланс, привязанный к аккаунту, меняется при выпуске (номинал карты списывается) или отзыве (номинал карты возвращается) карты.

Параметр Описание Пример
operation установите значение balance balance
customer_id выданный вам [ID] 101
hash задается как MD5-хэш от строки, составленной из значений параметров [operation][customer_id][key] b11e36cadfee38cf5c659f7503b311a8

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

http://money2mobile.ru/api/?operation=balance&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8

<?php
# Пример на PHP

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "api[ID]:[pass]");
curl_setopt($ch, CURLOPT_URL, "http://money2mobile.ru/api/?operation=balance&customer_id=101&hash=b11e36cadfee38cf5c659f7503b311a8");
$json = curl_exec($ch);
var_dump ( json_decode( $json) );

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

{
	"error": 0,
	"msg":   "Баланс определен.",
	"data": {
		"credits": 100000, # баланс в копейках
		"credits_limit": 0, # минаимальный баланс в копейках
		"cards_left": 0, # кол-во карт, доступных для операции issue
		"daily_paylimit": 0 # объем средств в коп., доступный для операции pay сегодня
	}

}

Список ошибок

Метод Код ошибки Расшифровка
issue, pay, check, balance 0 Ошибок нет.
issue, pay, check, balance 1 Общие ошибки.
issue, pay, check, balance 2 Пользователь не найден.
issue 3 Неверная подпись.
issue 4 Не найдено не занятых номеров карт/ЭС.
issue 5 Недостаточно средств для выпуска карты/ЭС или не найдено не занятых номеров карт/ЭС.
issue 6 Произошла ошибка при выпуске карты/ЭС.
pay, check 7 Формат параметра [code] неверный.
pay, check 8 Платеж проводится.
pay, check 9 Невозможно провести платеж. Причина указана в доп. параметре description.
pay, check 10 Невозможно провести платеж, возможно выбрать другой способ вывода средств. Причина указана в доп. параметре description.
pay, check 11 Карта/ЭС активирована, но способ вывода средств не указан.
pay, check 12 Срок действия карты/ЭС истек.
pay, check 13 Не удалось активировать карту/ЭС.
pay, check 14 Код [code] не найден.
pay 15 Не указан способ вывода денег.
pay 16 Данный код уже использован.
pay 17 Данный способ перевода денег закрыт.
pay 18 Номер кошелька не определен.
pay 19 Достигнуто ограничение для зачисления денег на один номер в течение месяца.
unissue 20 Карта выплачена и не может быть аннулирована.
unissue 21 Карта имеет неизвестный статус и она не может быть аннулирована, свяжитесь с нами.
ВНИМАНИЕ! Это не означает, что статус карты финальный.
unissue 22 Не удалось пополнить баланс, свяжитесь с нами.
unissue 24 Карта не выпущена и не может быть аннулирована.
find 23 Карт не найдено.