Общая информация

Данное API на текущий момент реализации позволяет запросить реестр платежей, создавать и редактировать операции по расписанию.  Взаимодействие между сервером IntellectMoney и клиентом API происходит по HTTP-протоколу.

Запрос к системе IntellectMoney

Данные при запросах на сервер IntellectMoney передаются в формате параметров HTTP-запроса в кодировке UTF-8 с типом контента "application/x-www-form-urlencoded". 

В ответ данные возвращаются в формате XML, либо в формате JSON. Что бы получить ответ в формате JSON нужно в заголовки запроса передать "Accept: text/json".

Ответ системы IntellectMoney на запросы

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

  1. <OperationState> сообщает - смогла ли система IntellectMoney обработать данный запрос. Возможны три варианта:

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

В случае, если какой-либо параметр будет передан не верно, в состоянии <Response> будет выведено сообщение об ошибке и параметр, который передан не корректно.

СЛОВАРЬ ТЕРМИНОВ

  • СКО — Счет К Оплате, инвойс

Важно

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

Для всех запросов к API используется метод curlRequest. Код данного метода можно посмотреть в разделе "Дополнительная информация".

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

getUserToken() —  Аутентификация клиента API

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

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

https://api.intellectmoney.ru/personal/user/getUserToken

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

Название

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

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

Описание

Логин

Login

Да

Логин пользователя юридического лица (магазина).

Используется для входа в личный кабинет на странице: https://intellectmoney.ru/ru/.

Пароль

Password

Да

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

Используется для входа в личный кабинет на странице: https://intellectmoney.ru/ru/.

Ответ

Ответ типа  <Response>  будет содержать структуру  <UserTokenData>

Примеры

Общий вид предоставления данных

Post /personal/user/getUserToken HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
 
Login=s.zhukov+2@intellectmoney.ru
Password=myPassword
<?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>f2c33a48-17c8-4889-a327-5ad1b6260cd5</OperationId>
    <EshopId>0</EshopId>
    <Result>
        <State>
            <Code>0</Code>
            <Desc>Успешно обработан.</Desc>
        </State>
        <UserToken>bs/fZNe0CE+b/Ze1xvVaNdEbjxm2wkRqMBSnBXJO9nFeEM57Hg17+AS8nF0Cs7+0</UserToken>
    </Result>
</Response>


Пример кода на языке программирования PHP

В функции getToken() используются личные данные - логин и пароль для доступа в личный кабинет IntellectMoney

function getToken(){
    $urlGetToken = "https://api.intellectmoney.ru/personal/user/getUserToken";
    $data = array(
        "Login" => "s.zhukov@intellectmoney.ru",// Логин для входа в личный кабинет IntellectMoney
        "Password" => "myPassword"// Пароль для входа в личный кабинет IntellectMoney
    );
    $requestResult = curlRequest($urlGetToken, $data, true);
    $result = simplexml_load_string($requestResult);
    $userToken = $result->Result->UserToken;
    return (string)$userToken;
}


GETINVOICESHISTORY() — ПОЛУЧЕНИЕ РЕЕСТРА ПЛАТЕЖЕЙ

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

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

https://api.intellectmoney.ru/personal/payment/getInvoicesHistory

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

Название

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

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

Описание

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

ID магазина

EshopId

Нет

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

Статус СКО

State

Нет

Запрос реестра платежей только с указанным статусом СКО (см. <InvoiceState>)
Номер СКОInvoiceIdНетЗапрос информации только по одному СКО по его номеру
Включает транзакции по СКО в выборкуIncludePaymentTransactionsНетТип boolean. При передаче значения true в выборку будут включены все транзакции по СКО: транзакции пополнения СКО, транзакции пополнения счета магазина, транзакции возврата (при возврате)
Указывает порядок сортировкиSortOrderНетДанный порядок отвечает за сортировку данных перед выдачей. Принимаемые значения описаны в таблице Тип сортировки счетов

Дата начала выборки создания СКОDateFromНет

В выборку попадут все СКО, у которых дата создания входит в данный диапазон. Значения параметров передавать в формате ДД.ММ.ГГГГ.

Дата окончания выборки создания СКО

DateTo Нет

Дата начала выборки изменения СКО


ChangeDateFromНет

В выборку попадут все СКО, у которых дата изменения входит в данный диапазон. Значения параметров передавать в формате ДД.ММ.ГГГГ.

Дата окончания выборки изменения СКО


ChangeDateToНет
Ограничение выборки по количеству объектовSkipНетКоличество объектов, пропускаемых перед отдачей
Ограничение выборки по количеству объектовTakeДа

Ограничение на количество возвращаемых объектов.

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

Ответ

Ответ типа  <Response>  будет содержать структуру  <InvoicesHistoryList> 

Примеры

Общий вид предоставления данных

Post /personal/payment/getInvoicesHistory HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
 
