Перейти к содержанию

Методы API

API предназначен для приёма платежей в рамках продукта Приём платежей через кредитные организации.

Проверка статуса абонента в информационной системе провайдера и получение дополнительных параметров платежа без регистрации платежа в системе провайдера

При получении запроса провайдер:

  • проверяет наличие в своей информационной системе абонента с указанным идентификатором;
  • при необходимости возвращает дополнительные параметры для показа плательщику. Эти параметры могут быть затем переданы в дополнительных реквизитах платежа в последующих запросах.

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

Параметр Описание
command Обязательный параметр. Идентификатор типа запроса: запрос на получение дополнительных данных платежа для абонента. Всегда равен getInfo
account Обязательный параметр. Уникальный идентификатор абонента в информационной системе провайдера (номер лицевого счета, телефона, логин и т.д.). Строка, содержащая буквы, цифры и спецсимволы, длиной до 200 символов. Перед отправкой провайдеру идентификатор проходит проверку корректности в соответствии с регулярным выражением, которое предоставляет провайдер при подключении
ccy Обязательный параметр. Код валюты в формате ISO 4217
prv_id Внутренний идентификатор провайдера в информационной системе QIWI. Целое число
sum Сумма операции. Число с двумя знаками в дробной части, разделитель целой и дробной частей — точка
data1,data2,…,dataN Дополнительные параметры, передаваемые провайдеру. Формат имени и значения параметров указывается провайдером

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

В ответе интерфейс провайдера должен вернуть XML-документ с блоком <response> и следующими тегами:

Тег Описание
result Обязательный параметр. Код ошибки. В случае, если платеж разрешен, возвращается 0
comment Текстовый комментарий от провайдера
fields Тег с информацией об абоненте или об операции
fields.field1, …, fields.fieldN Параметры, содержащие информацию
fields.field1.type, …, fields.fieldN.type Тип параметра. Возможно использование следующих типов параметров:
  • disp – информация для отображения клиенту при совершении платежа (по умолчанию, если тип не указан)
  • fields.field1.name, …, fields.fieldN.name Имя параметра. Если не указано, присваивается имя disp1,..,dispN (в соответствии с порядковым номером тега fieldN)

    Примеры

    POST /payment_app.cgi HTTP/1.1
    Accept: application/xml
    Content-type: application/x-www-form-urlencoded; charset=utf-8
    Host: example.com:8443
    
    command=getInfo&account=4950001111&sum=10.45&ссy=643
    
    <?xml version="1.0" encoding="UTF-8"?>
    <response>
    <result>0</result>
    <comment>OK</comment>
    </response>
    


    POST /payment_app.cgi HTTP/1.1
    Accept: application/xml
    Content-type: application/x-www-form-urlencoded; charset=utf-8
    Host: example.com:8443
    
    command=getInfo&account=4950001111&sum=10.45&ссy=643&data1=ivanov&data2=ivan
    
    <?xml version="1.0" encoding="UTF-8"?>
    <response>
      <result>0</result>
      <comment>OK</comment>
      <fields>
        <field1 name="name1" type="disp">value1</field1>
        <field2 name="name2" type="disp">value2</field2>
      </fields>
    </response>
    

    Проверка статуса абонента в информационной системе провайдера и получение дополнительных параметров платежа с регистрацией платежа в системе провайдера

    При получении запроса провайдер:

    • проверяет наличие в своей базе абонента с указанным идентификатором;
    • выполняет внутренние проверки идентификатора и суммы платежа в соответствии с принятой логикой пополнения лицевых счетов через платежные системы;
    • при необходимости возвращает дополнительные параметры для показа плательщику. Эти параметры могут быть затем переданы в дополнительных реквизитах платежа в последующих запросах.

    Обратите внимание

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

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

    Параметр Описание
    command Обязательный параметр. Идентификатор типа запроса: проверить счет абонента. Всегда равен check
    txn_id Обязательный параметр. Идентификатор платежа в информационной системе QIWI. В информационной системе провайдера не должно содержаться двух успешно проведенных платежей с одним и тем же идентификатором платежа. При получении запроса с txn_id, уже существующим в информационной системе провайдера, провайдер должен вернуть результат обработки предыдущего запроса.
    account Обязательный параметр. Идентификатор абонента в информационной системе провайдера
    sum Обязательный параметр. Сумма операции. Число с двумя знаками в дробной части, разделитель целой и дробной частей — точка
    ccy Обязательный параметр. Код валюты в формате ISO 4217
    prv_id Внутренний идентификатор провайдера в информационной системе QIWI. Целое число
    data1, data2,…, dataN Дополнительные параметры, передаваемые провайдеру. Формат имени и значения параметров указывается провайдером

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

    В ответе интерфейс провайдера должен вернуть XML-документ, содержащий блок <response> со следующими тегами:

    Тег Описание
    osmp_txn_id Обязательный параметр. Идентификатор транзакции в информационной системе QIWI (txn_id из запроса)
    result Обязательный параметр. Код ошибки. В случае, если платеж разрешен, возвращается 0
    comment Текстовый комментарий от провайдера
    fields Тег с информацией об абоненте или об операции
    fields.field1, …, fields.fieldN Параметры, содержащие информацию
    fields.field1.type, …, fields.fieldN.type Тип параметра. Возможно использование следующих типов параметров:
  • disp – информация для отображения клиенту при совершении платежа (по умолчанию, если тип не указан)
  • fields.field1.name, …, fields.fieldN.name Имя параметра. Если не указано, присваивается имя disp1,..,dispN (в соответствии с порядковым номером тега fieldN)

    Примеры

    POST /payment_app.cgi HTTP/1.1
    Accept: application/xml
    Content-type: application/x-www-form-urlencoded; charset=utf-8
    Host: example.com:8443
    
    command=check&txn_id=1234567&account=4950001111&sum=10.45&ссy=643
    
    <?xml version="1.0" encoding="UTF-8"?>
    <response>
        <osmp_txn_id>1234567</osmp_txn_id>
        <result>0</result>
        <comment>OK</comment>
    </response>
    


    POST /payment_app.cgi HTTP/1.1
    Accept: application/xml
    Content-type: application/x-www-form-urlencoded; charset=utf-8
    Host: example.com:8443
    
    command=check&txn_id=1234567&account=4950001111&sum=10.45&ссy=643&data1=ivanov
    
    <?xml version=”1.0” encoding="UTF-8"?>
    <response>
             <osmp_txn_id>1234567</osmp_txn_id>
             <result>0</result>
             <comment>OK</comment>
             <fields>
                   <field1 name="name1" type="disp">value1</field1>
                   <field2 name="name2" type="disp">value2</field2>
             </fields>
    </response>
    

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

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

    Обратите внимание

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

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

    Параметр Описание
    command Обязательный параметр. Идентификатор типа запроса: пополнить баланс абонента. Всегда равен pay
    txn_id Обязательный параметр. Идентификатор платежа в информационной системе QIWI. В информационной системе провайдера не должно содержаться двух успешно проведенных платежей с одним и тем же идентификатором платежа. При получении запроса с txn_id, уже существующим в информационной системе провайдера, провайдер должен вернуть результат обработки предыдущего запроса.
    txn_date Обязательный параметр. Дата операции в формате YYYYMMDDHHMMSS
    account Обязательный параметр. Идентификатор абонента в информационной системе провайдера
    sum Обязательный параметр. Сумма операции. Число с двумя знаками в дробной части, разделитель целой и дробной частей — точка
    ccy Обязательный параметр. Код валюты в формате ISO 4217
    prv_id Внутренний идентификатор провайдера в информационной системе QIWI. Целое число
    data1, data2,…, dataN Дополнительные параметры, передаваемые провайдеру. Формат имени и значения параметров указывается провайдером

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

    В ответе интерфейс провайдера должен вернуть XML-документ, содержащий блок <response> со следующими тегами:

    Тег Описание
    osmp_txn_id Обязательный параметр. Идентификатор транзакции в информационной системе QIWI (txn_id из запроса)
    prv_txn Обязательный параметр. Уникальный номер операции пополнения баланса абонента (в информационной системе провайдера)
    sum Обязательный параметр. Сумма платежа, переданная провайдеру. Число с двумя знаками в дробной части, разделитель целой и дробной частей — точка
    result Обязательный параметр. Код ошибки. В случае успешной регистрации платежа result=0
    comment Текстовый комментарий от провайдера
    fields Тег с информацией об абоненте или об операции
    fields.field1, …, fields.fieldN Параметры, содержащие информацию
    fields.field1.type, …, fields.fieldN.type Тип параметра. Возможно использование следующих типов параметров:
  • disp – информация для отображения клиенту при совершении платежа (по умолчанию, если тип не указан);
  • info – информация для сохранения в информационной системе QIWI
  • fields.field1.name, …, fields.fieldN.name Имя параметра. Если не указано, присваивается имя disp1,..,dispN (в соответствии с порядковым номером тега fieldN)

    Примеры

    POST /payment_app.cgi HTTP/1.1
    Accept: application/xml
    Content-type: application/x-www-form-urlencoded; charset=utf-8
    Host: example.com:8443
    
    command=pay&txn_id=1234567&txn_date=20220815120133&account=4950001111&sum=10.45&ссy=643
    
    <?xml version="1.0" encoding="UTF-8"?>
    <response>
        <osmp_txn_id>1234567</osmp_txn_id>
        <prv_txn>123</prv_txn>
        <sum>10.45</sum>
        <result>0</result>
        <comment>OK</comment>
    </response>
    


    POST /payment_app.cgi HTTP/1.1
    Accept: application/xml
    Content-type: application/x-www-form-urlencoded; charset=utf-8
    Host: example.com:8443
    
    command=pay&txn_id=1234567&txn_date=20220815120133&account=4950001111&sum=10.45&ссy=643&data1=ivanov
    
    <?xml version=”1.0” encoding="UTF-8"?>
    <response>
             <osmp_txn_id>1234567</osmp_txn_id>
             <prv_txn>2016</prv_txn>
             <sum>10.45</sum>
             <result>0</result>
             <comment>OK</comment>
             <fields>
                   <field1 name="name1" type="disp">value1</field1>
                   <field2 name="name2" type="disp">value2</field2>
             </fields>
    </response>