Kassa24 Terminal

Обзор

Kassa24 Terminal — метод для проведения оплат с использованием физических терминалов Kassa24.

Загрузить логотип этого платежного метода в векторном формате можно здесь.

Тип платежного метода Физический терминал
Регионы использования Казахстан
Валюты платежей KZT
Конвертация валют На стороне провайдера
Оплата
Выплата
Оплата по сохраненным данным
Полный возврат
Частичный возврат
Опротестование
Особенности
  • Оплата в терминале осуществялется с помощью наличных
  • Провайдер накладывает ограничение на общую сумму платежей в месяц — не более 12 500 000,00 KZT
Организация и стоимость подключения По согласованию с курирующим менеджером JetPay

В проведении отдельной оплаты с использованием платежного метода Kassa24 Terminal задействуются веб-сервис мерчанта, один из интерфейсов и платежная платформа JetPay, а также сервис Kassa24 Terminal.

Основные операции

Интерфейсы Сумма платежа, KZT Время проведения платежа
Payment Page Gate Dashboard минимум максимум базовое предельное
Оплата 1,00 500 000,00 1 минута 36 суток

Уточнить минимальную и максимальную сумму платежа, доступную в вашем проекте, вы можете в Dashboard. Для этого в Dashboard перейдите в раздел Проекты и выберите вкладку Платежные методы.

Сценарии использования

Проведение оплат с использованием метода Kassa24 Terminal выполняется через физические терминалы Kassa24.

Рис.: Оплата Kassa24 Terminal



Детальные сведения о том, что необходимо делать со стороны мерчанта для проведения оплат, а также о том, что можно использовать для анализа информации о проведенных платежах и операциях, представлены далее.

Оплата через Gate

Общая информация

Для оплаты через Gate с использованием платежного метода Kassa24 Terminal со стороны вашей системы необходимо:

  1. Обработать запрос на проверку существования лицевого счета пользователя.
  2. Отправить ответ с информацией о существовании лицевого счета пользователя.
  3. Обработать запрос на получение идентификатора платежа на стороне вашей системы.
  4. Отправить ответ с идентификатором платежа.
  5. Принять оповещение о результате оплаты.


Рис.: Проведение оплаты через Gate

  1. Пользователь выбирает вашу систему, лицевой счет в котором он хочет пополнить, и затем вводит свои учетные данные в системе мерчанта.
  2. От физического терминала на заданный URL JetPay передается запрос на проверку существования лицевого счета пользователя.
  3. Выполняется обработка запроса.
  4. От платежной платформы к вашей системе передается запрос на проверку существования лицевого счета пользователя.
  5. На стороне вашей системы проводится обработка запроса.
  6. От вашей системы к платежной платформе передается ответ на запрос.
  7. От платежной платформы к сервису Kassa24 Terminal передаются результаты проверки данных лицевого счета пользователя.
  8. Пользователю отображается форма оплаты Kassa24 Terminal.
  9. Пользователь вносит наличные для пополнения лицевого счета.
  10. На стороне сервиса Kassa24 Terminal выполняется обработка платежа.
  11. От сервиса Kassa24 Terminal к платежной платформе направляется уведомление о результате оплаты.
  12. От платежной платформы к вашей системе передается запрос на получение идентификатора платежа на стороне вашей системы.
  13. На стороне вашей системы проводится обработка запроса.
  14. От вашей системы к платежной платформе передается информация об идентификаторе платежа.
  15. На стороне платежной платформы создается операция.
  16. Платежная платформа направляет в вашу систему оповещение о результате оплаты.
  17. Пользователь получает информацию о результате проведения оплаты на экране физического терминала.

Информация о формате запросов и параметрах инициирования оплат через Gate при работе с методом Kassa24 Terminal, а также о формате оповещений о результатах оплат приведена далее.

Запросы