userToken=bs/fZNe0CE+b/Ze1xvVaNdEbjxm2wkRqMBSnBXJO9nFeEM57Hg17+AS8nF0Cs7+0
eshopId=450063
dateTo=15.07.2017
take=10
invoiceId=3930949846
IncludePaymentTransactions=true
<?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>50a55d0c-a754-47ca-b355-56362cf52a98</OperationId>
  <EshopId>0</EshopId>
  <Result>
    <State>
      <Code>0</Code>
      <Desc>Успешно обработан.</Desc>
    </State>
    <InvoicesHistoryList>
      <InvoiceData>
        <Id>3930949846</Id>
        <State>Paid</State>
        <HoldModeFlag>false</HoldModeFlag>
        <ChangeDate>2017-06-02T10:12:00.457</ChangeDate>
        <CreationDate>2017-06-02T10:11:03.383</CreationDate>
        <ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
        <Amount>
          <Amount>11.0000</Amount>
          <Currency>RUB</Currency>
        </Amount>
        <CurrentAmount>
          <Amount>0.0000</Amount>
          <Currency>RUB</Currency>
        </CurrentAmount>
        <SurchargeAmount>
          <Amount>0</Amount>
          <Currency>RUB</Currency>
        </SurchargeAmount>
        <AdditionalInfo>
          <KeyValue>
            <Key>Магазин</Key>
            <Value xsi:type="xsd:string">ShopReal</Value>
          </KeyValue>
          <KeyValue>
            <Key>Url</Key>
            <Value xsi:type="xsd:string">http://yandex.ru</Value>
          </KeyValue>
        </AdditionalInfo>
        <HistoryList>
          <HistoryData>
            <Id>27907531</Id>
            <PaymentNumber>2036160602</PaymentNumber>
            <State>Confirm</State>
            <CreationDate>2017-09-22T17:30:01.04</CreationDate>
            <PaymentAmount>
              <Amount>11.0000</Amount>
              <Currency>RUB</Currency>
            </PaymentAmount>
            <RecipientAmount>
              <Amount>11.0000</Amount>
              <Currency>RUB</Currency>
            </RecipientAmount>
            <PaymentAccount>IMOUT4936010998</PaymentAccount>
            <RecipientAccount>IM1028693534</RecipientAccount>
            <Comment>Возврат по ордеру 538</Comment>
            <Description>Внутренний на s.suvorinov@intellectmoney.ru</Description>
            <Direction>Withdraw</Direction>
            <PurchaseOrderId>123456789000</PurchaseOrderId>
            <AdditionalInfo />
            <InvoicePaymentType>Refund</InvoicePaymentType>
            <InvoiceId>3930949846</InvoiceId>
            <IsElectedPayment>false</IsElectedPayment>
            <TypeOfRePayment xsi:nil="true" />
            <ProviderId xsi:nil="true" />
            <CatalogPaymentId>0</CatalogPaymentId>
            <ShortPan />
            <Country />
            <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail>
          </HistoryData>
          <HistoryData>
            <Id>27905689</Id>
            <PaymentNumber>2036150166</PaymentNumber>
            <State>Confirm</State>
            <CreationDate>2017-06-02T10:12:00.517</CreationDate>
            <PaymentAmount>
              <Amount>11.0000</Amount>
              <Currency>RUB</Currency>
            </PaymentAmount>
            <RecipientAmount>
              <Amount>10.6200</Amount>
              <Currency>RUB</Currency>
            </RecipientAmount>
            <PaymentAccount>Счет к оплате 3930949846</PaymentAccount>
            <RecipientAccount>IM4406528006</RecipientAccount>
            <Description>Зачисление денежных средств на счет магазина "ShopReal" со счета "3930949846"</Description>
            <Direction>Withdraw</Direction>
            <PurchaseOrderId>123456789000</PurchaseOrderId>
            <AdditionalInfo />
            <InvoicePaymentType>Purchase</InvoicePaymentType>
            <InvoiceId>3930949846</InvoiceId>
            <IsElectedPayment>false</IsElectedPayment>
            <TypeOfRePayment xsi:nil="true" />
            <ProviderId xsi:nil="true" />
            <CatalogPaymentId>0</CatalogPaymentId>
            <ShortPan />
            <Country />
            <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail>
          </HistoryData>
          <HistoryData>
            <Id>27905686</Id>
            <PaymentNumber>2036150165</PaymentNumber>
            <State>Confirm</State>
            <CreationDate>2017-06-02T10:11:20.767</CreationDate>
            <PaymentAmount>
              <Amount>11.1100</Amount>
              <Currency>RUB</Currency>
            </PaymentAmount>
            <RecipientAmount>
              <Amount>11.0000</Amount>
              <Currency>RUB</Currency>
            </RecipientAmount>
            <PaymentAccount>IM1028693534</PaymentAccount>
            <RecipientAccount>Счет к оплате 3930949846</RecipientAccount>
            <Comment />
            <Description>Пополнение счета № "3930949846" через "IM1028693534"</Description>
            <Direction>Deposit</Direction>
            <PurchaseOrderId>123456789000</PurchaseOrderId>
            <AdditionalInfo />
            <InvoicePaymentType>Entry</InvoicePaymentType>
            <InvoiceId>3930949846</InvoiceId>
            <IsElectedPayment>false</IsElectedPayment>
            <TypeOfRePayment xsi:nil="true" />
            <ProviderId xsi:nil="true" />
            <CatalogPaymentId>0</CatalogPaymentId>
            <InputType>InnerPayment</InputType>
            <ShortPan />
            <Country />
            <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail>
          </HistoryData>
        </HistoryList>
        <OwnerEmail>s.suvorinov@intellectmoney.ru</OwnerEmail>
        <OwnerFIO>Суворинов Сергей</OwnerFIO>
        <PurchaseOrderId>123456789000</PurchaseOrderId>
        <PurchaseData>
          <Id>36007</Id>
          <PurchaseMoney>
            <Amount>11.0000</Amount>
            <Currency>RUB</Currency>
          </PurchaseMoney>
          <OrderId>123456789000</OrderId>
          <BackUrl>http://google.com/backurl</BackUrl>
          <SuccessMethod xsi:nil="true" />
          <FailMethod xsi:nil="true" />
          <EshopId>450063</EshopId>
          <EshopUrl>http://yandex.ru</EshopUrl>
          <EshopName>ShopReal</EshopName>
          <SMSEnable>true</SMSEnable>
          <UserName>Суворинов Сергей</UserName>
          <UserEmail>s.suvorinov@intellectmoney.ru</UserEmail>
          <IsHeldByEshop>true</IsHeldByEshop>
          <ParseUserFields />
        </PurchaseData>
        <IsCanEnrollmentByDisabledMethod>false</IsCanEnrollmentByDisabledMethod>
        <InvoiceChangeAmountHistoryData />
        <OriginalAmount>
          <Amount>11.0000</Amount>
          <Currency>RUB</Currency>
        </OriginalAmount>
        <FormType>None</FormType>
        <OrganizationName>Маша и Медведи</OrganizationName>
        <IsHaveCashboxReceipts>false</IsHaveCashboxReceipts>
      </InvoiceData>
    </InvoicesHistoryList>
  </Result>
