RU / en

Автоматические интерфейсы PayMaster

Автоматические интерфейсы PayMaster

Общие сведения

Способ обращения

Аутентификация запросов

Формат ответа

Коды ошибок

Проверка статуса платежа

Проверка статуса по идентификатору платежа

Проверка статуса по номеру счета

Получение списка платежей

Возвраты

Возврат платежа

Получение списка возвратов

Холды

Подтверждение платежа.

Отмена платежа

Получение списка документов

Скачивание документа

Получение списка выплат

Общие сведения

Способ обращения

Автоматические интерфейсы PayMaster доступны посредством HTTP GET или POST запросов на определенные URL личного кабинета. Общий формат URL: https://paymaster.ru/partners/rest/xxx, где xxx - это название операции.

GET- или POST-параметры запроса должны содержать информацию, специфическую для запроса.

Аутентификация запросов

Все запросы выполняются от имени пользователей созданных со способом входа "Автоматический доступ". Пользователям должна быть назначена роль Операционист (получение статуса платежа и списка платежей) или Бухгалтер (Операционист + возврат платежа + список возвратов + подтверждение и отмена холдов). Все запросы должны обязательно содержать три поля: login, nonce и hash, посредством которых осуществляется аутентификация запросов:

  • login - логин для автоматических запросов. Этот логин не может использоваться для входа в личный кабинет: только для аутентификации REST-запросов.
  • password - пароль для автоматических запросов. НЕ ПЕРЕДАЕТСЯ ПО СЕТИ! Этот пароль используется только для формирования хеша (hash).
  • nonce - одноразовый тикет запроса. Это произвольная строка не более, чем из 255 символов, не содержащая символа ‘;’. Вам следует генерировать одноразовый тикет для каждого запроса. Это сделано для того, чтобы злоумышленник, даже перехватив однажды запрос, не смог его повторить.
  • hash - хеш полей запроса. В описании каждого запроса написано, какие поля подлежат хешированию. Значения этих полей записываются в одну строчку через точку с запятой, затем от полученной UTF8-строки считается SHA1-хеш, который затем кодируется base64. PHP код формирования хеша: $hash = base64_encode(sha1($str, true)), где $str - строка параметров

Если подпись запроса (hash) сформирована неверно, PayMaster возвращает код ошибки -7 (см. Коды ошибок)

Обратите внимание, что при формировании GET-строки запроса все параметры (особенно это касается hash) следует URL-экранировать!

Формат ответа

В ответ на запрос PayMaster всегда выдает HTTP-код 200. Если выдается другой код, то произошла ошибка на сервере при разборе запроса.

Ответы PayMaster выдает в формате JSON. Пример ответа:

{"ErrorCode":0,"Payment":{"PaymentID":1,"SiteInvoiceID":"12345",
"SiteID":1,"CurrencyCode":"USD","Amount":33,"PaymentSystemID":
0,"PaymentCurrencyCode":null,"PaymentAmount":0,"State":"COMPLETE",
"Purpose":null,"IsTestPayment":false,"UserPhoneNumber":"79161234567",
"UserIdentifier":null,"LastUpdate":"\/Date(1369231732745)\/","LastUpdateTime":
"2013-05-22T18:08:52"}}

Если в числе параметров запроса передать параметр xml, равный 1, то ответ на запрос будет дан в формате XML:

<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers"xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST" i:type="a:RestPaymentInfo">
        <a:Amount>
            33
        </a:Amount>
        <a:CurrencyCode>
            USD
        </a:CurrencyCode>
        <a:IsTestPayment>
            false
        </a:IsTestPayment>
        <a:LastUpdate>
            2013-05-22T17:22:34.2208127+04:00
        </a:LastUpdate>
        <a:PaymentAmount>
            0
        </a:PaymentAmount>
        <a:PaymentCurrencyCode i:nil="true"/>
        <a:PaymentID>
            1
        </a:PaymentID>
        <a:PaymentSystemID>
            0
        </a:PaymentSystemID>
        <a:Purpose i:nil="true"/>
        <a:SiteID>
            1
        </a:SiteID>
        <a:SiteInvoiceID>
            12345
        </a:SiteInvoiceID>
        <a:State>
            COMPLETE
        </a:State>
        <a:UserIdentifier i:nil="true"/>
        <a:UserPhoneNumber>
            79161234567
        </a:UserPhoneNumber>
    </Response>
</RestController.RestResponse>

Все ответы содержат числовое поле ErrorCode, равное коду ошибки запроса (см. Коды ошибок). Если ошибки нет (ErrorCode=0), то второе поле - ответ на запрос.

Внимание: Параметры ответов на запросы могут быть расширены (но не убраны), с внесением соответствующих изменений в документацию. Пишите обработку ответов с учетом того, что вам могут прийти дополнительные поля.

