You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 201 Next »

БИЗНЕС СХЕМА

Примерная схема взаимодействия системы IntellectMoney, Интернет-магазина и Покупателя (данная схема не является обязательной и служит только для демонстрации):

  1. Покупатель оформляет заказ: вводит персональные данные, выбирает способ доставки и так далее.
  2. После того как пользователь отправил персональные данные, система Интернет-магазина получает доступные (активные) магазину способы оплаты, использую метод getPaymentWays().
  3. Система IntellectMoney возвращает в систему магазина все доступные (активные) способы оплаты.Система Интернет-магазина предлагает пользователю выбрать способ оплаты.
  4. Покупатель выбирает способ оплаты.
  5. Система Интернет-магазина показывает информацию о выбранном способе оплаты, предлагает подтвердить согласие с условиями и прочее.
  6. Покупатель заполняет какие-либо поля, выполняет инструкции.
  7. Система Интернет-магазина , на основании выбранного способа оплаты, выставляет счёт к оплате через метод createInvoice().
  8. Система IntellectMoney возвращает в систему магазина номер созданного счёта к оплате - invoiceId.
  9. Система Интернет-магазина вызывает метод оплаты в зависимости от выбранного способа оплаты.
  10. Система IntellectMoney возвращает всю необходимую информацию для проведения оплаты.
  11. Система Интернет-магазина отображает покупателю информацию об оплате. 
  12. Если был выбран не моментальный способ оплаты, например почтой России, то пользователь асинхронно оплачивает покупку, сделанную в Интернет магазине.
  13. Когда деньги поступили на счёт, система IntellectMoney оповещает систему Интернет-магазина, посредством отправки формы оповещения (см. протокол IntellectMoney) на URL оповещения о платеже - Result URL.
  14. Если был выбран моментальный способ оплаты. Пользователь заполняет поля, производит необходимые действия и отправляет эти данные в систему Интернет-магазина.
  15. Система Интернет-магазина,в зависимости от выбранного способа оплаты, отображает форму для ввода 3-DS пароля или переводит Покупателя на страницу личного кабинета(Сбербанк, AlfaClick и др.).
  16. Если был выбран способ оплаты через обменники (exchangers - AlfaClick, Qiwi и т.д.), пользователь завершает оплату в личном кабинете обменника.
  17. Когда деньги поступили на счёт, система IntellectMoney оповещает систему Интернет-магазина, посредством отправки формы оповещения (см.  протокол IntellectMoney ) на URL оповещения о платеже - Result URL.
  18. Система Интернет-магазина показывает страницу с сообщением об успешной оплате, если это требуется.

После того как Система Интернет-магазина получила ID счета к оплате (invoiceId), можно получить информацию по данному счету к оплате, через метод getPuschaseInfo(). Через этот метод дополнительно можно получить информацию о настройках магазина в системе IntellectMoney- узнать время работы, название и так далее.

Порядок вызова методов для оплаты Банковской картой (Acquiring): bankCardPayment() затем activationPay(), после вызова метода bankCardPayment() можно отслеживать состояние платежа через метод getBankCardPaymentState().

ОБЩАЯ ИНФОРМАЦИЯ

Данное API позволит Вам выставить счёт, контролировать состояние счёта, отправлять пользователя (покупателя) на выбранный способ оплаты или получить необходимые данные для оплаты.  Взаимодействие между сервером IntellectMoney и сайтом поставщика (далее поставщика) происходит по HTTP-протоколу.

В ответ приходят два состояния запроса это <OperationState> и <Response>:

  1. <OperationState> сообщает - смогла ли система IntellectMoney обработать данный запрос. Возможны три варианта:
    1. Система обработала запрос.
    2. Система поставила запрос в очередь на обработку.
    3. Система не смогла обработать запрос.
  2. <Response> сообщает статус запроса - был ли найден данный метод, все ли параметры переданы верно и так далее. 

Данные при запросах на сервер IntellectMoney передаются в формате параметров HTTP-запроса в кодировке UTF-8 с типом контента "application/x-www-form-urlencoded". В ответ данные возвращаются в формате XML, либо в формате JSON. Что бы получить ответ в формате JSON нужно в заголовки запроса передать "Accept: text/json".

Для обращения к методам API нужно выполнить POST- запрос (GET - запросы недопустимы) на URL, который состоит из следующих частей: host(https://api.intellectmoney.ru/merchant/)+номер версии API(<api_version>)+название метода к которому идёт обращение(createinvoice). Пример:  https://api.intellectmoney.ru/merchant/latest/getpaymentways.

Список всех доступных версий с описанием доступны в разделе "Разница в версиях API".

ПОРЯДОК ВЫЗОВА МЕТОДОВ

Работу с представленным API можно разделить на 3 шага:

  1. Выставляем счёт к оплате посредством метода createInvoice(). После того как счёт выставлен, его состояние можно отслеживать через метод getPurchaseInfo().
  2. Если нужно получить все доступные магазину способы оплаты, вызываем метод getPaymentWays(). Если данная информация не нужна и Вы проводить оплату зафиксированным способом оплаты (например, принимаете только оплату с банковской карты), данный метод можно не вызывать.
  3. В зависимости от выбранного способа оплаты, проводим оплату:
    1. Оплата с кошелька IntellectMoney:
      1. Обращаемся к методу innerPayment().
    2. Оплата банковской картой:
      1. Обращаемся к методу bankCardPayment(). После отправки данных о карте, состояние банковского платежа можно отслеживать через метод getBankCardPaymentState().
      2. Если платёж 3-DS отображаем Покупателю iFrame с окном для ввода 3-DS пароля.
        Если проводим активационный платеж, то обращаемся к методу activationPay().

    3. Оплата через почту России:
      1. Обращаемся к методу getPostPayBlank().
    4. Оплата через обменники :
      1. Обращаемся к методу обменника:
        1. Альфа-Клик: alfaClickPayment().
        2. Сбербанк Онлайн: sberbankPapment().
        3. Яндекс.Деньги: yandexPayment().
        4. С кошелька WebMoney: WMRPayment().
        5. С QIWI-кошелька: QIWIPursePayment().

GETPAYMENTWAYS() - ЗАПРОС СПОСОБОВ ОПЛАТЫ

Передача параметров

Для запроса доступных (активных) магазину способов оплаты необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/getpaymentways

В запросе необходимо передать следующие параметры:


Название

Имя параметра

Обязательный

Описание

ID магазина

eshopId

Да, если не передан invoiceId

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице  https://intellectmoney.ru/ru/enter/ps_organization_shop/  в столбце "ID"

Если данный параметр не передан, то обязательно нужно передать параметр invoiceId. Иначе Вы получите Exception.

Номер СКО

invoiceId

Да, если не передан eshopId

Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией "Запрос выставления счёта".

Если данный параметр не передан, то обязательно нужно передать параметр eshopId. Иначе Вы получите Exception.

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

amount

нет

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

Если передать данный параметр, то в возвращаемой структуре <PaymentWayListData> будут только те способы оплаты, которые можно использовать для данной суммы.

Если данный параметр не передан, то в возвращаемой структуре <PaymentWayListData> будут все способы оплаты, которые активированы в настройках магазина.

Максимальная длина - 13 цифр вместе с десятичными знаками.

Способ оплаты

preferences

Нет

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

Подробное описание доступно по ссылке.

Подпись для преданных данных

hash

Да

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

Алгоритм формирования описан в разделе "Подпись запроса способов оплаты".


В ответ возвращается код операции и возможны 3 варианта:

  1. Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <PaymentWayListData> (синхронная обработка). (Код операции - 0)

  2. Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1)

  3. Ошибка обработки операции. Операция выполнена не будет. (Код операции - 2)


Пример запроса
Post /merchant/getPaymentWays/ HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8

eshopId=450123
invoiceId=356421216
amount=8.14
hash=dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20v3MvZ3Nkb21haW52YWxzaGEyZzIuY3JsMIG
Пример ответа
HTTP/1.1 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <OperationState>
        <Code>0</Code>
        <Desc>Успешно обработана</Desc>
    </OperationState>
    <OperationId>3cf78bc5-63f4-4fe3-86a0-8ce9d60e8228</OperationId>
    <EshopId>455551</EshopId>
    <Result>
        <State>
            <Code>0</Code>
            <Desc>Успешно обработан</Desc>
        </State>
        <PaymentWays>
            <PaymentWayData>
                <Id>1</Id>
                <Amount>
                    <Amount>10.0000</Amount>
                    <Currency>TST</Currency>
                </Amount>
                <Preference>Inner</Preference>
                <InputType>InnerPayment</InputType>
                <PreferenceTypes>
                    <PreferenceTypeSpecification>All</PreferenceTypeSpecification>
                    <PreferenceTypeSpecification>Online</PreferenceTypeSpecification>
                    <PreferenceTypeSpecification>NonComission</PreferenceTypeSpecification>
                    <PreferenceTypeSpecification>Flash</PreferenceTypeSpecification>
                </PreferenceTypes>
                <ServiceTimeOfEnrollmentType>Flash</ServiceTimeOfEnrollmentType>
                <Commission>0</Commission>
            </PaymentWayData>
        </PaymentWays>
    </Result>
