Дата и время генерации 30.07.2020 07:04:16

Mass Payment API v1.135

Important

Сервис поддерживает общение по протоколу JSON-RPC

В обязательных текстовых полях нельзя использовать значения, состоящие только из пробельных символов (#x20, #x9, #xD, #xA) Разрешены символы Unicode из диапазона (#x20-#x7E, #x0410-#x044F ), а также символы Ёё№. Остальные символы запрещены

В заголовке ‘’Sign-Body’’ мы ждем отделенную подпись сообщения, в ‘’Sign-Key-Id’’ ожидается thumbprint сертификата для проверки;

        POST /api/v1/slizering/masspay/jsonrpc HTTP/1.1
        Sign-Body: 12345
        Sign-Key-Id:
        Content-Type: application/json; charset=utf-8
        Host: stage.tochka.com
        Connection: close
        User-Agent: Paw/3.1.8 (Macintosh; OS X/10.15.3) GCDHTTPRequest
        Content-Length: 2464

Если проверка завершилась неуспешно: ``HTTP/1.1 403 Forbidden``
Ответ при ошибке строится по шаблону:
{"jsonrpc": "2.0", "error":
            {"code": -32602,
            "message": "Invalid parameters",
            "data": "missing a required argument: 'id_company'"},
            "id": "51ac000f-239a-4631-82ec-a8a4688d90b9"}

Сервис поддерживает полный набор стандартных кодов JSON-RPC

Дополнительные исключения:

code = 4000 message = 'Object already exists'

code = 4001 message = 'Object does not exists'

code = 4002 message = 'No valid data in request'

code = 4014 message = 'Can not found message handler'

Echo

async web.rpc_methods_mass_payments.echo(text: Any) → Any[source]

Тестовый метод для проверки работы сервиса

JSONRPC-метод: echo
Parameters

text (typing.Any) – Любые возможные значения

Examples

Запрос

{
  "jsonrpc": "2.0",
  "method": "echo",
  "params": {
    "text": "439710"
  },
  "id": "908ca508-f1f1-4256-9c43-9ba7ad9c45fb"
}

Ответ

{
    "result": "439710",
    "id": "908ca508-f1f1-4256-9c43-9ba7ad9c45fb",
    "jsonrpc": "2.0"
}

Отправить пакет платежей

Important

Назначение платежа кодовое находится в ключе ‘code_purpose’. Указывается:

“1” - при переводе денежных средств, являющихся заработной платой и (или) иными доходами, в отношении которых установлены ограничения размеров удержания

“2” - при переводе денежных средств, являющихся доходами, на которые в соответствии со статьей 101 Федерального закона от 2 октября 2007 года N 229-ФЗ не может быть обращено взыскание, за исключением доходов, к которым в соответствии с частью 2 статьи 101 Федерального закона от 2 октября 2007 года N 229-ФЗ ограничения по обращению взыскания не применяются;

“3” - при переводе денежных средств, являющихся доходами, к которым в соответствии с частью 2 статьи 101 Федерального закона от 2 октября 2007 года N 229-ФЗ ограничения по обращению взыскания не применяются.

Значение реквизита не указывается, если иное не установлено Банком России

async web.rpc_methods_mass_payments.send_registry(id_company: str, client_account: str, client_bik: str, registry: dict, registry_type: str = 'SCHEDULED', force: bool = False, registry_number=None) → Any[source]

Метод для передачи реестра платежей

JSONRPC-метод: send_registry
Parameters
  • id_company (str) – id компании

  • registry_number (str) – id реестра

  • client_account (str) – счёт компании

  • ( (client_bik) – obj:`) bik

  • registry (dict) – пакет платежей для планирования

  • registry_type (str) – тип платежей по дефолту (считается, что платёж пакетный)

  • force (bool) – параметр, который отвечает за ускоренную оплату пакета

Examples

Запрос

{
   "id":"51ac000f-239a-4631-82ec-a8a4688d90b9",
   "jsonrpc":"2.0",
   "method":"send_registry",
   "params":{
      "client_account":"ваш счет с которого платим",
      "client_bik":"бик на случай если счет октроется в другом филиале",
      "id_company":"e97fd881-51f7-4e13-9460-d4a8abf4c6b3",
      "registry_number": "идентификатор реестра из системы для контроля за уникальностью реестра"
      "registry":[
         {
            "document":{
               "date":"2013-02-25 12:03:14",
               "number":"идентификатор из внешней системы - мы не гарантируем уникальность
                         и не следим за ней"
               "purpose": "Назначение"
            },
            "payment":{
               "amount":"2.0",
               "recipient":{
                  "acc":"11111111111",
                  "acc_corr":"30101810845250000999",
                  "kpp":"772401001",
                  "name":"АО ПЕНЕНЗА",
                  "inn":"7725268086",
                  "bank_name":"ТОЧКА ПАО БАНКА ФК ОТКРЫТИЕ",
                  "bik":"044525999"
               }
            }
         },
         {
            "document":{
               "date":"2013-02-25 12:03:14",
               "number":"идентификатор из внешней системы - мы не гарантируем уникальность
                         и не следим за ней",
               "purpose": "Назначение"
               "code_purpose":"Код доходов поле 20"
            },
            "payment":{
               "amount":"2.0",
               "recipient":{
                  "acc":"11111111111",
                  "acc_corr":"30101810845250000999",
                  "kpp":"772401001",
                  "name":"АО ПЕНЕНЗА",
                  "inn":"7725268086",
                  "bank_name":"ТОЧКА ПАО БАНКА ФК ОТКРЫТИЕ",
                  "bik":"044525999"
               }
            }
         }
      ]
   }
}

Ответ

{
    "jsonrpc": "2.0",
    "result": {
        "registry_id": "f49d2e1e-ed16-41ce-8fe9-6ba4c83c7b6a"
        },
    "id": "51ac000f-239a-4631-82ec-a8a4688d90b9"
}

Получить платежи из пакета

Статусы платежа:

    CREATED - Создан
    WAIT_PAID - Ждёт оплаты
    WAIT_VERIFY - Ждёт проверки ( на санкции )
    WAIT_SEND - Ждёт отправки
    PAID - Оплачен
    CANCELED - Отменён
    K2 - Картотека 2
    UNKNOWN - Неизвестно (всё пошло не по плану, и требуется ручное вмешательство)
    AWAITING - В ожидании (платёж находится в очереди на исполнение)


Статусы Реестров::

  - WAITING: ожидает обработки
  - FAILURE: во время обработки произошла ошибка
  - COMPLETE: реестр обработан
async web.rpc_methods_mass_payments.get_payments(registry_id)[source]

Метод получения списка платежей и их статусов

JSONRPC-метод: get_payments
Parameters

registry_id (str) – id реестра

Examples

Запрос

{
    "jsonrpc": "2.0",
    "method": "get_payments",
    "id": "908ca508-f1f1-4256-9c43-9ba7ad9c45fb",
    "params": {
        "registry_id": "some registry id",
        }

Ответ

{'id': 'cb0f72a1-0af1-4b5b-8c42-ef9beb671ee5',
 'jsonrpc': '2.0',
 'result': {'registry_status': "COMPLETE",
            'payments':[{'amount': '101.00',
             'document_number': '12',
             'payer_credentials': {},
             'payment_id': 'f4b75808-a743-4d48-8f85-358405c89e2e',
             'payment_status': 'AWAITING',
             'description': 'В ожидании (Это платеж который '
                       'находится у нас в очереди на '
                       'исполнение)'
             'purpose': None,
             'recipient_credentials': {}},
            {'amount': '100.00',
             'document_number': '11',
             'payer_credentials': {},
             'payment_id': '4f0a6467-43af-4d3f-92b1-b42429e2a36d',
             'payment_status': 'AWAITING',
             'description': 'В ожидании (Это платеж который '
                       'находится у нас в очереди на '
                       'исполнение)'
             'purpose': None,
             'recipient_credentials': {}}]}

Удалить пакет и отменить платежи из очереди

async web.rpc_methods_mass_payments.delete_registry_by_id(registry_id)[source]

Метод мягкого удаления реестра и платежей из него. Важно: в реестре могут быть уже оплаченные платежи, которые мы не можем отменить.

Поэтому после удаления нужно синхронизировать состояние, вызвав ‘’’get_payments_by_registry’’’

JSONRPC-метод: delete_registry_by_id
Parameters

registry_id (str) – id реестра

Examples

Запрос

{
    "jsonrpc": "2.0",
    "method": "delete_registry_by_id",
    "id": "908ca508-f1f1-4256-9c43-9ba7ad9c45fb",
    "params": {
        "registry_id": "some registry id",
        }

Ответ

{
'jsonrpc': '2.0',
'result': {'registry_active_state_now': False},
'id': '908ca508-f1f1-4256-9c43-9ba7ad9c45fb',
}

Пометить пакет готовым к оплате

async web.rpc_methods_mass_payments.pay_from_registry(registry_id)[source]

Метод для подтверждения платежей из пакета. Используется после проверки баланса и списка платежей, чтобы скомандовать системе отправить содержимое в очередь оплаты.

JSONRPC-метод: pay_from_registry
Parameters

registry_id (str) – id реестра

Examples

Запрос

{
    "jsonrpc": "2.0",
    "method": "pay_from_registry",
    "id": "908ca508-f1f1-4256-9c43-9ba7ad9c45fb",
    "params": {
        "registry_id": "some registry id",
        }

Ответ

{
'jsonrpc': '2.0',
'result': {'status': "success"},
'id': '908ca508-f1f1-4256-9c43-9ba7ad9c45fb',
}

Получить баланс по счёту

async web.rpc_methods_mass_payments.get_balance(account: str, bik: str)[source]

Метод для получения доступного баланса по счёту и БИКу. Возвращает доступный остаток за вычетом холдов и блокировок.

Важно: не учитывает карточные холды.

JSONRPC-метод: pay_from_registry
Parameters
  • account (str) – Номер счёта

  • bik (str) – БИК банка

Examples

Запрос

{
    "jsonrpc": "2.0",
    "method": "get_balance",
    "id": "908ca508-f1f1-4256-9c43-9ba7ad9c45fb",
    "params": {
        "registry_id": "some registry id",
        }

Ответ

{
'jsonrpc': '2.0',
'result': {"available": "float",},
'id': '908ca508-f1f1-4256-9c43-9ba7ad9c45fb',
}

Получить выписку по счёту

async web.rpc_methods_mass_payments.get_statement(bik: str, account: str, fromdate: str, todate: str)[source]

Метод получения выписки по счёту и БИКу.

JSONRPC-метод: get_statement
Parameters
  • account (str) – Номер счёта

  • bik (str) – БИК банка

  • fromdate – (str): Дата начала

  • todate – (str): Дата окончания

Examples

Запрос

param bik

param account

param todate

param fromdate

{
    "jsonrpc": "2.0",
    "method": "get_balance",
    "id": "908ca508-f1f1-4256-9c43-9ba7ad9c45fb",
    "params": {
        "account": "some account",
        "bik": "bik",
        "fromdate": "2018-01-01",
        "todate": "2018-02-02"

        }

Ответ

{
'jsonrpc': '2.0',
'result': {
              "startDate": "2018-01-01" - Дата начала получения данных
              "endDate": "2018-02-02", - Дата окончания получения данных
              "bankCode": "044525999", - БИК банка
              "accountCode": "40802000000000000000" - Номер счёта
              "currency": "USD" - Валюта
              "balanceIncoming": "1236.78" - Входящий остаток
              "balanceIncomingNat": "1236.78" - Входящий остаток в валюте счёта
              "currencyIncoming": "56.68" - Курс валюты на дату входящего остатка
              "balanceOutgoing": "12345.67" - Исходящий остаток
              "balanceOutgoingNat": "12345.67" - Исходящий остаток в валюте счёта
              "currencyOutgoing": "56.68" - Курс валюты на дату исходящего остатка
              "summaryDebetTurnover": "1236.99" - Общие обороты по дебету
              "summaryDebetTurnoverNat": "1236.99" - Общие обороты по дебету в валюте счёта
              "summaryCreditTurnover": "1236.99" - Общие оборты по кредиту
              "summaryCreditTurnoverNat": 1236.99 - Общие обороты по кредиту в валюте счёта
              "lastOperationDate": "2018-01-09" - Дата последней операции
              "days": - Информация по операциям за день {
                "2020-02-27" : { Информация по операциям за определенный день
                  "balanceIncoming": "1236.78" - Входящий остаток
                  "balanceIncomingNat": "1236.78" - Входящий остаток в нац. валюте
                  "balanceOutgoing": "12345.67" - Исходящий остаток
                  "balanceOutgoingNat": "12345.67" - Исходящий остаток в нац. валюте
                  "debetTurnover": "1236.99" - Обороты по дебету
                  "debetTurnoverNat": "1236.99" - Обороты по дебету в нац. валюте
                  "creditTurnover": "1236.99" - Обороты по кредиту
                  "creditTurnoverNat": "1236.99" - Обороты по кредиту в нац. валюте
                  "currencyRate": "55.98" - Курс по валюте
                  "previousCurrencyRate": "56.99" - Курс по валюте за предыдущий день
                  "operations": [Список операций
                    {
                      "operationDate": "2018-01-01" - Дата совершения операции
                      "transactionTypeCode": "01" - Вид операции
                      "documentNumber": "29537" - Номер документа
                      "documentDate": "2018-01-01" - Дата документа
                      "bankCorrespondentAccount": "32103810100000000123" - Номер корсчёта
                      "bankName": "ПАО..." - Наименование банка-корреспондента
                      "bankCode": "045004832" - БИК банка-корреспондента
                      "name": "РНКО "ПЛАТЕЖНЫЙ ЦЕНТР ..."" - Наименование плательщика/получателя
                      "taxCode": "0000000000" - ИНН/КИО плательщика/получателя
                      "taxReasonCode": "000000000" - КПП плательщика/получателя
                      "selfSideTaxCode": "0000000000" - ИНН/КИО собственной стороны
                      "selfSideTaxReasonCode": "000000001" - КПП собственной стороны
                      "accountCode": "32132000000000000000" - Номер счёта плательщика/получателя
                      "credit": true - Признак операции по кредиту
                      "amount": "1236.99" - Сумма операции
                      "amountNat": "1236.99" - Сумма операции в валюте счёта
                      "desription": "string" - Назначение
                      "priority": "5" - Приоритет документа (может быть не указан)
                      "paymentCode": "0" - Код платежа (поле 22)
                      "transactionId": "111111;1" - Идентификатор транзакции
                      "servicePayKey": "RS-180507509546002" - Внешний ключ документа-основания для данной
                                                              операции
                      "taxFields": { Налоговые поля
                        "originatorStatus": "1" - Статус плательщика бюджетного платежа
                        "kbk": "18210501021011000110" - КБК
                        "oktmo": "50701000" - ОКТМО
                        "base": "ТР" - Основание налогового платежа
                        "documentNumber": "4664" - Номер налогового документа
                        "documentDate": "10.04.2015" - Дата налогового документа
                        "type": "0" - Вид платежа
                        "field107": "string" - Поле 107 (здесь может быть период оплаты, или код таможни,
                                                или что-то ещё — нужно вникнуть в нормативные документы,
                                                чтобы понять суть поля)
                      }
                    }
                  ]
                },
                "additionalProp2": {
                  "balanceIncoming": "1236.78",
                  "balanceIncomingNat": "1236.78",
                  "balanceOutgoing": "12345.67",
                  "balanceOutgoingNat": "12345.67",
                  "debetTurnover": "1236.99",
                  "debetTurnoverNat": "1236.99",
                  "creditTurnover": "1236.99",
                  "creditTurnoverNat": "1236.99",
                  "currencyRate": "55.98",
                  "previousCurrencyRate": "56.99",
                  "operations": [
                    {
                      "operationDate": "2018-01-01",
                      "transactionTypeCode": "01",
                      "documentNumber": "29537",
                      "documentDate": "2018-01-01",
                      "bankCorrespondentAccount": "32103000000000000000",
                      "bankName": "ПАО...",
                      "bankCode": "045004832",
                      "name": "РНКО "ПЛАТЕЖНЫЙ ЦЕНТР ..."",
                      "taxCode": "7700000000",
                      "taxReasonCode": "770543003",
                      "selfSideTaxCode": "770000000",
                      "selfSideTaxReasonCode": "770543002",
                      "accountCode": "32132000000000000000",
                      "credit": true,
                      "amount": "1236.99",
                      "amountNat": "1236.99",
                      "desription": "string",
                      "priority": "5",
                      "paymentCode": "0",
                      "transactionId": "111111;1",
                      "servicePayKey": "RS-180507509546002",
                      "taxFields": {
                        "originatorStatus": "1",
                        "kbk": "18210501021011000110",
                        "oktmo": "50701000",
                        "base": "ТР",
                        "documentNumber": "4664",
                        "documentDate": "10.04.2015",
                        "type": "0",
                        "field107": "string"
                      }
                    }
                  ]
                }
            },
'id': '908ca508-f1f1-4256-9c43-9ba7ad9c45fb',
}