Перейти к основному содержимому

Руководство по интеграции платежного шлюза Billdesk | Документация для разработчиков

Руководство по интеграции платежного шлюза Billdesk

Обновлено: 14 ноября 2025 г
Цель данного документа — описать интеграцию платежных систем с Billdesk, необходимую для продавца или партнера по решениям, внедрившего чат-бота с использованием API WhatsApp Business и нуждающегося в приеме платежей от пользователей WhatsApp.
В этом документе описаны необходимые API, которые должны быть интегрированы, и то, как интеграция работает совместно с API WhatsApp Business. Хотя это не исчерпывающее руководство, оно служит общим обзором, помогающим понять процесс интеграции платежного шлюза. Любые конкретные или уникальные детали, касающиеся платежного шлюза, должны быть определены продавцом или партнером по решениям.
Что касается интеграции с продуктом WA P2M, в этом документе описаны запросы и ответы, выделенные красным цветом на блок-схеме.

Интеграция платежных систем Billdesk

Настраивать

Для аутентификации в API Billdesk необходимо создать клиент и выбрать метод аутентификации: HMAC или Javascript Object Signing and Encryption (JOSE), при этом JOSE является предпочтительным методом. Эти методы используются для шифрования/дешифрования запросов/ответов от API Billdesk.
Для упрощения объяснения, следующие примеры будут касаться только той части итоговой полезной нагрузки, которая в конечном итоге будет включена в конечный объект, необходимый для успешной аутентификации с их API. Важно обратиться к документации Billdesk за рекомендациями относительно структуры этого конечного объекта.
Для продолжения вам потребуется следующая информация:
    Идентификатор клиента и секретный ключ от BilldeskДанные из настроек платежей, которые вы уже настроили в бизнес-аккаунте WhatsApp
      код категории продавцаVPA продавцаНазвание продавца

      API для инициирования платежей

      Пример POST к https://pguat.billdesk.io/payments/ve1_2/transactions/create
      { "mercid": "BDMERCHANTID", "orderid": "UPIODR00000004", "amount": "2.00", "currency": "356", "bankid": "ICW", "txn_process_type": "intent", "itemcode": "DIRECT", "payment_method_type": "upi", "wa_mc": "0743", "wa_vpa": "billdesk@hdfcbank", "wa_txnid": "H477676443", "wa_mercname": "SIDDHIVINK", "additional_info": { "additional_info1": "Details1", "additional_info2": "Details2" }, "device": { "init_channel": "app", "ip": "124.124.1.1", "user_agent": "App/22.6.74 Платформа/19.5.0" } }
      Параметры Описание
      Идентификатор заказа (обязательно)
      нить
      Уникальный идентификатор заказа, генерируемый продавцом для идентификации транзакции
      милосердие (Обязательно)
      нить
      Уникальный идентификатор, определенный BillDesk для каждого продавца
      сумма (обязательно)
      нить
      Сумма транзакции в двух знаках после запятой
      Валюта (обязательно)
      нить
      Валюта ISO суммы транзакции
      txn_process_type (Необязательно)
      нить
      Значение должно соответствовать намерению.
      bankid (Необязательно)
      нить
      BillDesk определил уникальный идентификатор для банка или эквайера
      ru (Необязательно)
      нить
      URL возврата продавца
      itemcode (Обязательно)
      нить
      Значение Itemcode, предоставленное BillDesk, со значением по умолчанию DIRECT.
      устройство (Обязательно)
      объект
      Объект устройства. Для получения более подробной информации обратитесь к документации BillDesk.
      Тип_метода_оплаты (Обязательно)
      нить
      Необходимо установить значение upi.
      wa_mc (Обязательно)
      нить
      Категория продавца
      wa_vpa (Обязательно)
      нить
      Получатель платежа VPA
      wa_txnid (Обязательно)
      нить
      Уникальный идентификатор транзакции (txnid), сгенерированный банком для данной транзакции
      wa_mercname (Обязательно)
      нить
      Название продавца
      Пример ответа
      { "objectid": "transaction", "transactionid": "X7890477676443", "orderid": "UPIODR00000004", "mercid": "BDMERCID", "transaction_date": "2022-03-18T11:50:27+05:30", "amount": "2.00", "surcharge": "0.00", "discount": "0.00", "charge_amount": "2.00", "currency": "356", "additional_info": { "additional_info1": "Details1", "additional_info2": "Details2" }, "txn_process_type": "intent", "bankid": "ICW", "itemcode": "DIRECT", "auth_status": "0002", "transaction_error_code": "TRP0000", "transaction_error_desc": "Транзакция в ожидании", "transaction_error_type": "pending", "payment_method_type": "upi", "wa_mc": "7399", "wa_vpa": "billdesk@hdfcbank", "wa_txnid": "H477676443", "wa_mercname": "SIDDHIVINK", "intent": "dXBpOi8vcGF5P3BhPWJpbGxkZXNrQGhkZmNiYW5rJnBuPVNJRERISVZJTksmbWM9NjMwMCZ0cj1YSEQ1MDQ3NzY3NjQ0MyZ0bj1QYXkmYW09Mi4wMCZtYWwMCZjdT1JTlI=" }

      Проанализируйте ответ

      Используйте значение wa_txnid из ответа и передайте его в качестве reference_id при настройке параметров для отправки сообщения с подробной информацией о заказе через API.
      Обязательно проверьте значения в полученном вами намерении:
        Ключ Intent содержит закодированное в Base64 значение Intent.Расшифровка намерения должна дать значение, похожее на следующее: upi://pay?pa=billdesk@hdfcbank&pn=SIDDHIVINKamp;mc=6300&tr=XHD50477676443&tn=Pay&am=2.00&malORSЗначение параметра pa VPA продавца . Это значение должно совпадать с VPA в файле payment_configuration, который вы указываете в объекте параметров

        Веб-перехватчик статуса

        Billdesk отправит объект транзакции на указанный вами URL-адрес возврата ( ru ) в API инициирования платежа.
        Ключ Тип данных Описание
        objectid (Обязательный)
        нить
        Строка, представляющая тип объекта. Это значение будет зафиксировано в ходе транзакции
        идентификатор транзакции
        нить
        Система BillDesk генерирует уникальный идентификатор транзакции для данной операции
        orderid
        нить
        Уникальный идентификатор заказа (orderid), генерируемый продавцом для данной транзакции
        мерсид
        нить
        Уникальный идентификатор, определенный BillDesk для каждого продавца
        дата транзакции
        метка времени
        Дата и время транзакции BillDesk в формате ГГГГ-ММ ДДЧЧ:мм:ссТЗД
        количество
        нить
        Сумма транзакции в двух знаках после запятой
        надбавка
        нить
        Если таковая имеется, к сумме транзакции применяется дополнительная плата, указываемая в двух знаках после запятой
        скидка
        нить
        Если таковая имеется, к сумме покупки применяется скидка для клиента, выраженная двумя знаками после запятой
        сумма_заряда
        нить
        Общая сумма к оплате клиентом
        валюта
        целое число
        Валюта ISO суммы транзакции
        txn_process_type
        нить
        Указывает тип обработки транзакции.
        Intent для payment_method_type имеет значение upi, а метод оплаты — UPI
        банкид
        нить
        BillDesk определил уникальный идентификатор для банка или эквайера
        txn_process_type
        нить
        Указывает тип обработки транзакции.
        В параметре payment_method_type указано upi, а в параметре method of payment — UPI.
        ру
        нить
        URL возврата продавца
        дополнительная_информация
        объект
        Массив из 10 additional_info , которые можно прикрепить к транзакции. Примечание: Продавцу рекомендуется не передавать персональные данные клиентов в полях additional_info.
        код товара
        нить
        Значение Itemcode предоставляется системой BillDesk, значение по умолчанию — DIRECT.
        номер_банка
        нить
        Номер транзакции, сгенерированный банком или эквайером
        auth_status
        нить
        Представляет статус авторизации транзакции с возможными значениями:
          0300 - транзакция успешно завершена0002 - транзакция ожидает авторизации0399 - транзакция не удалась
          settlement_lob
          нить
          Функция расчетов, предварительно настроенная BillDesk для перечисления средств на торговый счет
          клиент
          объект
          Объект клиента
          устройство
          объект
          Объект устройства
          transaction_error_code
          нить
          Представляет собой код ошибки для транзакции со статусом 0399.
          transaction_error_type
          нить
          Представляет собой категорию стандартной ошибки для транзакции со статусом 0399.
          transaction_error_desc
          нить
          Представляет собой описание кода ошибки для транзакции со статусом 0399.
          код авторизации
          нить
          Код авторизации, полученный от эквайера за успешно авторизованную транзакцию по карте
          эци
          нить
          Значение ECI для аутентификации, используемой при карточной транзакции
          payment_method_type
          нить
          Представляет собой способ оплаты, например, UPI
          карта
          Объект
          Объект способа оплаты (применяется, если способ оплаты — карта)
          customer_refid
          нить
          Уникальный идентификатор клиента в соответствии с данными продавца
          ссылки
          объект
          Связанные ссылки с объектом

          Анализ ответа

          Используйте значение auth_status , полученное из ответа выше, и передайте соответствующее сообщение о статусе через API WhatsApp.