NAV
  • Общие сведения
  • Проверка платежа
  • Возвраты
  • Холды
  • Документы и выплаты
  • Справочники
  • Общие сведения

    Это старая версия API. Переходите на новую версию API.

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

    Запросы необходимо передавать по защищенному протоколу (https). Базовый адрес сервиса https://paymaster.ru

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

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

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

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

    Пример ответа:

    {
      "ErrorCode": 0,
      "Payment": {
        "PaymentID": 1,
        "SiteInvoiceID": "12345",
        "SiteID": 1,
        "CurrencyCode": "RUB",
        "Amount": 100,
        "PaymentCurrencyCode": "RUB",
        "PaymentAmount": 100,
        "State": "COMPLETE",
        "IsTestPayment": false,
        "LastUpdateTime": "2013-05-22T18:08:52"
      }
    }
    

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

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

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

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

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

    GET /api/v1/getpayment?login=TestLogin&nonce=74DF1SM&hash=***&paymentid=1 HTTP/1.1
    Host: paymaster.ru
    

    Пример ответа:

    {
      "ErrorCode": 0,
      "Payment": {
        "PaymentID": 1,
        "SiteInvoiceID": "12345",
        "SiteID": 1,
        "CurrencyCode": "RUB",
        "Amount": 100,
        "PaymentMethod": "BankCard",
        "PaymentCurrencyCode": "RUB",
        "PaymentAmount": 100,
        "State": "COMPLETE",
        "Purpose": "Оплата по заказу №12345",
        "IsTestPayment": false,
        "LastUpdateTime": "2017-05-22T18:08:52",
        "ErrorCode": 0
      }
    }
    

    GET /api/v1/getPayment

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

    Параметры запроса

    ИмяОписание
    paymentIDИдентификатор платежа в системе PayMaster (поле LMI_SYS_PAYMENT_ID)

    Хешируемые параметры: login;password;nonce;paymentID

    Параметры ответа

    ИмяОписание
    StateCостояние платежа см. Список состояний платежа
    ErrorCodeКод причины отказа см. Коды ошибок
    AmountCумма счета
    CurrencyCode3-буквенный ISO код валюты
    IsTestPaymentПризнак тестового платежа (платеж совершен в тестовом режиме)
    LastUpdate (LastUpdateTime для JSON)Время последнего обновления статуса. Для завершенных платежей - время завершения платежа
    PaymentAmountCумма оплаты
    PaymentCurrencyCodeВалюта оплаты
    PaymentIDИдентификатор платежа
    PaymentMethodСпособ оплаты
    PurposeПримечание к платежу
    SiteIDИдентификатор сайта - получателя платежа
    SiteInvoiceIDНомер счета (параметр LMI_PAYMENT_NO)
    UserIdentifierИдентификатор пользователя в платежной системе
    UserPhoneNumberНомер телефона плательщика

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

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

    GET /api/v1/getpaymentbyinvoiceid?login=TestLogin&nonce=74DF1SM&hash=***&invoiceid=1&siteAlias=yyy HTTP/1.1
    Host: paymaster.ru
    

    Пример ответа:

    {
      "ErrorCode": 0,
      "Payment": {
        "PaymentID": 1,
        "SiteInvoiceID": "12345",
        "SiteID": 1,
        "CurrencyCode": "RUB",
        "Amount": 100,
        "PaymentMethod": "BankCard",
        "PaymentCurrencyCode": "RUB",
        "PaymentAmount": 100,
        "State": "COMPLETE",
        "Purpose": "Оплата по заказу №12345",
        "IsTestPayment": false,
        "LastUpdateTime": "2017-05-22T18:08:52"
      }
    }
    

    GET /api/v1/getPaymentByInvoiceID

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

    Параметры запроса

    ИмяОписание
    invoiceIDНомер счета (поле LMI_PAYMENT_NO)
    siteAliasИдентификатор сайта (поле LMI_MERCHANT_ID)

    Хешируемые параметры: login;password;nonce;invoiceID;siteAlias

    Параметры ответа

    См. Детали платежа

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

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

    GET /api/v1/listpaymentsfilter?login=TestLogin&nonce=74DF1SM&hash=***&periodFrom=2011-12-01 HTTP/1.1
    Host: paymaster.ru
    

    Пример ответа:

    {
      "ErrorCode": 0,
      "Response": {
        "Overflow": false,
        "Payments": [{
            "PaymentID": 1,
            "SiteInvoiceID": "12345",
            "SiteID": 1,
            "CurrencyCode": "RUB",
            "Amount": 100,
            "PaymentMethod": "BankCard",
            "PaymentCurrencyCode": "RUB",
            "PaymentAmount": 100,
            "State": "COMPLETE",
            "Purpose": "Оплата по заказу №12345",
            "IsTestPayment": false,
            "LastUpdateTime": "2017-05-22T18:08:52"
          }, {
            "PaymentID": 2,
            "SiteInvoiceID": "12346",
            "SiteID": 1,
            "CurrencyCode": "RUB",
            "Amount": 100,
            "PaymentMethod": "BankCard",
            "PaymentCurrencyCode": "RUB",
            "PaymentAmount": 100,
            "State": "COMPLETE",
            "Purpose": "Оплата по заказу №12346",
            "IsTestPayment": false,
            "LastUpdateTime": "2017-05-22T18:08:52"
          }
        ]
      }
    }
    

    GET /api/v1/listPaymentsFilter

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

    Параметры запроса

    ИмяОписание
    accountIDномер учетной записи в системе PayMaster. Его можно узнать из URL страницы "Учетная запись" в личном кабинете. Параметр accountID можно не указывать, если у вас всего одна учетная запись
    siteAliasидентификатор сайта (LMI_MERCHANT_ID). Если указан, то будут возвращены только платежи данного сайта
    periodFromначало периода (yyyy-MM-dd), часовой пояс UTC. Если указан, то будут возвращены платежи только после указанной даты
    periodToконец периода (yyyy-MM-dd), часовой пояс UTC. Если указан, то будут возвращены платежи только до указанной даты
    invoiceIDномер счета. Если указан, то будут возвращены платежи только с таким номером счета
    stateСостояние платежа. Если указано, то будут возвращены только платежи с указанным состоянием

    Хешируемые параметры: login;password;nonce;accountID;siteAlias;periodFrom;periodTo;invoiceID;state

    Параметры ответа

    ИмяОписание
    Overflow"true", если в ответе приведены не все платежи, удовлетворяющие фильтру. Если вам нужны все платежи, сузьте область поиска
    PaymentsСписок платежей (см. Детали платежа)

    Возвраты

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

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

    POST /api/v1/refundPayment HTTP/1.1
    Host: paymaster.ru
    Content-Type: application/x-www-form-urlencoded
    
    login=TestLogin&nonce=74DF1SM&hash=***&paymentID=131212&amount=23.10
    

    Пример ответа:

    {
      "ErrorCode": 0,
      "Refund": {
        "RefundID": 1073969831,
        "ExternalID": null,
        "PaymentID": 131212,
        "Amount": 23.10,
        "ErrorCode": null,
        "ErrorDesc": null,
        "State": "EXECUTING"
      }
    }
    

    POST /api/v1/refundPayment

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

    Параметры запроса

    ИмяОписание
    paymentIDИдентификатор платежа в системе PayMaster
    amountСумма возврата
    externalIDИдентификатор возврата в системе продавца, не обязательный (допускается не уникальное значение)

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

    ИмяОписание
    shoppingcart.items[n].nameНаименование позиции в чеке
    shoppingcart.items[n].qtyКол-во товара
    shoppingcart.items[n].priceСтоимость одной единицы
    shoppingcart.items[n].taxСтавка НДС

    Хешируемые параметры: login;password;nonce;paymentID;amount;externalID

    Параметры ответа

    ИмяОписание
    ExternalIDИдентификатор операции возврата
    PaymentIDИдентификатор платежа
    StatusСтатус возврата, см. Список состояний возврата
    AmountСумма возврата
    ErrorCodeКод ошибки, если возврат неуспешен (может отсутствовать)
    ErrorDescТекстовое описание ошибки. Описание также может отсутствовать, если конкретная причина отказа неизвестна.

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

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

    GET /api/v1/listRefunds?login=TestLogin&nonce=74DF1SM&hash=***&paymentID=131212&periodFrom=2017-01-01&periodTo=2017-11-11 HTTP/1.1
    Host: paymaster.ru
    

    Пример ответа:

    {
      "ErrorCode": 0,
      "Response": {
        "Overflow": false,
        "Refunds": [{
            "RefundID": 1234,
            "ExternalID": null,
            "PaymentID": 12345,
            "Amount": 10.2,
            "ErrorCode": null,
            "ErrorDesc": null,
            "LastUpdate": "2017-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": "2017-04-17T12:15:02",
            "State": "FAILURE"
          }
        ]
      }
    }
    

    GET /api/v1/listRefunds

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

    Параметры запроса

    ИмяОписание
    accountIDНомер учетной записи в системе PayMaster
    paymentIDИдентификатор платежа. Если присутствует, то выводятся возвраты только по этому платежу
    periodFromНачало периода (yyyy-mm-dd). Если отсутствует, то ограничения снизу нет
    periodToКонец периода, включительно (yyyy-mm-dd). Если отсутствует, то ограничения сверху нет
    externalIDИдентификатор возврата в системе продавца, не обязательный

    Хешируемые параметры: login;password;nonce;accountID;paymentID;periodFrom;periodTo;externalID При этом, если параметр отсутствует, то в хешируемую строку вставляется пустая строка (т.е. будут две подряд точки с запятыми).

    Параметры ответа

    ИмяОписание
    ErrorCodeКод ошибки запроса (см. Коды ошибок)
    Overflowtrue, если выдан не весь список возвратов. В этом случае следует указать более узкий диапазон для поиска
    RefundsСписок возвратов. Каждый объект - такой же, как и объект Response первого запроса

    Холды

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

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

    POST /api/v1/ConfirmPayment HTTP/1.1
    Host: paymaster.ru
    Content-Type: application/x-www-form-urlencoded
    
    login=TestLogin&nonce=74DF1SM&hash=***&paymentID=1232&amount=11
    

    Пример ответа:

    {
      "ErrorCode": 0,
      "Payment": {
        "PaymentID": 1,
        "SiteInvoiceID": "12345",
        "SiteID": 1,
        "CurrencyCode": "RUB",
        "Amount": 100,
        "PaymentMethod": "BankCard",
        "PaymentCurrencyCode": "RUB",
        "PaymentAmount": 100,
        "State": "COMPLETE",
        "Purpose": "Оплата по заказу №12345",
        "IsTestPayment": false,
        "LastUpdateTime": "2017-05-22T18:08:52"
      }
    }
    

    POST /api/v1/confirmPayment

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

    Параметры запроса

    ИмяОписание
    paymentIDИдентификатор платежа в системе PayMaster (поле LMI_SYS_PAYMENT_ID)
    amountРеальная сумма списания

    Хешируемые параметры: login;password;nonce;paymentID;amount

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

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

    POST /api/v1/CancelPayment HTTP/1.1
    Host: paymaster.ru
    Content-Type: application/x-www-form-urlencoded
    
    login=TestLogin&nonce=74DF1SM&hash=***&paymentID=1232&error=-8
    

    Пример ответа:

    {
      "ErrorCode": 0,
      "Payment": {
        "PaymentID": 1,
        "SiteInvoiceID": "12345",
        "SiteID": 1,
        "CurrencyCode": "RUB",
        "Amount": 100,
        "PaymentMethod": "BankCard",
        "PaymentCurrencyCode": "RUB",
        "PaymentAmount": 100,
        "State": "COMPLETE",
        "Purpose": "Оплата по заказу №12345",
        "IsTestPayment": false,
        "LastUpdateTime": "2017-05-22T18:08:52"
      }
    }
    

    POST /api/v1/cancelPayment

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

    Параметры запроса

    ИмяОписание
    paymentIDИдентификатор платежа в системе PayMaster (поле LMI_SYS_PAYMENT_ID)
    errorОпциональный параметр. Код ошибки из списка Коды ошибок

    Хешируемые параметры: login;password;nonce;paymentID;error

    Документы и выплаты

    Список документов

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

    GET /api/v1/listDocuments?login=TestLogin&nonce=74DF1SM&hash=***&accountID=123&periodFrom=2005-02-17&periodTo=2013-06-17&xml=1 HTTP/1.1
    Host: paymaster.ru
    

    Пример ответа:

    <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>
    

    GET /api/v1/listDocuments

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

    Параметры запроса

    ИмяОписание
    accountIDНомер учетной записи в системе PayMaster. Его можно узнать из URL страницы "Учетная запись" в личном кабинете
    periodFromНачало периода (yyyy-MM-dd), часовой пояс UTC. Если указан, то будут возвращены документы, созданные только после указанной даты
    periodToКонец периода (yyyy-MM-dd), часовой пояс UTC. Если указан, то будут возвращены документы, созданные только до указанной даты

    Хешируемые параметры: login;password;nonce;accountID;periodFrom;periodTo

    Параметры ответа

    ИмяОписание
    CreatedДата создания документа
    DescriptionОписание документа
    DocumentIDИдентификатор для выгрузки содержимого
    FileNameИмя файла

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

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

    GET /api/v1/getDocumentContent?login=TestLogin&nonce=74DF1SM&hash=***&documentID=123456 HTTP/1.1
    Host: paymaster.ru
    

    GET /api/v1/getDocumentContent

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

    Парметры запроса

    ИмяОписание
    documentIDИдентификатор документа

    Хешируемые параметры: login;password;nonce;documentID

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

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

    GET /api/v1/listTransfers?login=TestLogin&nonce=74DF1SM&hash=***&accountID=123&periodFrom=2005-02-17&periodTo=2013-06-17&xml=1 HTTP/1.1
    Host: paymaster.ru
    

    Пример ответа:

    <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>
    

    GET /api/v1/listTransfers

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

    Параметры запроса

    ИмяОписание
    accountIDНомер учетной записи в системе PayMaster. Его можно узнать из URL страницы "Учетная запись" в личном кабинете
    periodFromНачало периода (yyyy-MM-dd), часовой пояс UTC
    periodToНачало периода (yyyy-MM-dd), часовой пояс UTC

    Хешируемые параметры: login;password;nonce;accountID;periodFrom;periodTo

    Параметры ответа

    ИмяОписание
    CreatedДата совершения выплаты
    CurrencyCodeКод валюты выплаты
    TransferAmountСумма перечисления
    PaymentOrderIDНомер платежного поручения
    RegisterIDИдентификатор реестра

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

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

    GET /api/v1/getTransferRegister?login=TestLogin&nonce=74DF1SM&hash=***&registerID=123&xml=1 HTTP/1.1
    Host: paymaster.ru
    

    Пример ответа:

    <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>
    

    GET /api/v1/getTransferRegister

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

    Параметры запроса

    ИмяОписание
    registerIDИдентификатор реестра.

    Хешируемые параметры: login;password;nonce;registerID

    Параметры ответа

    ИмяОписание
    PeriodFromНачало периода
    PeriodToКонец периода
    RegisterNumberНомер реестра
    OperationsСписок платежей и возвратов по реестру
    OperationIDИдентификатор операции
    InvoiceIDНомер счета мерчанта
    StampДата операции
    CurrencyCodeКод валюты операции
    OperationAmountСумма операции
    TransferAmountСумма выплаты по операции

    Справочники

    Коды ошибок

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

    КодОписание
    -1Неизвестная ошибка. Сбой в системе PayMaster. Если ошибка повторяется, обратитесь в техподдержку
    -2Сетевая ошибка. Сбой в системе PayMaster. Если ошибка повторяется, обратитесь в техподдержку
    -6Нет доступа. Неверно указан логин, или у данного логина нет прав на запрошенную информацию
    -7Неверная подпись запроса. Неверно сформирован хеш запроса
    -8Платеж отклонен продавцом на этапе предзапроса.
    -9Истек срок действия счета
    -10Платеж отклонен платежной системой
    -13Платеж не найден по номеру счета
    -14Повторный запрос с тем же nonce
    -15Срок жизни платежа истек, и платеж отменен
    -17Пользователь отказался от оплаты
    -18Неверное значение суммы (в случае возвратов имеется в виду значение amount)
    -19У пользователя недостаточно средств для оплаты
    -22Не удалось авторизоваться в платежной системе
    -253D Secure авторизация не пройдена
    -26Неверный номер карты
    -27Истек срок действия карты
    -28Карта блокировна
    -29Превышен лимит по сумме платежа
    -30Превышен лимит по количеству платежей
    -31Недопустимая операция по карте

    Статусы состояния платежа

    ИмяОписание
    INITIATEDПлатеж начат
    PROCESSINGПлатеж проводится
    COMPLETEПлатеж завершен успешно
    CANCELLEDПлатеж завершен неуспешно
    HOLDСредства захолдированы

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

    ИмяОписание
    PENDINGПоставлен в очередь на совершение операции возврата
    EXECUTINGПроведение транзакции возврата платежа
    SUCCESSВозврат средств успешно завершен
    FAILUREВозврат средств не осуществлен