- Created by Сергей, last modified by Владимир on Feb 27, 2018
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 92 Next »
Общая информация
Данное API на текущий момент реализации позволяет запросить реестр платежей, создавать и редактировать операции по расписанию. Взаимодействие между сервером IntellectMoney и клиентом API происходит по HTTP-протоколу.
Запрос к системе IntellectMoney
Данные при запросах на сервер IntellectMoney передаются в формате параметров HTTP-запроса в кодировке UTF-8 с типом контента "application/x-www-form-urlencoded".
В ответ данные возвращаются в формате XML, либо в формате JSON. Что бы получить ответ в формате JSON нужно в заголовки запроса передать "Accept: text/json".
Ответ системы IntellectMoney на запросы
В ответ приходят два состояния запроса это <OperationState> и <Response>:
- <OperationState> сообщает - смогла ли система IntellectMoney обработать данный запрос. Возможны три варианта: - Система обработала запрос. Ответ типа <Response> будет содержать результат работы метода (синхронная обработка). ( Код операции - 0 )
- Система поставила запрос в очередь на обработку. Ответ типа <Response> будет содержать идентификатор операции, по которому можно запросить результат выполнения операции (асинхронная обработка). (Код операции - 1 )
- Система не смогла обработать запрос. Операция выполнена не будет. ( Код операции - 2 )
 
- <Response> сообщает статус запроса - был ли найден данный метод, все ли параметры переданы верно и так далее.
В случае, если какой-либо параметр будет передан не верно, в состоянии <Response> будет выведено сообщение об ошибке и параметр, который передан не корректно.
СЛОВАРЬ ТЕРМИНОВ
- СКО — Счет К Оплате, инвойс
Важно
Для доступа к API следует получить ключ доступа через операцию аутентификации клиента Документация Personal API. Данный ключ является обязательным параметром для всех операций API.
Для всех запросов к API используется метод curlRequest. Код данного метода можно посмотреть в разделе "Дополнительная информация".
ПОРЯДОК ВЫЗОВА МЕТОДОВ
getUserToken() — Аутентификация клиента API
Для запроса ключа доступа клиента к API необходимо отправить GET- или POST-запрос на следующий адрес URL: https://api.intellectmoney.ru/personal/user/getUserToken В запросе необходимо передать следующие параметры: Название Имя параметра Обязательный Описание Логин Login  Да  Логин пользователя юридического лица (магазина). Используется для входа в личный кабинет на странице: https://intellectmoney.ru/ru/. Пароль Password  Да  Пароль пользователя юридического лица (магазина). Используется для входа в личный кабинет на странице: https://intellectmoney.ru/ru/. Ответ типа  <Response>  будет содержать структуру   <UserTokenData>  В функции getToken() используются личные данные - логин и пароль для доступа в личный кабинет IntellectMoneyПередача параметров
 
 
 
 Ответ
Примеры
Общий вид предоставления данных
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
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() — ПОЛУЧЕНИЕ РЕЕСТРА ПЛАТЕЖЕЙ
Передача параметров
Для запроса реестра платежей необходимо отправить GET- или 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 в выборку будут включены все транзакции по СКО: транзакции пополнения СКО, транзакции пополнения счета магазина, транзакции возврата (при возврате) | |
| Дата начала выборки | DateFrom | Нет | Запрос реестра платежей с д атой последних изменений СКО, входящей в период выборки в формате ММ.ДД.ГГГГ. | 
| Дата окончания выборки | DateTo | Нет | |
| Ограничение выборки по количеству объектов | Skip | Нет | Количество объектов, пропускаемых перед отдачей | 
| Ограничение выборки по количеству объектов | Take | Да | Ограничение на количество возвращаемых объектов. | 
Использование параметров
При выборке данных используется конъюнкция параметров. Например, в случае, если переданы параметры "Статус СКО" и "Номер СКО", то результат запрос вернет объект СКО только при его наличии с переданными номером и статусом.
Ответ
Ответ типа <Response> будет содержать структуру <InvoicesHistoryListData>
Примеры
Общий вид предоставления данных
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=07.15.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>
 SetScheduledOperation() — РЕДАКТИРОВАНИЕ ОПЕРАЦИЙ ПО РАСПИСАНИЮ
Передача параметров
Для создания и редактирования операций по расписанию необходимо отправить GET- или POST-запрос на следующий адрес URL:  Операцию по расписанию можно создавать когда, в уведомлении о платеже параметр reccurringState пришел в состоянии "Activated", подробнее об уведомлениях написано тут: Описание уведомлений от системы IntellectMoney при работе с операциями по расписанию
https://api.intellectmoney.ru/personal/payment/setScheduledOperationData
| Название | Имя параметра | Обязательный | Описание | 
|---|---|---|---|
| Ключ доступа | UserToken | Да | Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. | 
| Номер операции | Operation | Нет | Номер операции. Используется для редактирования операции, если не передать - создается новая операция (GUID). Данный параметр возвращается в ответе на запрос к методу SetScheduledOperation(). | 
| Объект операции | ObjectId | Да | Объект источник, к которому привязывается операция, например: 
 | 
