Принимайте платежи UPI через WhatsApp | Документация для разработчиков
Принимайте платежи UPI через WhatsApp
Обновлено: 14 ноября 2025 г
Это НЕ рекомендуемая интеграция с UPI-интентами. Перейдите на динамический VPA . С динамическим VPA вы можете менять VPA в UPI-интентах без каких-либо изменений конфигурации с вашей стороны, что упростит интеграцию и текущее обслуживание.
Ваша компания может предоставить клиентам возможность оплачивать заказы через WhatsApp, используя все приложения UPI, установленные на их устройствах. Компании могут отправлять клиентам сообщения с подробными данными о заказе (
inorder_details ), а затем получать уведомления об обновлении статуса платежа через веб-хуки платежного шлюза.Обзор
В настоящее время клиенты просматривают каталоги компаний, добавляют товары в корзину и отправляют заказы с помощью нашего набора решений для обмена сообщениями в сфере электронной коммерции, который включает в себя сообщения для отдельных товаров, сообщения для нескольких товаров и страницы с подробной информацией о товаре .
С помощью API WhatsApp Payments компании могут отправлять клиентам счета, чтобы те могли завершить свой заказ через все приложения UPI.
Как это работает
компания должна отправить потребителю сообщение
order_details заголовок , тело , нижний колонтитул и действие . В действия компания указывает всю информацию, необходимую клиенту для завершения платежа.Каждое
order_details содержит уникальный идентификатор reference_id, предоставленный компанией, и этот уникальный номер используется на протяжении всего процесса для отслеживания заказа. Этот reference_id извлекается из ссылки UPI intent ( tr из платежного намерения UPI), сгенерированной для заказа компании платежным шлюзом.После отправки сообщения компания ожидает обновления статуса платежа или транзакции непосредственно от платежного шлюза. Получив подтверждение оплаты заказа, компания должна передать это подтверждение потребителю посредством интерактивного сообщения о статусе заказа (
order_status ).Уведомление пользователя о подтверждении оплаты важно, поскольку это сообщение обновляет информацию о заказе и отображает детали заказа для потребителя, отражая подтверждение заказа от продавца. Это показано на примере в последующих разделах.
Процесс покупки в приложении
В клиентском приложении WhatsApp процесс покупки состоит из следующих этапов:
Клиент отправляет заказ с выбранными товарами в компанию, или компания определяет товары, которые клиент проявил интерес к покупке.
После получения заказа/идентификации товара, если продавец принимает другие способы оплаты, помимо UPI, такие как кредитные карты и электронные кошельки, то продавец отправит пользователю сообщение с просьбой указать предпочтительный способ оплаты заказа.

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


Когда покупатель нажимает кнопку «Оплатить сейчас/Продолжить», ему предоставляется возможность выбрать приложение для оплаты через UPI — WhatsApp или любое другое приложение для платежей через UPI. Покупатели могут выбрать любой способ оплаты через UPI для оформления заказа.


Покупатель оплачивает заказ, и способ оплаты сохраняется для дальнейшего использования и автоматически выбирается для следующей платежной транзакции. Также следует отметить, что на экране сведений о заказе статус заказа будет по-прежнему отображаться как «Заказ в ожидании», пока продавец не отправит интерактивное сообщение о статусе заказа.


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