Коды ошибок

Возможные значения поля ErrorCode ответа от PayMaster:

-1

Неизвестная ошибка. Сбой в системе PayMaster. Если ошибка повторяется, обратитесь в техподдержку.

-2

Сетевая ошибка. Сбой в системе PayMaster. Если ошибка повторяется, обратитесь в техподдержку.

-6

Нет доступа. Неверно указан логин, или у данного логина нет прав на запрошенную информацию.

-7

Неверная подпись запроса. Неверно сформирован хеш запроса.

-13

Платеж не найден по номеру счета

-14

Повторный запрос с тем же nonce

-18

Неверное значение суммы (в случае возвратов имеется в виду значение amount)

Проверка статуса платежа

Проверка статуса по идентификатору платежа

Этот запрос используется для получения информации о платеже по его номеру в системе PayMaster.

  • paymentID - идентификатор платежа в системе PayMaster (поле LMI_SYS_PAYMENT_ID)
  • Хешируемые параметры: login;password;nonce;paymentID
  • Параметры ответа:
  • State - состояние платежа. Допустимые значения:
  • INITIATED: платеж начат,
  • PROCESSING: платеж проводится
  • COMPLETE: платеж завершен успешно
  • CANCELLED: платеж завершен неуспешно
  • HOLD: средства захолдированы
  • Amount - сумма платежа
  • CurrencyCode - 3-буквенный ISO код валюты
  • IsTestPayment - признак тестового платежа (платеж совершен в тестовом режиме)
  • LastUpdate (LastUpdateTime для JSON) - время последнего обновления статуса. Для завершенных платежей - время завершения платежа.
  • PaymentAmount - сумма оплаты
  • PaymentCurrencyCode - валюта оплаты
  • PaymentID - идентификатор платежа
  • PaymentSystemID - идентификатор платежной системы
  • Purpose - примечание к платежу
  • SiteID - идентификатор сайта - получателя платежа
  • SiteInvoiceID - номер счета (параметр LMI_PAYMENT_NO)
  • UserIdentifier - идентификатор пользователя в платежной системе
  • UserPhoneNumber - номер телефона плательщика.
  • Пример запроса:

https://paymaster.ru/partners/rest/getpayment?login=TestLogin&nonce=ttt&paymentid=1&hash=123

  • Пример ответа:
{"ErrorCode":0,"Payment":{"PaymentID":1,"SiteInvoiceID":"12345",
"SiteID":1,"CurrencyCode":"USD","Amount":33,"PaymentSystemID":
0,"PaymentCurrencyCode":null,"PaymentAmount":0,"State":"COMPLETE",
"Purpose":null,"IsTestPayment":false,"UserPhoneNumber":"79161234567",
"UserIdentifier":null,"LastUpdate":"\/Date(1369231732745)\/","LastUpdateTime":
"2013-05-22T18:08:52"}}

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

https://paymaster.ru/partners/rest/getpayment?login=TestLogin&nonce=ttt&paymentid=1&hash=123&xml=1

  • Пример ответа:
<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers"xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST" i:type="a:RestPaymentInfo">
        <a:Amount>
            33
        </a:Amount>
        <a:CurrencyCode>
            USD
        </a:CurrencyCode>
        <a:IsTestPayment>
            false
        </a:IsTestPayment>
        <a:LastUpdate>
            2013-05-22T17:22:34.2208127+04:00
        </a:LastUpdate>
        <a:PaymentAmount>
            0
        </a:PaymentAmount>
        <a:PaymentCurrencyCode i:nil="true"/>
        <a:PaymentID>
            1
        </a:PaymentID>
        <a:PaymentSystemID>
            0
        </a:PaymentSystemID>
        <a:Purpose i:nil="true"/>
        <a:SiteID>
            1
        </a:SiteID>
        <a:SiteInvoiceID>
            12345
        </a:SiteInvoiceID>
        <a:State>
            COMPLETE
        </a:State>
        <a:UserIdentifier i:nil="true"/>
        <a:UserPhoneNumber>
            79161234567
        </a:UserPhoneNumber>
    </Response>
</RestController.RestResponse>

Проверка статуса по номеру счета

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

  • invoiceID - номер счета (поле LMI_PAYMENT_NO)
  • siteAlias - идентификатор сайта (поле LMI_MERCHANT_ID)
  • Хешируемые параметры: login;password;nonce;invoiceID;siteAlias
  • Параметры ответа: те же, что и для предыдущего запроса
  • Пример запроса:

https://paymaster.ru/partners/rest/getpaymentbyinvoiceid?login=TestLogin&nonce=ttt&invoiceid=1&siteAlias=yyy&hash=123

  • Пример ответа:
{"ErrorCode":0,"Payment":{"PaymentID":12345,"SiteInvoiceID":"1",
"SiteID":1,"CurrencyCode":"USD","Amount":33,"PaymentSystemID":
0,"PaymentCurrencyCode":null,"PaymentAmount":0,"State":"COMPLETE",
"Purpose":null,"IsTestPayment":false,"UserPhoneNumber":"79161234567",
"UserIdentifier":null,"LastUpdate":"\/Date(1369231716474)\/","LastUpdateTime":
"2013-05-22T18:08:36"}}

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

https://paymaster.ru/partners/rest/getpaymentbyinvoiceid?login=TestLogin&nonce=ttt&invoiceid=1&siteAlias=yyy&hash=123&xml=1

  • Пример ответа:
<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers"xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST" i:type="a:RestPaymentInfo">
        <a:Amount>
            33
        </a:Amount>
        <a:CurrencyCode>
            USD
        </a:CurrencyCode>
        <a:IsTestPayment>
            false
        </a:IsTestPayment>
        <a:LastUpdate>
            2013-05-22T17:24:13.5485595+04:00
        </a:LastUpdate>
        <a:PaymentAmount>
            0
        </a:PaymentAmount>
        <a:PaymentCurrencyCode i:nil="true"/>
        <a:PaymentID>
            12345
        </a:PaymentID>
        <a:PaymentSystemID>
            0
        </a:PaymentSystemID>
        <a:Purpose i:nil="true"/>
        <a:SiteID>
            1
        </a:SiteID>
        <a:SiteInvoiceID>
            1
        </a:SiteInvoiceID>
        <a:State>
            COMPLETE
        </a:State>
        <a:UserIdentifier i:nil="true"/>
        <a:UserPhoneNumber>
            79161234567
        </a:UserPhoneNumber>
    </Response>
</RestController.RestResponse>

Получение списка платежей

Этот запрос используется для получения списка платежей, удовлетворяющих условиям поиска.

  • accountID - номер учетной записи в системе PayMaster. Его можно узнать из URL страницы "Учетная запись" в личном кабинете. Параметр accountID можно не указывать, если у вас всего одна учетная запись.
  • siteAlias - идентификатор сайта (LMI_MERCHANT_ID). Если указан, то будут возвращены только платежи данного сайта.
  • periodFrom - начало периода (yyyy-MM-dd), часовой пояс UTC. Если указан, то будут возвращены платежи только после указанной даты.
  • periodTo - конец периода (yyyy-MM-dd), часовой пояс UTC. Если указан, то будут возвращены платежи только до указанной даты.
  • invoiceID - номер счета. Если указан, то будут возвращены платежи только с таким номером счета.
  • state - состояние платежа. Если указано, то будут возвращены только платежи с указанным состоянием. Допустимые значения:
  • INITIATED: платеж начат
  • PROCESSING: платеж проводится
  • COMPLETE: платеж завершен успешно
  • CANCELLED: платеж завершен неуспешно
  • Хешируемые параметры: login;password;nonce;accountID;siteAlias;periodFrom;periodTo;invoiceID;state. Учтите, что, если параметр не передается, в хеше нужно писать вместо него пустую строку.
  • Параметры ответа:
  • Response.Overflow - "true", если в ответе приведены не все платежи, удовлетворяющие фильтру. Если вам нужны все платежи, сузьте область поиска.
  • Response.Payments - массив объектов, каждый из которых аналогичен объекту, возвращаемому по запросу getPayment.
  • Пример запроса:

https://paymaster.ru/partners/rest/listpaymentsfilter?login=TestLogin&nonce=ttt&periodFrom=2011-12-01&hash=123

  • Пример ответа:
{"ErrorCode":0,"Response":{"Overflow":false,"Payments":[{"PaymentID":
123456,"SiteInvoiceID":"2313","SiteID":1,"CurrencyCode":"USD",
"Amount":33,"PaymentMethod":null,"PaymentSystemID":0,"PaymentCurrencyCode":
null,"PaymentAmount":0,"State":"COMPLETE","ErrorCode":0,"Purpose":
null,"IsTestPayment":false,"UserPhoneNumber":"79161234567","UserIdentifier":
null,"Settled":true,"LastUpdate":"\/Date(1399446846533)\/","LastUpdateTime":
"2014-05-07T11:14:06"},{"PaymentID":123458,"SiteInvoiceID":"2315",
"SiteID":1,"CurrencyCode":"USD","Amount":33,"PaymentMethod":
null,"PaymentSystemID":0,"PaymentCurrencyCode":null,"PaymentAmount":0,
"State":"COMPLETE","ErrorCode":0,"Purpose":null,"IsTestPayment":
false,"UserPhoneNumber":"79161234567","UserIdentifier":null,"Settled":
true,"LastUpdate":"\/Date(1399446846533)\/","LastUpdateTime":"2014-05-07T11:
14:06"},{"PaymentID":123476,"SiteInvoiceID":"2316","SiteID":
1,"CurrencyCode":"USD","Amount":33,"PaymentMethod":null,"PaymentSystemID":
0,"PaymentCurrencyCode":null,"PaymentAmount":0,"State":"COMPLETE",
"ErrorCode":0,"Purpose":null,"IsTestPayment":false,"UserPhoneNumber":
"79161234567","UserIdentifier":null,"Settled":true,"LastUpdate":
"\/Date(1399446846533)\/","LastUpdateTime":"2014-05-07T11:14:06"}]}}

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