| Тип операции | 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 | Да | Флаг, указывающий возможность запуска параллельных тасков: 
 | 
| Перезапуск | FireOnSkip | Да | Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) | 
| Активность | State | Да | Флаг, указывающий статус активности 
 | 
Ответ типа <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
GetScheduledOperation() — ПОЛУЧЕНИЕ СПИСКА ОПЕРАЦИЙ ПО РАСПИСАНИЮ
Передача параметров
Для получения списка операций по расписанию необходимо отправить GET- или POST-запрос на следующий адрес URL: 
 https://api.intellectmoney.ru/personal/payment/getScheduledOperationData
| Название | Имя параметра | Обязательный | Описание | 
|---|---|---|---|
| Ключ доступа | UserSid | Да | Ключ доступа клиента к API, запрашиваемый операцией аутентификации клиента Документация Personal API. | 
| Номер операции | Operation | Нет | Номер операции. Данный параметр возвращается в ответе на запрос к методу SetScheduledOperation(). | 
| Объект операции | ObjectId | Нет | Объект источник, к которому привязывается операция, например: 
 | 
| Тип операции | 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 | Нет | Флаг, указывающий возможность запуска параллельных тасков: 
 | 
| Перезапуск | FireOnSkip | Нет | Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) | 
| Активность | State | Нет | Флаг, указывающий статус активности 
 | 
| Дата начала выборки | 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 | Статус выполнения операции | |
| OperationId | GUID | Идентификатор операции | 
| EshopId | int | ID магазина | 
| Result | MethodResult | Результат выполнения запроса. Зависит от типа запроса. В случае асинхронной обработки запроса данного поля не будет. | 
<OperationState>
| Поле | Тип | Описание | 
|---|---|---|
| State | Статусы выполнения запросов | |
| Desc | string | Описание кода статуса выполнения запроса | 
<UserTokenData>
| Поле | Тип | Описание | 
|---|---|---|
| State | Статусы выполнения запросов | |
| UserToken | string | Ключ доступа клиента к API | 
<InvoicesHistoryListData>
| Поле | Тип | Описание | 
|---|---|---|
| State | Статусы выполнения запросов | |
| InvoicesHistoryList | Список (реестр) платежей | 
<InvoiceData>
| Поле | Тип | Описание | 
|---|---|---|
| Id | long |  Номер СКО  | 
| State | Статус состояния СКО | |
| CreationDate | DateTime | Дата создания СКО | 
| ChangeDate | DateTime | Дата последних изменений СКО | 
| Amount | <Money> | Сумма СКО с учётом комиссии | 
| CurrentAmount | <Money> | Внесенная частично на СКО сумма. Имеет положительное значение для статусов "Частично оплачен" и "В процессе обработки". Для оплаченного или захолдированного счета значение равно 0. | 
| SurchargeAmount | <Money> | Сумма СКО, которую осталось оплатить. Имеет положительное значение для статуса "Частично оплачен". Для оплаченного или захолдированного счета значение равно 0. | 
| Comment | string | Комментарий к платежу | 
| EShopId | long | Номер магазина в системе IntellectMoney | 
| PurchaseOrderId | string | Внутренний номер покупки (заказа) в магазине | 
| HistoryList | List<HistoryData> | Список транзакций по СКО | 
<HistoryData>
| Поле | Тип | Описание | 
|---|---|---|
| Id | long | Идентификатор транзакции в системе ИнтеллектМани (для внутреннего использования) | 
| PaymentNumber | long | Номер транзакции | 
| State | <TransactionState> | Статус транзакции | 
| CreationDate | DateTime | Дата создания транзакции | 
| PaymentAmount | <Money> | Сумма списания по транзакции | 
| RecipientAmount | <Money> | Сумма зачисления по транзакции | 
| PaymentAccount | string | Счет списания по транзакции | 
| RecipientAccount | string | Счет зачисления по транзакции | 
| Comment | string | Комментарий к транзакции | 
| Description | string | Описание транзакции | 
| InvoicePaymentType | <PaymentType> | Тип осуществляемой транзакции: пополнение, зачисление или возврат | 
 
 
Свойства <InvoiceData>
Свойства типа данных <InvoiceData> и <HistoryData>, приведенные в примере ответа на запрос, но не описанные выше, следует игнорировать в текущей версии API.
<TransactionState>
| TransactionState | Описание | Пояснение | 
|---|---|---|
| Created | Создан | Транзакция создана на исполнение и ожидает очереди к выполнению | 
| Confirm | Исполнен | Транзакция исполнена, средства переведены с одного счета на другой | 
| Canceled | Отменена | Транзакция отменена. Считать недействительной. | 
<PaymentType>
| PaymentType | Описание | Пояснение | 
|---|---|---|
| Entry | Входная транзакция | Транзакция пополнения СКО | 
| Purchase | Транзакция зачисления | Транзакция пополнения счета магазина | 
| Refund | Транзакция возврата | Транзакция возврата со счета магазина на счет плательщика | 
<Money>
| Поле | Тип | Описание | 
|---|---|---|
| Amount | decimal | Количество денежных средств. | 
| Currency | <Currency> | В какой валюте исчисляются денежные средства. | 
<SetScheduledOperationData>
| Поле | Тип | Описание | 
|---|---|---|
| State | Статусы выполнения запросов | |
| ScheduledOperation | Информация по созданной/отредактированной операции | 
<GetScheduledOperationData>
| Поле | Тип | Описание | 
|---|---|---|
| State | Статусы выполнения запросов | |
| ScheduledOperationList | Список операций, подходящих под заданный фильтр | 
<ScheduledOperationData>
| Поле | Тип | Описание | 
|---|---|---|
| CronOperationId | GUID | Номер операции. Используется для редактирования операции, если не передать - создается новая операция (GUID) | 
| ObjectId | long | Объект источник, например: 
 | 
