Перейти к содержанию

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А

Для этого варианта интеграции поддерживаются следующие типы транзакций:


Оплата

Процесс проведения оплаты содержит следующие этапы:

  1. Ваш клиент инициирует проведение оплаты.
  2. Вы выполняете запрос на проведение оплаты с обязательными параметрами, указанными ниже.
  3. Система обрабатывает запрос.
  4. В зависимости от переданных параметров вы получаете один из двух ресурсов:

    • ссылку на окно мобильного приложения UPI, куда необходимо перенаправить клиента;
    • QR-код, который необходимо отобразить клиенту.
  5. Клиент переходит по ссылке или сканирует QR-код для завершения оплаты.

  6. Вы получаете автоматическое уведомление о статусе платежа, если в запросе на проведение выплаты был передан параметр 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

Для этого варианта интеграции поддерживается тип транзакций оплата:


Оплата

Описание процесса оплаты

  1. Покупатель выбирает UPI в качестве способа оплаты на сайте торговца и указывает свой VPA (Virtual Payment Address).
  2. Торговец отправляет запрос оплаты в Constantpos, указав VPA покупателя.
  3. Constantpos возвращает торговцу статус оплаты: pending или failed.
  4. Покупатель получает запрос подтверждения оплаты в своем аккаунте приложения UPI.
  5. Покупатель подтверждает оплату в приложении UPI.
  6. 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

Описание процесса оплаты

  1. Покупатель инициирует UPI оплату на странице торговца.
  2. Торговец отправляет запрос оплаты в Constantpos.
  3. Constantpos возвращает торговцу ссылку на страницу оплаты.
  4. Торговец перенаправляет покупателя на страницу оплаты.
  5. Покупатель вводит свой VPA ID на странице оплаты.
  6. При необходимости покупатель также вводит код подтверждения.
  7. Constantpos высылает торговцу автоматическое уведомление.
  8. Constantpos финализирует транзакцию.
  9. 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

Описание процесса оплаты

  1. Покупатель инициирует UPI оплату на странице торговца.
  2. Торговец отправляет запрос оплаты в Constantpos.
  3. Constantpos возвращает торговцу ссылку на страницу оплаты.
  4. Торговец перенаправляет покупателя на страницу оплаты.
  5. Покупатель совершает оплату.
  6. 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

Описание процесса оплаты

  1. Покупатель инициирует UPI оплату на странице торговца.
  2. Торговец отправляет запрос оплаты в Constantpos.
  3. Constantpos возвращает торговцу ссылку для завершения оплаты.
  4. Торговец перенаправляет покупателя на полученную ссылку, которая открывается в приложении для совершения UPI оплаты на устройстве покупателя.
  5. Покупатель подтверждает оплату в приложении.
  6. 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"
            }
      ]
    }
  }
}