https://paymaster.ru/partners/rest/listpaymentsfilter?login=TestLogin&nonce=ttt&periodFrom=2011-12-01&hash=123&xml=1

  • Пример ответа:
<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST" i:type="a:RestPaymentList">
        <a:Overflow>
            false
        </a:Overflow>
        <a:Payments>
            <a:RestPaymentInfo>
                <a:Amount>
                    33
                </a:Amount>
                <a:CurrencyCode>
                    USD
                </a:CurrencyCode>
                <a:ErrorCode>
                    0
                </a:ErrorCode>
                <a:IsTestPayment>
                    false
                </a:IsTestPayment>
                <a:LastUpdate>
                    2014-05-07T11:15:06.5785898+04:00
                </a:LastUpdate>
                <a:PaymentAmount>
                    0
                </a:PaymentAmount>
                <a:PaymentCurrencyCode i:nil="true"/>
                <a:PaymentID>
                    123456
                </a:PaymentID>
                <a:PaymentMethod i:nil="true"/>
                <a:PaymentSystemID>
                    0
                </a:PaymentSystemID>
                <a:Purpose i:nil="true"/>
                <a:Settled>
                    true
                </a:Settled>
                <a:SiteID>
                    1
                </a:SiteID>
                <a:SiteInvoiceID>
                    2313
                </a:SiteInvoiceID>
                <a:State>
                    COMPLETE
                </a:State>
                <a:UserIdentifier i:nil="true"/>
                <a:UserPhoneNumber>
                    79161234567
                </a:UserPhoneNumber>
            </a:RestPaymentInfo>
            <a:RestPaymentInfo>
                <a:Amount>
                    33
                </a:Amount>
                <a:CurrencyCode>
                    USD
                </a:CurrencyCode>
                <a:ErrorCode>
                    0
                </a:ErrorCode>
                <a:IsTestPayment>
                    false
                </a:IsTestPayment>
                <a:LastUpdate>
                    2014-05-07T11:15:06.5785898+04:00
                </a:LastUpdate>
                <a:PaymentAmount>
                    0
                </a:PaymentAmount>
                <a:PaymentCurrencyCode i:nil="true"/>
                <a:PaymentID>
                    123458
                </a:PaymentID>
                <a:PaymentMethod i:nil="true"/>
                <a:PaymentSystemID>
                    0
                </a:PaymentSystemID>
                <a:Purpose i:nil="true"/>
                <a:Settled>
                    true
                </a:Settled>
                <a:SiteID>
                    1
                </a:SiteID>
                <a:SiteInvoiceID>
                    2315
                </a:SiteInvoiceID>
                <a:State>
                    COMPLETE
                </a:State>
                <a:UserIdentifier i:nil="true"/>
                <a:UserPhoneNumber>
                    79161234567
                </a:UserPhoneNumber>
            </a:RestPaymentInfo>
            <a:RestPaymentInfo>
                <a:Amount>
                    33
                </a:Amount>
                <a:CurrencyCode>
                    USD
                </a:CurrencyCode>
                <a:ErrorCode>
                    0
                </a:ErrorCode>
                <a:IsTestPayment>
                    false
                </a:IsTestPayment>
                <a:LastUpdate>
                    2014-05-07T11:15:06.5785898+04:00
                </a:LastUpdate>
                <a:PaymentAmount>
                    0
                </a:PaymentAmount>
                <a:PaymentCurrencyCode i:nil="true"/>
                <a:PaymentID>
                    123476
                </a:PaymentID>
                <a:PaymentMethod i:nil="true"/>
                <a:PaymentSystemID>
                    0
                </a:PaymentSystemID>
                <a:Purpose i:nil="true"/>
                <a:Settled>
                    true
                </a:Settled>
                <a:SiteID>
                    1
                </a:SiteID>
                <a:SiteInvoiceID>
                    2316
                </a:SiteInvoiceID>
                <a:State>
                    COMPLETE
                </a:State>
                <a:UserIdentifier i:nil="true"/>
                <a:UserPhoneNumber>
                    79161234567
                </a:UserPhoneNumber>
            </a:RestPaymentInfo>
        </a:Payments>
    </Response>