| CronOperationType | tinyint | Тип регулярной операции (1 - Recurring) | 
| Params | text | Дополнительные параметры в формате JSON, например: {'Amount':15} | 
| CreationDate | DateTime | Дата создания операции | 
| ChangeDate | DateTime | Дата последнего внесения изменений | 
| EndExecDate | DateTime | Дата окончания выполнения операции | 
| LastExecDate | DateTime | Дата последнего выполнения операции | 
| NextExecDate | DateTime | Дата следующего выполнения операции | 
| RepeatPlan | text | Cron expressions. Регулярное выражение, которое описывает частоту (регулярность) выполнения операции: например запуск операции каждый день в 12 часов дня(каждый день в 12 часов будет списана сумма операции со счёта клиента): "0 0 12 1/1 * ? *" Для создания данного регулярного выражения ,можно использовать http://www.cronmaker.com/ | 
| RetryOnFailPlan | text | Cron expressions. Регулярное выражение, которое описывает периодичность(регулярность) выполнения операции, если операцию не удалось выполнить: например, повторный запуск операции через 5 минут (в случае, если в 12 часов операцию провести не удалось, каждые 5 минут будет производиться попДля значения 10, пропустит первые 10 записей и выведет Take записей начиная с 10 (нумерация начинается с 0)ытка выполнения данной операции, количество таких попыток указывается в поле RetryOnFailCount): "0 0/5 * 1/1 * ? *" Для создания данного регулярного выражения ,можно использовать http://www.cronmaker.com/ | 
| RetryOnFailCount | text | Количество повторных попыток выполнения (целое число). Если операцию не удалось выполнить с первого раза, она будет повторятся с периодичностью указанно в параметре RetryOnFailPlan не более чем RetryOnFailCoun | 
| IsSingle | bool | Флаг, указывающий возможность запуска параллельных тасков: 
 | 
| FireOnSkip | bool | Флаг, указывающий необходимость создания всех запланированных задач, в случае их непредвиденного пропуска (0 или 1) | 
| CronOperationState | <CronOperationState> | Флаг, указывающий статус активности 
 | 
ПЕРЕЧИСЛЕНИЯ
Коды операций
| ServiceOperatonState | Описание | 
|---|---|
| 0 | Успешно обработана | 
| 1 | В процессе выполнения | 
| 2 | Ошибка | 
Статусы запросов
| Код ошибки | Описание | 
|---|---|
| 0 | Успешно обработан | 
| 1 | Обработан с предупреждениями | 
| 2 | Аутентификация не пройдена | 
Описание принимаемых валют
| Название | Описание | 
|---|---|
| RUB | Валюта оплаты - Российский рубль | 
| TST | Внутренняя тестовая валюта оплаты | 
Статусы состояния СКО
| InvoiceState | Числовое представление | Описание | Пояснение | 
|---|---|---|---|
| Created | 0 | Создан | Счёт к оплате создан и теперь его состояние можно отслеживать методом getPurchaseInfo(). Никаких платёжных операций не производилось. | 
| PartPaid | 1 | Частично оплачен | Пользователь (Покупатель), внес часть средств. Пользователю (Покупателю) надо внести оставшуюся часть суммы. | 
| Paid | 2 | Полностью оплачен | Пользователь внес всю сумму. | 
| ToPaid | 3 | В процессе обработки | Над денежными средствами производятся действия. | 
| Refund | 4 | Возврат | Средства будут возвращены Пользователю (Покупателю). | 
| Held | 6 | Захолдирован | Средства заморожены (захолдированы/ holded) на счёте Пользователя (Покупателя). Данные средства будут зачислены или расхолдированы (вернутся Пользователю) по истечению времени заморозки (холдирования) или пока не будут зачислены вручную. Поведение денежных средств определяется в настройках магазина на вкладке "Приём платежей" в разделе "Расширенные настройки". | 
- No labels