Прежде чем начать
Для приема платежей UPI через WhatsApp продавцам необходимо настроить свой VPA в WhatsApp Business Manager, используя опцию прямых способов оплаты.
Каждая конфигурация должна иметь уникальное имя, код категоризации продавца (MCC), код назначения и идентификаторы VPA, как показано ниже. У компании может быть несколько конфигураций оплаты, но для каждого заказа продавец должен указать конкретную конфигурацию, которая будет использоваться для оплаты. См.
payment_configuration в order_details .Имя для каждого типа платежа должно быть уникальным. Имя будет использоваться для ссылки на конкретные конфигурации для каждого типа платежа. Если WA не сможет найти имя конфигурации платежа, пользователь не сможет совершить платеж после получения order_details . mcc обозначает код категоризации продавца для товаров в заказе. upi_pc обозначает цель транзакции. Ниже приведены примеры кода:| Код | Заголовок |
|---|---|
|
00 |
По умолчанию |
|
01 |
ПОЛУ |
|
02 |
АМС |
|
03 |
Путешествовать |
|
04 |
Гостеприимство |
|
05 |
Больница |
|
06 |
Телекоммуникации |
|
07 |
Страхование |
|
08 |
Образование |
|
09 |
Дарение подарков |
|
10 |
Другие |
Если продавец/партнер не уверен в коде MCC и коде назначения, он может обратиться в платежный шлюз за этой информацией, поскольку платежный шлюз устанавливает эти значения в зависимости от типа бизнеса при формировании VPA-сообщений для бизнеса.
Управление способами оплаты (бета-версия)
Функция самостоятельной настройки платежей позволяет добавить несколько вариантов оплаты в ваш профиль WhatsApp Manager. Каждый вариант оплаты будет иметь свой собственный UPI-идентификатор (VPA), MCC и код назначения (для физических товаров), чтобы продавцы могли принимать платежи для разных категорий с разных UPI-аккаунтов. После настройки продавец может отправлять пользователям сообщения с
подробным описанием Предварительные требования
Функция «Управление способами оплаты» находится в стадии бета-тестирования, поэтому, пожалуйста, свяжитесь с командой Business Engineering, чтобы предоставить продавцам/партнерам доступ к этой странице в портале WhatsApp Business Manager.
Шаги по привязке настроек платежей для поставщика бизнес-услуг
, используя страницу «Настройки оплаты» и раздел «Индия» в WhatsApp Business Manager .
После привязки настроек оплаты необходимо интегрировать систему с указанными ниже API платежей. Это позволит отправлять
order_details с настройками оплаты для получения платежей.Шаги по отмене привязки настроек платежей
Примечание: Перед выполнением операции отмены привязки убедитесь, что с настройками платежа, которые вы пытаетесь удалить, не отправляются новые сообщения о заказах с запросом на оплату от потребителя.
Этапы интеграции
Описанные ниже шаги предполагают, что компания собирается отправить сообщение с подробной информацией о заказе клиенту.
На следующей диаграмме показана типичная последовательность интеграции API WA Payments: 