</Response>

Пример кода на языке программирования PHP

Для получения списка СКО на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API"  и функцией curlRequest() из документации: Вспомогательные функции для взаимодействия с API системы IntellectMoney

$userToken = getToken();
$data = array(
    'UserToken' => $userToken,
    'EshopId' => 455551,//Номер магазина, по которому получаем информацию
    'DateFrom' => "10.10.2017",// Дата создания начиная с этого значения
    'DateTo' => "10.10.2018",// Дата создания до этого значения
    'Skip' => 0, // Количество операций, которое нужно пропустить
    'Take' => 10, //Количество операций, которые нужно выбрать
);

$request = curlRequest('https://api.intellectmoney.ru/personal/payment/getInvoicesHistory', $data);
$result = simplexml_load_string($request);

GETPAYMENTSHISTORY() — ПОЛУЧЕНИЕ ИСТОРИИ ОПЕРАЦИЙ

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

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

https://api.intellectmoney.ru/personal/payment/getPaymentsHistory

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

Название

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

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

Описание

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

ID магазина

EshopId

Нет

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

Номер транзакцииPaymentTransactionIdНетЗапрос информации только по одной транзакции.
Дата начала выборкиDateFromНет

В выборку попадут все операции, у которых дата создания входит в данный диапазон. Значения параметров передавать в формате ДД.ММ.ГГГГ.

Дата окончания выборки

DateToНет
Ограничение выборки по количеству объектовSkipНетКоличество объектов, пропускаемых перед отдачей
Ограничение выборки по количеству объектовTakeДа

Ограничение на количество возвращаемых объектов.

При выборке данных используется конъюнкция параметров. Например, в случае, если переданы параметры "EshopId" и "DateFrom", то в ответе будет объект историй операций только принадлежащих магазину EshopId, у которых дата создания больше DateFrom

Ответ

Ответ типа  <Response>  будет содержать структуру  <PaymentsHistoryList> 

Примеры

Общий вид предоставления данных

Post /personal/payment/getPaymentsHistory HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
 