</Response>

Подпись запроса способов оплаты

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:

Пример формирования строки
eshopId::invoiceId::amount::preferences

Далее, к этой строке применяется алгоритм криптографии из пункта "Формирование контрольной подписи".

CREATEINVOICE - ВЫСТАВЛЕНИЕ СЧЁТА К ОПЛАТЕ

Запрос выставления СКО

Для выставления счета необходимо отправить POST-запрос на следующий адрес URL

https://api.intellectmoney.ru/merchant/latest/createinvoice

В запросе необходимо передать следующие параметры:


НазваниеИмя параметраОбязательныйОписание

ID магазина

eshopId

Да

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID"

Внутренний номер покупки поставщика

orderId

Да

В этом поле нужно передать номер покупки в соответствии со своей системой учета.

Данный номер должен быть уникальным, если включена соответствующая опция в настройках магазина в системе IntellectMoney. Можно увидеть на странице настроек магазина https://intellectmoney.ru/ru/enter/ps_organization_shop/ , выбрав “настройки“, далее вкладка “прием платежей“, далее “расширенные настройки“. Если при включенном параметре передать не уникальный номер покупки, то в ответ придет Exception.

Максимальная длина - 50 символов.

Назначение платежа

serviceName

Нет

Описание товара или услуги. Укажите данный параметр что бы понимать за какую услугу или товар Вы получаете денежные средства.

Максимальная длина - 1024 символов.

Сумма

платежа

recipientAmount

Да

Сумма платежа, которую поставщик желает получить от пользователя (покупателя). Положительное число, округленное до 2 знаков после десятичной точки, без пробелов. Минимальное значение 10.00.

Максимальная длина - 13 цифр вместе с десятичными знаками.

Валюта

платежа

recipientCurrency

Да

Валюта платежа.

Может принимать значения: RUB и RUR для платежей в рублях и TST для тестовых платежей.

Имя Пользователя

userName

Нет

Имя Пользователя (Покупателя), который совершает платеж

Максимальная длина – 255 символов.

E-mail пользователя

email

Да

Email Пользователя (Покупателя).

Максимальная длина – 100 символов.

Адрес удачного платежа

successUrl

Нет

Адрес, который будет отображаться в поле SuccessUrl структуры <PurchaseInfoData>

На данный URL можно переводить Пользователя (Покупателя) после того как он успешно произвел покупку/ оформил заказ.

Максимальная длина - 512 символов.

Адрес не удачного платежаfailUrl

Нет

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

Максимальная длина - 512 символов.

Адрес окончания платежаbackUrl

Нет

Адрес, который будет отображаться в поле BackUrl структуры <PurchaseInfoData>

На данный URL можно переводить Пользователя (Покупателя), когда он нажимает "вернуться в магазин".

Максимальная длина - 512 символов.

Адрес оповещенийresultUrl

Нет

Адрес, на который система IntellectMoney посылает HTTP/S POST запросы об изменении состояния СКО

Максимальная длина - 512 символов.

Дата и время истечения срока блокировки

expireDate

Нет

Дата и время, по достижению которых, оплатить счёт в системе IntellectMoney станет не возможно.

Передавать в формате “yyyy-MM-dd HH:mm:ss”.

Режим холдирования

holdMode

Нет

Отвечает за включение режима холдирования, и может принимать три состояния:

  1. "1" - включает режим холдирования, в данном случае, необходимо передать параметры expireDate и/или holdTime
  2. "0" - выключает режим холдирования, счета не будут холдироваться
  3. "null" = не передавать данный параметр - режим холдирования определяется в настройках магазина в личном кабинете

Также необходимо включить в настройках магазина параметр «Принимать только уникальные ID покупки».

Срок холдирования денежных средствholdTimeНет

Время, через которое захолдированные (замороженные) денежные средства будут зачислены на счёт магазина или возвращены покупателю, измеряется в часах.

Целое число от 0 до 119 часов.

Способ оплаты

preference

Нет

Способы оплаты, которые будут доступны для данного СКО.

Если данное поле не передано, то будут доступны все способы, доступные магазину.

Подробное описание доступно по ссылке

Данные по чекуmerchantReceiptНетДанные для формирования чека в онлайн кассе. Подробное описание смотрите в пункте Правила формирования чека для онлайн кассы (merchantReceipt).

Дополнительные параметры поставщика

UserField_N

UserFieldName_N


Нет

Все поля формы, имеющие в названии префикса "UserField_N", "UserFieldName_N" (где N порядковый номер), обрабатываются системой IntellectMoney автоматически и передаются на сайт поставщика.

Максимальная длина всех дополнительных полей в сумме - 4000 символов

Подробнее о дополнительных полях написано в документации по протоколу IntellectMoney в разделе "4.6 Передача дополнительных параметров: userField_N, userFieldName_N и остальные"

Подпись для переданных данных из счётаpurchaseHashНет

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

Если в настройках магазина включен пункт "Требовать HASH", данный параметр передавать обязательно. Если не передать, то в ответ придет Exception.

Проверить- включен пункт "Требовать HASH" или нет- можно в настройках магазина https://intellectmoney.ru/ru/enter/ps_organization_shop/ вкладка "Прием платежей" -> "Расширенные настройки". 

Алгоритм формирования описан в протоколе IntellectMoney в разделе "Проверка данных формы запроса".

Подпись для преданных данных

hash

Да

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

Алгоритм формирования описан в разделе "Подпись запроса выставления счёта".


В ответ возвращается код операции и возможны 3 варианта:

  1. Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <CreateInvoiceData> (синхронная обработка). (Код операции - 0)

  2. Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1)

  3. Ошибка обработки операции. Операция выполнена не будет. (Код операции - 2)


Пример запроса
Post /merchant/createInvoice/  HTTP/1.1  
Host: api.intellectmoney.ru 
Content-Type: application/x-www-form-urlencoded; charset=utf-8

eshopId=450123
orderId=test_order
recipientAmount=10.00
recipientCurrency=RUB
hash=dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20v3MvZ3Nkb21haW52YWxzaGEyZzIuY3JsMIG
Пример ответа
HTTP/1.1 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<OperationState>
		<Code>0</Code>
 		<Desc>Успешно обработана</Desc>
   	</OperationState>
 	<OperationId>8f6a8487-98a6-4c03-b8b6-904cffd91749</OperationId>
   	<EshopId>700025</EshopId>
   	<Result>
     	<State>
 			<Code>0</Code>
       		<Desc>Успешно обработан</Desc>
     	</State>
     	<InvoiceId>3470488641</InvoiceId>
   	</Result>
</Response>
Пример на языке программирования PHP
$orderId=time();
$eshopId = 450123;
$serviceName = 'Оплата заказа '.$orderId;
$recipientAmount = 10.00;
$recipientCurrency= 'RUB';
$userName = 'Иван Иванов';
$email = 'email@mail.ru';
$successUrl = 'http://yourdomain.ru/successurl.php';
$failUrl = 'http://yourdomain.ru/failurl.php';
$backUrl = 'http://yourdomain.ru/backurl.php';
$resultUrl = 'http://yourdomain.ru/resulturl.php';
$expireDate = date('Y-m-d H:i:s', strtotime('+72 hour'));
$holdMode = '1';
$preference = 'bankCard';
$secretKey = 'yourSecretKey';

$purchaseHash = md5($eshopId.'::'.$orderId.'::'.$serviceName.'::'.$recipientAmount.'::'.$recipientCurrency.'::'.$secretKey);
$hash = md5($eshopId.'::'.$orderId.'::'.$serviceName.'::'.$recipientAmount.'::'.$recipientCurrency.'::'.$userName.'::'.$email.'::'
		.$successUrl.'::'.$failUrl.'::'.$backUrl.'::'.$resultUrl.'::'.$expireDate.'::'.$holdMode.'::'.$preference.'::'.$secretKey);