Запрос verify на проверку существования счета

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

  1. Запрос verify для проверки существования лицевого счета пользователя платежная платформа отправляет на URL-адрес вашей системы методом POST.
  2. Запрос содержит следующие обязательные параметры:
    • type — тип операции в вашей системе, значение параметра всегда verify;
    • customer_id — идентификатор учетной записи пользователя в вашей системе, на баланс которой зачисляются денежные средства;
    • project_id — идентификатор проекта, полученный от JetPay при интеграции;
    • signature — подпись запроса.

    Рис.: Пример данных из запроса на проверку существования лицевого счета пользователя

    {
        "type": "verify",
        "project_id": 1234,
        "customer_id": "7123456789",
        "signature": "e19695449545fac562843ca06e7e0f3e51281ad6"
    }
  3. Ответ на запрос verify должен отправляться синхронно. Доступны два варианта ответа, уточняйте у вашего курирующего менеджера JetPay, какой подходит вам.
    Первый вариант ответа должен содержать следующие параметры:
    • code — код ответа на запрос (допустимые значения указаны в таблице ниже);
    • currency — валюта платежа в формате ISO-4217 alpha-3.

    Ответ может также содержать следующие необязательные параметры:

    • additional_customer_id — идентификатор пользователя, уникальный в рамках проекта, который используется для идентификации пользователя в платежной платформе JetPay.
    • error_description — описание ошибки.

    Второй вариант ответа должен содержать следующие параметры:

    • code — код ответа на запрос;
    • additional_customer_id — идентификатор пользователя, уникальный в рамках проекта, который используется для идентификации пользователя в платежной платформе JetPay;
    • currency — код валюты платежа в формате ISO-4217 alpha-3;
    • entities.id — идентификатор договора;
    • entities.number — номер договора;
    • entities.payment — сумма оплаты в дробных единицах валюты без десятичной точки и пробелов за исключением случаев, когда у валюты нет дробной части. Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Коды валют. Обязательность этого параметра уточняйте у курирующего менеджера JetPay;
    • entities.status_code — код статуса договора. Значение по умолчанию 0 - онлайн оплата разрешена, значение отличное от 0 не позволяет принять оплату, но позволит отобразить клиенту заранее согласованный текст при выборе договора к оплате. Дополнительные коды и сообщения согласовываются индивидуально, уточняйте у курирующего менеджера JetPay.

    Ответ может также содержать следующие необязательные параметры:

    • error_description — произвольное описание ошибки от мерчанта;
    • customer_name — полное имя пользователя;
    • entities.date — дата заключения договора.
    Табл. 1. Допустимые коды ответов
    Код Описание
    0 Операция успешна
    204 Непогашенные задолженности не найдены
    400 Ошибка подписи
    404 Счет пользователя не существует
    500 Общая ошибка, причина должна быть описана в параметре message

    Вот пример ответа на запрос, если лицевой счет пользователя существует в вашей системе.

    Рис.: Пример ответа на первый вариант запроса

    {
        "code": 0,
        "currency": "KZT",
        "additional_customer_id": "ABCDE12345",
        "error_description":"example"
    }

    Рис.: Пример ответа на второй вариант запроса

    {
        "code": 0,
        "currency": "KZT",
        "customer_name": "John Doe",
        "additional_customer_id": "ABCDE12345",
        "entities": [
            {
                "id": "12345",
                "number": "1234_ABC/01-01-2025/Abcdef12",
                "date": "2026-04-01",
                "payment": 100000,
                "status_code": 0
            },
            {
                "id": "67890",
                "number": "5678_ABC/01-01-2025/Abcdef34",
                "payment": 0,
                "status_code": 204
            }
        ]
    }

    Если запрос нельзя корректно обработать или не удалось обнаружить запрошенный лицевой счет, ответ на запрос должен содержать код ответа 404, а также может содержать дополнительную информацию об ошибке в параметре message.

    Рис.: Пример ответа с кодом ошибки

    { 
        "code": 404,
        "message": "Account does not exist"
    }