</RestController.RestResponse>

Возвраты

Возврат платежа

Этот запрос используется для осуществления возврата по платежу.

  • paymentID - идентификатор платежа в системе PayMaster
  • amount - сумма возврата
  • externalID - идентификатор возврата в системе продавца, не обязательный (допускается не уникальное значение)
  • Хешируемые параметры: login;password;nonce;paymentID;amount;externalID.
  • Параметры ответа:
  • Response.ExternalID - идентификатор операции возврата;
  • Response.PaymentID - идентификатор платежа;
  • Response.Status - статус возврата:
  • "PENDING" - поставлен в очередь на совершение операции возврата
  • "EXECUTING" - проведение транзакции возврата платежа
  • "SUCCESS" - возврат средств успешно завершен
  • "FAILURE" - возврат средств не осуществлен
  • Response.Amount - сумма возврата;
  • Response.ErrorCode - код ошибки, если возврат неуспешен (может отсутствовать);
  • Response.ErrorDesc - текстовое описание ошибки, если код ошибки отсутствует. В свою очередь описание также может отсутствовать, если о причинах отказа ничего не известно.
  • Пример запроса:

https://paymaster.ru/partners/rest/refundPayment?login=TestLogin&nonce=ttt&hash=yY5XgFpg8kCJW42gs2m9VnLnrZs%3d&paymentID=131212&amount=23.10

  • Пример ответа:
{"ErrorCode":0,"Refund":{"RefundID":1073969831,"ExternalID":null,
"PaymentID":131212,"Amount":23.10,"ErrorCode":null,"ErrorDesc":
null,"State":"EXECUTING"}}

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

https://paymaster.ru/partners/rest/refundPayment?login=TestLogin&nonce=ttt&hash=yY5XgFpg8kCJW42gs2m9VnLnrZs%3d&paymentID=131212&amount=23.10&xml=1

  • Пример ответа:
<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST" i:type="a:RestRefundInfo">
        <a:Amount>
            23.10
        </a:Amount>
        <a:ErrorCode i:nil="true"/>
        <a:ErrorDesc i:nil="true"/>
        <a:ExternalID i:nil="true"/>
        <a:PaymentID>
            131212
        </a:PaymentID>
        <a:RefundID>
            697092129
        </a:RefundID>
        <a:State>
            EXECUTING
        </a:State>
    </Response>
</RestController.RestResponse>

Получение списка возвратов

Этот запрос используется для получения списка возвратов за период

  • accountID - номер учетной записи в системе PayMaster
  • paymentID - идентификатор платежа. Если присутствует, то выводятся возвраты только по этому платежу.
  • periodFrom - начало периода (yyyy-mm-dd). Если отсутствует, то ограничения снизу нет.
  • periodTo - конец периода, включительно (yyyy-mm-dd). Если отсутствует, то ограничения сверху нет.
  • externalID - идентификатор возврата в системе продавца, не обязательный
  • Хешируемые параметры: login;password;nonce;accountID;paymentID;periodFrom;periodTo;externalID. При этом, если параметр отсутствует, то в хешируемую строку вставляется пустая строка (т.е. будут две подряд точки с запятыми).
  • Параметры ответа:
  • Response.ErrorCode - код ошибки запроса (см. Коды ошибок )
  • Response.Overflow: true, если выдан не весь список возвратов. В этом случае следует указать более узкий диапазон для поиска.
  • Response.Refunds: список возвратов. Каждый объект - такой же, как и объект Response первого запроса.
  • Пример запроса:

https://paymaster.ru/partners/rest/listRefunds?login=TestLogin&nonce=ttt&hash=yY5XgFpg8kCJW42gs2m9VnLnrZs%3d&paymentID=131212&periodFrom=2011-01-01&periodTo=2011-11-11

  • Пример ответа:
{"ErrorCode":0,"Response":{"Overflow":false,"Refunds":[{"RefundID":
1234,"ExternalID":null,"PaymentID":12345,"Amount":10.2,"ErrorCode":
null,"ErrorDesc":null,"LastUpdate":2015-04-17T23:12:02,"State":"SUCCESS"},
{"RefundID":1236,"ExternalID":null,"PaymentID":12346,"Amount":
120,"ErrorCode":-15,"ErrorDesc":"we’ve been waiting for too long time",
"LastUpdate":2015-04-17T12:15:02,"State":"FAILURE"}]}}

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