$data = array(
    'orderId' => $orderId,
    'eshopId' => $eshopId,
    'serviceName' => $serviceName,
    'recipientAmount' => $recipientAmount,
    'recipientCurrency'=> $recipientCurrency,
    'userName' => $userName,
    'successUrl' => $successUrl,
    'failUrl' => $failUrl,
    'backUrl' => $backUrl,
    'resultUrl' => $resultUrl,
    'expireDate' => $expireDate,
    'holdMode' => $holdMode,
    'preference' => $preference,
    'email' => $email,
    'purchaseHash' => $purchaseHash,
    'hash' => $hash,
);
/**
*В данном примере используется вспомогательная функция curlRequest
*что бы данный пример заработал, подключите её к этому файлу
*получить код функции можно перейдя по ссылке: https://wiki.intellectmoney.ru/pages/viewpage.action?pageId=14057650
*/
$request = curlRequest("https://api.intellectmoney.ru/merchant/latest/createinvoice", $data);
$res = simplexml_load_string($request);
print_r($res);

Подпись запроса выставления счёта

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:

Пример формирования строки
eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference

Далее, к этой строке применяется алгоритм криптографии из пункта "Формирование контрольной подписи".


BANKCARDPAYMENT - ОПЛАТА БАНКОВСКОЙ КАРТОЙ

Запрос регистрации реквизитов

Для передачи реквизитов банковской карты и для дальнейшей оплаты счета необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/bankcardpayment

В запросе необходимо передать следующие параметры: 

Название

Имя параметра

Обязательный

Описание

ID магазина

eshopId

Да

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID".

Номер СКО

invoiceId

Да

Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией Запрос выставления счёта”.

Номер карты плательщика

pan

Да

Номер карты плательщика.

Держатель карты

cardHolder

Нет

Имя и фамилия плательщика.

Если у карты нет данного параметра, то данный параметр передавать не надо.

Срок действия месяц

expiredMonth

Да

Месяц, до которого действует карта.

Срок действия год

expiredYear

Да

Год, до которого действует карта.

Формат 2 последние цифры годы. Пример: 17.

CVV2/CVC2 код

cvv

Нет

Секретный код CVV2 (CVC2), как правило написан на обороте карты (последние три цифры на полосе для подписи).

Данный параметр должен быть обязательно передан если банковская карта снабжена cvv. Если попытаться оплатить такой картой и не указать cvv, то банк-эквайер вернет ошибку.

Для карт, которые не имеют CVV (CVC2) данный параметр не надо передавать.

Максимальная длина - 512 символов.

Адрес оповещенийreturnUrlДаАдрес, на который будет перенаправлен Пользователь (Покупатель) после прохождения 3-DS авторизации.
IP-адрес плательщикаipAddressДаРеальный ip-адрес, с которого производится оплата банковской картой

Подпись для преданных данных

hash

Да

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

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


В ответ возвращается код операции и возможны 3 варианта:

  1. Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <BankCardPaymentData> (синхронная обработка). (Код операции - 0)

  2. Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1)

  3. Ошибка обработки операции. Операция выполнена не будет. (Код операции - 2)


Пример запроса
Post /merchant/bankCardPayment/ HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8

eshopId=450123
invoiceId=356421216
pan=55555555444444
cardHolder=DEFAULT CARDHOLDER
expiredMonth=10
expiredYear=19
cvv=123
hash=dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20v3MvZ3Nkb21haW52YWxzaGEyZzIuY3JsMIG
Пример ответа
HTTP/1.1 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<OperationState>
		<Code>0</Code>
		<Desc>Успешно обработана</Desc>
	</OperationState>
	<OperationId>8f6a8487-98a6-4c03-b8b6-904cffd91749</OperationId>
	<EshopId>700025</EshopId>
	<Result>
		<State>
			<Code>0</Code>
			<Desc>Успешно обработан</Desc>
		</State>
	</Result>
</Response>

Подпись запроса передачи данных карты

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:

Пример формирования строки
eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress

Далее, к этой строке применяется алгоритм криптографии из пункта "Формирование контрольной подписи".

Пример использования

  1. Запрашиваем у Покупателя данные по карте.
  2. Обращаемся к методу bankCardPayment(). После отправки данных о карте, состояние банковского платежа можно отслеживать через метод getBankCardPaymentState().
  3. Дальше возможны три варианта:
    1. Платёж 3-DS (Статус Платежа 3 - Отправлен на 3-DS):
      1.  отображаем Пользователю (Покупателю) код из параметра Form3DS.
      2. Пользователь Пользователь (Покупатель) проходит 3-DS идентификацию. Состояние банковского платежа можно узнать обратившись к методу getBankCardPaymentState(). Когда эквайринг провел платеж, метод вернет статус 0, после этого надо проверять состояние СКО, вызывая метод getPurchaseInfo().
    2. Платёж активационный (Статус Платежа 4 - отправлен на активационный платеж):
      1. Обращаемся к методу activationPay()
    3. Платеж в обработке, то вызываем метод ещё раз (Статус Платежа 2 - в обработке).
  4. Сообщаем Пользователю (Покупателю) о завершении оплаты.

GETBANKCARDPAYMENTSTATE - СОСТОЯНИЕ БАНКОВСКОГО ПЛАТЕЖА

Запрос состояния банковского платежа

Для запроса состояния оплаты счета необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/getbankcardpaymentstate

В запросе необходимо передать следующие параметры:


Название

Имя параметра

Обязательный

Описание

ID магазина

eshopId

Да

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID"

Номер СКО

invoiceId

Да

Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией "Запрос выставления счёта".

Подпись для преданных данных

hash

Да

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

Алгоритм формирования описан в разделе "Подпись запроса состояния банковского платежа".


В ответ возвращается код операции и возможны 3 варианта:

  1. Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <BankCardPaymentStateData> (синхронная обработка). (Код операции - 0)

  2. Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1)

  3. Ошибка обработки операции. Операция выполнена не будет. (Код операции - 2)


Пример запроса
Post /merchant/getBankCardPaymentState/ HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8

eshopId=450123
invoiceId=356421216
activationAmount=8.14
hash=dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20v3MvZ3Nkb21haW52YWxzaGEyZzIuY3JsMIG

Для не 3-DS платежа

Пример ответа
HTTP/1.1 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<OperationState>
		<Code>0</Code>
		<Desc>Успешно обработана</Desc>
	</OperationState>
	<OperationId>8f6a8487-98a6-4c03-b8b6-904cffd91749</OperationId>
	<EshopId>450123</EshopId>
	<Result>
		<State>
			<Code>0</Code>
			<Desc>Успешно обработан</Desc>
		</State>
	</Result>
</Response>

Для 3-DS платежа

Пример ответа
HTTP/1.1 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<OperationState>
		<Code>0</Code>
		<Desc>Успешно обработана</Desc>
	</OperationState>
	<OperationId>b28053c1-f383-4be3-b1f7-ba57bcb04bdd</OperationId>
	<EshopId>450123</EshopId>
	<Result>
		<State>
			<Code>0</Code>
			<Desc>Успешно обработан.</Desc>
		</State>
		<PaymentStep>SendTo3DS</PaymentStep>
		<Form3DS>
			<body OnLoad="document.forms[0].submit();"><FORM ACTION="https://3DSecure.qiwi.com/acs/pareq/0646380bc4144fcfb06dc1cbf6aacb0e" METHOD="post"><input name="PaReq" type="hidden" 						value="eJxVUl1v2zAM/CuB3xfJkr8WMCq6xkNTOE67uGi3l8GTidhArKSyXMT59ZXcZG3feEeCRx4JV8d2N3lF3saoUenTj0WP78l3pWAotaI++++++яяяя+tf+DJ7epLbOgv/FcNfk/DbO/VcrvMHT8CYFnAWELb/lAG5QNtJy7pURkApX34scxHEEaMJkDOEFvVyISilIec+CyhPEmobvNOgyhbFMi/SLEtvitU6T38DGUmQ+14ZPYgo4EAuAHq9E7UxhxkhjTK426E07V7hMNU9EJcF8jHTfe+iznY7NpUIH06ndX53kqs/6SLpGxWbbHFoBrNJ50BcBVSlQcGoH9PY5xMaz1g4CyMgIw9l68YQvt3GLvgO4OA0rj9nPjNgDdf2Hpc9LgjweLBj2wprxv8YKuyk4EESRWHAv4dW2BFAPha5uXVWS2Pd4wENGOWcVUN9et0wRjNaPg+oIr5yBxiLnFBjnfMTn45KDgBxbcj5tuT8Djb68iZvuarE1A=="><input name="TermUrl" type="hidden" value="https://merchant.intellectmoney.ru/?Action=3ds&GatewayId=88&MessageId=22666446&BackRef=https%3a%2f%2ftest.ru%2findex.php"><input name="MD" type="hidden" value="231143700-07677B109B1A27D4"></FORM></body>
		</Form3DS>
	</Result>