Шаг 1: Получение UPI-намерения от платежного шлюза
После того, как потребитель выразил заинтересованность в покупке товара с использованием метода оплаты UPI, продавцу необходимо связаться с платежным шлюзом для создания UPI-интента. Ниже приведен пример ссылки на UPI-интент:
upi://pay?pa=cfsukoona@yesbank&pn=Sukoon&tr=87737
6394& am=10.00&cu=INR&mode=00&member=00&mc=5399&tn=87
7376394
Продавцу необходимо проанализировать
tr из указанного выше URI и использовать его в качестве идентификатора ссылки в интерактивном сообщении order_details Шаг 2: Соберите интерактивный объект
Для отправки
order_details предприятиям необходимо собрать интерактивный объект типа order_details , состоящий из следующих компонентов:| Объект | Описание |
|---|---|
типобъект |
Необходимый.
Должно быть «order_details». |
заголовокобъект |
Необязательный.
Содержимое заголовка отображается поверх сообщения. Если заголовок не указан, API использует изображение первого доступного продукта в качестве заголовка |
телообъект |
Необходимый.
Объект, содержащий тело сообщения. Объект содержит следующее поле:
текстовая строкатело сообщения. Содержимое сообщения. Поддерживаются эмодзи и разметка Markdown. Максимальная длина — 1024 символа. |
нижний колонтитулобъект |
Необязательный.
Объект, содержащий нижнюю часть сообщения. Объект содержит следующие поля:
текстовая строканижний колонтитул . Содержимое нижнего колонтитула. Поддерживаются эмодзи, разметка Markdown и ссылки. Максимальная длина — 60 символов. |
действиеобъект |
Необходимый.
Объект действия, который пользователь должен выполнить после прочтения сообщения. Этот объект действия содержит следующие поля:
строка имениобъект параметров |
Объект параметров
| Объект | Описание |
|---|---|
reference_idнить |
Необходимый.
Уникальный идентификатор заказа или счета-фактуры, предоставленный компанией. Он не может быть пустой строкой и может содержать только английские буквы, цифры, подчеркивания, дефисы или точки, и не должен превышать 35 символов.
Идентификатор ссылки (reference_id) должен быть уникальным для каждого order_details , относящегося к одному и тому же заказу. Если партнер хочет отправить несколько сообщений order_details для одного и того же заказа, счета-фактуры и т. д., рекомендуется включить порядковый номер в reference_id ( например,reference_id . |
типобъект |
Необходимый.
Тип товаров, оплачиваемых в этом заказе. В настоящее время поддерживаются варианты цифровых товаров и физических товаров. |
бенефициарымножество |
Требуется для отгружаемых физических товаров.
Список получателей данного заказа. Получатель — это предполагаемый получатель физических товаров, указанных в заказе. Список содержит следующие поля:
Информация о получателях не отображается пользователям, но необходима по юридическим причинам и в целях соблюдения нормативных требований. строка именистрока адрес_строка1строка адрес_строка2городская струнастрока состояниякантри струнастрока почтового индекса |
payment_type |
Необходимый.
Должно быть «upi». |
payment_configuration |
Необходимый.
Название предварительно настроенной конфигурации оплаты, используемой для данного заказа, не должно превышать 60 символов. |
валюта |
Необходимый.
Валюта для этого заказа. В настоящее время поддерживается только валюта INR . |
Общая суммаобъект |
Необходимый.
Объект
total_amount содержит следующие поля:смещение целое число100 индийских рупий .
значение целое числоЗначение total_amount.value должно быть равно order.subtotal.value + order.tax.value + order.shipping.value - order.discount.value . |
заказобъект |
Необходимый.
см. объект заказа . |
Объект заказа
| Объект | Описание |
|---|---|
статуснить |
Необходимый.
order_details находится в состоянии ожидания только допустимое значение .В сообщении order_status статус может быть следующим: pending , captured или failed . |
типнить |
Необязательный.
Поддерживается только значение quick_pay . При передаче этого поля кнопка «Просмотреть и оплатить» скрывается, и в окне с подробной информацией о заказе отображается только кнопка «Оплатить сейчас». |
предметыобъект |
Необходимый.
Объект со списком товаров для данного заказа, содержащий следующие поля:
retailer_id stringстрока имениобъект изображенияИспользование этого поля изображения ограничит массив товаров максимум 10 элементами, и его нельзя использовать с retailer_id или catalog_id .суммы со значением и смещением — см. поле «Итоговая сумма» выше.sale_amount amount objectколичество целое числострока country_of_origincatalog_id отсутствует. Страна происхождения продукта.
importer_name stringcatalog_id отсутствует. Название компании-импортера.
importer_adress stringcatalog_id отсутствует. Адрес компании-импортера. |
промежуточная суммаобъект |
Необходимый.
Значение должно быть равно
order.amount.value , умноженному на order.amount.quantity .Для пояснения полей
«смещение» и «значение» обратитесь к поля «общая сумма» Следующие поля являются частью
«Промежуточный итог» :смещение целое число100 индийских рупий.
значение целое число |
налогобъект |
Необходимый.
Налоговая информация по данному заказу содержит следующие поля:
смещение целое число100 индийских рупий.
значение целое числострока описания |
перевозкиобъект |
Необязательный.
Стоимость доставки заказа. Объект содержит следующие поля:
смещение целое число100 индийских рупий.
значение целое числострока описания |
скидкаобъект |
Необязательный.
Скидка на заказ. Объект содержит следующие поля:
смещение целое число100 индийских рупий.
значение целое числострока описанияdiscount_program_name string |
catalog_idобъект |
Необязательный.
Уникальный идентификатор каталога Facebook, используемого компанией. |
срок действияобъект |
Необязательный.
Срок действия данного заказа. Бизнес-процесс должен определить следующие поля внутри этого объекта:
с меткой времени – UTC-метка времени в секундах, когда должен истечь срок действия ордера. Минимальный порог – 300 секунд.Описание – Текстовое пояснение к сроку действия. Максимальное количество символов – 120. |
Объект изображения элемента
| Объект | Описание |
|---|---|
|
строка ссылки |
Обязательно. Ссылка на изображение, которое будет показано пользователю. Должен быть файлом image/jpeg или image/png и иметь 8-битную кодировку, формат RGB или RGBA. Соответствует тем же требованиям, что и изображение в медиафайлах. |
В итоге интерактивный объект для интеграции на основе каталога должен выглядеть примерно так:
Для интеграции, не основанной на каталоге, то есть когда catalog-id отсутствует, пример полезной нагрузки выглядит следующим образом:
Шаг 3: Добавьте общие параметры сообщения
После завершения создания интерактивного объекта добавьте остальные параметры, формирующие сообщение:
recipient_type , to и type . Не забудьте установить тип как interactive .Шаг 4: Выполните POST-запрос к конечной точке Messages
Отправьте POST-запрос на
/[PHONE_NUMBER_ID]/messages, используя JSON- объект. Если ваше сообщение будет отправлено успешно, вы получите следующий ответ:Со всеми возможными ошибками и инструкциями по их обработке можно ознакомиться в разделе WhatsApp Cloud API, Коды ошибок .
Шаг 5: Покупатель оплачивает заказ
Потребители могут оплатить покупку с помощью платежной системы WhatsApp или любого приложения, поддерживающего UPI и установленного на устройстве.
Шаг 6: Получайте уведомления об обновлении статуса транзакции от платежного шлюза
Компании получают обновления счета-фактуры через веб-хуки платежного шлюза при изменении статуса транзакции, инициированной пользователем. Уникальный идентификатор tr (reference-id, переданный в
order_details ) может использоваться для сопоставления транзакции со счетом-фактурой потребителя или интерактивным сообщением с подробной информацией о заказе.Для получения точной информации о платежных сигналах обратитесь к документации вашего поставщика услуг. Если вы не получаете веб-хуки от вашего поставщика услуг, обратитесь к нему, чтобы включить их.
Шаг 7: Обновить статус заказа
Получив сигналы о транзакции от платежного шлюза через веб-хук, компания должна обновить статус заказа, чтобы пользователь был в курсе. В настоящее время мы поддерживаем следующие значения статуса заказа:

| Ценить | Описание |
|---|---|
в ожидании |
Пользователь еще не оплатил заказ успешно |
обработка |
Оплата пользователем авторизована, продавец/партнер выполняет заказ, оказывает услугу и т. д. |
частично отгружено |
Часть товаров из заказа уже отправлена продавцом |
отправленный |
Все товары в заказе были отправлены продавцом |
завершенный |
Заказ выполнен, и от пользователя или партнера/продавца дальнейших действий не требуется |
отменено |
Партнер/продавец хочет отменить order_details для заказа/счета. Обновление статуса не удастся, если по этому сообщению order_details успешный или ожидающий |
Как правило, компании обновляют
статус заказа, используя либо уведомления об изменении статуса платежа в WhatsApp, либо собственные внутренние процессы. Для обновления статуса заказа партнер отправляет пользователю сообщение с указанием статуса заказа В следующей таблице описаны возвращаемые значения:
| Ценить | Описание |
|---|---|
reference_id |
Идентификатор, предоставленный партнером в сообщении order_details |
статус |
Новый статус |
описание |
Дополнительный текст для передачи информации о статусе заказа в поле «Детали заказа» . Может быть полезен при отправке уведомления об отмене. Максимальное количество символов — 120. |
Продавец всегда должен отправлять это сообщение о статусе заказа покупателю после получения обновлений по транзакции. Поскольку сообщение с подробной информацией о заказе и отображение экрана с подробной информацией о заказе связаны с обновлениями статуса заказа.
Шаг 8: Сверка платежей
Предприятиям следует использовать свои банковские выписки для сверки платежей, используя reference_id,
указанный в order_details .Предпочитаемый продавцом способ оплаты UPI
Теперь продавцы могут указать до
одного приложения для оплаты через UPI, которое будет отображаться в процессе оформления заказа. Предпочтительное приложение для оплаты продавца будет отображаться вверху списка доступных приложений UPI на экране «Выбор способа оплаты». Для включения этой возможности партнерам необходимо указать внешний идентификатор приложения в сведениях о заказе или в сообщении счета-фактуры.Примечание: Эта функция доступна в потребительских приложениях версии 2.24.21.0 и выше
Обновления в данных заказа и полезной нагрузке
Список поддерживаемых приложений:
| Приложение UPI | Идентификатор приложения, который будет передан в полезной нагрузке «Детали заказа» |
|---|---|
|
Google Pay |
gpay |
|
PhonePe |
телефон |
|
PayTm |
Paytm |
|
Amazon Pay |
Amazon Pay |
|
КРЕД |
кредит |
|
Мобиквик |
мобиквик |
Контрольный список для интегрированных торговых площадок
Убедитесь, что
order_status отправляется потребителю, информируя его об обновлениях заказа после получения обновлений транзакции по заказу.Убедитесь, что продавец проверен, а контакт WABA отмечен галочкой «проверено».
Убедитесь, что WABA сопоставлен с соответствующим уровнем отправки сообщений, инициированных продавцом (1000, 10000 и 10000 сообщений в день)
Продавец должен указать контактную информацию службы поддержки клиентов на экране профиля на случай, если покупатель захочет сообщить о каких-либо проблемах.