https://paymaster.ru/partners/rest/listRefunds?login=TestLogin&nonce=ttt&hash=yY5XgFpg8kCJW42gs2m9VnLnrZs%3d&paymentID=131212&periodFrom=2011-01-01&periodTo=2011-11-11&xml=1

  • Пример ответа:
<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST" i:type="a:RestRefundList">
        <a:Overflow>
            false
        </a:Overflow>
        <a:Refunds>
            <a:RestRefundInfo>
                <a:Amount>
                    10.2
                </a:Amount>
                <a:ErrorCode i:nil="true"/>
                <a:ErrorDesc i:nil="true"/>
                <a:ExternalID i:nil="true"/>
                <a:PaymentID>
                    12345
                </a:PaymentID>
                <a:RefundID>
                    1234
                </a:RefundID>
                <a:LastUpdate>
                    2015-04-17T23:12:02
                </a:LastUpdate>
                <a:State>
                    SUCCESS
                </a:State>
            </a:RestRefundInfo>
            <a:RestRefundInfo>
                <a:Amount>
                    120
                </a:Amount>
                <a:ErrorCode>
                    -15
                </a:ErrorCode>
                <a:ErrorDesc>
                    we've been waiting for too long time
                </a:ErrorDesc>
                <a:ExternalID i:nil="true"/>
                <a:PaymentID>
                    12346
                </a:PaymentID>
                <a:RefundID>
                    1236
                </a:RefundID>
                <a:LastUpdate>
                    2015-04-17T12:15:02
                </a:LastUpdate>
                <a:State>
                    FAILURE
                </a:State>
            </a:RestRefundInfo>
        </a:Refunds>
    </Response>
</RestController.RestResponse>

Холды

Подтверждение платежа.

Этот метод используется для успешного завершения платежа. В случае платежа на открытую сумму можно указать реальную сумму списания с пользователя.

  • paymentID - идентификатор платежа в системе PayMaster (поле LMI_SYS_PAYMENT_ID)
  • amount  - реальная сумма списания
  • Хешируемые параметры:
  • login;password;nonce;paymentID;amount
  • Пример запроса:

https://paymaster.ru/partners/rest/ConfirmPayment?login=TestLogin&nonce=ttt&hash=123&paymentID=1232&amount=11

  • Пример ответа:
{"ErrorCode":0,"Payment":{"PaymentID":1232,"SiteInvoiceID":"1234",
"SiteID":1,"CurrencyCode":"RUB","Amount":11,"PaymentMethod":
"WebMoney","PaymentSystemID":33,"PaymentCurrencyCode":"RUB",
"PaymentAmount":11,"State":"PROCESSING","ErrorCode":0,"Purpose":
"Test payment","IsTestPayment":false,"UserPhoneNumber":"79151111111",
"UserIdentifier":"123123123123","LastUpdate":"\/Date(1396359553420)\/",
"LastUpdateTime":"2014-04-01T13:39:13"}}

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

https://paymaster.ru/partners/rest/ConfirmPayment?login=TestLogin&nonce=ttt&hash=123&paymentID=1232&amount=11&xml=1

  • Пример ответа:
<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST" i:type="a:RestPaymentInfo">
        <a:Amount>
            11
        </a:Amount>
        <a:CurrencyCode>
            RUB
        </a:CurrencyCode>
        <a:ErrorCode>
            0
        </a:ErrorCode>
        <a:IsTestPayment>
            false
        </a:IsTestPayment>
        <a:LastUpdate>
            2014-04-01T13:41:22.6562332Z
        </a:LastUpdate>
        <a:PaymentAmount>
            11
        </a:PaymentAmount>
        <a:PaymentCurrencyCode>
            RUB
        </a:PaymentCurrencyCode>
        <a:PaymentID>
            1232
        </a:PaymentID>
        <a:PaymentMethod>
            WebMoney
        </a:PaymentMethod>
        <a:PaymentSystemID>
            33
        </a:PaymentSystemID>
        <a:Purpose>
            Test payment
        </a:Purpose>
        <a:SiteID>
            1
        </a:SiteID>
        <a:SiteInvoiceID>
            1234
        </a:SiteInvoiceID>
        <a:State>
            PROCESSING
        </a:State>
        <a:UserIdentifier>
            123123123123
        </a:UserIdentifier>
        <a:UserPhoneNumber>
            79151111111
        </a:UserPhoneNumber>
    </Response>
</RestController.RestResponse>

Отмена платежа

Этот запрос используется для отмены холда.

  • paymentID - идентификатор платежа в системе PayMaster (поле LMI_SYS_PAYMENT_ID)
  • error - опциональный параметр. Код ошибки из списка.
  • Хешируемые параметры:
  • login;password;nonce;paymentID;error
  • Пример запроса:

https://paymaster.ru/partners/rest/CancelPayment?login=TestLogin&nonce=ttt&hash=123&paymentID=1232&error=-8

  • Пример ответа:
{"ErrorCode":0,"Payment":{"PaymentID":1232,"SiteInvoiceID":"1234",
"SiteID":1,"CurrencyCode":"RUB","Amount":10,"PaymentMethod":
"WebMoney","PaymentSystemID":33,"PaymentCurrencyCode":"RUB",
"PaymentAmount":10,"State":"CANCELLED","ErrorCode":-8,"Purpose":
"Test payment","IsTestPayment":false,"UserPhoneNumber":"79151111111",
"UserIdentifier":"123123123123","LastUpdate":"\/Date(1396360374538)\/",
"LastUpdateTime":"2014-04-01T13:52:54"}}

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

https://paymaster.ru/partners/rest/CancelPayment?login=TestLogin&nonce=ttt&hash=123&paymentID=1232&error=-8&xml=1

  • Пример ответа:
<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST" i:type="a:RestPaymentInfo">
        <a:Amount>
            10
        </a:Amount>
        <a:CurrencyCode>
            RUB
        </a:CurrencyCode>
        <a:ErrorCode>
            -8
        </a:ErrorCode>
        <a:IsTestPayment>
            false
        </a:IsTestPayment>
        <a:LastUpdate>
            2014-04-01T13:51:43.7280221Z
        </a:LastUpdate>
        <a:PaymentAmount>
            10
        </a:PaymentAmount>
        <a:PaymentCurrencyCode>
            RUB
        </a:PaymentCurrencyCode>
        <a:PaymentID>
            1232
        </a:PaymentID>
        <a:PaymentMethod>
            WebMoney
        </a:PaymentMethod>
        <a:PaymentSystemID>
            33
        </a:PaymentSystemID>
        <a:Purpose>
            Test payment
        </a:Purpose>
        <a:SiteID>
            1
        </a:SiteID>
        <a:SiteInvoiceID>
            1234
        </a:SiteInvoiceID>
        <a:State>
            CANCELLED
        </a:State>
        <a:UserIdentifier>
            123123123123
        </a:UserIdentifier>
        <a:UserPhoneNumber>
            79151111111
        </a:UserPhoneNumber>
    </Response>
</RestController.RestResponse>

Получение списка документов

Этот запрос используется для получения списка документов за период:

  • Параметры запроса:
  • accountID - номер учетной записи в системе PayMaster. Его можно узнать из URL страницы "Учетная запись" в личном кабинете.
  • periodFrom -начало периода (yyyy-MM-dd), часовой пояс UTC. Если указан, то будут возвращены документы, созданные только после указанной даты.
  • periodTo - начало периода (yyyy-MM-dd), часовой пояс UTC. Если указан, то будут возвращены документы, созданные только до указанной даты.
  • Хешируемые параметры:
  • login;password;nonce;accountID;periodFrom;periodTo
  • Параметры ответа:
  • Created - дата создания документа
  • Description - описание документа
  • DocumentID - идентификатор для выгрузки содержимого
  • FileName - имя файла
  • Пример запроса:

https://paymaster.ru/partners/rest/listDocuments?login=TestLogin&nonce=ttt&hash=123&accountID=123&periodFrom=2005-02-17&periodTo=2013-06-17&xml=1

  • Пример ответа:
<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers"xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST"i:type="a:RestDocumentList">
        <a:Documents>
            <a:RestDocumentInfo>
                <a:Created>
                    2013-06-17T12:57:03.6470638Z
                </a:Created>
                <a:Description>
                    Акт выполненных работ за Март 2012 г
                </a:Description>
                <a:DocumentID>
                    123456
                </a:DocumentID>
                <a:FileName>
                    act_052012.xls
                </a:FileName>
            </a:RestDocumentInfo>
            <a:RestDocumentInfo>
                <a:Created>
                    2013-06-17T12:57:03.6470638Z
                </a:Created>
                <a:Description>
                    Invoice #1123 for 05/2012
                </a:Description>
                <a:DocumentID>
                    123456
                </a:DocumentID>
                <a:FileName>
                    doc_052012.xls
                </a:FileName>
            </a:RestDocumentInfo>
        </a:Documents>
    </Response>
</RestController.RestResponse>

Скачивание документа

Этот запрос используется для скачивания документа по его идентификатору:

  • Парметры запроса:
  • documentID - идентификатор документа
  •  Хешируемые параметры:

login;password;nonce;documentID

  • Ответ:
  • запрашиваемый файл
  • Пример запроса:

https://paymaster.ru/partners/rest/getDocumentContent?login=TestLogin&nonce=ttt&hash=123&documentID=123456&xml=1

Получение списка выплат