</Response>

Внимание! Код из узла <Form3DS> надо размещать на странице где нет других форм, так как возможен вызов не той формы.

Подпись запроса состояния банковского платежа

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:

Пример формирования строки
eshopId::invoiceId

Далее, к этой строке применяется алгоритм криптографии из пункта "Формирование контрольной подписи".

ACTIVATIONPAY - АКТИВАЦИОННЫЙ ПЛАТЁЖ

Запрос активационного платежа

Для завершения активационного платежа необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/activationpay

В запросе необходимо передать следующие параметры:


Название

Имя параметра

Обязательный

Описание

ID магазина

eshopId

Да

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID"

Номер СКО

invoiceId

Да

Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией "Запрос выставления счёта".

Сумма активационного платежа

activationAmount

Да

Сумма, которая заблокирована у клиента на карте.

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

CVV2/CVC2 код

cvv

Да

Секретный код CVV2 (CVC2), как правило написан на обороте карты (последние три цифры на полосе для подписи).

Данный параметр должен быть обязательно передан если банковская карта снабжена cvv. Если попытаться оплатить такой картой и не указать cvv, то банк-эквайер вернет ошибку.

Для карт, которые не имеют CVV (CVC2) данный параметр не надо передавать.

Максимальная длина - 512 символов.


Подпись для преданных данных

hash

Да

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

Алгоритм формирования описан в разделе "Подпись запроса активационного платежа".


В ответ возвращается код операции и возможны 3 варианта:

  1. Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <ActivationPayData> (синхронная обработка). (Код операции - 0)

  2. Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1)

  3. Ошибка обработки операции. Операция выполнена не будет. (Код операции - 2)


Пример запроса
Post /merchant/activationPay/ HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8

eshopId=450123
invoiceId=356421216
activationAmount=8.14
hash=dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20v3MvZ3Nkb21haW52YWxzaGEyZzIuY3JsMIG
Пример ответа
HTTP/1.1 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<OperationState>
		<Code>0</Code>
		<Desc>Успешно обработана</Desc>
	</OperationState>
	<OperationId>8f6a8487-98a6-4c03-b8b6-904cffd91749</OperationId>
	<EshopId>700025</EshopId>
	<Result>
		<State>
			<Code>0</Code>
			<Desc>Успешно обработан</Desc>
		</State>
	</Result>
</Response>

Подпись запроса активационного платежа

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:

Пример формирования строки
eshopId::invoiceId::activationAmount::cvv

Далее, к этой строке применяется алгоритм криптографии из пункта "Формирование контрольной подписи".

INNERPAYMENT - ОПЛАТА ЧЕРЕЗ КОШЕЛЕК INTELLECTMONEY

Передача параметров

Для оплаты в системе IntellectMoney необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/innerpayment

В запросе необходимо передать следующие параметры:


Название

Имя параметра

Обязательный

Описание

ID магазина

eshopId

Да

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID"

Номер СКО

invoiceId

Да

Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией "Запрос выставления счёта".

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

userToken

Да

Цифровая подпись пользователя (покупателя).

Алгоритм получения userToken описан в разделе Как получить UserToken.

Пин-код

pinCode

Да

Код для подтверждения платёжных операций. Указывается пользователем (покупателем) при регистрации на сайте IntellectMoney.

Не является обязательным для тестовой валюты (TST).

Состоит из 4 цифр.

Подпись для преданных данных

hash

Да

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

Алгоритм формирования описан в разделе "Подпись для оплаты со счёта IntellectMoney".


В ответ возвращается код операции и возможны 3 варианта:

  1. Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <MerchantServiceData> (синхронная обработка). (Код операции - 0)

  2. Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1)

  3. Ошибка обработки операции. Операция выполнена не будет. (Код операции - 2)


Пример запроса
Post /merchant/innerPayment/ HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8

eshopId=450123
invoiceId=356421216
userToken=BD2rQq%2Fh6P6tUEeSWLb5ur%2BIX3TIKckWjTKzmNwDoUI%3D
pinCode=4562
hash=dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20v3MvZ3Nkb21haW52YWxzaGEyZzIuY3JsMIG
Пример ответа
HTTP/1.1 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <OperationState>
        <Code>0</Code>
        <Desc>Успешно обработана</Desc>
    </OperationState>
    <OperationId>3cf78bc5-63f4-4fe3-86a0-8ce9d60e8228</OperationId>
    <EshopId>455551</EshopId>
    <Result>
		<State>
			<Code>0</Code>
			<Desc>Успешно обработан</Desc>
		</State>
	</Result>
</Response>

Подпись для оплаты со счёта IntellectMoney

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:

Пример формирования строки
eshopId::invoiceId::userToken::pinCode

Далее, к этой строке применяется алгоритм криптографии из пункта "Формирование контрольной подписи".

Пример использования

Данный метод переводит денежные средства с кошелька IntellectMoney Пользователя (Покупателя).

  1. Запрашиваем у Пользователя (Покупателя) Пин-код (pinCode), который он указал при регистрации в системе IntellectMoney.
  2. Обращаемся к методу innerPayment().
  3. Проверяем какой статус вернулся в ответ, если (0 - ОК), значит платёж прошел. Если пришел другой статус, проверьте корректность передаваемых полей.
  4. Сообщаем Пользователю (Покупателю) о завершении оплаты.

GETPOSTPAYBLANK - ПОЛУЧИТЬ БЛАНК ДЛЯ ОПЛАТЫ ПОЧТОВЫМ ПЕРЕВОДОМ

Передача параметров

Для получения бланка оплаты в отделениях почты России необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/getpostpayblank

В запросе необходимо передать следующие параметры:


Название

Имя параметра

Обязательный

Описание

ID магазина

eshopId

Да

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID".

Номер СКО

invoiceId

Да

Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией "Запрос выставления счёта".

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

amount

Да

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

Максимальная длина - 13 цифр вместе с десятичными знаками.

Адрес

address

Нет

Адрес прописки Пользователя (Покупателя).

Указывается полностью без сокращений

Почтовый индексpostCodeНет

Почтовый индекс Пользователя (Покупателя).

Имя покупателяfioНет

Фамилия Имя Отчество Пользователя (Покупателя).

Указывается полностью без сокращений.

ИННinnНетИндивидуальный номер налогоплательщика Пользователя (Покупателя).
ГражданствоresidentOfRussiaДа

Здесь нужно указать, является ли Пользователь (Покупатель) гражданином РФ или нет.
Передать 1, если Пользователь (
Покупатель) является гражданином РФ.

Передать 0, если Пользователь (Покупатель) не является гражданином РФ.

Серия

series

ДаСерия паспорта Пользователя (Покупателя).
НомерnumberДаНомер паспорта Пользователя (Покупателя).
День выдачи паспорта

day

Нет



Дата выдачи паспорта Пользователя (Покупателя).

Месяц выдачи пасспортаmonthНет
Год выдачи пасспортаyearНет
Кем выданkemНетУправление выдавшее паспорт.
Для Пользователя (Покупателя) не резидент РФ, передаются данные о сроке пребывания.
ДеньbeginDayНет


С какого числа начинает действовать разрешение на работу Пользователя (Покупателя).


МесяцbeginMonthНет
ГодbeginYearНет
ДеньendDayНет


Срок окончания разрешения работу Пользователя (Покупателя).

МесяцendMonthНет
ГодendYearНет

Подпись для преданных данных

hash

Да

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

Алгоритм формирования описан в разделе "Подпись для оплаты почтовым переводом".


В ответ возвращается код операции и возможны 3 варианта:

  1. Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <PostPayBlankData> (синхронная обработка). (Код операции - 0)

  2. Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1)

  3. Ошибка обработки операции. Операция выполнена не будет. (Код операции - 2)


Пример запроса
Post /merchant/getPostPayBlank/ HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8