userToken=bs/fZNe0CE+b/Ze1xvVaNdEbjxm2wkRqMBSnBXJO9nFeEM57Hg17+AS8nF0Cs7+0
eshopId=450063
dateTo=15.07.2017
take=10
<?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>ce5d15c8-32d7-4574-9eb7-1fda5aa5f364</OperationId>
    <EshopId>0</EshopId>
    <Result>
        <State>
            <Code>0</Code>
            <Desc>Успешно обработан.</Desc>
        </State>
        <PaymentsHistoryList>
            <HistoryData>
                <Id>27929458</Id>
                <PaymentNumber>2036299552</PaymentNumber>
                <State>Confirm</State>
                <CreationDate>2018-07-25T11:14:49</CreationDate>
                <PaymentAmount>
                    <Amount>500.0000</Amount>
                    <Currency>RUB</Currency>
                </PaymentAmount>
                <RecipientAmount>
                    <Amount>484.0000</Amount>
                    <Currency>RUB</Currency>
                </RecipientAmount>
                <PaymentAccount>Счет к оплате 3158334217</PaymentAccount>
                <RecipientAccount>IM4406528006</RecipientAccount>
                <Description>Зачисление денежных средств на счет магазина "ShopReal" со счета "3158334217"</Description>
                <Direction>Deposit</Direction>
                <PurchaseOrderId>3_43030</PurchaseOrderId>
                <AdditionalInfo />
                <InvoicePaymentType>Purchase</InvoicePaymentType>
                <InvoiceId>3158334217</InvoiceId>
                <IsElectedPayment>false</IsElectedPayment>
                <TypeOfRePayment xsi:nil="true" />
                <ProviderId xsi:nil="true" />
                <CatalogPaymentId>0</CatalogPaymentId>
                <ShortPan />
                <Country />
                <UserEmail>s.suvorinov+10@intellectmoney.ru</UserEmail>
                <ServiceName>Тестирование отправки 2-х писем при частичной оплате</ServiceName>
            </HistoryData>
            <HistoryData>
                <Id>27929455</Id>
                <PaymentNumber>2036299551</PaymentNumber>
                <State>Confirm</State>
                <CreationDate>2018-07-25T11:14:42.983</CreationDate>
                <PaymentAmount>
                    <Amount>500.0000</Amount>
                    <Currency>RUB</Currency>
                </PaymentAmount>
                <RecipientAmount>
                    <Amount>500.0000</Amount>
                    <Currency>RUB</Currency>
                </RecipientAmount>
                <PaymentAccount>Эквайринг</PaymentAccount>
                <RecipientAccount>Счет к оплате 3158334217</RecipientAccount>
                <Description>Пополнение счета № "3158334217" через "Эквайринг"</Description>
                <Direction>Deposit</Direction>
                <PurchaseOrderId>3_43030</PurchaseOrderId>
                <AdditionalInfo />
                <InvoicePaymentType>Entry</InvoicePaymentType>
                <InvoiceId>3158334217</InvoiceId>
                <IsElectedPayment>false</IsElectedPayment>
                <TypeOfRePayment xsi:nil="true" />
                <ProviderId xsi:nil="true" />
                <CatalogPaymentId>0</CatalogPaymentId>
                <InputType>Acquiring</InputType>
                <ShortPan />
                <Country />
                <Bank>Промсвязьбанк</Bank>
                <IPAdress>10.70.13.101   </IPAdress>
                <UserEmail>s.suvorinov+10@intellectmoney.ru</UserEmail>
                <ServiceName>Тестирование отправки 2-х писем при частичной оплате</ServiceName>
                <CardHolder />
            </HistoryData>
            <HistoryData>
                <Id>27929489</Id>
                <PaymentNumber>2036299565</PaymentNumber>
                <State>Confirm</State>
                <CreationDate>2018-07-25T11:20:31.123</CreationDate>
                <PaymentAmount>
                    <Amount>0.0100</Amount>
                    <Currency>RUB</Currency>
                </PaymentAmount>
                <RecipientAmount>
                    <Amount>0.0100</Amount>
                    <Currency>RUB</Currency>
                </RecipientAmount>
                <PaymentAccount>3100011</PaymentAccount>
                <RecipientAccount>IM4406528006</RecipientAccount>
                <Comment>Возврат комиссии по заявке 707, инвойс 3158334217, транзакция 2036299553</Comment>
                <Description>Возврат комиссии по заявке 707, инвойс 3158334217, транзакция 2036299553</Description>
                <Direction>Deposit</Direction>
                <PurchaseOrderId>3_43030</PurchaseOrderId>
                <AdditionalInfo />
                <InvoicePaymentType>Refund</InvoicePaymentType>
                <InvoiceId>3158334217</InvoiceId>
                <IsElectedPayment>false</IsElectedPayment>
                <TypeOfRePayment xsi:nil="true" />
                <ProviderId xsi:nil="true" />
                <CatalogPaymentId>0</CatalogPaymentId>
                <ShortPan />
                <Country />
                <UserEmail>s.suvorinov+10@intellectmoney.ru</UserEmail>
                <ServiceName>Тестирование отправки 2-х писем при частичной оплате</ServiceName>
            </HistoryData>

Пример кода на языке программирования PHP

Для получения историй операций на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API"  и функцией curlRequest() из документации: Вспомогательные функции для взаимодействия с API системы IntellectMoney

$userToken = getToken();
$data = array(
    'UserToken' => $userToken,
    'EshopId' => 455551,//Номер магазина, по которому получаем информацию
    'DateFrom' => "10.10.2017",// Дата создания начиная с этого значения
    'DateTo' => "10.10.2018",// Дата создания до этого значения
    'Skip' => 0, // Количество операций, которое нужно пропустить
    'Take' => 10, //Количество операций, которые нужно выбрать
);

$request = curlRequest('https://api.intellectmoney.ru/personal/payment/getPaymentsHistory', $data);
$result = simplexml_load_string($request);

SetScheduledOperation() — РЕДАКТИРОВАНИЕ ОПЕРАЦИЙ ПО РАСПИСАНИЮ

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

Для создания и редактирования операций по расписанию необходимо отправить POST-запрос на следующий адрес URL: 
https://api.intellectmoney.ru/personal/payment/setScheduledOperationData

Операцию по расписанию можно создавать когда, в уведомлении о платеже параметр reccurringState пришел в состоянии "Activated", подробнее об уведомлениях написано тут: Описание уведомлений от системы IntellectMoney при работе с операциями по расписанию

Название

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

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

Описание

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

Номер операции

Operation

Нет

Номер операции. Используется для редактирования операции, если не передать - создается новая операция (GUID). Данный параметр возвращается в ответе на запрос к методу SetScheduledOperation().

Объект операции

ObjectId

Да

Объект источник, к которому привязывается операция, например:

  • InvoiceId - номер счёта (СКО) в системе IntellectMoney
Тип операцииObjectTypeValДаТип регулярной операции (1 - Recurring)
ПараметрыParamsJsonНет

 Дополнительные параметры, сейчас нужно передать сумму списания , передавать в формате JSON, например:

{'Amount':15}

Дата окончания
EndExecDate
Да

Дата окончания выполнения операций по расписанию. По достижению данной даты, операция по расписанию выполняться не будет. (Активность State станет равно 1 - выключен)

