Перейти до основного вмісту

mVisa

Загальні відомості

mVisa є платіжним методом, що забезпечує ваших клієнтів можливістю проводити оплату з використанням мобільного телефону. Для оплати клієнт повинен відсканувати QR-код, розташований у вашій точці продажу, за допомогою мобільного застосунку mVisa. Зазначений код вже містить інформацію про мерчанта та номер його рахунку та може бути:

  • Статичним - незмінний код, що потребує від клієнтів самостійного введення суми для сплати.
  • Динамічним - код, що генерується під кожну окрему транзакцію та вже містить відомості про суму до сплати.

Інтеграція

Щоб згенерувати QR-код необхідно відправити POST-запит з такими query-параметром:

ParameterTypeRequiredDescription
typeStringmVisa QR code type

Вказаний query-параметр може мати одне з таких значень:

  • raw - alpha-numeric string
  • png - PNG 294х294 px

Параметри запиту:

ParameterTypeRequiredDescription
pos_idUUIDMerchant's identifier (POS_ID)
amountNumberAmount of the future transaction.
If not passed, the QR code will be static (it requires customers to enter the amount)
currencyCURRENCYTransaction currency (ISO_4217)
mccMCCMCC of the future transaction
amountNumberTransaction amount
merchant_panStringPAN number
merchant_nameStringMerchant name
merchant_cityStringMerchant city
country_codeStringCountry code (ISO 3166-1 (alpha-2))

Передача цих параметрів є обовʼязковою тільки якщо вони не були попередньо налаштовані через Tranzzo:

  • mcc
  • merchant_pan
  • merchant_name
  • merchant_city
  • country_code
Важливо

Параметри, що передані у запиті мають вищий пріоритет, аніж ті, що попередньо налаштовані через Tranzzo.

Приклад запиту:

$ curl -i "https://cpay.tranzzo.com/api/v1/mvisa?type=${QR_TYPE}" \
-H "Content-Type: application/json" \
-H "X-API-AUTH: CPAY ${API_KEY}:${API_SECRET}" \
-H "X-API-KEY: ${ENDPOINTS_KEY}" \
-X POST -d '{
"pos_id": "'${POS_ID}'",
"amount": 100,
"currency": "UAH",
"merchant_pan": "4111111111111111",
"mcc": "1234",
"country_code": "UA",
"merchant_name": "TRANZZO",
"merchant_city": "Kyiv"
}'

Параметри відповіді для raw-формату:

ParameterTypeDescription
rawStringRaw QR code as alpha-numeric string

Приклад відповіді для raw-формату:

{
"raw": "000201021642424242424242425204123453039805406100.005802UA5907TRANZZO6004Kyiv63044A84"
}

Параметри відповіді для png-формату:

  • QR код розміром 294 x 294 px
  • Content-type: application/octet-stream

Обробка платежів mVisa

Платіжні дані мають відправлятися до Tranzzo API з використанням параметрів запиту властивих для direct-платежів з використанням карткових даних.

У параметрі payway повинно передаватися значення mvisa.

Окрім того, додатково має передаватися параметр:

ParameterTypeRequiredDescription
properties.mvisa_qrStringRaw QR code as alpha-numeric string

Приклад запиту:

$ curl "https://cpay.tranzzo.com/api/v1/payment" \
-H "Content-Type: application/json" \
-H "X-API-AUTH: CPAY ${API_KEY}:${API_SECRET}" \
-H "X-API-KEY: ${ENDPOINTS_KEY}" \
-X POST -d '{
"pos_id": "${POS_ID}",
"mode": "direct",
"method": "purchase",
"amount": 1,
"currency": "UAH",
"description": "Order description",
“payway”: “mvisa_qr”
"order_id": "123",
"properties": { "mvisa_qr": "000201021642424242424242425204123453039805406100.005802UA5907TRANZZO6004Kyiv63044A84" }
"order_3ds_bypass": "always",
"cc_number": "4242424242424242",
"exp_month": 2,
"exp_year": 24,
"card_cvv": "111",
"server_url": "https://callback.blackhole.com/callback",
"result_url": "https://example.com/result",
"payload": "sale=true",
"customer_referrer": "https://example.com",
"browser_fingerprint": {
"browserColorDepth": "24",
"browserScreenHeight": "860",
"browserScreenWidth": "1600",
"browserJavaEnabled": "false",
"browserLanguage": "uk-UA",
"browserTimeZone": "Europe/Kiev",
"browserTimeZoneOffset": "-120",
"browserAcceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"browserIpAddress": "127.0.0.1",
"browserUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36"
}
}'
Важливо

Сума та валюта в тілі запиту повинна відповідати тій, що встановлювалася при генерації QR-коду.