eshopId=450123
invoiceId=356421216
activationAmount=8.14
hash=dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20v3MvZ3Nkb21haW52YWxzaGEyZzIuY3JsMIG
Пример ответа
HTTP/1.1 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <OperationState>
        <Code>0</Code>
        <Desc>Успешно обработана</Desc>
    </OperationState>
    <OperationId>3cf78bc5-63f4-4fe3-86a0-8ce9d60e8228</OperationId>
    <EshopId>455551</EshopId>
    <Result>
        <State>
            <Code>0</Code>
            <Desc>Успешно обработан</Desc>
        </State>
        <PostPayBlank>
            iVBORw0KGgoAAAANSUhEUgAABHQAAASkCAI...
        </PostPayBlank>
    </Result>
</Response>

Подпись для оплаты почтовым переводом

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:

Пример формирования строки
eshopId::invoiceId::amount::address::postCode::fio::inn::residentOfRussia::series::number::day::month::year::kem::beginDay::beginMonth::beginYear::endDay::endMonth::endYear

Далее, к этой строке применяется алгоритм криптографии из пункта "Формирование контрольной подписи".

Пример использования

Данный метод возвращает изображение готового бланк для оплаты в отделениях почты России. Изображение возвращается в виде строки (data:image/png;base64). Если обязательные поля не заполнить, то и в бланке они не будут заполнены и в момент перевода могут возникнуть проблемы, например: Пользователь (Покупатель) не является резидентом, тогда при не заполненных полях о сроке пребывания кассир потребует заполнить данные поля. 

  1. Запрашиваем у Пользователя (Покупателя) личные данные.
  2. Обращаемся к методу getPostPayBlank().
  3. Получаем в ответ изображение бланка для оплаты в отделениях почты России, обрабатываем полученный код "data:image/png;base64,{полученный код}" и отображаем получившееся изображение Пользователю (Покупателю).
  4. Пользователь (Покупатель) распечатывает бланк или заполняет чистый бланк,который можно получить в отделениях почты России.
  5. Пользователь (Покупатель) идет с бланком в отделение почты России и производит оплату.

Вы можете отслеживать состояние счета методом getPurchaseInfo() (надо обязательно передать номер платежа), когда State из <InvoiceData> будет в статусе "Paid=2" (Полностью оплачен) значит платеж завершен.

ОПЛАТА ЧЕРЕЗ ОБМЕННИКИ

AlfaClickPayment - Альфа-Клик

Для оплаты через Альфа-Клик необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/alfaclickpayment

SberBankPayment - Сбербанк Онлайн

Для оплаты через Сбербанк Онлайн необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/sberbankpayment

YandexPayment - Яндекс.Деньги

Для оплаты через Яндекс.Деньги необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/yandexpayment

WMRPayment - WebMoney

Для оплаты через Yandex.Money необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/wmrpayment

QIWIPursePayment - QIWI Кошелёк

Для оплаты через QIWI Кошелёк необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/qiwipursepayment

В запросе необходимо передать следующие параметры из таблицы 


Название

Имя параметра

Обязательный

Методы, в которых данный параметр является обязательным

Описание

ID магазина

eshopId

Да

Во всех

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID"

Номер СКО

invoiceId

Да

Во всех

Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией "Запрос выставления счёта".

Адрес удачного платежа

successUrlНе использовать, если не является обязательнымalfaclickpayment, wmrpayment, qiwipursepayment

Адрес, на который будет перенаправлен Пользователь (Покупатель) в случае успешной оплаты.


Адрес не удачного платежаfailUrlНе использовать, если не является обязательнымwmrpayment, qiwipursepayment

Адрес, на который будет перенаправлен Пользователь (Покупатель) в случае не успешной оплаты.

Дополнительные параметрыadditionalParamsНе использовать, если не является обязательнымqiwipursepayment

Используется для передачи дополнительной информации в QIWI.

Строка вида "to=+39106231449|from=+569323442", где: "|" - разделитель между параметрами, а "=" - разделитель в паре ключ-значение.

Для получения ссылки на оплату достаточно передать номер телефона в формате: "+7XXXXXXXXXX".

Пример для QIWI: $additionalParams = "to=+79026548754";

Подпись для преданных данных

hash

Да

Во всех

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

Алгоритм формирования описан в разделе "Подпись для оплаты через обменники".


В ответ возвращается код операции и возможны 3 варианта:

  1. Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <ExchangerData> (синхронная обработка). (Код операции - 0)

  2. Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1)

  3. Ошибка обработки операции. Операция выполнена не будет. (Код операции - 2)


Пример запроса
Post /merchant/QIWIPursePayment/ HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8

eshopId=450123
invoiceId=356421216
successUrl=http://Ваш_сайт/successUrl.php
failUrl=http://Ваш_сайт/failUrl.php
additionalParams=to=+791085488
hash=dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20v3MvZ3Nkb21haW52YWxzaGEyZzIuY3JsMIG
Пример ответа
HTTP/1.1 200 OK
Content-Type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<OperationState>
		<Code>0</Code>
		<Desc>Успешно обработана</Desc>
	</OperationState>
	<OperationId>1e548abc-c953-4a9e-9e6b-aff90564efeb</OperationId>
	<EshopId>455551</EshopId>
	<Result>
		<State>
			<Code>0</Code>
			<Desc>Успешно обработан.</Desc>
		</State>
		<ExchangerData>
			<ExchangeCurrency>QiwiPurse</ExchangeCurrency>
			<ExchangeAmount xsi:nil="true"/>
			<RedirectToUrl>		https://qiwi.com/order/external/main.actionshop=298124&transaction=1648175&iframe=true&successUrl=https%3a%2f%2fmerchant.intellectmoney.ru%2f%3fAction%3dqiwi%26state%3dsuccess%26invoiceId%3d3486654395%26BackRef%3dhttp%253a%252f%252fsuccess.php&failUrl=https%3a%2f%2fmerchant.intellectmoney.ru%2f%3fAction%3dqiwi%26state%3dfail%26invoiceId%3d3486654395%26BackRef%3dhttp%253a%252f%252ffail.php&target=iframe
			</RedirectToUrl>
			<ExchangeState>OK</ExchangeState>
			<IsNewWindow>false</IsNewWindow>
			<FormFields/>
			<ShowFields/>
			<Method>IFRAME</Method>
		</ExchangerData>
	</Result>
</Response>

Подпись для оплаты через обменники

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:

Пример формирования строки
eshopId::invoiceId::successUrl::failUrl::additionalParams

Если в методе обменника параметр не обязателен, его не обязательно передавать, но обязательно вставить как пустую строку пример для оплаты через WebMoney:Если в методе обменника параметр не обязателен, его не обязательно передавать, но обязательно вставить как пустую строку пример для оплаты через WebMoney:

Пример формирования строки
eshopId::invoiceId::successUrl::::additionalParams

Далее, к этой строке применяется алгоритм криптографии из пункта "Формирование контрольной подписи".

Пример реализации оплаты через обменник.

Реализация процесса оплаты через любой обменник происходит по одной и той же схеме отличается только метод QIWIPursePayment() - для оплаты этим способом нужно запросить номер телефона, к которому привязан кошелёк QIWI, в остальных методах этого делать не надо. Вот примерная реализация для оплаты через QIWI- кошелёк:


  1. Запрашиваем у Покупателя номер телефона.
  2. Обращаемся к методу QIWIPursePayment().
  3. Дальше, когда метод вернет Вам ссылку на страницу оплаты, возможны различные варианты:
    1. Вы показываете ссылку Пользователю (Покупателю), Пользователь (Покупатель) кликает по ней и переходит к оплате. Данный вариант считается рекомендуемым. На странице, на которой размещена ссылка, может быть размещена инструкция к оплате.
    2. Вы загружаете контент в iFrame на Вашей странице и Пользователь (Покупатель) производит оплату на Вашей странице. 
  4. После оплаты, система QIWI произведёт редирект. Если оплата прошла успешно - на адрес указанный в successUrl. При не успешной оплате - на failUrl.


GETPURCHASEINFO - ПОЛУЧИТЬ ИНФОРМАЦИЮ О ПЛАТЕЖЕ/МАГАЗИНЕ

Передача параметров

Для получения информации о платеже (платежах) необходимо отправить POST-запрос на следующий адрес URL:

https://api.intellectmoney.ru/merchant/latest/getpurchaseinfo

В запросе необходимо передать следующие параметры:


Название

Имя параметра

Обязательный

Описание

ID магазина

eshopId

Да, если не передан invoiceId

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице  https://intellectmoney.ru/ru/enter/ps_organization_shop/  в столбце "ID".

Номер СКО

invoiceId