Передаётся в формате ММ.ДД.ГГГГ

План выполненияRepeatPlanДа

Cron expressions. Регулярное выражение, которое описывает частоту (регулярность) выполнения операции: например запуск операции каждый день в 12 часов дня(каждый день в 12 часов будет списана сумма операции со счёта клиента): "0 0 12 1/1 * ? *".

Примеры других регулярных выражений, а так же дополнительную информацию можно посмотреть тут: Cron expression

План повторов выполненияRetryOnFailPlanНет

Cron expressions. Регулярное выражение, которое описывает периодичность(регулярность) выполнения операции, если операцию не удалось выполнить: например, повторный запуск операции через 5 минут (в случае, если в 12 часов операцию провести не удалось, каждые 5 минут будет производиться попытка выполнения данной операции, количество таких попыток указывается в поле RetryOnFailCount): "0 0/5 * 1/1 * ? *".

Примеры других регулярных выражений, а так же дополнительную информацию можно посмотреть тут: Cron expression

Количество повторов выполненияRetryOnFailCountНетКоличество повторных попыток выполнения (целое число). Если операцию не удалось выполнить с первого раза, она будет повторятся с периодичностью указанно в параметре RetryOnFailPlan не более чем RetryOnFailCoun
МногопоточностьIsSingleДа

Флаг, указывающий возможность запуска параллельных тасков:

  • 0 - один поток, операция не будет запущена пока не закончена предыдущая
  • 1 - не ограниченное количество потоков, операции запускаются независимо от статуса предыдущей
ПерезапускFireOnSkipДаФлаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1)
АктивностьStateДа

Флаг, указывающий статус активности

  • 0 - Активен, операция выполняется
  • 1 - Выключен, операция не выполняется

Ответ типа  <Response>  будет содержать структуру  <SetScheduledOperationData>

Примеры

Общий вид предоставления данных

Post /personal/scheduler/SetScheduledOperationData
HTTP/1.1 Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8

UserToken = 9WUoI8gEQndN%2BI97MGA4vxIiPZs2v32MxyJS7%2FGDxegOLFXcBQy4fUfCqt6NURzV
Object = 3496318551
ObjectTypeVal = 1
IsSingle = 1
ParamsJson = {"Amount":"100"}
RepeatPlan = 0 0 12 1/4 * ? *
RetryOnFailPlan = 0 0/15 * 1/1 * ? *
RetryOnFailCount = 3
FireOnSkip = 1
State = 1
endExecDate = 12.12.2021
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>b294b231-9a77-427a-9866-f111e4c88515</OperationId> 
	<EshopId>0</EshopId> 
	<Result> 
		<State> 
			<Code>0</Code> 
			<Desc>Успешно обработан.</Desc> 
		</State>
		<ScheduledOperation> 
			<CronOperationId>ece5b08a-8951-4739-8d71-ee589676bcd2</CronOperationId> 
			<ObjectId>3496318551</ObjectId> 
			<CronOperationType>Recurring</CronOperationType> 
			<CreationDate>2017-10-19T16:44:07.3796978+03:00</CreationDate> 
			<ChangeDate>2017-10-19T16:44:07.3953063+03:00</ChangeDate> 
			<EndExecDate>2017-12-12T00:00:00</EndExecDate> 
			<LastExecDate>2017-10-19T16:44:07.3796978+03:00</LastExecDate> 
			<NextExecDate>2017-10-20T12:00:00+03:00</NextExecDate> 
			<RepeatPlan>0 0 12 1/4 * ? *</RepeatPlan>
			<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
			<RetryOnFailCount>3</RetryOnFailCount>
			<FireOnSkip>true</FireOnSkip>
			<IsSingle>true</IsSingle>
			<CronOperationState>Disable</CronOperationState>
		</ScheduledOperation>
	</Result>
</Response> 

Пример кода на языке программирования PHP

Для создания операции по расписанию на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API"  и функцией curlRequest() из документации: Вспомогательные функции для взаимодействия с API системы IntellectMoney

$userToken = getToken();
$data = array(
    'UserToken' => $userToken,// Получаем в момент регистрации операции по расписанию
    'Operation' => null,// Приходит среди параметров в уведомлении об оплате счёта на Result URL
    'ObjectId' => 3496318551,//Номер счёта к оплате в системе IntellectMoney
    'ObjectTypeVal' => 1,// пока передаём 1
    'ParamsJson' => '{"Amount":"100"}',// Тут дополнительная информация, например - сумма списания
    'RepeatPlan' => "0 0 12 1/4 * ? *",// Указываем период списания
    'RetryOnFailPlan' => "0 0/15 * 1/1 * ? *",// Указываем период через который совершать повторно операцию списания, если при первой попытке случилась ошибка
    'RetryOnFailCount' => 3,// Количество повторных попыток
    'FireOnSkip' => 1,// Флаг создания запланированной задачи если она была пропущена
    'EndExecDate' => "12.12.2021",// Дата окончания операций по расписанию
    'State' => 1// Состояние операции - активна/не активна
);

$request = curlRequest('https://api.intellectmoney.ru/personal/scheduler/setScheduledOperationData', $data);
$result = simplexml_load_string($request);
print_r((string)$result->Result->ScheduledOperation->CronOperationId);
//Результат: получили Id созданной операции по расписанию
//ece5b08a-8951-4739-8d71-ee589676bcd2