Этот запрос используется для получения списка выплат за указанный период:

  • Параметры запроса:
  • accountID - номер учетной записи в системе PayMaster. Его можно узнать из URL страницы "Учетная запись" в личном кабинете.
  • periodFrom -начало периода (yyyy-MM-dd), часовой пояс UTC.
  • periodTo - начало периода (yyyy-MM-dd), часовой пояс UTC.
  • Хешируемые параметры:
  • login;password;nonce;accountID;periodFrom;periodTo
  • Параметры ответа:
  • Created - дата совершения выплаты
  • CurrencyCode - код валюты выплаты
  • TransferAmount - сумма перечисления
  • PaymentOrderID - номер платежного поручения
  • RegisterID - идентификатор реестра
  • Пример запроса:

https://paymaster.ru/partners/rest/listTransfers?login=TestLogin&nonce=ttt&hash=123&accountID=123&periodFrom=2005-02-17&periodTo=2013-06-17&xml=1

  • Пример ответа:
<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST" i:type="a:RestTransferList">
        <a:Transfers>
            <a:RestTransferInfo>
                <a:Created>
                    2017-09-04T09:36:29.186576Z
                </a:Created>
                <a:CurrencyCode>
                    RUB
                </a:CurrencyCode>
                <a:PaymentOrderID>
                    11223/4
                </a:PaymentOrderID>
                <a:RegisterID>
                    54
                </a:RegisterID>
                <a:TransferAmount>
                    101150.00
                </a:TransferAmount>
            </a:RestTransferInfo>
            <a:RestTransferInfo>
                <a:Created>
                    2017-09-04T09:36:29.186576Z
                </a:Created>
                <a:CurrencyCode>
                    RUB
                </a:CurrencyCode>
                <a:PaymentOrderID>
                    11223/5
                </a:PaymentOrderID>
                <a:RegisterID>
                    55
                </a:RegisterID>
                <a:TransferAmount>
                    20000.00
                </a:TransferAmount>
            </a:RestTransferInfo>
        </a:Transfers>
    </Response>
</RestController.RestResponse>

Выгрузка реестра по выплате

Этот запрос используется для получения реестра, по которому проведена выплата средств:

  • Параметры запроса:
  • registerID - идентификатор реестра.
  • Хешируемые параметры:
  • login;password;nonce;registerID
  • Параметры ответа:
  • PeriodFrom - начало периода
  • PeriodTo - конец периода
  • RegisterNumber - номер реестра
  • Operations - список платежей и возвратов по реестру
  • OperationID - идентификатор операции
  • InvoiceID - номер счета мерчанта
  • Stamp - дата операции
  • CurrencyCode - код валюты операции
  • OperationAmount - сумма операции
  • TransferAmount - сумма выплаты по операции
  • Пример запроса:

https://paymaster.ru/partners/rest/getTransferRegister?login=TestLogin&nonce=ttt&hash=123&registerID=123&xml=1

  • Пример ответа:
<RestController.RestResponse xmlns="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Controllers" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ErrorCode>
        0
    </ErrorCode>
    <Response xmlns:a="http://schemas.datacontract.org/2004/07/PaymasterBackoffice.Models.REST" i:type="a:RestRegisterInfo">
        <a:Operations>
            <a:RestRegisterOperationInfo>
                <a:CurrencyCode>
                    RUB
                </a:CurrencyCode>
                <a:InvoiceID>
                    SO223
                </a:InvoiceID>
                <a:OperationAmount>
                    1000.00
                </a:OperationAmount>
                <a:OperationID>
                    11022
                </a:OperationID>
                <a:Stamp>
                    2017-09-04T00:00:00Z
                </a:Stamp>
                <a:TransferAmount>
                    998.00
                </a:TransferAmount>
            </a:RestRegisterOperationInfo>
            <a:RestRegisterOperationInfo>
                <a:CurrencyCode>
                    RUB
                </a:CurrencyCode>
                <a:InvoiceID>
                    SO224
                </a:InvoiceID>
                <a:OperationAmount>
                    1500.00
                </a:OperationAmount>
                <a:OperationID>
                    11027
                </a:OperationID>
                <a:Stamp>
                    2017-09-04T00:00:00Z
                </a:Stamp>
                <a:TransferAmount>
                    1497.00
                </a:TransferAmount>
            </a:RestRegisterOperationInfo>
        </a:Operations>
        <a:PeriodFrom>
            2017-09-03T00:00:00Z
        </a:PeriodFrom>
        <a:PeriodTo>
            2017-09-04T00:00:00Z
        </a:PeriodTo>
        <a:RegisterID>
            54
        </a:RegisterID>
        <a:RegisterNumber>
            540/44
        </a:RegisterNumber>
    </Response>
</RestController.RestResponse>