Да, если не передан eshopId

Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией "Запрос выставления счёта".

Способ оплаты

inputType

Нет

Способ, которым оплачивался СКО. Если данный параметр передан вместе с invoiceId, в ответе на запрос будет указана сумма к оплате с учётом комиссии, если таковая имеется.

Подпись для преданных данных

hash

Да

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

Алгоритм формирования описан в разделе "Подпись для получения информации о платеже/магазине".


В ответ возвращается код операции и возможны 3 варианта:

  1. Запрос обработался моментально. Ответ типа <Response> будет содержать структуру <PurchaseInfoData> (синхронная обработка). (Код операции - 0)

  2. Запрос был поставлен в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1)

  3. Ошибка обработки операции. Операция выполнена не будет. (Код операции - 2)


Пример запроса
Post /merchant/getPurchaseInfo/ HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8

eshopId=455551
invoiceId=3486654395
inputType=
hash=58c16afcaac298dda6d84b7a3bd476da
Пример ответа
<Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<OperationState>
		<Code>0</Code>
		<Desc>Успешно обработана</Desc>
	</OperationState>
	<OperationId>974a1029-07f5-4797-ae12-f104101fa6b6</OperationId>
	<EshopId>455551</EshopId>
	<Result>
		<State>
			<Code>0</Code>
			<Desc>Успешно обработан.</Desc>
		</State>
		<Invoice>
			<InvoiceId>3486654395</InvoiceId>
			<LeftToPayAmount>
				<Amount>10.0000</Amount>
				<Currency>RUB</Currency>
			</LeftToPayAmount>
			<TotalAmount>
				<Amount>10.0000</Amount>
				<Currency>RUB</Currency>
			</TotalAmount>
			<OrderId>1498651094</OrderId>
			<Name>test</Name>
			<State>Created</State>
			<CreationDate>2017-06-28T15:06:21.777</CreationDate>
			<ChangeDate>2017-06-28T15:06:21.777</ChangeDate>
			<UserEmail>s.zhukov+1@intellectmoney.ru</UserEmail>
		</Invoice>
		<Eshop>
			<EshopId>455551</EshopId>
			<Name>bookshop</Name>
			<Url>http://test1.ru/</Url>
			<TemplateId>1</TemplateId>
		</Eshop>
		<SuccessUrl>https://successurl.ru</SuccessUrl>
		<BackUrl>http://backurl.ru</BackUrl>
		<FormType xsi:nil="true"/>
	</Result>
</Response>

Подпись для получения информации о платеже/магазине

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:

Пример формирования строки
eshopId::invoiceId::inputType

Далее, к этой строке применяется алгоритм криптографии из пункта "Формирование контрольной подписи".

АСИНХРОННЫЕ ОПЕРАЦИИ

Запрос к методу API может вернуть в ответ  Код операции - 1 . Это означает, что данные по запросу получены и поставлены в очередь на обработку. 

Для получения результата по операциям необходимо отправить POST-запрос на URL по целевым методам, добавив в окончание адреса “State”:

https://api.intellectmoney.ru/merchant/latest/createinvoicestate

https://api.intellectmoney.ru/merchant/latest/bankcardpaymentstate

https://api.intellectmoney.ru/merchant/latest/getbankcardpaymentstate

https://api.intellectmoney.ru/merchant/latest/activationpaystate

https://api.intellectmoney.ru/merchant/latest/getpurchaseinfostate

https://api.intellectmoney.ru/merchant/latest/getpaymentwaysstate

Запрос на получение результата надо отправлять до тех пор пока в ответ не будет получен Код операции - 0.

В запросе к любому методу необходимо передать следующие параметры:


Название

Имя параметра

Обязательный

Описание

ID магазина

eshopId

Да

Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID"

Операция

operationId

Да

Идентификатор операции, по которой Вы хотите получить информацию.

Данный идентификатор Вы получите в тексте ответа.

Подпись для преданных данных

hash

Да

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

Алгоритм формирования описан в разделе "Подпись запроса статуса асинхронной операции".


В ответ возвращается код операции и возможны 3 варианта:

  1. Запрос обработался моментально. Ответ типа <Response> будет содержать структуру одного из методов. (Код операции - 0)

  2. Запрос ещё находится в очереди на обработку. Нужно запросить статус позднее. (Код операции - 1)

  3. Ошибка обработки операции. Операция выполнена не будет. (Код операции - 2)

Подпись запроса статуса асинхронной операции

Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности:

Пример формирования строки
eshopId::operationId

Далее, к этой строке применяется алгоритм криптографии из пункта "Формирование контрольной подписи".

ИНТЕРФЕЙС УВЕДОМЛЕНИЙ ПРОВАЙДЕРА

В протоколе предусмотрена стандартная возможность получения провайдером уведомлений о статусе платежа. Если в настройках магазина в личном кабинете IntellectMoney выбран протокол IntellectMoney, то данные передаются в соответствии с п.3.2.2. Форма оповещения о платеже протокола IntellectMoney. Если в настройках магазина в личном кабинете IntellectMoney выбран протокол WebMoney, то данные передаются в соответствии с п.3.3.3. Форма оповещения о платеже протокола WebMoney. Какой протокол указан можно посмотреть на странице https://intellectmoney.ru/ru/enter/options/ps_organization_shop/ в столбце “Протокол“.

ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ

К строке для подписи (сформированной по правилам формирования подписи отдельного метода) в конец добавляется параметр “Секретный ключ ( secretKey )” из настроек магазина ЛК IntellectMoney через разделитель “::“, после чего к итоговой строке применяется хеш-функция MD5, результат работы который считается подписью запроса.

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

Пример полной строки для метода BankCardPayment(), где демонстрируется строка для банковской карты, у которой нет параметра cvv:

Пример формирования строки без не обязательного параметра
eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::::returnUrl::secretKey

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

Пример кода
<?php
	$eshop_id = "450090"; //Номер магазина в системе IntellectMoney
	$invoice_Id = 3254865478; //Здесь у вас будет храниться номер счёта к оплате 
	$pan = 1111222233334444; //Номер карты Пользователя (Покупателя)
	$card_holder = Ivanov Ivan; //Имя держателя карты
	$expired_month = 10; // Месяц, до которого действует карта 
	$expired_year = 19; // Год, до которого действует карта
	$cvv = 180; // Секретный код, если он есть у карты
	$cvv = ""; // Секретный код, не передаем - поскольку поле cvv у карты отсутствует
    $secretKey = "your_secret_key"; // Секретный ключ, который Вы указали в личном кабинете IntellectMoney
	$hash_string = $eshop_id."::".$invoice_id."::".$pan."::".$card_holder."::".$expired_month."::".$expired_year."::".$cvv."::".$secret_year; //Сформированная строка
	$result_hash = md5($hash_string); // Это значение нужно передать в поле hash
?>

КАК ПОЛУЧИТЬ userToken

Для получения userToken нужно перенаправить пользователя (покупателя) на страницу https://intellectmoney.ru/ru/enter/ с параметрами:

ПараметрОписание
returnUrlURL куда перенаправить пользователя (покупателя) после авторизации, на данный URL будет передан параметр userToken методом get.
emailemail пользователя (покупателя)

Пример:https://intellectmoney.ru/ru/enter/?returnUrl=https://<Ваш_сайт>/returnUrl.php&email=<Почта_покупателя

После того, как пользователь (покупатель) авторизуется, он будет перенаправлен на страницу указанную в returnUrl с параметром UserToken.

Пример:https://<Ваш_сайт>/returnUrl.php?&userToken=5a8WAwjuOb5g7P5VGdmxSt2ogNCysC7UirnQDmWFNP4%3D 

Правила формирования чека для онлайн кассы (merchantReceipt)


Данные для формирования чека в онлайн кассе. Представляет собой JSON - строку. Для корректного отображения названия товара в чеке, параметр text передавать в кодировке UTF-8.Корректно сформировать JSON-строку из массива данных можно функцией  языка программирования PHP json_encode. Проверить правильность составления JSON-строки можно воспользовавшись функцией языка программирования PHP json_decode.

Важно: Документы генерируются фискальным накопителем(ФН), данный факт накладывает на кодировку передаваемых строк, обмен сообщениями по http с кассой осуществляется в кодировке UTF-8, но при записи в ФН строки передаются в кодировке CP866, которая поддерживает меньший набор символов чем UTF-8, например: в CP866 отсутствуют символы «» и в ФН они не будут переданы - вместо строки "Сок «Груша»" в документе будет "Сок Груша". Экранирование символов возможно через обратный слэш "\" или функцией addslashes в PHP.