Результатом выполнения данного примера станет получение CronOperationId, данное значение нужно передать в параметре Operation для редактирования операции по расписанию.

GetScheduledOperation() — ПОЛУЧЕНИЕ СПИСКА ОПЕРАЦИЙ ПО РАСПИСАНИЮ

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

Для получения списка операций по расписанию необходимо отправить POST-запрос на следующий адрес URL: 
https://api.intellectmoney.ru/personal/payment/getScheduledOperationData

Название

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

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

Описание

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

Номер операции

Operation

Нет

Номер операции. Данный параметр возвращается в ответе на запрос к методу SetScheduledOperation().

Объект операции

ObjectId

Нет

Объект источник, к которому привязывается операция, например:

  • InvoiceId - номер счета в системе IntellectMoney (СКО)
Тип операцииObjectTypeValНетТип регулярной операции (1 - Recurring)
ПараметрыParamsJsonНет

 Дополнительные параметры в формате JSON, например:

{'Amount':15}

План выполненияRepeatPlanНет

Cron expressions. Регулярное выражение, которое описывает частоту (регулярность) выполнения операции: например запуск операции каждый день в 12 часов дня(каждый день в 12 часов будет списана сумма операции со счёта клиента): "0 0 12 1/1 * ? *".

Примеры других регулярных выражений, а так же дополнительную информацию можно посмотреть тут: Cron expression

План повторов выполненияRetryOnFailPlanНет

Cron expressions. Регулярное выражение, которое описывает периодичность(регулярность) выполнения операции, если операцию не удалось выполнить: например, повторный запуск операции через 5 минут (в случае, если в 12 часов операцию провести не удалось, каждые 5 минут будет производиться попытка выполнения данной операции, количество таких попыток указывается в поле RetryOnFailCount): "0 0/5 * 1/1 * ? *".

Примеры других регулярных выражений, а так же дополнительную информацию можно посмотреть тут: Cron expression

Количество повторов выполненияRetryOnFailCountНетКоличество повторных попыток выполнения (целое число). Если операцию не удалось выполнить с первого раза, она будет повторятся с периодичностью указанно в параметре RetryOnFailPlan не более чем RetryOnFailCoun
МногопоточностьIsSingleНет

Флаг, указывающий возможность запуска параллельных тасков:

  • 0 - один поток, операция не будет запущена пока не закончена предыдущая
  • 1 - не ограниченное количество потоков, операции запускаются независимо от статуса предыдущей
ПерезапускFireOnSkipНетФлаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1)
АктивностьStateНет

Флаг, указывающий статус активности

    • 0 - Активен, операция выполняется
    • 1 - Выключен, операция не выполняется
Дата начала выборкиDateFromНетПограничные значения даты изменения расписания ММ.ДД.ГГГГ.
Дата окончания выборкиDateToНетПограничные значения даты изменения расписания ММ.ДД.ГГГГ.
Ограничение выборки по количеству объектовSkipНет

Количество объектов, пропускаемых перед отдачей. Для значения 10, пропустит первые 10 записей и выведет Take записей начиная с 10 (нумерация начинается с 0)

Ограничение выборки по количеству объектовTakeДа

Ограничение на количество возвращаемых объектов.

Для значения 10, пропустит первые Skip записей и выведет 10 элементов

Ответ

Ответ типа  <Response>  будет содержать структуру  <GetScheduledOperationData>

Примеры

Общий вид предоставления данных

Post /personal/scheduler/GetScheduledOperationData HTTP/1.1
Host: api.intellectmoney.ru
Content-Type: application/x-www-form-urlencoded; charset=utf-8
 
