UPI
Вариант интеграции QP
Для этого варианта интеграции поддерживаются следующие типы транзакций:
Оплата
Запрос
Info
Уточните поддерживаемые валюты и страны у аккаунт менеджера.
Отправьте запрос оплаты со следующими дополнительными параметрами:
Параметр | Тип данных | Описание |
---|---|---|
method | object | Секция параметров способа оплаты. |
type * обязательный |
string | upi |
account * обязательный |
string | Аккаунт в UPI. |
customer | object | Cекция информации о покупателе. |
first_name * обязательный |
string | Имя клиента. |
last_name * обязательный |
string | Фамилия клиента. |
email * обязательный |
string | Адрес электронной почты клиента. |
Ответ
Секция upi
из ответа на запрос будет иметь все те же параметры, что были присланы в запросе, а также один дополнительный параметр form
с необходимыми параметрами, чтобы сформировать веб-форму для перехода на оплату.
Выплата средств
Запрос
Отправьте запрос выплаты средств со следующие дополнительные параметры:
Параметр | Тип данных | Описание |
---|---|---|
method | object | Секция параметров способа выплаты. |
type * обязательный |
string | upi |
account * обязательный |
string | Аккаунт в UPI. |
customer | object | Секция информации о покупателе. |
first_name * обязательный |
string | Имя покупателя. |
last_name * обязательный |
string | Фамилия покупателя. |
email * обязательный |
string | Адрес электронной почты покупателя. |
address * обязательный |
string | Адрес покупателя. |
phone * обязательный |
string | 10 цифр номера телефона покупателя без кода страны. |
Ответ
Секция upi
из ответа на запрос будет иметь все те же параметры, что были присланы в запросе.
Вариант интеграции EА
Для этого варианта интеграции поддерживаются следующие типы транзакций:
Оплата
Процесс проведения оплаты содержит следующие этапы:
- Ваш клиент инициирует проведение оплаты.
- Вы выполняете запрос на проведение оплаты с обязательными параметрами, указанными ниже.
- Система обрабатывает запрос.
-
В зависимости от переданных параметров вы получаете один из двух ресурсов:
- ссылку на окно мобильного приложения UPI, куда необходимо перенаправить клиента;
- QR-код, который необходимо отобразить клиенту.
-
Клиент переходит по ссылке или сканирует QR-код для завершения оплаты.
- Вы получаете автоматическое уведомление о статусе платежа, если в запросе на проведение выплаты был передан параметр
notification_url
.
Info
Ссылка на приложение UPI, которую вы получаете напрямую в ответе на запрос или которую получает ваш клиент при сканировании QR-кода, действительна только 15 минут.
Запрос
Отправьте запрос оплаты со следующими дополнительными параметрами:
Параметр | Тип данных | Описание |
---|---|---|
method | object | Секция параметров способа оплаты. |
type * обязательный |
string | upi |
account * обязательный |
string | VPA/ UPI ID клиента. |
customer | object | Секция данных клиента. |
first_name * обязательный |
string | Имя клиента. |
last_name * обязательный |
string | Фамилия клиента. |
email * обязательный |
string | Адрес электронной почты клиента. |
phone * обязательный |
string | Номер телефона клиента с кодом региона. |
additional_data | object | Секция, содержащая дополнительную информацию о платеже. |
browser * обязательный |
object | Секция параметров браузера клиента. |
user_agent * условно обязательный |
string | Cтрока агента пользователя текущего браузера. Соответствует параметру navigator.userAgent из JavaScript.Обязателен для получения QR-кода. По умолчанию, если в запросе не переданы параметры секции additional_data , вы получите ссылку на окно мобильного приложения UPI. |
Info
Минимальная сумма платежа - 300 индийских рупий (передается как 30000
).
Ответ
Секция upi
из ответа на запрос имеет все те же параметры, что были присланы в запросе.
Дополнительно, в зависимости от переданных в запросе параметров ответ будет содержать следующее:
- ссылка на приложение UPI как значение параметра
form.action
; - закодированный в base64 PNG-файл QR-кода как значение параметра
additional_data.payment_method.qr_code
.
Вариант интеграции AP
Для этого варианта интеграции поддерживаются следующие типы транзакций:
Оплата
Запрос
Отправьте запрос оплаты со следующими дополнительными параметрами:
Параметр | Тип данных | Описание |
---|---|---|
method | object | Секция параметров способа оплаты. |
type * обязательный |
string | upi |
customer | object | Cекция информации о покупателе. |
email * обязательный |
string | Адрес электронной почты покупателя. |
Пример запроса
curl --location --request POST 'https://api.constantpos.com/beyag/transactions/payments' \
--header 'Authorization: Basic {base-64-encoded Shop ID:Secret key}' \
--header 'Content-Type: application/json' \
--data-raw '{
"request":{
"amount":300,
"currency":"INR",
"description":"your_description",
"test": true,
"tracking_id":"your_unique_number",
"language":"en",
"notification_url":"https://your_notification_url.com",
"return_url":"https://your_return_url.com",
"customer":{
"email": "test@test.com"
},
"method":{
"type": "upi"
}
}
}'
Ответ
Ответ на запрос будет дополнительно содержать секцию upi
с параметрами способа оплаты и секцию form
с необходимыми параметрами, чтобы сформировать веб-форму. Направьте покупателя на сгенерированную веб-форму для завершения оплаты.
Пример ответа
{
"transaction": {
"uid": "d2d123f0-7b63-48fc-1234-30c768fe1234",
"type": "payment",
"status": "pending",
"amount": 300,
"currency": "INR",
"description": "your_description",
"created_at": "2023-04-26T06:50:04Z",
"updated_at": "2023-04-26T06:50:05Z",
"method_type": "upi",
"receipt_url": "https://my.constantpos.com/customer/transactions/d2d123f0-7b63-48fc-1234-30c768fe1234/1bc5bee2ccb03a7616944dd8092778e02f399135f0963d9ea8963c04371acc40?language=en",
"payment": {
"status": "pending",
"gateway_id": 2707,
"message": "Transaction was initialized."
},
"upi": {
"type": "upi"
},
"customer": {
"email": "test@test.com",
"ip": null
},
"message": "Transaction was initialized.",
"tracking_id": "your_unique_number",
"test": true,
"language": "en",
"billing_address": {
"email": "test@test.com"
},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": false
},
"form": {
"action": "{form_url}",
"method": "GET",
"fields": [
{
"type": "hidden",
"name": "PAY_ID",
"value": "1234567890123456"
},
{
"type": "hidden",
"name": "ORDER_ID",
"value": "d2d123f0-7b63-48fc-1234-30c768fe1234"
},
{
"type": "hidden",
"name": "AMOUNT",
"value": 300
},
{
"type": "hidden",
"name": "CURRENCY_CODE",
"value": "356"
},
{
"type": "hidden",
"name": "CUST_EMAIL",
"value": "test@test.com"
},
{
"type": "hidden",
"name": "RETURN_URL",
"value": "https://api.constantpos.com/beyag/transactions/returns/e5d848535e2d7db10b6c341d238bab8a206dbbba770cde85071f0f83bb30382c/d2d123f0-7b63-48fc-1234-30c768fe1234"
},
{
"type": "hidden",
"name": "HASH",
"value": "C123B3D09E0123D4F130B9B040AB928FC22871C9237FA7CD335DB9B121A45EB4"
}
]
}
}
}
Запрос статуса транзакции
Запрос
Если в запросе на проведение оплаты или выплаты был передан параметр notification_url
, система Constantpos высылает вам автоматическое уведомление о статусе транзакции. Обратите внимание! Constantpos может потребоваться некоторое время на подтверждение статуса транзакции у провайдера способа оплаты.
Если необходимо дополнительно узнать статус транзакции, отправьте запрос на получение статуса.
Ответ
Ответ будет содержать статус транзакции, секцию параметров способа оплаты, а также иную информацию согласно описанию запроса на получение статуса транзакции.
Вариант интеграции PF
Для этого варианта интеграции поддерживается тип транзакций оплата:
Оплата
Описание процесса оплаты
- Покупатель выбирает UPI в качестве способа оплаты на сайте торговца и указывает свой VPA (Virtual Payment Address).
- Торговец отправляет запрос оплаты в Constantpos, указав VPA покупателя.
- Constantpos возвращает торговцу статус оплаты:
pending
илиfailed
. - Покупатель получает запрос подтверждения оплаты в своем аккаунте приложения UPI.
- Покупатель подтверждает оплату в приложении UPI.
- Constantpos высылает торговцу автоматическое уведомление со статусом
successful
,failed
илиpending
.
Запрос
Отправьте запрос оплаты, указав следующие дополнительные параметры:
Параметр | Тип данных | Описание |
---|---|---|
method | object | Секция параметров способа оплаты. |
type * обязательный |
string | upi |
account * обязательный |
string | VPA/ UPI ID покупателя. |
customer * обязательный | object | Секция информации о покупателе. |
first_name * обязательный | string (30) | Имя покупателя. |
last_name * обязательный | string(30) | Фамилия покупателя. |
state * обязательный | string (2) | Штат покупателя. Укажите 2 последних символа из геокода формата ISO 3166-2. |
city * обязательный | string | Город покупателя. |
zip * обязательный | string (6) | Почтовый индекс покупателя. |
address * обязательный | string (100) | Адрес покупателя. |
phone * обязательный |
string (14) | Номер телефона покупателя. |
email * обязательный |
string | Адрес электронной почты покупателя. |
Пример запроса
{
"request": {
"amount": 10042,
"currency": "INR",
"description": "description",
"test": false,
"customer": {
"first_name": "John",
"last_name": "Doe",
"state": "KA",
"city": "Bangalore",
"zip": "560002",
"address": "1st Street",
"phone": "17777777777",
"email": "user@example.com"
},
"method": {
"type": "upi",
"account": "1234"
}
}
}
Ответ
Секция upi
в ответе будет содержать те же параметры, что и в запросе.
Вариант интеграции PFR
Описание процесса оплаты
- Покупатель инициирует UPI оплату на странице торговца.
- Торговец отправляет запрос оплаты в Constantpos.
- Constantpos возвращает торговцу ссылку на страницу оплаты.
- Торговец перенаправляет покупателя на страницу оплаты.
- Покупатель вводит свой VPA ID на странице оплаты.
- При необходимости покупатель также вводит код подтверждения.
- Constantpos высылает торговцу автоматическое уведомление.
- Constantpos финализирует транзакцию.
- Constantpos высылает email уведомления о статусе транзакции торговцу и покупателю, если включены соответствующие настройки.
Для этого варианта интеграции поддерживается тип транзакции оплата:
Оплата
Запрос
Отправьте запрос оплаты, указав следующие дополнительные параметры:
Параметр | Тип данных | Описание |
---|---|---|
request | object | |
return_url * обязательный |
string | URL, на который будет возвращен покупатель после завершения операции в платёжной системе. |
method | object | Секция параметров способа оплаты. |
type * обязательный |
string | upi |
customer * обязательный | object | Секция информации о покупателе. |
first_name * обязательный | string (30) | Имя покупателя. |
last_name * обязательный | string(30) | Фамилия покупателя. |
city | string | Город покупателя. |
zip | string (6) | Почтовый индекс покупателя. |
phone | string (10) | Номер телефона покупателя. |
country | string (3) | Страна покупателя. Если параметр отправляется, он должен иметь значение IND . |
email * обязательный |
string | Адрес электронной почты покупателя. |
Info
Минимальная сумма оплаты 200 индийских рупий. Максимальная сумма транзакции 99999 индийских рупий. Значение `amount` должно быть передано в минимальных денежных единицах, например, 20000 для 200 INR.
Пример запроса
{
"request": {
"amount": 20000,
"currency": "INR",
"description": "description",
"test": false,
"return_url":"https://your_return_url.com",
"customer": {
"first_name": "John",
"last_name": "Doe",
"city": "Bangalore",
"zip": "560002",
"phone": "177777777",
"email": "user@example.com"
},
"method": {
"type": "upi"
}
}
}
Ответ
Секция upi
из ответа на запрос будет иметь те же параметры, что были присланы в запросе, а также дополнительный параметр form
с необходимыми параметрами, чтобы сформировать веб-форму для перехода на оплату.
Пример ответа
{
"transaction": {
"uid": "773f2cf2-8c63-9728-b1d8-7817eefb2bc8",
"type": "payment",
"status": "pending",
"amount": 20000,
"currency": "INR",
"description": "description",
"created_at": "2023-07-24T14:34:24Z",
"updated_at": "2023-07-24T14:34:24Z",
"method_type": "upi",
"receipt_url": "https://my.constantpos.com/customer/transactions/e8db4900-500a-46d7-b3fc-9f0068975458/7f20310d5d02582ff3afg3db9c26a67906b0684a9a61dc41f3147f04e1068e79?language=en",
"payment": {
"status": "pending",
"gateway_id": 3031,
"ref_id": "5927ef2093710ce8c65f9e5ee15c41",
"message": "Initialized"
},
"upi": {
"type": "upi"
},
"customer": {
"first_name": "John",
"last_name": "Doe",
"email": "user@example.com",
"city": "Bangalore",
"zip": "560002",
"phone": "177777777",
"ip": null
},
"message": "Initialized",
"test": true,
"billing_address": {
"first_name": "John",
"last_name": "Doe",
"email": "user@example.com",
"city": "Bangalore",
"zip": "560002",
"phone": "177777777"
},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"form": {
"action": "https://pfr.in/v2/executepaymentrequesturl/dejai9db-ef74-4cdc-ba66-197951409a21",
"method": "GET",
"fields": []
}
}
}
Вариант интеграции II
Описание процесса оплаты
- Покупатель инициирует UPI оплату на странице торговца.
- Торговец отправляет запрос оплаты в Constantpos.
- Constantpos возвращает торговцу ссылку на страницу оплаты.
- Торговец перенаправляет покупателя на страницу оплаты.
- Покупатель совершает оплату.
- Constantpos высылает торговцу автоматическое уведомление.
Оплата
Запрос
Отправьте запрос оплаты, указав следующие дополнительные параметры:
Параметр | Тип данных | Описание |
---|---|---|
request | object | |
return_url * обязательный |
string | URL, на который будет возвращен покупатель после завершения операции в платёжной системе. |
method | object | Секция параметров способа оплаты. |
type * обязательный |
string | upi |
account * обязательный |
string | VPA/ UPI ID покупателя. |
customer * обязательный |
object | Секция информации о покупателе. |
first_name * обязательный |
string | Имя покупателя. |
last_name * обязательный |
string | Фамилия покупателя. |
email * обязательный |
string (100) | Адрес электронной почты покупателя. |
phone * обязательный |
string | Номер телефона покупателя. |
country | string | Страна покупателя в формате ISO 3166-1 alpha-2. |
city | string | Город покупателя. |
zip | string | Почтовый индекс покупателя. |
address | string | Адрес покупателя. |
Пример запроса
{
"request": {
"amount": 20000,
"currency": "INR",
"description": "description",
"test": false,
"return_url": "https://someurl.com",
"customer": {
"first_name": "John",
"last_name": "Doe",
"country": "IN",
"phone": "1770000077",
"email": "user@example.com"
},
"method": {
"type": "upi",
"account": "1234"
}
}
}
Ответ
Секция upi
из ответа на запрос будет иметь те же параметры, что были присланы в запросе, а также дополнительный параметр form
с необходимыми параметрами, чтобы сформировать веб-форму для перехода на оплату.
Пример ответа
{
"transaction": {
"uid": "9c27d028-7b0e-4ced-9a32-d65a623c07a7",
"type": "payment",
"status": "pending",
"amount": 20000,
"currency": "INR",
"description": "description",
"created_at": "2023-12-22T11:26:59Z",
"updated_at": "2023-12-22T11:27:00Z",
"method_type": "upi",
"receipt_url": "https://my.constantpos.com/customer/transactions/9c27d028-7b0e-4ced-9a32-d65a623c07a7/9567f4ebd9d2d7ca21b07642c236ae7d3eb892fb2c75d972ce431857771e44d8",
"payment": {
"status": "pending",
"gateway_id": 3559,
"message": "Transaction was initialized."
},
"upi": {
"type": "upi"
},
"customer": {
"first_name": "John",
"last_name": "Doe",
"email": "user@example.com",
"country": "IN",
"phone": "17700000777777",
"ip": null
},
"manually_corrected_at": null,
"message": "Transaction was initialized.",
"test": false,
"billing_address": {
"first_name": "John",
"last_name": "Doe",
"email": "user@example.com",
"country": "IN",
"phone": "17700000777777"
},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": true
},
"form": {
"action": "payment-url/9c27d028-7b0e-4ced-9a32-d65a623c07a7",
"method": "POST",
"fields": []
}
}
}
Вариант интеграции GP
Описание процесса оплаты
- Покупатель инициирует UPI оплату на странице торговца.
- Торговец отправляет запрос оплаты в Constantpos.
- Constantpos возвращает торговцу ссылку для завершения оплаты.
- Торговец перенаправляет покупателя на полученную ссылку, которая открывается в приложении для совершения UPI оплаты на устройстве покупателя.
- Покупатель подтверждает оплату в приложении.
- Constantpos высылает торговцу автоматическое уведомление со статусом оплаты.
Info
Этот вариант интеграции поддерживает только валюту INR
.
Оплата
Запрос
Отправьте запрос оплаты, указав следующие дополнительные параметры:
Параметр | Тип данных | Описание |
---|---|---|
request | object | |
amount * обязательный |
bigInteger | Сумма транзакции, должна быть целым числом в минимальных денежных единицах, например, 50000 (500 рупий). Последние цифры значения параметра должны быть 00 . |
return_url * обязательный |
string | URL, на который будет возвращен покупатель после завершения операции в платёжной системе. |
method | object | Секция параметров способа оплаты. |
type * обязательный |
string | upi |
Пример запроса
{
"request": {
"amount": 20000,
"currency": "INR",
"description": "description",
"test": false,
"return_url": "https://your_return_url.com",
"method": {
"type": "upi"
}
}
}
Ответ
Ответ на запрос выплаты средств будет дополнительно содержать секцию form
. Направьте покупателя на URL, переданный как значение параметра form.action
.
Пример ответа
{
"transaction": {
"uid": "e9237813-c728-4e1b-9173-cb87648b2a13",
"type": "payment",
"status": "pending",
"amount": 20000,
"currency": "INR",
"description": "description",
"created_at": "2023-12-27T12:19:50Z",
"updated_at": "2023-12-27T12:19:51Z",
"method_type": "upi",
"receipt_url": "https://my.constantpos.com/customer/transactions/e9237813-c728-4e1b-9173-cb87648b2a13/03a18687d5632f35bc743a503b05925640ad5db54ba9baef5d1b7c563163237f",
"payment": {
"status": "pending",
"gateway_id": 3572,
"ref_id": "5R6R5L2023122754950",
"message": "Transaction Initiated Successfully",
"bank_code": "200"
},
"upi": {
"type": "upi"
},
"customer": {
"email": null,
"ip": null
},
"manually_corrected_at": null,
"message": "Transaction Initiated Successfully",
"test": false,
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": true
},
"form": {
"action": "upi://pay?ver=01&mode=15&am=200.00&mam=200.00&cu=INR&pa=payee1@example1&pn=1SHOP&mc=5816&tr=PAYEE1PPTK5eA6QJLxuxMkWQety1eY&mid=PARB6332&msid=WES-4382&mtid=WES-4382&tn=PRB",
"method": "GET",
"fields": [
{
"name": "deep_link",
"value": "upi://pay?ver=01&mode=15&am=200.00&mam=200.00&cu=INR&pa=payee1@example1&pn=1SHOP&mc=5816&tr=PAYEE1PPTK5eA6QJLxuxMkWQety1eY&mid=PARB6332&msid=WES-4382&mtid=WES-4382&tn=PRB"
}
]
}
}
}