Структура JSON - строки
{
"inn":"7704019762",
"group":"Main",
"content":
	{
		"type":1,
		"customerContact":"foo@example.com"
		"positions":[
					{
						"quantity":2.000,
						"price":12.45,
						"tax":6,
						"text":"Булка"
					},
					{
						"quantity":1.000,
						"price":5.10,
						"tax":4,
						"text":"Спички"
					}
					],
	}
} 

Название

Элемент

Описание

Валидация суммыskipAmountCheck

Отключить встроенную проверку соответствия сумм позиций чека сумме счета. По умолчанию, если параметр не передан - 0

Может принимать значения 0 или 1

Ваш номер ИНН.innИндивидуальный Номер Налогоплательщика, полученный в Федеральной налоговой службе
Название группы.group

По умолчанию "Main". Для того что бы выставить в другую группу, нужно создать новую группу в Orange Data.

Если передать группу, которой не существует, Orange Data вернет ошибку.

Содержимое документаcontentНаполнение данного поля смотрите в Таблице content.

Таблица content

Название

Описание

Включает в себя

Тип документаtype

Нужно передать число, согласно действию:

  1. Приход
  2. Возврат прихода
  3. Расход
  4. Возврат расхода
Данные покупателяcustomerContact

Телефон или Email - покупателя

Формат телефона: +ХХХХХХХХХХ

Список позиций в чекеpositions

Список товаров, за которые производится оплата. Наполнение данного поля смотрите в таблице positions.

Таблица positions

Название

Обязательное

Описание

quantityДа

Количество товара.

Десятичное число с точностью до 3 символов после точки.

priceДа

Цена товара с учётом всех скидок и наценок.

Десятичное число с точностью до двух знаков после точки.

taxДа

Ставка НДС. Нужно передать число от 1 до 6:

1 – ставка НДС 18%

2 – ставка НДС 10%

3 – ставка НДС расч. 18/118

4 – ставка НДС расч. 10/110

5 – ставка НДС 0%

6 – НДС не облагается

7 - ставка НДС 20%

textДа

Описание позиции в чеке (товара).

Строка до 128 байтов.

paymentSubjectType

Нет

Предмет расчета. Нужно передать число от 1 до 13:

Товар = 1,
Подакцизный товар = 2,
Работа = 3,
Услуга = 4,
Ставка азартной игры = 5,
Выигрыш азартной игры = 6,
Лотерейный билет = 7,
Выигрыш лотереи = 8,
Предоставление РИД = 9,
Платёж = 10,
Агентское вознаграждение = 11,
Составной предмет расчета = 12,
Иной предмет расчета = 13

paymentMethodTypeНет

Способ расчета. Нужно передать число от 1 до 7:

Предоплата 100% = 1,
Частичная предоплата = 2,
Аванс = 3,
Полный расчёт = 4,
Частичный расчёт и кредит = 5,
Передача в кредит = 6,
Оплата кредита = 7

Пример кода для вставки в форму
<input type="hidden" value='{"inn":"7704019762","group":"Main","content":{"type":1,"positions":
[{"quantity":2.000,"price":12.45,"tax":6,"text":"Булка"},
{"quantity":1.000,"price":5.10,"tax":4,"text":"Спички"}],
"customerContact":"foo@example.com"}}' name="merchantReceipt">
Пример формирования merchantReceipt на языке PHP
$inputPositions = array(
	array("quantity"=>"1", "price"=>"10", "tax"=>"6", "text"=>"Товар номер 1"),
	array("quantity"=>"1", "price"=>"11", "tax"=>"6", "text"=>"Товар номер 2"),
	array("quantity"=>"1", "price"=>"12", "tax"=>"6", "text"=>"Товар номер 3")
);
function createMerchantReceipt($inputPositions){
        $inn = "Ваш ИИН";
        $customerContact = "test@test.ru";//Почта плательщика

        $positions = array();
        foreach($inputPositions as $position){
            $positions[] = array(
                'quantity' => $position['quantity'],
                'price' => $position['price'],
                'tax' => $position['tax'],
                'text' => $position['text'],
            );
        }

        $merchantReceipt = array(
            "inn" => $inn,
            "group" => "Main",
            "content" => array(
                "type" => "1",
                "positions" => $positions,
                "customerContact" => $customerContact
            )
        );

        return json_encode($merchantReceipt);
}
ВопросОтвет
В чеке выводится нечитаемое назначение платежаПараметр merchantReceipt следует передавать в кодировке UTF-8

ТИПЫ ДАННЫХ

<Response>


Поле

Тип

Описание

OperationState

<OperationState>

Статус выполнения операции

OperationId

GUID

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

EshopId

int

ID магазина

Result

MethodResult

Результат выполнения запроса. Зависит от типа запроса. В случае асинхронной обработки запроса данного поля не будет.

<OperationState>


Поле

Тип

Описание

State

<MerchantServiceOperatonState>

Статусы выполнения запросов

Desc

string

Описание кода статуса выполнения запроса

<CreateInvoiceData>


Поле

Тип

Описание

State

<RequestState>

Статусы выполнения запросов

InvoiceId

long

Номер выставленного Счёта К Оплате. По данному номеру можно отслеживать состояние СКО.

<BankCardPaymentData>


Поле

Тип

Описание

State

<RequestState>

Статусы выполнения запросов

<BankCardPaymentStateData>


Поле

Тип

Описание

State

<RequestState>

Статусы выполнения запросов

PaymentStep

<MerchanteServicePaymentStep>

Статусы банковского платежа

Message

string

Текстовое представление последнего статуса операции в банке (RC)

Form3DS

string

Это html код, для процедуры прохождения 3-DS.

Данный код надо будет отобразить Пользователю (Покупателю).

Обратите внимание, что в этом html коде есть вызов метода submit: <body OnLoad="document.forms[0].submit();">.

<ActivationPayData>


Поле

Тип

Описание

State

<RequestState>

Статусы выполнения запросов

<PaymentWayListData>

ПолеТипОписание
State<RequestState> Статусы выполнения запросов
PaymentWays<PaymentWayData> Содержит всю информацию по способам оплаты

<PaymentWayData>

ПолеТипОписание
IdintУникальный идентификатор способа оплаты
Amount<Money>

Сумма, которую должен заплатить Пользователь (Покупатель) с учётом комиссии.

InputType<InputType>Выводит название данного способа оплаты. Это название надо будет использовать в методе getPuschaseInfo() (поле preference)
PreferenceTypes<PreferenceTypeSpecification> К какой группе относится данный способ оплаты. Данный параметр для внутреннего использования, его можно проигнорировать.
ServiceTimeOfEnrollmentType<MerchantServiceTimeOfEnrollmentType> Сроки зачисления. Отображает сроки зачисления денежных средств.
Commissiondecimal

Сумма комиссии, которую придется оплатить Пользователю (Покупателю) помимо суммы к оплате.

Измеряется в процентах, например 1.000 - это один процент от суммы.

IsVisibleboolУказывает доступен ли данный способ оплаты в системе IntellectMoney.
IsActivebool

Указывает возможность оплаты счёта к оплате данным способом. Если true, то оплата возможна. Если false, то оплатить данным способом не возможно.

Вернет true если была передана сумма платежа (amount) из метода getPaymentWays() или сумма платежа больше минимально допустимой суммы оплаты в системе IntellectMoney и меньше максимально допустимой по способу оплаты.

<Money>

ПолеТипОписание
AmountdecimalКоличество денежных средств.
Currency<Currency> В какой валюте исчисляются денежные средства.

<MerchantServiceData>

Поле

Тип

Описание

State

<RequestState>

Статусы выполнения запросов

<PostPayBlankData>

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

State

<RequestState>

Статусы выполнения запросов

PostPayBlankString

Возвращает строку для вставки в html. Пример обработки данной строки, где {$PostPayBlank} результат запроса:

Пример кода
<img class="printed__img" src="data:image/png;base64,{$PostPayBlank}">

<ExchangerData>

Поле

Тип

Описание

State

<RequestState>

Статусы выполнения запросов.

ExchangerData<ExchangerPaymentData>Содержит структуру, которая описывает взаимодействие с обменником.

<ExchangerPaymentData>

Поле

Тип

Описание

ExchangeCurrency

<ExchangeCurrency>

Название preference, которым происходит оплата.

ExchangeAmountstringСумма оплаты.
RedirectToUrlstring