UserToken = 9WUoI8gEQndN%2BI97MGA4vxIiPZs2v32MxyJS7%2FGDxegOLFXcBQy4fUfCqt6NURzV
DateFrom = 10.10.2017
DateTo = 10.10.2018
Skip = 0
Take = 3
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>0670c93d-7fd7-4240-822b-b62e55cf070c</OperationId>
	<EshopId>0</EshopId>
	<Result>
		<State>
			<Code>0</Code>
			<Desc>Успешно обработан.</Desc>
		</State>
		<ScheduledOperationList>
			<ScheduledOperationData>
				<CronOperationId>6529bef0-3b44-49f6-9ab9-6c4643fd8027</CronOperationId>
				<ObjectId>3028460763</ObjectId>
				<CronOperationType>Recurring</CronOperationType>
				<Params>{"Amount":"15"}</Params>
				<CreationDate>2017-10-19T16:44:07.3796978</CreationDate>
				<ChangeDate>2017-10-19T16:44:07.3953063</ChangeDate>
				<EndExecDate>2017-12-12T00:00:00</EndExecDate>
				<LastExecDate>2017-10-19T16:44:07.3796978</LastExecDate>
				<NextExecDate>2017-10-20T12:00:00</NextExecDate>
				<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
				<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
				<RetryOnFailCount>3</RetryOnFailCount>
				<FireOnSkip>false</FireOnSkip>
				<IsSingle>true</IsSingle>
				<CronOperationState>Disable</CronOperationState>
			</ScheduledOperationData>
			<ScheduledOperationData>
				<CronOperationId>9da1c831-f615-4217-a2b7-5c19927cd321</CronOperationId>
				<ObjectId>3028460763</ObjectId>
				<CronOperationType>Recurring</CronOperationType>
				<Params>{"Amount":"15"}</Params>
				<CreationDate>2017-10-19T16:51:36.7057137</CreationDate>
				<ChangeDate>2017-10-19T16:51:36.7057137</ChangeDate>
				<EndExecDate>2017-12-12T00:00:00</EndExecDate>
				<LastExecDate>2017-10-19T16:51:36.7057137</LastExecDate>
				<NextExecDate>2017-10-20T12:00:00</NextExecDate>
				<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
				<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
				<RetryOnFailCount>3</RetryOnFailCount>
				<FireOnSkip>false</FireOnSkip>
				<IsSingle>true</IsSingle>
				<CronOperationState>Disable</CronOperationState>
			</ScheduledOperationData>
			<ScheduledOperationData>
				<CronOperationId>b72025bc-1723-4866-9c32-027e23f68544</CronOperationId>
				<ObjectId>3028460763</ObjectId>
				<CronOperationType>Recurring</CronOperationType>
				<Params>{"Amount":"15"}</Params>
				<CreationDate>2017-10-19T16:58:25.2139727</CreationDate>
				<ChangeDate>2017-10-19T16:58:25.2139727</ChangeDate>
				<EndExecDate>2017-12-12T00:00:00</EndExecDate>
				<LastExecDate>2017-10-19T16:58:25.2139727</LastExecDate>
				<NextExecDate>2017-10-20T12:00:00</NextExecDate>
				<RepeatPlan>0 0 12 1/1 * ? *</RepeatPlan>
				<RetryOnFailPlan>0 0/15 * 1/1 * ? *</RetryOnFailPlan>
				<RetryOnFailCount>3</RetryOnFailCount>
				<FireOnSkip>false</FireOnSkip>
				<IsSingle>true</IsSingle>
				<CronOperationState>Disable</CronOperationState>
			</ScheduledOperationData>
		</ScheduledOperationList>
	</Result>
</Response>

Пример кода на языке программирования PHP

Для создания операции по расписанию на языке PHP, Вам надо воспользоваться функцией getToken() из пункта "getUserToken - Аутентификация пользователя API"  и функцией curlRequest() из документации: Вспомогательные функции для взаимодействия с API системы IntellectMoney

$userToken = getToken();
$data = array(
    'UserToken' => $userToken,
    'Operation' => null,// Получаем в момент регистрации операции по расписанию
    'ObjectId' => null,// Приходит среди параметров в уведомлении об оплате счёта на Result URL
    'ObjectTypeVal' => null,// пока передаём 1
    'ParamsJson' => null,// Тут дополнительная информация, например - сумма списания
    'RepeatPlan' => null,// Указываем период списания
    'RetryOnFailPlan' => null,// Указываем период через который совершать повторно операцию списания, если при первой попытке случилась ошибка
    'RetryOnFailCount' => null,// Количество повторных попыток
    'FireOnSkip' => null,// Флаг создания запланированной задачи если она была пропущена 
    'EndExecDate' => null,// Дата окончания операций по расписанию
    'State' => null,// Состояние операции - активна/не активна
    'DateFrom' => "10.10.2017",// Дата создания начиная с этого значения
    'DateTo' => "10.10.2018",// Дата создания до этого значения
    'Skip' => 0, // Количество операций, которое нужно пропустить
    'Take' => 3, //Количество операций, которые нужно выбрать
);

$request = curlRequest('https://api.intellectmoney.ru/personal/scheduler/getScheduledOperationData', $data);
$result = simplexml_load_string($request);
echo $result->Result->ScheduledOperationList->ScheduledOperationData->CronOperationId;

ТИПЫ ДАННЫХ

<Response>

Поле

Тип

Описание

OperationState

<OperationState>

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

OperationId

GUID

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

EshopId

int

ID магазина

Result

MethodResult

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

<OperationState>

Поле

Тип

Описание

State

<ServiceOperatonState>

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

Desc

string

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

<UserTokenData>

Поле

Тип

Описание

State

<RequestState>

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

UserToken

string

Ключ доступа клиента к API

<InvoicesHistoryList>

Поле

Тип

Описание

State

<RequestState>

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

InvoicesHistoryList

List<InvoiceData>

Список (реестр) платежей

<PaymentsHistoryList>

Поле

Тип

Описание

State

<RequestState>

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

InvoicesHistoryList

List<HistoryData>

Список транзакций

<InvoiceData>

Поле

Тип

Описание

Id

long

Номер СКО

State

<InvoiceState>

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

CreationDateDateTimeДата создания СКО
ChangeDateDateTimeДата последних изменений СКО
Amount<Money>Сумма СКО с учётом комиссии
CurrentAmount<Money>Внесенная частично на СКО сумма. Имеет положительное значение для статусов "Частично оплачен" и "В процессе обработки". Для оплаченного или захолдированного счета значение равно 0.
SurchargeAmount<Money>Сумма СКО, которую осталось оплатить. Имеет положительное значение для статуса "Частично оплачен". Для оплаченного или захолдированного счета значение равно 0.
CommentstringКомментарий к платежу
EShopIdlongНомер магазина в системе IntellectMoney
PurchaseOrderId stringВнутренний номер покупки (заказа) в магазине
HistoryListList<HistoryData>Список транзакций по СКО

<HistoryData>