Запрос check_deposit на получение идентификатора платежа

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

  1. Запрос check_deposit для получения идентификатора платежа платежная платформа отправляет методом POST на URL-адрес вашей системы.
  2. Запрос содержит следующие обязательные параметры:
    • type — тип операции в вашей системе, значение параметра всегда check_deposit;
    • project_id — идентификатор проекта, полученный от JetPay при интеграции;
    • customer_id — идентификатор учетной записи пользователя в вашей системе, на баланс которой зачисляются денежные средства;
    • amount — сумма оплаты в дробных единицах валюты без десятичной точки и пробелов за исключением случаев, когда у валюты нет дробной части. Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Коды валют;
    • currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_method — идентификатор платежного метода, значение параметра всегда kassa24;
    • signature — подпись запроса.

    Следующие параметры обязательны только при втором варианте ответа на запрос verify:

    • number — номер договора, по которому выполняется оплата;
    • entity_id — идентификатор договора, по которому выполняется оплата;

    Рис.: Пример данных из запроса на получение идентификатора платежа в вашей системе

    { 
       "type": "check_deposit",
       "project_id": 1234,
       "customer_id": "123456789",
       "entity_id": "12345",
       "number": "1234_ABC/01-01-2025/Abcdef12",
       "amount": 10 000,00,
       "currency": "KZT",
       "payment_method": "kassa24",
       "signature": "lY0LTSAzpR7zGce5qfYGacOuYlHANnkIR7mdOqRXJnL1kO0lUmkQ0YYLWRg=="
    }
  3. Ответ на запрос check_deposit должен отправляться синхронно и содержать следующие обязательные параметры:
    • code — код ответа на запрос;
    • payment_id — уникальный идентификатор платежа в вашей системе.

    Ответ может также содержать следующие необязательные параметры:

    • error_description — описание ошибки;
    • customer_id — идентификатор пользователя;
    • description — описание платежа.
    Табл. 2. Допустимые коды ответов
    Код Описание
    0 Операция успешна
    400 Ошибка подписи
    404 Cчет пользователя не существует
    500 Общая ошибка, причина должна быть описана в параметре message

    Ответ на запрос получения идентификатора платежа в вашей системе должен содержать код ответа на запрос и уникальный идентификатор платежа.

    Рис.: Пример ответа с идентификатором платежа

    {
        "code": 0,
        "payment_id": "payment_47",
        "description": "Success"
    }

    Ответ c информацией об ошибке должен содержать код ответа на запрос и сообщение об ошибке.

    Рис.: Пример ответа с информацией об ошибке

    {
        "code": 500,
        "message": "Something went wrong"
    }

Формат оповещений

Для оповещений о результатах оплат с применением метода Kassa24 Terminal используется стандартный формат, описание которого представлено в разделе Оповещения (callbacks) в Gate.

В следующем примере оповещение свидетельствует о том, что в рамках проекта 2275 была успешно проведена оплата в размере 100,00 KZT.

Рис.: Пример оповещения о проведенной оплате

{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "method": "Kassa24",
        "sum": {
            "amount": 10000,
            "currency": "KZT"
        },
        "description": ""
    },
    "account": {
        "number": "123456"
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 28,
        "type": "sale",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "created_date": "2022-03-25T11:08:05+0000",
        "request_id": "9e32835fb27907e0b08569d7d150e387a16a80e336c5117242b5cf60a4e17839",
        "sum_initial": {
            "amount": 10000,
            "currency": "KZT"
        },
        "sum_converted": {
            "amount": 10000,
            "currency": "KZT"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-321",
            "auth_code": ""
        }
    },
    "signature": "U7HQO7ToISZhMPKdM4Xr4DSX2UuHp99rHrtaxkUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}

Дополнительные материалы

Для организации работы с оплатами через Gate также могут быть полезны следующие материалы:

Анализ результатов проведения платежей

Как и при работе с другими платежными методами, которые предоставляет JetPay, при использовании этого метода доступны разные способы анализа информации о платежах и операциях.

Всю необходимую информацию можно получать и анализировать средствами Dashboard (dashboard.jetpay.kz), в том числе с помощью аналитических панелей в разделе Аналитика.

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

  • Dashboard позволяет выгружать данные в формате CSV с помощью инструментов в разделе Отчеты. При этом можно выполнять разовые и периодические выгрузки информации на локальный компьютер.
  • Data API позволяет получать информацию в формате JSON и отправлять ее на заданный URL — для этого применяются запросы к конечной точке /operations/get.

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