- Created by IntellectMoney, last modified on Sep 30, 2024
ИСПОЛЬЗОВАНИЕ API
Данное API позволит Вам выставить счёт, контролировать состояние счёта, отправлять пользователя (покупателя) на выбранный способ оплаты или получить необходимые данные для оплаты. Взаимодействие между сервером IntellectMoney и сайтом поставщика (далее поставщика) происходит по HTTP-протоколу.
Для того, чтобы иметь возможность совершать запросы описанные в этой документации, Вам необходимо иметь доступ к API (см. Получение доступа к API).
Перечисленные в данной статье методы, доступны только для аккаунтов организаций, если у Вас аккаунт физического лица, вы можете отредактировать и установить модуль для CMS или воспользоваться PeerToPeer (P2P) API.
БИЗНЕС СХЕМА
Примерная схема взаимодействия системы IntellectMoney, Интернет-магазина и Покупателя (данная схема не является обязательной и служит только для демонстрации):
- Покупатель оформляет заказ: вводит персональные данные, выбирает способ доставки и так далее.
- После того как пользователь отправил персональные данные, система Интернет-магазина получает доступные (активные) магазину способы оплаты, используя метод
getPaymentWays()
.
Этот шаг можно пропустить, если способ оплаты выбирается на шаге 1.
Этот шаг можно выполнить после выставления счёта к оплате.
Это шаг можно пропустить, если есть четкое понимание каким способом будет проводиться оплата.
Этот шаг можно выполнить до шага 1. - Система IntellectMoney возвращает в систему магазина все доступные (активные) способы оплаты. Система Интернет-магазина предлагает пользователю выбрать способ оплаты.
Данный шаг выполняется всегда, когда выполняется шаг 2. - Покупатель выбирает способ оплаты.
Этот шаг можно пропустить, если способ оплаты выбирается на шаге 1 или есть четкое понимание каким способом будет проводиться оплата. - Система Интернет-магазина показывает информацию о выбранном способе оплаты, предлагает подтвердить согласие с условиями и прочее.
Этот шаг можно пропустить, если способ оплаты выбирается на шаге 1 или есть четкое понимание каким способом будет проводиться оплата. - Покупатель заполняет какие-либо поля, выполняет инструкции.
Этот шаг можно пропустить, если способ оплаты выбирается на шаге 1 или есть четкое понимание каким способом будет проводиться оплата. - Система Интернет-магазина, на основании выбранного способа оплаты, выставляет счёт к оплате через метод
createInvoice()
. - Система IntellectMoney возвращает в систему магазина номер созданного счёта к оплате - invoiceId.
- Система Интернет-магазина вызывает метод оплаты в зависимости от выбранного способа оплаты.
- Система IntellectMoney возвращает всю необходимую информацию для проведения оплаты.
- Система Интернет-магазина отображает покупателю информацию об оплате.
- Если был выбран не моментальный способ оплаты, например почтой России, то пользователь асинхронно оплачивает покупку, сделанную в Интернет магазине.
- Когда деньги поступили на счёт, система IntellectMoney оповещает систему Интернет-магазина, посредством отправки формы оповещения (см. протокол IntellectMoney) на URL оповещения о платеже - Result URL.
- Если был выбран моментальный способ оплаты. Пользователь заполняет поля, производит необходимые действия и отправляет эти данные в систему Интернет-магазина.
- Система Интернет-магазина, в зависимости от выбранного способа оплаты, отображает форму для ввода 3-DS пароля или переводит Покупателя на страницу личного кабинета(напр. Сбербанк, AlfaClick и др.).
- Если был выбран способ оплаты через обменники (exchangers - AlfaClick, Qiwi и т.д.), пользователь завершает оплату в личном кабинете обменника.
- Когда деньги поступили на счёт, система IntellectMoney оповещает систему Интернет-магазина, посредством отправки формы оповещения (см. протокол IntellectMoney) на URL оповещения о платеже - Result URL.
- Система Интернет-магазина показывает страницу с сообщением об успешной оплате, если это требуется.
После того как Система Интернет-магазина получила ID счета к оплате (invoiceId), можно получить информацию по данному счету к оплате, через метод getPurchaseInfo()
. Через этот метод дополнительно можно получить информацию о настройках магазина в системе IntellectMoney - узнать время работы, название и так далее.
Порядок вызова методов для оплаты Банковской картой (Acquiring): bankCardPayment()
, затем activationPay()
.
- После вызова метода
bankCardPayment()
можно отслеживать состояние платежа через методgetBankCardPaymentState()
.
ПОРЯДОК ВЫЗОВА МЕТОДОВ
Работу с представленным API можно разделить на 2 шага:
- Выставляем счёт к оплате посредством метода
createInvoice()
. После того как счёт выставлен, его состояние можно отслеживать через методgetPurchaseInfo()
.- Если нужно получить все доступные магазину способы оплаты, вызываем метод
getPaymentWays()
. Если данная информация не нужна и Вы проводить оплату зафиксированным способом оплаты (например, принимаете только оплату с банковской карты), данный метод можно не вызывать.
- Если нужно получить все доступные магазину способы оплаты, вызываем метод
- В зависимости от выбранного способа оплаты, проводим оплату:
- Оплата с кошелька IntellectMoney:
- Получаем userToken.
getPaymentWays()
- Запрашиваем у Покупателя код для подтверждения платёжных операций (pinCode).
- Обращаемся к методу
innerPayment()
.
- Получаем userToken.
- Оплата банковской картой:
- Обращаемся к методу
bankCardPayment()
. После отправки данных о карте, состояние банковского платежа можно отслеживать через методgetBankCardPaymentState()
. - Если платёж 3-DS отображаем Покупателю iFrame с окном для ввода 3-DS пароля.
Если проводим активационный платеж, то обращаемся к методуactivationPay()
.
- Обращаемся к методу
- Оплата через почту России:
- Запрашиваем у пользователя данные для заполнения бланка.
- Обращаемся к методу
getPostPayBlank()
.
- Оплата через обменники (alfaClick, Яндекс.Деньги и т.д.):
- Обращаемся к методу обменника:
- Альфа-Клик:
alfaClickPayment()
. - Сбербанк Онлайн:
sberbankPayment()
. - Яндекс.Деньги:
yandexPayment()
. - С кошелька WebMoney:
WMRPayment()
. - С QIWI-кошелька:
QIWIPursePayment()
.
- Альфа-Клик:
- Обращаемся к методу обменника:
- Оплата с кошелька IntellectMoney:
В методах коллекции, отправка запроса и обработка результат реализована на вкладках "Pre-request" и "Tests" соответственно. Данный подход позволяет подробно описать логику расчета подписей, формирования заголовков и параметров метода.ГОТОВЫЕ БИБЛИОТЕКИ
Для отладки функционала существует коллекция Postman, чтобы начать работу, необходимо указать свои данные в переменные коллекции IntellectMoney API.
ОБЩАЯ ИНФОРМАЦИЯ
ФОРМИРОВАНИЕ ЗАПРОСА
Для обращения к методам API нужно выполнить POST
-запрос на URL, который состоит из следующих частей: host(https://api.intellectmoney.ru/merchant/) + название метода к которому идёт обращение (напр. https://api.intellectmoney.ru/merchant/createinvoice).
Данные при запросах на сервер IntellectMoney передаются в формате параметров HTTP-запроса в кодировке UTF-8 с заголовком Content-type: application/x-www-form-urlencoded. В ответ данные возвращаются в формате XML, либо в формате JSON. Что бы получить ответ в формате JSON нужно в заголовки запроса передать "Accept: text/json".
ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ
Каждый метод имеет своё правило формирования контрольной подписи.
К строке для подписи в конец добавляется параметр “Секретный ключ (secretKey)”, из настроек магазина в личном кабинете IntellectMoney, через разделитель “::“. После чего, к итоговой строке применяется хеш-функция MD5, результат работы который считается подписью запроса. Обратите внимание, что строка передаваемая в MD5 должна иметь кодировку UTF-8.
- Подпись запроса передается в параметр hash.
Пример формирования контрольной подписи:
Вызываемый метод: getPaymentWays()
Передаваемые параметры:
- eshopId= 450123
- invoiceId= 356421216
- preferences= Inner
Правило формирования контрольной подписи (указано в описании метода):
- eshopId::invoiceId::amount::preferences
Секретный ключ магазина (из настроек магазина в личном кабинете IntellectMoney):
- 123abc
Итоговая строка контрольной подписи:
- 450123::356421216::::Inner::123abc
Подпись запроса, передаваемая в параметр hash:
- d067c454011c456e5c69a189c54528d6
Таким образом, если параметр не имеет значения, он все равно должен участвовать в формировании контрольной подписи.
МЕТОД GetPaymentWays - ЗАПРОС СПОСОБОВ ОПЛАТЫ
Позволяет запросить доступные (активные) магазину способы оплаты.
Доступ к методу
URL: https://api.intellectmoney.ru/merchant/getpaymentways
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::amount::preferences::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да, если не передан invoiceId | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" Если данный параметр не передан, то обязательно нужно передать параметр invoiceId. Иначе Вы получите Exception. |
Номер СКО | invoiceId | Да, если не передан eshopId | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “ Запрос выставления счета ” Если данный параметр не передан, то обязательно нужно передать параметр eshopId. Иначе Вы получите Exception. |
Сумма платежа | amount | Нет | Сумма платежа, которую поставщик желает получить от пользователя (покупателя). Сумма должна быть больше нуля, дробная часть отделяется точкой, два знака после точки. Если передать данный параметр, то в возвращаемой структуре Если данный параметр не передан, то в возвращаемой структуре Максимальная длина - 13 цифр вместе с десятичными знаками. |
Способ оплаты | preferences | Нет | Когда передан данный параметр, то система вернет информацию, только по указанным способам оплаты. Подробное описание доступно на странице Соответствия preference & inputType |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Строка подписи eshopId::invoiceId::amount::preferences Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<PaymentWayListData>
(синхронная обработка). ( Код операции - 0 )Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 )Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 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>
МЕТОД CreateInvoice - ВЫСТАВЛЕНИЕ СЧЁТА К ОПЛАТЕ
Используется для выставления счета к оплате (далее СКО).
Доступ к методу
URL: https://api.intellectmoney.ru/merchant/createInvoice
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
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 | Да | Валюта платежа. Может принимать значения:
Внимание: USD и EUR можно передавать только для платежей посредством банковской карты (preference=bankCard). Подробную информацию о подключении иностранных валют Вы можете получить у Вашего персонального менеджера. |
Имя Пользователя | userName | Нет | Имя пользователя (покупателя), который совершает платеж Максимальная длина – 255 символов. |
E-mail пользователя | Да | Email пользователя (покупателя). Максимальная длина – 100 символов. | |
Адрес удачного платежа | successUrl | Нет | Адрес, на который происходит перенаправление плательщика с мерчанта после успешной оплаты Максимальная длина - 512 символов. |
failUrl | Нет | Адрес, на который происходит перенаправление плательщика с мерчанта в случае неуспешной оплаты Максимальная длина - 512 символов. | |
Адрес возврата в магазин | backUrl | Нет | Адрес ссылки "Вернуться в магазин" на мерчанте Максимальная длина - 512 символов. |
Адрес оповещений | resultUrl | Нет | Адрес, на который система IntellectMoney посылает HTTP/S POST запросы об изменении состояния СКО для протокола Webmoney Максимальная длина - 512 символов. |
Срок существования СКО | expireDate | Нет | Дата и время, по достижению, которых оплатить счёт в системе IntellectMoney станет не возможно. Счет переходит в статус "Отменён". Передавать в формате “ Данный параметр подробно описан в разделе Холдирование |
Режим холдирования | holdMode | Нет | При оплате СКО, средства на счете пользователя не списываются, а “замораживаются“. Данный параметр может принимать три значения:
Данный параметр подробно описан в разделе Холдирование |
Срок холдирования денежных средств | holdTime | Нет | Время, через которое захолдированные (замороженные) денежные средства будут зачислены на счёт магазина или возвращены покупателю, измеряется в часах. Целое число от 1 до 119 часов. Данный параметр подробно описан в разделе Холдирование |
Данные по чеку | merchantReceipt | Нет | Данные для формирования чека в онлайн кассе. Подробное описание смотрите в протоколе приема платежей, пункт 4.5 Правила формирования чека для онлайн кассы (merchantReceipt) Параметр является обязательным для магазинов с включенной онлайн-кассой |
Способ оплаты | preference | Нет | Способы оплаты, которые будут доступны для данного СКО. Если данное поле не передано, то будут доступны все способы, доступные магазину. Подробное описание доступно по ссылке |
Данные поставщиков сплитованного счета | splitInvoiceData | Нет | Массив поставщиков (идентификатор магазина и сумма) в формате JSON — получателей средств сплитованного счета. После создания мастер счета по каждому поставщику автоматически создается счет сабмерчанта. Пример параметра { "Splits": [ { "EshopId": 400001, "Amount": 200 }, { "EshopId": 400002, "Amount": 600 }, ] } |
Тип операции по расписанию | recurringType | Нет | Тип операции по расписанию, принимает значение:
Данной командой, банковская карта регистрируется в цепочке платежей и привязывается к счету, после того как счет будет оплачен. Параметр является обязательным для рекуррентых платежей (ребиллинга). |
Подпись для переданных данных из счёта | purchaseHash | Нет | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Не включает в себя hash. Параметр является обязательным для рекуррентых платежей (ребиллинга) и, если включен пункт "Требовать HASH" в настройках магазина. Если не передать, то в ответ придет Exception. Проверить включен пункт "Требовать HASH" или нет можно в настройках магазина https://intellectmoney.ru/ru/enter/ps_organization_shop/ вкладка "Прием платежей" -> "Расширенные настройки". Алгоритм формирования описан в протоколе IntellectMoney в разделе " Проверка данных формы запроса ". |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Строка подписи eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<CreateInvoiceData>
(синхронная обработка). ( Код операции - 0 )Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 )Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 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>
МЕТОД BankCardPayment - ОПЛАТА БАНКОВСКОЙ КАРТОЙ
Используется для передачи реквизитов банковской карты и дальнейшей оплаты счета.
Доступ к методу
URL: https://api.intellectmoney.ru/merchant/bankcardpayment
Доступные HTTP-методы: POST
Требуемый уровень доступа: PCI DSS
Правило формирования заголовка Sign: eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “ Запрос выставления счета ” |
Номер карты плательщика | pan | Да | Номер карты плательщика |
Держатель карты | cardHolder | Нет | Имя и фамилия плательщика |
Срок действия месяц | expiredMonth | Да | Месяц, до которого действует карта |
Срок действия год | expiredYear | Да | Год, до которого действует карта |
CVV2/CVC2 код | cvv | Нет | Секретный код CVV2 (CVC2), как правило написан на обороте карты (последние три цифры на полосе для подписи). Данный параметр должен быть обязательно передан если банковская карта снабжена cvv. Если попытаться оплатить такой картой и не указать cvv, то банк-эквайер вернет ошибку. Максимальная длина - 512 символов. |
Адрес успешной 3D-S авторизации | returnUrl | Да | Адрес, на который перенаправляет плательщика после завершения 3DS. |
IP адрес сайта магазина | ipAddress | Да | IP адрес сайта, с которого выставляется платеж. |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
- Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<BankCardData>
(синхронная обработка). ( Код операции - 0 ) - Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 ) - Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Стоит заметить, что вызов bankCardPayment()
- первый шаг оплаты. Ответ этого метода не содержит статуса банковского платежа.
Пример запроса
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>
Пример использования
- Запрашиваем у Покупателя данные по карте.
- Обращаемся к методу
bankCardPayment()
. После отправки данных о карте, состояние банковского платежа можно отслеживать через методgetBankCardPaymentState()
. - Дальше возможны два варианта:
- Платёж 3-DS (Статус Платежа 3 - Отправлен на 3DS):
- отображаем Пользователю (Покупателю) код из параметра Form3DS.
- Пользователь Пользователь (Покупатель) проходит 3-DS идентификацию. Состояние банковского платежа можно узнать обратившись к методу
getBankCardPaymentState()
. Как только данный метод вернет статус 0, можно считать, что счёт оплачен.
- Платёж активационный (Статус Платежа 4 - отправлен на активационный платеж):
- Обращаемся к методу
activationPay()
.
- Обращаемся к методу
- Платеж не 3-DS, то ничего не делаем (Статус Платежа 2 - в обработке).
- Платёж 3-DS (Статус Платежа 3 - Отправлен на 3DS):
- Сообщаем Пользователю (Покупателю) о завершении оплаты.
МЕТОД GetBankCardPaymentState - СОСТОЯНИЕ ПЛАТЕЖА
Используется для получения информации о состоянии оплаты счета.
Доступ к методу
URL: https://api.intellectmoney.ru/merchant/getbankcardpaymentstate
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “ Запрос выставления счета ” |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<BankCardPaymentStateData>
(синхронная обработка). ( Код операции - 0 )Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 )Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 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 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>
МЕТОД ActivationPay - АКТИВАЦИОННЫЙ ПЛАТЁЖ
Используется для завершения активационного платежа.
Доступ к методу
URL: https://api.intellectmoney.ru/merchant/activationpay
Доступные HTTP-методы: POST
Требуемый уровень доступа: PCI DSS
Правило формирования заголовка Sign: eshopId::invoiceId::activationAmount::cvv::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “ Запрос выставления счета ” |
Сумма активационного платежа | activationAmount | Да | Сумма, которая заблокирована у клиента на карте. Сумму блокировки можно узнать в банке, либо из СМС, в случае если услуга поnключена |
CVV2/CVC2 код | cvv | Нет | Секретный код CVV2 (CVC2), как правило написан на обороте карты (последние три цифры на полосе для подписи). Данный параметр должен быть обязательно передан если банковская карта снабжена cvv. Если попытаться оплатить такой картой и не указать cvv, то банк-эквайер вернет ошибку. Максимальная длина - 512 символов. |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::activationAmount::cvv Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<ActivationPayData>
(синхронная обработка). ( Код операции - 0 )Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 )Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 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>
МЕТОД InnerPayment - ОПЛАТА ВНУТРЕННИМ ПЛАТЕЖОМ
Используется для оплаты в системе IntellectMoney.
Доступ к методу
URL: https://api.intellectmoney.ru/merchant/innerpayment
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::userToken::pinCode::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “ Запрос выставления счета ” |
Сумма платежа | userToken | Да | Цифровая подпись пользователя (покупателя). Алгоритм получения userToken описан в разделе Как получить userToken |
Пин-код | pinCode | Нет | Код для подтверждения платёжных операций. Указывается пользователем (покупателем) при регистрации на сайте IntellectMoney. Состоит из 4 цифр. |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::userToken::pinCode Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<MerchantServiceData>
(синхронная обработка). ( Код операции - 0 )Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 )Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 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 Пользователя (Покупателя) на кошелек IntellectMoney или Банковскую карту Партнера (Продавца).
- Запрашиваем у Пользователя (Покупателя) Пин-код (pinCode), который он указал при регистрации в системе IntellectMoney.
- Обращаемся к методу
innerPayment()
. - Проверяем какой статус вернулся в ответ, если (0 - ОК), значит платёж прошел. Если пришел другой статус, проверьте корректность передаваемых полей.
- Сообщаем Пользователю (Покупателю) о завершении оплаты.
ОПЛАТА ЧЕРЕЗ Qiwi-кошелек
Оплата используя Киви-кошелек состоит из 3-х этапов, путем вызова методов:
- CreateQiwiWalletToken, для формирования токена;
- CheckQiwiWalletToken, для подтверждения;
- QiwiWalletPayment, для финальной оплаты.
Доступ к методу CreateQiwiWalletToken
URL: https://api.intellectmoney.ru/merchant/createqiwiwallettoken
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::::phone::::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Счёт к Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “Запрос выставления счета” |
Номер телефона | phone | Да | Номер телефона на который зарегистрированный Киви-кошелек |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::phone Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа
<Response>
будет содержать параметр RequestId (синхронная обработка). ( Код операции - 0 )Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 )Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Пример запроса
Post /merchant/createqiwiwallettoken/ HTTP/1.1 Host: api.intellectmoney.ru Content-Type: application/x-www-form-urlencoded; charset=utf-8 eshopId=450123 invoiceId=356421216 phone=79214567895 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> <Result> <RequestId>0a7ce499-631e-4ef7-a7c0-335157c0cd87</RequestId> <State> <Code>0</Code> <Desc>Успешно обработан</Desc> </State> </Result> </Response>
Доступ к методу CheckQiwiWalletToken
URL: https://api.intellectmoney.ru/merchant/checkqiwiwallettoken
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::requestId::::smsCode::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “Запрос выставления счета” |
Смс код | smsCode | Да | Смс код полученный при вызове метода CreateQiwiWalletToken |
Идентификатор запроса | requestId | Да | Идентификатор запроса полученный при вызове метода CreateQiwiWalletToken |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::requestId::smsCode Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа
<Response>
будет содержать параметр Token (синхронная обработка). ( Код операции - 0 )Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 )Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Пример запроса
Post /merchant/checkqiwiwallettoken/ HTTP/1.1 Host: api.intellectmoney.ru Content-Type: application/x-www-form-urlencoded; charset=utf-8 eshopId=450123 invoiceId=356421216 smsCode=123456 requestId=0a7ce499-631e-4ef7-a7c0-335157c0cd87 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> <Result> <Token>7B226B223A22344F57465A3537576B4E763685673452636E764C446A33416D4B6C3758665449363143653769227D</Token> <State> <Code>0</Code> <Desc>Успешно обработан</Desc> </State> </Result> </Response>
Доступ к методу QiwiWalletPayment
URL: https://api.intellectmoney.ru/merchant/qiwiwalletpayment
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::successUrl::failUrl::::ipAddress::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “Запрос выставления счета” |
Адрес удачного платежа | successUrl | Нет | Адрес, на который будет перенаправлен пользователь (покупатель) в случае успешной оплаты |
Адрес не удачного платежа | failUrl | Нет | Адрес, на который будет перенаправлен пользователь (покупатель) в случае не успешной оплаты |
IP адрес сайта магазина | ipAddress | Да | IP адрес сайта, с которого выставляется платеж. |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::successUrl::failUrl::additionalParams::ipAddress Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
- Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<BankCardData>
(синхронная обработка). ( Код операции - 0 ) - Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 ) - Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Пример запроса
Post /merchant/qiwiwalletpayment/ HTTP/1.1 Host: api.intellectmoney.ru Content-Type: application/x-www-form-urlencoded; charset=utf-8 eshopId=450123 invoiceId=356421216 ipaddress=127.0.0.1 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>
Пример использования
- Выставляем счёт (метод CreateInvoice).
- Обращаемся к методу createqiwiwallettoken, в ответе получаем идентификатор запроса RequestId.
- После чего вызываем метод checkqiwiwallettoken, в ответе получем токен.
- Вызываем метод оплаты qiwiwalletpayment.
- После отправки данных, состояние банковского платежа можно отслеживать через метод
getBankCardPaymentState()
. - Дополнительно статус успешного платежа будет отправлен на resultUrl.
МЕТОД SbpPayment- ПОЛУЧИТЬ QR-КОД ДЛЯ ОПЛАТЫ ЧЕРЕЗ СБП
Используется для получения qr-кода и ссылки для оплаты.
Доступ к методу
URL: https://api.intellectmoney.ru/merchant/sbppayment
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::successUrl::failUrl::additionalParams::ipAddress::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “Запрос выставления счета” |
Адрес удачного платежа | successUrl | Нет | Адрес, на который будет перенаправлен пользователь (покупатель) в случае успешной оплаты |
Адрес не удачного платежа | failUrl | Нет | Адрес, на который будет перенаправлен пользователь (покупатель) в случае не успешной оплаты |
Дополнительные параметры | additionalParams | Нет | Дополнительные параметры. Строка вида "to=+39106231449|from=+569323442", где: "|" - разделитель между параметрами, "=" разделитель в паре ключ-значение. |
IP адрес сайта магазина | ipAddress | Да | IP адрес сайта, с которого выставляется платеж. |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::successUrl::failUrl::additionalParams::ipAddress Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
- Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<BankCardData>
(синхронная обработка). ( Код операции - 0 ) - Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 ) - Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Пример запроса
Post /merchant/sbppayment/ HTTP/1.1 Host: api.intellectmoney.ru Content-Type: application/x-www-form-urlencoded; charset=utf-8 eshopId=450123 invoiceId=356421216 ipaddress=127.0.0.1 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>
Пример использования
- Выставляем счёт (метод CreateInvoice).
- Обращаемся к методу sbppayment. После отправки данных, состояние банковского платежа можно отслеживать через метод
getBankCardPaymentState()
. - При запросе статуса платежа (
getBankCardPaymentState()
) отслеживаем появление статуса "SendTo3DS":- В данном статусе в параметре Form3DS будут присланы параметры SbpQrCode и SbpLink в формате JSON.
- После получения Qr-кода и оплаты счёта покупателем, статус платежа можно определить перезапросом метода
getBankCardPaymentState
(). Дополнительно статус успешного платежа будет отправлен на resultUrl.
МЕТОД BnplPayment- ПЕРЕХОД НА СТРАНИЦУ ОПЛАТЫ В РАССРОЧКУ
Используется для получения ссылки на сервис оплаты в рассрочку.
Доступ к методу
URL: https://api.intellectmoney.ru/merchant/bnplpayment
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::successUrl::failUrl::additionalParams::ipAddress::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “Запрос выставления счета” |
Адрес удачного платежа | successUrl | Нет | Адрес, на который будет перенаправлен пользователь (покупатель) в случае успешной оплаты |
Адрес не удачного платежа | failUrl | Нет | Адрес, на который будет перенаправлен пользователь (покупатель) в случае не успешной оплаты |
Дополнительные параметры | additionalParams | Нет | Дополнительные параметры. Строка вида "to=+39106231449|from=+569323442", где: "|" - разделитель между параметрами, "=" разделитель в паре ключ-значение. |
IP адрес сайта магазина | ipAddress | Да | IP адрес сайта, с которого выставляется платеж. |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::successUrl::failUrl::additionalParams::ipAddress Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
- Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<BankCardData>
(синхронная обработка). ( Код операции - 0 ) - Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 ) - Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Пример запроса
Post /merchant/bnplpayment/ HTTP/1.1 Host: api.intellectmoney.ru Content-Type: application/x-www-form-urlencoded; charset=utf-8 eshopId=450123 invoiceId=356421216 ipaddress=127.0.0.1 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>
Пример использования
- Выставляем счёт (метод CreateInvoice).
- Обращаемся к методу bnplpayment. После отправки данных следует отслеживать получение ссылки через метод
getBankCardPaymentState()
. - При запросе статуса платежа (
getBankCardPaymentState()
) отслеживаем появление статуса "SendTo3DS":- В данном статусе в параметре Form3DS будет получена ссылка на сервис оплаты в рассрочку.
- Выполните перенаправление в браузере плательщика на полученную ссылку.
- Статус платежа можно определить перезапросом метода
getBankCardPaymentState
(). Дополнительно статус успешного платежа будет отправлен на resultUrl.
МЕТОД GetPostPayBlank - ПОЛУЧИТЬ БЛАНК ДЛЯ ОПЛАТЫ ПОЧТОВЫМ ПЕРЕВОДОМ
Используется для получения бланка оплаты.
Доступ к методу
URL: https://api.intellectmoney.ru/merchant/getpostpayblank
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceid::amount::address::postcode::fio::inn::residentofrussia::series::number::day::month::year::kem::beginday::beginmonth::beginyear::endday::endmonth::endyear::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “Запрос выставления счета” |
Сумма платежа | amount | Да | Сумма платежа, которую поставщик желает получить от пользователя (покупателя). Сумма должна быть больше нуля, дробная часть отделяется точкой, два знака после точки. Максимальная длина - 13 цифр вместе с десятичными знаками. |
Адрес | address | Нет | Адрес прописки Пользователя (Покупателя). Указывается полностью без сокращений |
Почтовый индекс | postcode | Нет | Почтовый индекс Пользователя (Покупателя). |
Имя покупателя | fio | Нет | Фамилия Имя Отчество Пользователя (Покупателя). Указывается полностью без сокращений. |
ИНН | inn | Нет | Индивидуальный номер налогоплательщика Пользователя (Покупателя). |
Гражданство | residentofrussia | Да | Здесь нужно указать, является ли Пользователь (Покупатель) гражданином РФ или нет. Передать 0, если Пользователь (Покупатель) не является гражданином РФ. |
Серия | series | Да | Серия паспорта Пользователя (Покупателя). |
Номер | number | Да | Номер паспорта Пользователя (Покупателя). |
День выдачи паспорта | day | Нет | Дата выдачи паспорта Пользователя (Покупателя). |
Месяц выдачи пасспорта | month | Нет | |
Год выдачи пасспорта | year | Нет | |
Кем выдан | kem | Нет | Управление выдавшее паспорт. |
Для Пользователя (Покупателя) не резидент РФ, передаются данные о сроке пребывания. | |||
День | beginday | Нет | С какого числа начинает действовать разрешение на работу Пользователя (Покупателя). |
Месяц | beginmonth | Нет | |
Год | beginyear | Нет | |
День | endday | Нет | Срок окончания разрешения работу Пользователя (Покупателя). |
Месяц | endmonth | Нет | |
Год | endyear | Нет | |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::amount::address::postCode::fio::inn::residentOfRussia::series::number::day::month::year::kem::beginDay::beginMonth::beginYear::endDay::endMonth::endYear Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<PostPayBlankData>
(синхронная обработка). ( Код операции - 0 )Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 )Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Пример запроса
Post /merchant/createInvoice/ 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>
Пример использования
Данный метод возвращает изображение готового бланк для оплаты в отделениях почты России. Изображение возвращается в виде строки (data:image/png;base64
). Если обязательные поля не заполнить, то и в бланке они не будут заполнены и в момент перевода могут возникнуть проблемы, например: Пользователь (Покупатель) не является резидентом, тогда при не заполненных полях о сроке пребывания кассир потребует заполнить данные поля.
- Запрашиваем у Пользователя (Покупателя) личные данные.
- Обращаемся к методу
getPostPayBlank()
. - Получаем в ответ изображение бланка для оплаты в отделениях почты России, обрабатываем полученный код "
data:image/png;base64,{полученный код}
" и отображаем получившееся изображение Пользователю (Покупателю). - Пользователь (Покупатель) распечатывает бланк или заполняет чистый бланк, который можно получить в отделениях почты России.
- Пользователь (Покупатель) идет с бланком в отделение почты России и производит оплату.
Вы можете отслеживать состояние счета методом getPurchaseInfo()
(надо обязательно передать номер платежа), когда в State из <InvoiceData>
будет в статусе Paid=2 Полностью оплачен значит платеж завершен.
МЕТОД PurchaseToRefund - ВОЗВРАТ ДЕНЕЖНЫХ СРЕДСТВ
Используется для подачи заявки на возврат.
Доступ к методу
URL: https://api.intellectmoney.ru/merchant/purchasetorefund
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::orderId::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | InvoiceId | Нет | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Обратите внимание, для возврата обязательно должен быть передан либо InvoiceId, либо orderId. |
Номер счета | orderId | Нет | В этом поле нужно передать номер покупки в соответствии со своей системой учета. Обратите внимание, для возврата обязательно должен быть передан либо InvoiceId, либо orderId. |
Секретный ключ | secretKey | Нет | Секретный ключ, указанный в настройках магазина, в личном кабинете IntellectMoney. Обратите внимание, для возврата обязательно должен быть передан либо secretKey, либо hash. |
Сумма возврата | operationAmount | Нет | Сумма возврата. Если параметр не передан, будет выполнен полный возврат средств. |
Чек возврата | merchantReceipt | Нет | Чек возврата. Должен формироваться по общим правилам формирования чеков и содержать итоговый результат чека после выполнения возврата. Параметр обязателен, если у магазина включена интеграция с онлайн-кассой. |
Подпись для преданных данных | hash | Нет | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Обратите внимание, для возврата обязательно должен быть передан либо secretKey, либо hash. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Строка подписи eshopId::orderId::action Параметр action, в данном случае, равен "Refund" (без кавычек). Далее, к строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и её статус. Статус "Успешно обработана" означает, что операция поставлена в очередь на обработку.
Пример запроса
Post /merchant/PurchaseToRefund/ HTTP/1.1 Host: api.intellectmoney.ru Content-Type: application/x-www-form-urlencoded; charset=utf-8 eshopId=450123 InvoiceId=356421216 operationAmount=8.14 hash=dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20v3MvZ3Nkb21haW52YWxzaGEyZzIuY3JsMIG
HTTP/1.1 200 OK Content-Type: text/xml <?xml version="1.0" encoding="utf-8"?> <Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <OperationState> <Code>0</Code> <Desc>Успешно обработана</Desc> </OperationState> <OperationId>64874ad9-d012-4cae-a149-2d7b5cb57728</OperationId> <EshopId xsi:nil="true" /> <Result> <State> <Code>0</Code> <Desc>Успешно обработан.</Desc> </State> <Data>OK</Data> </Result> </Response>
ОПЛАТА ЧЕРЕЗ ОБМЕННИКИ
Для оплаты через конкретный обменник, следует использовать метод связанный с этим обменником.
Список методов:
Обменник | Имя метода |
---|---|
Альфа-Клик | alfaClickPayment() |
Сбербанк Онлайн | sberbankPayment() |
Яндекс.Деньги | yandexPayment() |
WebMoney | WMRPayment() |
QIWI-Кошелек | QIWIPursePayment() |
Доступ к методу: Альфа-Клик
URL: https://api.intellectmoney.ru/merchant/alfaclickpayment
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::successUrl::signSecretKey
Доступ к методу: Сбербанк Онлайн
URL: https://api.intellectmoney.ru/merchant/sberbankpayment
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::successUrl::failUrl::additionalParams::signSecretKey
Доступ к методу: Яндекс.Деньги
URL: https://api.intellectmoney.ru/merchant/yandexpayment
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::successUrl::failUrl::additionalParams::signSecretKey
Доступ к методу: WebMoney
URL: https://api.intellectmoney.ru/merchant/wmrpayment
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::successUrl::failUrl::additionalParams::signSecretKey
Доступ к методу: QIWI Кошелёк
URL: https://api.intellectmoney.ru/merchant/qiwipursepayment
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::successUrl::failUrl::additionalParams::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Методы, в которых данный параметр является обязательным | Описание |
---|---|---|---|---|
ID магазина | eshopId | Да | Во всех | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Номер СКО | invoiceId | Да | Во всех | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “ Запрос выставления счета ” |
Адрес удачного платежа | successUrl | Не использовать, если не является обязательным | alfaclickpayment, wmrpayment, qiwipursepayment | Адрес, на который будет перенаправлен пользователь (покупатель) в случае успешной оплаты |
Адрес не удачного платежа | failUrl | Не использовать, если не является обязательным | wmrpayment, qiwipursepayment | Адрес, на который будет перенаправлен пользователь (покупатель) в случае не успешной оплаты |
Дополнительные параметры | additionalParams | Не использовать, если не является обязательным | qiwipursepayment | Дополнительные параметры.Строка вида "to=+39106231449|from=+569323442", где: "|" - разделитель между параметрами, "=" разделитель в паре ключ-значение. |
Подпись для преданных данных | hash | Да | Во всех | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::successUrl::failUrl::additionalParams Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<ExchangerPaymentData>
(синхронная обработка). ( Код операции - 0 )Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 )Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
Пример запроса
Post /merchant/createInvoice/ 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>3cf78bc5-63f4-4fe3-86a0-8ce9d60e8228</OperationId> <EshopId>455551</EshopId> <Result> <State> <Code>0</Code> <Desc>Успешно обработан</Desc> </State> <PostPayBlank> iVBORw0KGgoAAAANSUhEUgAABHQAAASkCAI... </PostPayBlank> </Result> </Response>
АСИНХРОННЫЕ ОПЕРАЦИИ
Для получения результата по операциям, обработка по которым была поставлена в очередь необходимо отправить запрос на URL по целевым методам, добавив в окончание адреса “State”.
Доступ к состоянию асинхронной операции
URLs:
- https://api.intellectmoney.ru/merchant/createinvoicestate
- https://api.intellectmoney.ru/merchant/bankcardpaymentstate
- https://api.intellectmoney.ru/merchant/getbankcardpaymentstatestate
- https://api.intellectmoney.ru/merchant/activationpaystate
- https://api.intellectmoney.ru/merchant/getpurchaseinfostate
- https://api.intellectmoney.ru/merchant/getpaymentwaysstate
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::operationId::signSecretKey
Передаваемые параметры
Все методы, используемые для получения состояния асинхронной операции, получают одинаковый список параметров.
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID" |
Операция | operationId | Да | Идентификатор операции, по которой Вы хотите получить информацию |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::operationId Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался. Ответ типа
<Response>
будет содержать структуру одного из методов. ( Код операции - 0 )Запрос еще находится в очереди на обработку. Нужно запросить статус позже. ( Код операции - 1 )
Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 2 )
ИНТЕРФЕЙС УВЕДОМЛЕНИЙ ПРОВАЙДЕРА
В протоколе предусмотрена стандартная возможность получения провайдером уведомлений о статусе платежа. Данные передаются в соответствии с п.3.2.2. Форма оповещения о платеже протокола IntellectMoney.
МЕТОД GetPurchaseInfo - ПОЛУЧИТЬ ИНФОРМАЦИЮ О ПЛАТЕЖЕ/МАГАЗИНЕ
Используется для получения информации о платеже (платежах).
Доступ к методу: QIWI Кошелёк
URL: https://api.intellectmoney.ru/merchant/getpurchaseinfo
Доступные HTTP-методы: POST
Требуемый уровень доступа: Базовый
Правило формирования заголовка Sign: eshopId::invoiceId::inputType::signSecretKey
Передаваемые параметры
Название | Имя параметра | Обязательный | Описание |
---|---|---|---|
ID магазина | eshopId | Да, если не передан invoiceId | Номер магазина в системе IntellectMoney, на который пользователь (покупатель) должен совершить платеж. Можно увидеть на странице https://intellectmoney.ru/ru/enter/ps_organization_shop/ в столбце "ID". |
Номер СКО | invoiceId | Да, если не передан eshopId | Счёт К Оплате - уникальный номер в системе IntellectMoney, с помощью которого идентифицируется любой платеж. Для получения воспользуйтесь операцией “ Запрос выставления счета ”. |
Способ оплаты | inputType | Нет | Способ, которым оплачивался СКО. Если данный параметр передан вместе с invoiceId, будет показана сумма к оплате с учётом комиссии, если таковая имеется. |
Подпись для преданных данных | hash | Да | Контрольная подпись запроса, которая используется для проверки целостности полученной от магазина информации и однозначной идентификации отправителя. Строка для подписи получается путем конкатенации параметров с разделителем “::“ и формируется из следующих параметров в строгой последовательности: Пример формирования строки eshopId::invoiceId::inputType Далее, к этой строке применяется алгоритм криптографии из пункта ФОРМИРОВАНИЕ КОНТРОЛЬНОЙ ПОДПИСИ |
Ответ сервера
В ответ возвращается код операции и возможны 3 варианта:
Запрос обработался моментально. Ответ типа
<Response>
будет содержать структуру<PurchaseInfoData>
(синхронная обработка). ( Код операции - 0 )Запрос был поставлен в очередь на обработку. Ответ типа
<Response>
будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). ( Код операции - 1 )Ошибка обработки операции. Операция выполнена не будет. ( Код операции - 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>
КАК ПОЛУЧИТЬ userToken
Для получения userToken нужно перенаправить пользователя (покупателя) на страницу https://intellectmoney.ru/ru/enter/ с параметрами:
Параметр | Описание |
---|---|
returnUrl | URL куда перенаправить пользователя (покупателя) после регистрации, на данный URL будет перед userToken методом get. |
email пользователя (покупателя) |
После того, как пользователь (покупатель) авторизуется, он будет перенаправлен на страницу указанную в returnUrl с параметром UserToken.
Пример:https://<Ваш_сайт>/returnUrl.php?&userToken=5a8WAwjuOb5g7P5VGdmxSt2ogNCysC7UirnQDmWFNP4%3D
ТИПЫ ДАННЫХ
<Response>
Поле | Тип | Описание |
---|---|---|
OperationState | <OperationState> | Статус выполнения операции |
OperationId | GUID | Идентификатор операции |
EshopId | int | ID магазина |
Result | Object | Результат выполнения запроса. Зависит от типа запроса. В случае асинхронной обработки запроса данного поля не будет. |
<OperationState>
Поле | Тип | Описание |
---|---|---|
Code | int | |
Desc | string | Описание кода статуса выполнения запроса |
<ResultState>
Поле | Тип | Описание |
---|---|---|
Code | int | |
Desc | string | Описание кода статуса выполнения запроса |
<CreateInvoiceData>
Поле | Тип | Описание |
---|---|---|
State | <ResultState> | |
InvoiceId | long | Номер выставленного СКО |
<BankCardData>
Поле | Тип | Описание |
---|---|---|
State | <ResultState> |
<BankCardPaymentStateData>
Поле | Тип | Описание |
---|---|---|
State | <ResultState> | |
PaymentStep | <PaymentStep> | |
Message | string | Текстовое представление последнего статуса операции в банке (RC) |
Form3DS | string | Обычно это html, выданный эмитентом для прохождения процедуры прохождения 3ds |
<ActivationPayData>
Поле | Тип | Описание |
---|---|---|
State | <ResultState> |
<PaymentWayListData>
Поле | Тип | Описание |
---|---|---|
State | <ResultState> | Код результата операции |
PaymentWays | <PaymentWayData> | Информация о способах оплаты |
<PaymentWayData>
Поле | Тип | Описание |
---|---|---|
Id | int | Уникальный идентификатор способа оплаты |
Amount | <Money> | |
InputType | <InputType> | Способы оплаты |
PreferenceTypes | <PreferenceTypeSpecification> | Группы способов оплаты |
ServiceTimeOfEnrollmentType | <MerchantServiceTimeOfEnrollmentType> | Сроки зачисления |
Commission | decimal | Сумма комиссии |
<Money>
Поле | Тип | Описание |
---|---|---|
Amount | decimal | Сумма |
Currency | <Currency> | Валюта |
<MerchantServiceData>
Поле | Тип | Описание |
---|---|---|
State | <ResultState> |
<PostPayBlankData>
Поле | Тип | Описание |
---|---|---|
State | <ResultState> | Код результата операции |
PostPayBlank | String | Возвращает строку для вставки в html. Пример обработки данной строки, где {$PostPayBlank} результат запроса: Пример кода <img class="printed__img" src="data:image/png;base64,{$PostPayBlank}"> <script> var PostPayBlank = "data:image/png;base64,{$PostPayBlank}"; </script> |
<ExchangerPaymentData>
Поле | Тип | Описание |
---|---|---|
State | <ResultState> | |
ExchangerData | <ExchangerData> | Информация о способе оплаты |
<ExchangerData>
Поле | Тип | Описание |
---|---|---|
ExchangeCurrency | string | Валюта оплаты |
ExchangeAmount | string | Сумма оплаты |
RedirectToUrl | string | Адрес, куда отправлять запрос |
ExchangeState | Enum | Состояние способа оплаты. OK - способ работает ERROR - способ не работает |
IsNewWindow | String | Если true, отображение в новом окне. Если false, отображается в том же окне |
FormFields | Array[ключ, значение] | Поля для формы которые надо заполнить |
ShowFields | Array[ключ, значение] | Поля для отображения информации |
Method | <UrlMethod> | Способ которым будет происходить процесс оплаты. Подробнее смотрите в разделе <UrlMethod>. |
<PurchaseInfoData>
Поле | Тип | Описание |
---|---|---|
State | <ResultState> | |
Invoice | <InvoiceData> | Информация о способе оплаты |
Eshop | <EshopData> | Информация о магазине |
SuccessUrl | string | Строка с url, куда пользователя перенаправят после успешной оплаты |
BackUrl | string | Строка с url, куда перенаправят покупателя после оплаты |
UserPaymentFormInfo | <UserPaymentFormType> | Настройка для физиков, если true деньги зачисляются на карту (перевод на карту), если false деньги зачисляются в личный кошелек (в кошелек IntellectMoney) |
<InvoiceData>
Поле | Тип | Описание |
---|---|---|
InvoiceId | long | Номер СКО, по которому была найдена информация |
LeftToPayAmount | Money | В узле <LeftToPayAmount> сумма СКО к оплате, если счёт ежу оплачен покажет 0. |
TotalAmount | Money | В узле <TotalAmount> сумма с учётом комиссии для указанного способа оплаты , если счёт уже оплачен покажет 0 . |
OrderId | string | Внутренний номер покупки поставщика |
Name | string | Описание товара или услуги. Соответствует serviceName |
State | <InvoiceState> | Статус СКО, подробное описание перечислителя смотрите ниже |
CreateionDate | DateTime | Дата создания СКО |
ChangeDate | DateTime | Дата последних изменений СКО |
UserEmail | string | Email указанный покупателем. Соответствует пол. |
<EshopData>
Содержит информацию о магазине
Поле | Тип | Описание |
---|---|---|
EshopId | int | Номер магазина в системе IntellectMoney |
Name | string | Название магазина |
Description | string | Описание магазина |
Url | string | Сайт магазина |
string | Email, на который отправляются оповещения | |
Phone | string | Номер телефона магазина |
WorkTime | string | Время работы магазина |
TemplateId | int | Версия страницы оплаты |
ПЕРЕЧИСЛЕНИЯ
Коды статуса операции
Код ошибки | Описание |
---|---|
0 | Успешно обработана |
1 | В процессе выполнения |
2 | Ошибка |
Коды результата операции
Код ошибки | Описание |
---|---|
0 | Успешно обработан |
1 | Обработан с предупреждениями |
2 | Особый вид ошибок |
10 | Ошибка сервера |
11 | Не защищенное соединение. Отправляйте запрос по https |
101 | Ошибка. В настройках магазина не выбран протокол обмена |
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 или передан неверно |
178 | Ошибка. Счет уже был оплачен ранее |
179 | Ошибка. Параметр language передан неверно |
180 | Ошибка. Параметр onlinePaymentCryptogram передан неверно |
200 | Ошибка. Не передан обязательный параметр pinCode или передан неверно |
201 | Ошибка. Не передан обязательный параметр userToken или передан неверно |
202 | Ошибка. Данный счет не принадлежит владельцу кошелька IntellectMoney |
203 | Ошибка. В кошельке IntellectMoney нет подходящего счета с нужной валютой |
204 | Ошибка. Для проведения оплаты необходимо пройти идентификацию в личном кабинете IntellectMoney |
205 | Ошибка. Превышен лимит на оплату для кошелька IntellectMoney |
206 | Ошибка. Пополнение неперсонифицированных кошельков с предоплаченных карт запрещено |
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 | Ошибка. Неверно переданы новые позиции по чеку |
351 | Форма оплаты удалена. Невозможно выставить счет на удаленную форму. Обратитесь в администрацию магазина |
352 | Форма оплаты удалена. Невозможно оплатить счет на удаленную форму. Обратитесь в администрацию магазина |
Статусы платежа
Название статуса | Описание |
---|---|
Ok | Успешно завершен (Счет оплачен) |
Created | Создан |
InProcess | В обработке |
SendTo3DS | Отправлен на 3DS |
ActivationPayment | Отправлен на активационный платеж |
Error | Ошибка платежа |
Группы способов оплаты
Название группы | Описание |
---|---|
All | Все |
Popular | Популярные |
Online | Онлайн |
NonComission | Без комиссии |
Flash | Мгновенные |
Сроки зачисления
Название | Описание |
---|---|
None | До 30 рабочих дней |
Flash | Мгновенно |
FiveDays | До 5 рабочих дней |
ThreeDays | До 3 рабочих дней |
Способы оплаты
InputType | Описание |
---|---|
InnerPayment | Внутренний перевод |
Acquiring | Оплата с банковской карты |
BankRF | Банковский перевод |
WMR | WebMoney |
Yandex | Яндекс.Деньги |
QiwiPurse | QIWI Кошелёк |
AlfaClickPayU | Альфа-Клик |
IBank | Интернет банкинг |
Bankomats | В банкоматах |
Terminals | В терминалах |
RapidaOnline | RapidaOnline |
GoogleADS | GoogleADS |
PostPay | Через почту РФ |
Mvideo | Mvideo |
QBank | QBank через Rapida |
SberBank | Сбербанк Онлайн |
AlfaClick | АльфаКлик |
Svyaznoy | В салонах Связной |
Метод проведения оплаты через обменники
UrlMethod | Описание |
---|---|
POST | Данные на обменник передаются POST-ЗАПРОСОМ, после чего происходит оплата |
GET | Данные на обменник передаются GET-ЗАПРОСОМ, после чего происходит оплата |
LINK | Возвращает ссылку |
REDIRECT | Означает что пользователя надо перенаправить |
STATIC | Перенаправление не требуется |
IFRAME | Данные возвращаются в IFrame, где и происходит оплата |
Состояния СКО
InvoiceState | Описание |
---|---|
Created | Создан |
PartPaid | Частично оплачен |
Paid | Полностью оплачен |
ToPaid | В процессе обработки |
Refund | Возврат |
Held | Захолдирован |
Валюта
Название | Описание |
---|---|
RUB и RUR | Российский рубль |
TST | Валюта для тестовых платежей |
USD | Американский доллар |
EUR | Евро |
- No labels