ПолеТипОписание
IdlongИдентификатор транзакции в системе ИнтеллектМани (для внутреннего использования)
PaymentNumberlongНомер транзакции
State<TransactionState>Статус транзакции
CreationDateDateTimeДата создания транзакции
PaymentAmount<Money>Сумма списания по транзакции
RecipientAmount<Money>Сумма зачисления по транзакции
PaymentAccountstringСчет списания по транзакции
RecipientAccountstringСчет зачисления по транзакции
CommentstringКомментарий к транзакции
DescriptionstringОписание транзакции
InvoicePaymentType<PaymentType>Тип осуществляемой транзакции: пополнение, зачисление или возврат


Свойства типа данных <InvoiceData> и <HistoryData>, приведенные в примере ответа на запрос, но не описанные выше, следует игнорировать в текущей версии API.

<TransactionState>

TransactionStateОписаниеПояснение
CreatedСозданТранзакция создана на исполнение и ожидает очереди к выполнению
ConfirmИсполненТранзакция исполнена, средства переведены с одного счета на другой
CanceledОтмененаТранзакция отменена. Считать недействительной.

<PaymentType>

PaymentTypeОписаниеПояснение
EntryВходная транзакцияТранзакция пополнения СКО
PurchaseТранзакция зачисленияТранзакция пополнения счета магазина
RefundТранзакция возвратаТранзакция возврата со счета магазина на счет плательщика

<Money>

Поле

Тип

Описание

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

<SetScheduledOperationData>

Поле

Тип

Описание

State

<RequestState>

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

ScheduledOperation

<ScheduledOperationData>

Информация по созданной/отредактированной операции

<GetScheduledOperationData>

Поле

Тип

Описание

State

<RequestState>

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

ScheduledOperationList

List<ScheduledOperationData>

Список операций, подходящих под заданный фильтр


<ScheduledOperationData>

Поле

Тип

Описание

CronOperationId
GUID
Номер операции. Используется для редактирования операции, если не передать - создается новая операция (GUID)
ObjectId
long

Объект источник, например:

  • SourceInvoiceId - для операции рекарринга (Номер Счёта К Оплате)
CronOperationTypetinyintТип регулярной операции (1 - Recurring)
Paramstext

Дополнительные параметры в формате JSON, например:

{'Amount':15}

CreationDateDateTimeДата создания операции
ChangeDateDateTimeДата последнего внесения изменений
EndExecDateDateTimeДата окончания выполнения операции
LastExecDateDateTimeДата последнего выполнения операции
NextExecDateDateTimeДата следующего выполнения операции
RepeatPlantextCron expressions. Регулярное выражение, которое описывает частоту (регулярность) выполнения операции: например запуск операции каждый день в 12 часов дня(каждый день в 12 часов будет списана сумма операции со счёта клиента): "0 0 12 1/1 * ? *" Для создания данного регулярного выражения ,можно использовать http://www.cronmaker.com/
RetryOnFailPlantextCron expressions. Регулярное выражение, которое описывает периодичность(регулярность) выполнения операции, если операцию не удалось выполнить: например, повторный запуск операции через 5 минут (в случае, если в 12 часов операцию провести не удалось, каждые 5 минут будет производиться попДля значения 10, пропустит первые 10 записей и выведет Take записей начиная с 10 (нумерация начинается с 0)ытка выполнения данной операции, количество таких попыток указывается в поле RetryOnFailCount): "0 0/5 * 1/1 * ? *" Для создания данного регулярного выражения ,можно использовать http://www.cronmaker.com/
RetryOnFailCounttextКоличество повторных попыток выполнения (целое число). Если операцию не удалось выполнить с первого раза, она будет повторятся с периодичностью указанно в параметре RetryOnFailPlan не более чем RetryOnFailCoun
IsSinglebool

Флаг, указывающий возможность запуска параллельных тасков:

  • 0 - один поток, операция не будет запущена пока не закончена предыдущая
  • 1 - не ограниченное количество потоков, операции запускаются независимо от статуса предыдущей
FireOnSkipboolФлаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1)
CronOperationState<CronOperationState>

Флаг, указывающий статус активности

  • Active - Активен
  • Disable - Выключен

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

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

ServiceOperatonState

Описание

0

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

1

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

2

Ошибка

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

Код ошибки

Описание

0

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

1

Обработан с предупреждениями

2

Аутентификация не пройдена

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

Название

Описание

RUB

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

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

InvoiceState

Числовое представление

Описание

Пояснение

Created0СозданСчёт к оплате создан и теперь его состояние можно отслеживать методом getPurchaseInfo(). Никаких платёжных операций не производилось.
PartPaid1Частично оплаченПользователь (Покупатель), внес часть средств. Пользователю (Покупателю) надо внести оставшуюся часть суммы.
Paid2Полностью оплаченПользователь внес всю сумму.
ToPaid3В процессе обработки

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

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

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

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

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

Тип сортировки счетов

InvoiceState

Числовое представление

Описание

Пояснение

None0Не заданСортировка по умолчанию, равносильно не передаче параметра , сортирует по дате создания
CreationDate1По дате созданияСортирует счета по дате создания, сортировка по возрастанию
ChangeDate2По дате измененияСортирует счета по дате изменения, сортировка по возрастанию
InvoiceState3По состоянию счета

Сортирует счета по состоянию счета

Amount4По сумма

Сортирует счета по сумме, сортировка по возрастанию