Адрес , куда отправлять Пользователя (Покупателя) что бы он произвел оплату.

Вы можете ему просто предоставить этот адрес как ссылку, сделать сразу redirect или отобразить содержимое, например curl запросом.


Пример кода
<a href="<RedirectToUrl>">Ссылка на оплату</a>


ExchangeState<ExchangerGatewayState>Состояние способа оплаты.
OK - способ работает,
ERROR - способ не работает.

<PurchaseInfoData>

Поле

Тип

Описание

State

<RequestState>

Статусы выполнения запросов

Invoice<InvoiceData>Информация о СКО
Eshop<EshopData>Информация о магазине
SuccessUrlstringСтрока с url, куда надо перенаправить Пользователя (Покупателя) после успешной оплаты
BackUrlstringСтрока с url, куда надо перенаправить Пользователя (Покупателя) после успешной оплаты

<InvoiceData>

ПолеТипОписание
InvoiceIdlongНомер СКО, по которому была найдена информация.
LeftToPayAmount<Money>

В узле <LeftToPayAmount> сумма СКО которую осталось оплатить, если счёт уже оплачен - покажет 0.

TotalAmount<Money>
В узле <TotalAmount> сумма с учётом комиссии для указанного способа оплаты.
OrderIdstringВнутренний номер покупки поставщика.
NamestringОписание товара или услуги. Соответствует serviceName.
State<InvoiceState>Статус состояния СКО.
CreateionDateDateTimeДата создания СКО.
ChangeDateDateTimeДата последних изменений СКО.
UserEmailstringEmail указанный покупателем. Соответствует полю email из метода createInvoice().

<EshopData>

ПолеТипОписание
EshopIdintНомер магазина в системе IntellectMoney
NamestringНазвание магазина
DescriptionstringОписание магазина
UrlstringСайт магазина
EmailstringEmail, на который отправляются оповещения
PhonestringНомер телефона магазина
WorkTimestringВремя работы магазина
TemplateIdintВерсия страницы оплаты

ПЕРЕЧИСЛЕНИЯ


Коды операций


MerchantServiceOperatonState

Описание

0

Успешно обработана

1

В процессе выполнения

2

Ошибка

Статусы запросов


Код ошибки

Описание

0Успешно обработан
1Обработан с предупреждениями
10Ошибка сервера
11Не защищенное соединение. Отправляйте запрос по https
50Счет уже был оплачен ранее
150Параметр eshopId передан неверно
151Параметр invoiceId передан неверно
152Обязательно должен быть передан либо eshopId либо invoiceId
153Параметр inputType передан неверно
154Не передан обязательный параметр hash или передан неверно
155Не передан обязательный параметр amount или передан неверно
156Параметр preferences передан неверно
157Не передан обязательный параметр recipientAmount или передан неверно
158Не передан обязательный параметр recipientCurrency или передан неверно
159Не передан обязательный параметр email или передан неверно
160Параметр serviceName передан неверно
161Не передан обязательный параметр userName или передан неверно
162Параметр successUrl передан неверно
163Параметр failUrl передан неверно
164Параметр backUrl передан неверно
165Параметр resultUrl передан неверно
166Параметр returnUrl передан неверно
167Параметр expireDate передан неверно
168Параметр holdMode передан неверно
169Параметр(ы) userFields передан(ы) неверно
170Не передан обязательный параметр orderId или передан неверно
171Тестовый счет можно оплатить только способом \"Со счёта IntellectMoney\"
172Параметр secretKey передан неверно
173Параметр action передан неверно
174Параметр operationAmount передан неверно
175Обязательно должен быть передан invoiceId либо orderId
176Не передан обязательный параметр ipAddress или передан неверно
200Не передан обязательный параметр pinCode или передан неверно
201Не передан обязательный параметр userToken или передан неверно
202Данный счет не принадлежит владельцу кошелька IntellectMoney
203В кошельке IntellectMoney нет подходящего счета с нужной валютой
204Для проведения оплаты необходимо пройти идентификацию в личном кабинете IntellectMoney
205Превышен лимит на оплату для кошелька IntellectMoney
250Не передан обязательный параметр pan или передан неверно
251Не передан обязательный параметр cvv или передан неверно
252Не передан обязательный параметр cardHolder или передан неверно
253Не передан обязательный параметр expiredYear или передан неверно
254Не передан обязательный параметр expiredMonth или передан неверно
255Не передан обязательный параметр activationAmount или передан неверно
256Карта плательщика заблокирована
257Счет в неверном статусе. Оплата не возможна
258Есть не завершенные платежи. Дождитесь обработки
259Платеж запрещен
300Неверно передан параметр Pparameter
301Неверно передан параметр inn
302Неверно передан параметр residentofrussia
303Неверно передан параметр series
304Неверно передан параметр number
350Неверно переданы новые позиции по чеку

Статусы банковского платежа


merchantServicePaymentStep

Описание

0

Успешно завершен

1

Создан

2

В обработке

3

Отправлен на 3-DS

4

Отправлен на активационный платеж

10

Ошибка платежа


Группы способов оплаты


preferenceTypeSpecification


Описание

AllВсе
PopularПопулярные
OnlineОнлайн
NonComissionБез комиссии
FlashМгновенные

Сроки зачисления

MerchanteServicePaymentStep

Описание

NoneДо 30 рабочих дней
FlashМгновенно
FiveDaysДо 5 рабочих дней
ThreeDaysДо 3 рабочих дней

Способы оплаты

InputTypeОписание

InnerPayment

Внутренний перевод
AcquiringОплата с банковской карты
BankRFБанковский перевод
WMRWebMoney
YandexЯндекс.Деньги
QiwiPurseQIWI Кошелёк
AlfaClickPayUАльфа-Клик
IBankИнтернет банкинг

Bankomats

В банкоматах
TerminalsВ терминалах
RapidaOnlineRapidaOnline
GoogleADSGoogleADS
PostPayЧерез почту РФ
MvideoMvideo
QBankQBank через Rapida
SberBankСбербанк Онлайн
AlfaClickАльфаКлик
EurosetВ салонах Евросеть
SvyaznoyВ салонах Связной

Описание принимаемых валют

НазваниеОписание

RUB

Валюта оплаты - Российский рубль
TSTВнутренняя тестовая валюта оплаты

Название обменника

<ExchangeCurrency>Описание
YandexСоответствует preference - Yandex
WMRСоответствует preference - WebMoney
AlfaClickСоответствует preference - AlfaClick
SberBankСоответствует preference - SberBank
QiwiPurseСоответствует preference - QiwiPurse

Информацию о preference можно посмотреть по ссылке http://wiki.intellectmoney.ru/pages/viewpage.action?pageId=4849751

Статусы состояния СКО

InvoiceStateОписаниеПояснение
CreatedСозданСчёт к оплате создан и теперь его состояние можно отслеживать методом getPurchaseInfo(). Никаких платёжных операций не производилось.
PartPaidЧастично оплаченПользователь (Покупатель), внес часть средств. Пользователю (Покупателю) надо внести оставшуюся часть суммы.
PaidПолностью оплаченПользователь внес всю сумму.
ToPaidВ процессе обработки

Над денежными средствами производятся действия.

RefundВозвратСредства будут возвращены Пользователю (Покупателю).
HeldЗахолдирован

Средства заморожены (захолдированы/ holded) на счёте Пользователя (Покупателя).

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

Поведение денежных средств определяется в настройках магазина на вкладке "Приём платежей" в разделе "Расширенные настройки".


Разница в версиях API

Документация описывает последнюю версию API.

latestВсе методы работают только через POST - запросы
v2.1В методе BankCardPayment появился новый обязательный параметр: ipAddress, изменился набор полей, участвующих в формировании хеша
v2.0

В методе CreateInvoice появились новые не обязательные параметры: resultUrl, UserFieldName_N, purchaseHash.

Метод PayInvoiceBankCard переименован в BankCardPayment.

Метод CheckInvoice переименован в GetBankCardPaymentState.

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

Появились новые методы:

  • GetPaymentWays, который возвращает все доступные способы оплаты;
  • InnerPayment- позволяет проводить оплату с личного кошелька IntellectMoney;
  • GetPostPayBlank- возвращает изображение с почтовым бланком в base64;
  • AlfaClickPayment, SberbankPayment, YandexPayment, WMRPayment, QIWIPursePayment - позволяют проводить оплату через обменники;
  • GetPurchaseInfo- возвращает информацию о платеже и/или о магазине
v1.0

Начальная версия

  • No labels