Платіжний шлюз Portmone.com
Терміни та визначення
| Термін | Визначення |
|---|---|
| Мерчант, Інтернет-магазин або Партнер | Організація, що уклала договір з Portmone.com про надання послуг з приймання платежів |
| Покупець, Клієнт | Відвідувач Інтернет-магазину Мерчанта з метою ознайомлення з асортиментом товарів (послуг) та здійснення покупки |
| Картка, Платіжна картка | Платіжні картки міжнародних платіжних систем Visa, Mastercard та Національної платіжної системи ПРОСТІР |
| Авторизація | Процес надання прав доступу або інших повноважень Покупцеві, програмі або процесу |
| Рекурентні платежі | Автоматичні платежі (не потребують участі клієнта та повторного введення реквізитів картки), що здійснюються за згодою клієнта |
| Токен | Цифровий ідентифікатор картки, що генерується при першій операції і далі використовується для швидкої оплати. Токен може використовуватись виключно для повторення аналогічної транзакції, що й при першій оплаті |
| SHOPBILLID | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| CVV2/CVC2 | CVV2 (Card Verification Value 2) – тризначний код перевірки дійсності картки платіжної системи Visa. Платіжна система Mastercard має аналогічний код перевірки дійсності – CVC2 (Card Validation Code 2) |
| Банк-еквайр | Банк, що організовує точки приймання банківських карток (термінали, банкомати) та здійснює весь комплекс фінансових операцій, пов'язаних з виконанням розрахунків і платежів за банківськими картками в цих точках |
| Банк-емітент банківських карток | Банк, що є учасником платіжної системи та здійснює випуск (емісію) та обслуговування банківських карток |
| 3-D Secure | 3-D Secure – це протокол, який використовується для забезпечення додаткового рівня безпеки онлайн-платежів з використанням банківських карток |
| IBAN | Міжнародний номер банківського рахунку (англ. International Bank Account Number) |
| МПС | Міжнародна платіжна система |
1. Технологія приймання оплат
Опис механізму приймання оплат платіжними картками на Інтернет-сайті магазину:
- Покупець обирає товар на сайті (або у мобільному додатку) Магазину, формує замовлення та обирає форму оплати за платіжними картками.
- Магазин переадресує Покупця на авторизаційний сервер системи Portmone.com, з передачею ряду необхідних параметрів (ідентифікатор партнера у системі Portmone.com, номер замовлення, його сума тощо).
- Авторизаційний сервер Portmone.com встановлює з Покупцем з'єднання за захищеним протоколом (TLS 1.2), перевіряє дані, що отримані від Магазину.
- Сайт Portmone.com приймає від Покупця параметри його платіжної картки та забезпечує авторизацію картки.
- При використанні верифікації Картки за технологією 3-D Secure Portmone.com спрямовує Клієнта на сайт банку-емітенту Картки для підтвердження транзакції.
- Запит на авторизацію передається через закриті банківські мережі банку-емітенту Карти Покупця або процесинговому центру, що уповноважений банком-емітентом.
- Банк передає авторизаційному серверу Portmone.com позитивний результат авторизації.
- Авторизаційний сервер Portmone.com перевіряє криптографічну цілісність інформації, що отримана, та вносить інформацію до бази даних.
- Portmone.com переадресовує Клієнта на сторінку Інтернет-магазину для підтвердження успішної оплати.
- Магазин перевіряє статус транзакції у системі Portmone.com та відпускає товар (надає послугу).
- Portmone.com у зазначені в договорі терміни здійснює перерахування коштів на рахунок Магазину (за мінусом комісії за еквайринг) одним платежем, що покриває всі транзакції за вказаний день.
- При неуспішній авторизації картки (відмові у авторизації):
- Банк передає авторизаційному серверу Portmone.com відмову від проведення платежу.
- Авторизаційний сервер Portmone.com перевіряє криптографічну цілісність інформації, що отримана, та вносить інформацію до бази даних.
- Portmone.com переадресовує запит на сторінку Інтернет-магазину для неуспішної оплати.
- При усп ішній оплаті на сторінку Інтернет-магазину передається методом POST номер сплаченого замовлення та дані платежу.
- Інтернет-магазин повинен додатково проконтролювати статус та суму замовлення одним з методів, що наведені у розділі 8 "Отримання результатів авторизації".
2. Тестовий режим роботи
Тестовий режим роботи платіжного шлюзу означає, що система Portmone.com виконує усі перевірки коректності введених даних від Інтернет-магазину та його клієнта, формує замовлення, але авторизація платіжної картки не виконується. При цьому шлюз може видавати бажану відповідь (успішну або неуспішну), в залежності від того, що необхідно співробітникам Інтернет-магазину, які займаються підключенням.
Для того, щоб увімкнути чи вимкнути тестовий режим платіжного шлюзу, необхідно направити відповідного листа з зареєстрованої адреси електронної пошти менеджерам Portmone.com по співпраці з Інтернет-магазинами на адре су [email protected].
Система Portmone.com надає партнерам два варіанти тестування:
1. Тест успішної оплати
Для отримання успішної відповіді на стандартній сторінці оплати Portmone.com необхідно ввести такі реквізити платіжної картки:
Номер картки: 4444333322221111 Термін дії: Будь-яка дата не раніше поточного дня. CVV2-код: Будь-який
2. Тест неуспішної оплати
Для отримання помилки на стандартній сторінці оплати Portmone.com необхідно ввести такі реквізити платіжної картки:
Номер картки: 4111111111111111 Термін дії: Будь-яка дата не раніше поточного дня. CVV2-код: Будь-який
Важливо! Перед запуском в роботу системи приймання платежів переконайтеся, що тестовий режим відключений!
3. Оплата замовлення
3.1. POST запит
Опис:
Для приймання оплат за Платіжними картками необхідно передати запит методом POST на сторінку платіжного шлюзу – https://www.portmone.com.ua/gateway/.
Доступність і обмеження:
Немає обмежень.
Структура запиту:
Будь ласка, зверніться до "3.1 Запит оплати замовлення методом POST" для вивчення структури запиту.
Опис параметрів запиту:
| Параметр | Опис | Обов’язковий | Значення |
|---|---|---|---|
| payee_id | Ідентифікатор Інтернет-магазину | Так | Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com |
| shop_order_number | Номер замовлення (рахунку), що сплачується, у Інтернет-магазині. До 120 символів. Номер рахунку повинен бути унікальним у межах одного замовлення. Якщо замовлення з цим номером рахунку вже було сплачене, система Portmone.com відхилить транзакцію | Ні | До 120 символів |
| bill_amount | Сума замовлення. Валюта – гривні. Дробова частина відокремлюється символом крапки “.” | Так | Наприклад: 1.50 |
| bill_currency | Валюта проведення платежу | Ні | Можливі значення: UAH, USD, EUR, GBP, PLN, KZT (значення без задання – UAH) |
| description | Коментар до замовлення/ опис призначення оплати | Ні | До 250 символів |
| success_url | Адреса Інтернет-магазину (внутрішній URL мобільного додатку), на яку буде спрямовано Клієнта після успішного завершення платежу. Після успішної оплати замовлення на цю адресу методом POST Portmone.com надішле номер замовлення shop_order_number та дані платежу. За фактом виклику цієї сторінки на сайті Інтернет-магазину можна виконати звірення статусу і суми транзакції в системі Portmone.com. Нижче описані ці процедури (див. розділ 8 «Отримання результатів авторизації») | Ні | Наприклад: http://example.com/success.html |
| failure_url | Адреса Інтернет-магазину, на яку буде спрямовано Клієнта у разі скасування оплати | Ні | Наприклад: http://example.com/failure.html |
| lang | Мова інтерфейсу платіжної системи | Ні | uk – українська мова, en – англійська, |
| encoding | Кодування | Ні | Без задання – UTF-8 |
| preauth_flag | Встановлює режим преавторизації, коли кошти тільки блокуються на картці клієнта, але фінансового списання з рахунку Клієнта не відбувається | Ні | "Y" – вмикає режим преавторизації, "N" – вимикає режим (значення без задання — "N") |
| attribute1-4 | Службове поле | Ні | Заповнюється на розсуд компанії |
| attribute5 | Використовується для передачі параметрів розщеплення платежу (див. розділ 7 «Розщеплення платежу») | Ні | Заповнюється у форматі: Desc1:payeeID1;amount1; Desc2:payeeID2;amount2; де Desc1 – опис замовлення для першої компанії-одержувача, payeeID1 – ID першої компанії-одержувача, amount1 – сума, яка повинна піти на першу компанію, Desc2 – опис замовлення для другої компанії-одержувача, payeeID2 – ID другої компанії-одержувача, amount2 – сума, яка повинна піти на другу компанію. Кількість компаній для розщеплення обмежена тільки довжиною рядку (до 500 символів) |
| exp_time | Встановлює інтервал, протягом якого замовлення може бути оплачене. Якщо значення параметру було передане, то з моменту виклику платіжної сторінки показується зворотний відлік, який видно Клієнту на сторінці оплати. По закінченню часу на оплату рахунок переходить в статус "REJECTED" і оплатити його неможливо | Ні | Заповнюється в секундах |
| dt | Час створення запиту. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так | |
| signature | Підпис запиту | Так |
Структура відповіді:
Будь ласка, зверніться до "3.1 Приклад відповіді шлюзу у разі успішного здійснення платежу для запиту методом POST" для вивчення структури відповіді.
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| SHOPBILLID | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| SHOPORDERNUMBER | Номер замовлення (рахун ку) у системі Інтернет-магазину. До 128 символів |
| APPROVALCODE | Код авторизації |
| BILL_AMOUNT | Передана у запиті сума транзакції |
| TOKEN | Значення Токену для подальших оплат |
| RESULT | Результат виконання операції (у разі успіху = 0) |
| CARD_MASK | Маска Картки платника |
| ATTRIBUTE1 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE2 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE3 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE4 | Службове поле, заповнюється на розсуд компанії |
| RECEIPT_URL | Посилання для отримання квитанції |
| LANG | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| DESCRIPTION | Коментар до замовлення/ опис призначення оплати. До 250 символів |
| ERRORIPSCODE | Код помилки, якщо токен Visa не був створений |
| ERRORIPSMESSAGE | Текст помилки, якщо токен Visa не був створений |
3.2. Запит у форматі JSON
Опис:
Для проведення оплати необхідно надіслати запит на URL: https://www.portmone.com.ua/gateway/.
Доступність і обмеження:
Немає обмежень.
Структура запиту:
Будь ласка, зверніться до "3.2 Запит оплати замовлення у форматі JSON" для вивчення структури запиту.
Параметри для формування JSON-структури запиту:
- payee – блок, що необхідний для ідентифікації партнера
| Параметр | Опис | Обов’язковий |
|---|---|---|
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| login | Логін компанії. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| dt | Час створення запиту. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| signature | Підпис запиту | Так |
| shopSiteId | Цифровий ідентифікатор каналу продажу | Ні |
- order – блок, що містить опис платежу
| Параметр | Опис | Обов’язковий |
|---|---|---|
| description | Опис платежу (коментар до замовлення/призначення оплати). Максимальна кількість символів 250 | Ні |
| shopOrderNumber | Номер замовлення, що сплачується, у системі Партнера. Максимальна кількість символів 128 | Ні |
| billAmount | Сума платежу | Так |
| successUrl | Адреса Інтернет-магазину, на яку буде спрямовано клієнта після успішної оплати. Максимальна кількість символів 250 | Ні |
| failureUrl | Адреса Інтернет-магазину, на яку буде спрямовано клієнта у разі скасування оплати. Максимальна кількість символів 250 | Ні |
| preauthFlag | Ознака преавторизації платежу (значення "Y" вказує на те, що ця оплата здійснюється з використанням процедури преавторизації (див. розділ 6 «Платежі з преавторизацією»), значення "N" – звичайна оплата без преавторизації) | Ні |
| preauthConfirm | Дата автоматичного списання заблокованих коштів для платежів з преавторизацією. Може використовуватись, якщо у запиті переданий параметр preauthFlag=Y. Передається у форматі: YYYYMMDDHH24MISS (дата та час, після якого преавторизація підтверджується автоматично). Не може бути менше поточної дати. | Ні |
| preauthReject | Дата автоматичного скасування преавторизації. Може використовуватись, якщо у запиті переданий параметр preauthFlag=Y. Передається у форматі: YYYYMMDDHH24MISS (дата та час, після якого преавторизація скасовується автоматично). Не може бути менше поточної дати. | Ні |
| billCurrency | Валюта проведення платежу. Значення без задання: UAH | Ні |
| expTime | Встановлює інтервал, протягом якого замовлення може бути оплачене. Якщо значення параметру було передане, то з моменту виклику платіжної сторінки показується зворотний відлік, який видно Клієнту на сторінці оплати. По закінченню часу на оплату рахунок переходить в статус "REJECTED" і оплатити його неможливо | Ні |
| encoding | Кодування (кодує текст запиту з встановленого кодування у UTF-8) | Ні |
| attribute1 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute2 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute3 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute4 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute5 | Використовується для передачі параметрів розщеплення платежу (див. розділ 7 «Розщеплення платежу»). Максимальна кількість символів 500 | Ні |
- paymentTypes – дозволяє обрати способи проведення платежів (Y – вмикати, N – не вмикати). Якщо параметри не задані, тоді використовуються способи платежів, що закріплені за Інтернет-магазином у налаштуваннях Portmone.com, або вмикаються два основні способи проведення платежів: "card", "portmone".
| Параметр | Опис | Обов’язковий |
|---|---|---|
| card | Оплата Карткою | Ні |
| portmone | Оплата через гаманець Portmone.com | Ні |
| token | Оплата за Токеном (у разі активації цього параметру, інші способи не відображаються) | Ні |
| clicktopay | Оплата за допомогою Visa Click to Pay | Ні |
| privat | Оплата через систему LiqPay, з вибором картки з Інтернет-банкінгу Приват24. Зверніть увагу! При оплаті через Приват24 функціонал преавторизації не працює | Ні |
| gpay | Оплата через систему Google Pay, з вибором картки з тих, що були раніше збережені в акаунті Google Pay | Ні |
| createtokenonly | Створення Токену для проведення платежів за Токеном (у разі активації цього параметру, інші способи не відображаються). Параметр надає можливість отримати Токен Картки без проведення реальної оплати (на рахунку блокується 1 грн, яка повертається протягом 30 хвилин). Підходить для звичайних оплат на користь Інтернет-магазину (див. розділ 4 «Оплата замовлення з використанням платіжного токену»), а також для подальшого використання у рамках платежів з картки на картку (див. розділ 5 «Переказ з картки на картку») | Ні |
| gpayonly | Оплата через систему Google Pay, з вибором картки з тих, що були раніше збережені в акаунті Google Pay (у разі активації цього параметру, інші способи не відображаються – на сторінці оплати відображається тільки кнопка "Оплатити через GPay") | Ні |
| applepay | Оплата через систему Apple Pay, з вибором картки з тих, що були раніше збережені в акаунті Apple Pay | Ні |
| applepayonly | Оплата через систему Apple Pay, з вибором картки з тих, що були раніше збережені в акаунті Apple Pay (у разі активації цього параметру, інші способи не відображаються – на сторінці оплати відображається тільки кнопка "Apple Pay") | Ні |
| kyivstar | Оплата з балансу мобільного рахунку Київстару (тільки для передплачених номерів) | Ні |
| installment | Розстрочка платежу | Ні |
| link | Оплата методом BankPay (через застосунок Банка платника). Метод працює за умови передачі таких параметрів: expTime та "showEmail": "Y" | Ні |
Зверніть увагу! Через внутрішні політики безпеки Google Pay та Apple Pay, при відкритті платіжної сторінки у WebView, гаманці
Google PayтаApple Payможуть працювати нестабільно.
Для коректної роботи рекомендуємо пряму інтеграцію Google Pay та Apple Pay У разі наявності застосунку рекомендуємо інтегрувати SDKiOS, SDKAndroid
-
installmentPlan – параметри розстрочки платежу (див. розділ 3.7 «Розтермінування»).
-
autopayment – цей блок дозволяє налаштувати функціонал автоматичних оплат.
Функціонал автоматичних оплат дає можливість Клієнтам підписатись на автоматичні списання коштів за графіком (щомісячно/щоквартально/щопівроку/щороку). Партнер може керувати параметрами підписки самостійно а бо надати можливість налаштування параметрів автоматичної оплати Клієнту.
Для початку роботи з автоматичними платежами Партнеру необхідно отримати credentials в Особистому кабінеті.
Зверніть увагу! При зміні паролю необхідно сформувати
credentialsзаново.
Після налаштування:
-
Буде створено підписку на виконання автоматичних оплат з Картки Клієнта. Portmone.com самостійно відстежує та проводить платіж. Клієнт може відключити послугу, звернувшись до підтримки Portmone.com або до співробітника Інтернет-магазину (Інтернет-магазин може самостійно видалити підписку Клієнта в Особистому кабінеті).
-
Всі наступні оплати будуть виконуватись на той же опис (
description), що і при першій оплаті. -
Номер замовлення для автоматичних оплат буде формуватись наступним чином:
Номер замовлення при першій оплаті_RECURENT_Дата автоматичного списання
| Параметр | Опис | Обов’язковий |
|---|---|---|
| show | Можливість для клієнта бачити на сторінці оплати деталі підписки на автоматичну оплату. Приймає значення: Y – клієнт може перейти на окрему сторінку та подивитись параметри підписки; N – клієнт не має можливості бачити деталі підписки (відображається тільки чекбокс "Зробити платіж регулярним") (див. мал. 1) | Ні |
| edit | Можливість для клієнта редагувати параметри автоматичної оплати. Приймає значення: Y – при переході на сторінку деталей підписки всі параметри можна редагувати, є можливість зберегти налаштування (див. мал. 2); N – відображаються параметри автоматичної оплати, що передані Інтернет-магазином, без можливості редагувати | Ні |
| settings | Блок параметрів для налаштування автоматичної оплати | Ні |
| credentials | Параметри авторизації | Так |
| changeCheckboxState | Значення автоплатежу Y | Так |
| defaultCheckboxState | Приймає значення: Y – чекбокс "Зробити платіж регулярним" автозаповнений; N – клієнт самостійно заповнює чекбокс "Зробити платіж регулярним" | Ні |
Структура блоку settings:
| Параметр | Опис | Обов’язковий |
|---|---|---|
| period | Періодичність автоматичних списань. Приймає наступні значення: 1 – щомісячно, 2 – щоквартально, 3 – щопівроку, 4 – щороку | Так |
| payDate | День проведення автоматичного списання. Приймає значення від 1 до 28 | Ні |
| startDate | Дата початку автоматичних списань. Передається у форматі: DD.MM.YYYY. Якщо параметр не переданий, автоматично проставиться вчорашня дата | Ні |
| endDate | Дата закінчення автоматичних списань. Передається у форматі: DD.MM.YYYY. Якщо параметр не переданий, автоматично проставиться дата startDate + 3 роки (якщо startDate не задано – поточна дата платежу) | Ні |
| amount | Сума автооплати. При наявності дробової частини використовується розділювач крапка (".") | Так |

Мал. 1 – приклад сторінки оплати без відображення деталей підписки на автоматичну оплату

Мал. 2 – приклад відображення параметрів автоматичної оплати з можливістю редагування
- priorityPaymentTypes – цей блок дозволяє керувати розміщенням способів проведення платежів на сторінці. При значенні 0 навпроти методу оплати – вкладка з методом оплати не вмикається, інше по мірі зростання: 1 – до початку списку, 2 – на другій позиції, 3 – третя і т. д.
Важливо! У
paymentTypesспосіб оплати повинен бути в значенні "Y", уpriorityPaymentTypes– мати цифрове значення, що відмінне від 0 ("0" – вимикає відображення на сторінці оплати).
- token – налаштування для роботи з Токеном (див. розділ 4 «Оплата замовлення з використанням платіжного токену»)
| Параметр | Опис | Обов’язковий |
|---|---|---|
| tokenFlag | Вмикає оплату за Токеном ("N" – не вмикати, "Y" – прийняти до уваги обробку даних) | Обов’язковий параметр для оплати за Токеном |
| returnToken | "Y" – вмикає опцію повернення Токена партнеру на сторінці успішної оплати, "N" або порожнє значення – не повертає Токен на сторінці успішної оплати партнера | Ні |
| token | Значення Токену | Обов’язковий параметр для оплати за Токеном |
| cardMask | Маска Картки | Обов’язковий параметр для оплати за Токеном |
| otherPaymentMethods | Дозволяє вмикати інші способи проведення платежу, коли переданий Токен ("N" – вимикає, "Y" – вмикає) | Ні |
- payer – блок описує налаштування платника
| Параметр | Опис | Обов’язковий |
|---|---|---|
| lang | Мова інтерфейсу платіжної сторінки. Можливі значення: uk – українська мова, en – англійська | Ні |
| emailAddress | Адреса електронної пошти платника (надсилаємо клієнту квитанцію про успішну оплату, не передаємо у відповідь на запит) | Ні |
| showEmail | "Y" або порожнє значення – вмикає відображення поля "e-mail" на сторінці оплати, "N" – приховує поле "e-mail" на сторінці оплати (значення без задання – "Y") | Ні |
В залежності від переданих значень параметрів emailAddress та showEmail можливі 4 варіанти відображення поля "e-mail" на сторінці оплати:
| Варіант | emailAddress | showEmail | Відображення на сторінці оплати |
|---|---|---|---|
| 1 | порожнє значення | Y | Відображається порожнє поле вводу e-mail |
| 2 | валідний | Y | Відображається попередньо заповнене поле вводу e-mail з можливістю редагування |
| 3 | порожнє значення | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною |
| 4 | валідний | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною. Однак e-mail, що переданий у запиті, обробляється і на нього надсилається квитанція про сплату |
- shipping – блок, що містить інформацію про доставку
Доставка "Нова Пошта"
Даний функціонал дозволяє оформити доставку "Нової Пошти".
| Параметр | Опис | Обов’язковий |
|---|---|---|
| state | Y - підключається доставка, N - доставка вимкнена | Так |
| source | Назва служби доставки. Приймає значення novaposhta | Так |
Приклад масиву в запиті:
"shipping": {
"collect": {
"state": "Y",
"source": "novaposhta"
}
Щоб передзаповнити поля на сторінці оплати необхідно передати дані Клієнта в блоці payer
"payer": {
"lang": "uk",
"emailAddress": "[email protected]",
"showEmail": "Y",
"phoneNumber": "660000000",
"fullName": "Прізвище Ім'я"
}
| Параметр | Опис | Обов’язковий |
|---|---|---|
| lang | Мова інтерфейсу платіжної сторінки. Можливі значення: uk – українська мова, en – англійська | Ні |
| emailAddress | Адреса електронної пошти платника (надсилаємо клієнту квитанцію про успішну оплату, не передаємо у відповідь на запит) | Так |
| showEmail | Приймає значення "Y" | Так |
| phoneNumber | Номер телефону Клієнта. Передавати у форматі 660000000 | Так |
| fullName | Прізвище та Ім'я Клієнта | Так |
Доступні 3 типи доставки:
- У відділення
- До поштомату
- Кур’єром
Поля “Місто”, “Вулиця”, “Відділення”, “Поштомат” є випадаючим списком з пошуком на сторінці оплати, пошук починається після введення 3 символів. Редагувати дані доставки можна натиснувши кнопку "назад"
Доставка "Укрпошта"
| Параметр | Опис | Обов’язковий |
|---|---|---|
| services | Найменування логістичних служб | Так |
| ukrposhta | Логістична служба | Так |
| deliveryTypes | Доступні способи доставки: W2D – доставка кур'єром на адресу одержувача; W2W – доставка до відділення | Так |
| senderClientId | Ідентифікатор магазину в системі логістичної служби. Створюється в Особистому кабінеті Мерчанта | Так |
| senderAddressId | Ідентифікатор адреси магазину в системі логістичної служби. Створюється в Особистому кабінеті Мерчанта | Так |
| senderPostCode | Поштовий індекс відправника | Так |
| type | Тип доставки відправлення. Можливі значення: STANDARD, EXPRESS | Так |
| parcelWeight | Вага відправлення. Вказується у грамах. Максимальне значення – 30000 | Так |
| parcelLength | Довжина найбільшої сторони відправлення (тільки цифри), вказується в сантиметрах | Так |
| parcelWidth | Ширина відправлення у сантиметрах | Так |
| parcelHeight | Висота відправлення у сантиметрах | Так |
| parcelDeclaredPrice | Заявлена ціна відправлення, вказується у гривнях | Так |
| parcelDescription | Опис відправлення | Ні |
| fragile | Позначка про крихкість посилки. Можливі значення: Y або N | Ні |
| checkOnDelivery | Позначка про огляд при отриманні. Можливі значення: Y або N | Ні |
| bees | Позначка, що відправляються бджоли. Можливі значення: Y або N | Ні |
| payer | Вказується платник за доставку. Попередньо встановлене значення: client | Так |
| sms | Повідомити клієнта про прибуття посилки за допомогою SMS-повідомлення. Можливі значення: Y або N | Ні |
| withDeliveryNotification | Повідомити клієнта за допомогою сервісу повідомлень служби доставки. Можливі значення: Y або N | Ні |
| enable | Увімкнути відображення форми оформлення доставки. Можливі значення: Y або N | Так |
| required | Оформлення доставки є обов'язковим. Можливі значення: Y або N | Так |
-
style – налаштування стилів сторінки оплати (див. розділ 3.3 «Управління зовнішнім виглядом сторінки оплати»).
-
goods – бл ок, що містить масив даних для фіскалізації.
| Параметр | Опис | Обов’язковий |
|---|---|---|
| internalCode | Код продавця | Так |
| manufacturerCode | Код виробника | Ні |
| govClassificationCode | Код УКТЗЕД | Ні |
| name | Назва товару\послуги | Так |
| name_en | Назва товару\послуги EN | Ні |
| description | Опис товару\послуги | Ні |
| description_en | Опис товару\послуги EN | Ні |
| price | Ціна ( шт) | Так |
| quantity | Кількість | Так |
| uomCode | Одиниця виміру ( не обов'язково, за замовчуванням шт) | Ні |
| amount | Сума | Так |
| taxRateCodes | Цифровий код ставки податку (попередньо програмується у особистому кабінеті податвого агента). Якщо до товару потрібно застосувати декілька податків - вказати через кому | Так |
| descriptionUrl | Поcилання на опису товара | Ні |
| imageUrl | Посилання на картинку товару | Ні |
| barcode | Штрих-код товару |
Показати приклад JSON-структури блоку goods
{
"goods": [
{
"internalCode": "123456",
"manufacturerCode": "123456",
"govClassificationCode": "123456",
"name": "",
"name_en": "",
"description": "",
"description_en": "",
"price": "100",
"quantity": "2",
"uomCode": "",
"amount": "200",
"serviceFlag": "N",
"taxRateCodes": "1",
"descriptionUrl": "",
"imageUrl": "",
"barcode": "1234567890"
}
]
}
Структура відповіді:
Будь ласка, зверніться до "3.2 Приклад відповіді шлюзу у разі успішного здійснення платежу для запиту у форматі JSON" для вивчення структури відповіді.
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| SHOPBILLID | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| SHOPORDERNUMBER | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| APPROVALCODE | Код авторизації |
| BILL_AMOUNT | Передана у запиті сума транзакції |
| TOKEN | Значення Токену для подальших оплат |
| RESULT | Результат виконання операції (у разі успіху = 0) |
| CARD_MASK | Маска Картки платника |
| ATTRIBUTE1 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE2 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE3 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE4 | Службове поле, заповнюється на розсуд компанії |
| RECEIPT_URL | Посилання для отримання квитанції |
| LANG | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| DESCRIPTION | Коментар до замовлення / опис призначення оплати. До 250 символів |
| ERRORIPSCODE | Код помилки, якщо токен Visa не був створений |
| ERRORIPSMESSAGE | Текст помилки, якщо токен Visa не був створений |
3.3. Управління зовнішнім виглядом сторінки оплати
Зовнішній вигляд сторінки оплати можна налаштовувати за допомогою параметру style.
Опис полів параметру style
| Поле | Опис | Тип стилю сторінки (type), для якого може застосовуватись поле |
|---|---|---|
| type | Встановлює тип стилю для сторінки оплати: • portmone – значення без задання (стандартний стиль portmone.com, див. мал. 3); • brand – повна стилізація сторінки для партнера (див. мал. 4); • co-brand – логотип партнера на сторінці наведений разом з логотипом portmone.com (див. мал. 5); • light – версія для відображення у вигляді фрейму (див. мал. 6). Інструкцію з вбудовування платіжної сторінки у фрейм див. нижче | |
| logo | Містить полсилання на логотип партнера. Підтримує тільки посилання з https схемою. Формат зображення тільки SVG, PNG. Рекомендується використовувати зображення з мінімальним відступом сюжету від усіх країв | brand, co-brand |
| logoWidth | Параметр, що визначає ширину логотипу. Необхідно вводити у вигляді "100px", максимальне рекомендоване значення 300px | brand, co-brand |
| logoHeight | Параметр, що визначає висоту логотипу. Необхідно вводити у вигляді "100px", максимальне рекомендоване значення 50px (для формата PNG максимальна висота – 53px) | brand, co-brand |
| backgroundColorHeader | Встановлює колір секції header на сторінці. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| backgroundColorButtons | Встановлює колір кнопок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| colorTextAndIcons | Встановлює колір тексту та іконок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| borderColorList | Встановлює колір ліній у списку методів проведення платежів. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| bcMain | Визначає колір фону сторінок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| privatButtonPosition | У разі використання методу оплати "privat", цей параметр визначає розміщення кнопки Privat24 на платіжній формі. Розташування кнопки може бути задано одним із трьох варіантів: "top" (угорі платіжної форми), "middle" (посередині платіжної форми) або "bottom" (унизу платіжної форми). За замовчуванням використовується значення "bottom". | portmone, brand, light, co-brand |
Приклади варіантів відображення кнопки оплати Privat24
Показати приклад розміщення кнопки оплати Privat24 зверху сторінки

Показати приклад розміщення кнопки оплати Privat24 посередині сторінки

Показати приклад розміщення кнопки оплати Privat24 внизу сторінки

Інструкція з вбудовування платіжної сторін ки у фрейм
Зверніть увагу! Через внутрішні політики безпеки Google Pay та Apple Pay, при відкритті платіжної сторінки у WebView, гаманці
Google PayтаApple Payможуть працювати нестабільно.
Для коректної роботи рекомендуємо пряму інтеграцію Google Pay та Apple Pay У разі наявності застосунку рекомендуємо інтегрувати SDKiOS, SDKAndroid
Для запуску IFRAME на сайті необхідно:
- На сторінці партнера необхідно організувати можливість надсилання запиту на проведення оплати, наприклад, вставити форму наступного вигляду:
<form
action="https://www.portmone.com.ua/gateway/"
method="post"
target="myFrame"
>
<input
type="hidden"
name="bodyRequest"
value='{
"paymentTypes": {
"card": "Y",
"portmone": "Y",
"token": "N",
"clicktopay": "Y",
"createtokenonly": "N"
},
"priorityPaymentTypes": {
"card": "1",
"portmone": "2",
"token": "0",
"clicktopay": "1",
"createtokenonly": "0"
},
"payee": {
"payeeId": "1185",
"login": "",
"dt": "",
"signature": "",
"shopSiteId": ""
},
"order": {
"description": "Test Payment",
"shopOrderNumber": "SHP-00445401",
"billAmount": "10",
"attribute1": "1",
"attribute2": "2",
"attribute3": "3",
"attribute4": "4",
"attribute5": "",
"successUrl": "",
"failureUrl": "",
"preauthFlag": "N",
"billCurrency": "UAH",
"encoding": ""
},
"token": {
"tokenFlag": "N",
"returnToken": "N",
"token": "",
"cardMask": "",
"otherPaymentMethods": "Y",
"sellerToken": ""
},
"payer": {
"lang": "uk",
"emailAddress": "[email protected]"
},
"style": {
"type": "light",
"logo": "",
"backgroundColorHeader": "",
"backgroundColorButtons": "",
"colorTextAndIcons": "",
"borderColorList": "",
"bcMain": ""
}
}'
/>
<input type="hidden" name="typeRequest" value="json" />
<input type="submit" value="Portmone.com" />
</form>
Структуру та опис параметрів запиту можна подивитись у розділі 3.2 «Запит у форматі JSON».
Для відображення фрейму у стилі light необхідно задати полю type параметру style значення "light".
Параметр target форми повинен вказувати на фрейм, в якому буде відображатись сторінка оплати (у наведеному вище прикладі це фрейм з ім'ям "myFrame").
- Додати у DOM-модель сторінки елемент IFRAME, вказавши йому парамeтр
nameзі значенням, ідентичним параметруtargetформи з попереднього пункту.
<div>
<iframe name="myFrame" width="50%" height="70%" frameborder="0"></iframe>
</div>
Параметри ширини та висоти фрейму можна налаштовувати за бажанням.
- Після надсилання запиту, відповідь буде відображено у вказаному фреймі.
Способи виведення сторінки оплати:

Мал. 3 – стандартний стиль Portmone.com

Мал. 4 – повна стилізація сторінки для партнера

Мал. 5 – логотип партнера на сторінці наведений разом з логотипом Portmone.com

Мал. 6 – версія для відображення у вигляді фрейму на сайті Інтернет-магазину
3.4. Платіжний віджет
Призначення: Платіжний віджет дозволяє приймати платежі без перенаправлення клієнта на окрему сторінку Portmone. Оплата відбувається на сайті мерчанта у зручному для користувача форматі.
Платіжний віджет підтримує два режими роботи:
- Модальне вікно (popup): після натискання кнопки відкривається окреме спливаюче вікно браузера з платіжною сторінкою Portmone.
- Вбудований фрейм (iframe): платіжна форма відображається безпосередньо на сторінці мерчанта у вбудованому iframe.
3.4.1 Оплата у модальному вікні (popup)
Доступність і обмеження: Немає обмежень.
Інтеграція платіжної кнопки: Для розміщення платіжної кнопки Portmone на сторінці Мерчанта необхідно визначити місце розташування кнопки на сторінці та вставити JavaScript код для підключення скрипта і ініціалізації віджета.
Після завантаження скрипту pg.min.js платіжна кнопка буде розміщена в тому блоці, в якому розміщений код для завантаження скрипту.
Приклад:
<div class="span4">
<script src="https://www.portmone.com.ua/r3/resources/pg/js/asset/pg.min.js?v=15092019"></script>
<script type="text/javascript" id="portmone-script">
var data = {};
var brand = {
height: "40px",
width: "150px",
buttoncolor: "#FF0000",
fontfamily: "Open Sans",
textcolor: "#FFF",
lang: "uk",
padding: "5px",
border: "1px solid grey",
fontsize: "14px",
closemodal: "Y",
};
PG.success(function (data) {
console.log(JSON.stringify(data));
});
PG.paymentData("gateway", data);
PG.brandButton(brand);
</script>
</div>
Брендування платіжної кнопки
Об'єкт brand відповідає за брендування кнопки «Оплатити», при натистканні якої відбувається виклик вікна оплати.
| Параметр | Опис | Обов’язковий |
|---|---|---|
| height | Встановлює висоту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| width | Встановлює ширину кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| buttoncolor | Встановлює колір кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| fontfamily | Встановлює тип шрифту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| textcolor | Встановлює колір шрифту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| lang | Встановлює мову для відображення тексту кнопки “Сплатити”/ “Завантажити квитанцію”. Якщо інше не було задане, приймає значення uk – українська | Ні |
| padding | Встановлює значення полів навколо вмісту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| border | Дозволяє одночасно встановити товщину, стиль і колір рамки навколо кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| fontsize | Встановлює розмір шрифту. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| closemodal | Опція, що визначає, чи потрібно закривати модальне вікно після здійснення платежу клієнтом. При значенні "N" вікно не закривається, клієнту відображається повідомлення про успішну оплату у модальному вікні. При значенні "Y" – вікно закривається та виконується передача даних платежу до функції обробки мерчанта. Значення без задання: Y | Ні |
Ініціалізація платіжного віджета:
Для ініціалізації віджета необхідно передати об’єкт data, який містить інформацію про продавця, параметри замовлення та методи оплати.
Приклад об’єкта data наведено у розділі "3.4.1 Приклад об’єкта data для режиму popup"
Опис параметрів об’єкту data:
- payee – блок, що необхідний для ідентифікації партнера
| Параметр | Опис | Обов’язковий |
|---|---|---|
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| login | Логін компанії. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| dt | Час створення запиту. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| signature | Підпис запиту | Так |
| shopSiteId | Цифровий ідентифікатор каналу продажу | Ні |
- order – блок, що містить опис платежу
| Параметр | Опис | Обов’язковий |
|---|---|---|
| description | Опис платежу (коментар до замовлення/призначення. Максимальна кількість символів 250 оплати) | Ні |
| shopOrderNumber | Номер замовлення, що сплачується, у системі Партнера. Максимальна кількість символів 128 | Ні |
| billAmount | Сума платежу | Так |
| preauthFlag | Ознака преавторизації платежу (значення "Y" вказує на те, що ця оплата здійснюється з використанням процедури преавторизації (див. розділ 6 «Платежі з преавторизацією»), значення "N" – звичайна оплата без преавторизації) | Ні |
| preauthConfirm | Дата автоматичного списання заблокованих коштів для платежів з преавторизацією. Може використовуватись, якщо у запиті переданий параметр preauthFlag=Y. Передається у форматі: YYYYMMDDHH24MISS (дата та час, після якого преавторизація підтверджується автоматично). Не може бути менше поточної дати. | Ні |
| preauthReject | Дата автоматичного скасування преавторизації. Може використовуватись, якщо у запиті переданий параметр preauthFlag=Y. Передається у форматі: YYYYMMDDHH24MISS (дата та час, після якого преавторизація скасовується автоматично). Не може бути менше поточної дати. | Ні |
| billCurrency | Валюта проведення платежу. Значення без задання: UAH | Ні |
| expTime | Встановлює інтервал, протягом якого замовлення може бути оплачене. Якщо значення параметру було передане, то з моменту виклику платіжної сторінки показується зворотний відлік, який видно Клієнту на сторінці оплати. По закінченню часу на оплату рахунок переходить в статус "REJECTED" і оплатити його неможливо | Ні |
| encoding | Кодування (кодує текст запиту з встановленого кодування у UTF-8) | Ні |
| attribute1 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute2 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute3 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute4 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute5 | Використовується для передачі параметрів розщеплення платежу. Максимальна кількість символів 500. (див. розділ 7 «Розщеплення платежу») | Ні |
- paymentTypes – дозволяє обрати способи проведення платежів (Y – вмикати, N – не вмикати). Якщо параметри не задані, тоді використовуються способи платежів, що закріплені за Інтернет-магазином у налаштуваннях Portmone.com, або вмикаються два основні способи проведення платежів: "card", "portmone".
| Параметр | Опис | Обов’язковий |
|---|---|---|
| card | Оплата Карткою | Ні |
| portmone | Оплата через гаманець Portmone.com | Ні |
| token | Оплата за Токеном (у разі активації цього параметру, інші способи не відображаються) | Ні |
| clicktopay | Оплата за допомогою Visa Click to Pay | Ні |
| privat | Оплата через систему LigPay, з вибором картки з Інтернет-банкінгу Приват24 | Ні |
| gpay | Оплата через систему Google Pay, з вибором картки з тих, що були раніше збережені в акаунті Google Pay | Ні |
| createtokenonly | Створення Токену для проведення платежів за Токеном (у разі активації цього параметру, інші способи не відображаються). Параметр надає можливість отримати Токен Картки без проведення реальної оплати (на рахунку блокується 1 грн, яка повертається протягом 30 хвилин). Підходить для звичайних оплат на користь Інтернет-магазину (див. розділ 4 «Оплата замовлення з використанням платіжного токену»), а також для подальшого використання у рамках платежів з картки на картку (див. розділ 5 «Переказ з картки на картку») | Ні |
| gpayonly | Оплата через систему Google Pay, з вибором картки з тих, що були раніше збережені в акаунті Google Pay (у разі активації цього параметру, інші способи не відображаються – на сторінці оплати відображається тільки кнопка "Оплатити через GPay") | Ні |
| applepay | Оплата через систему Apple Pay, з вибором картки з тих, що були раніше збережені в акаунті Apple Pay | Ні |
| applepayonly | Оплата через систему Apple Pay, з вибором картки з тих, що були раніше збережені в акаунті Apple Pay (у разі активації цього параметру, інші способи не відображаються – на сторінці оплати відображається тільки кнопка "Apple Pay") | Ні |
| link | Оплата методом BankPay (через застосунок Банка платника). Метод працює за умови передачі таких параметрів: expTime та "showEmail": "Y" | Ні |
- priorityPaymentTypes – цей блок дозволяє керувати розміщенням способів проведення платежів на сторінці. При значенні 0 навпроти методу оплати – вкладка з методом оплати не вмикається, інше по мірі зростання: 1 – до початку списку, 2 – на другій позиції, 3 – третя і т. д.
Важливо! У
paymentTypesспосіб оплати повинен бути в значенні "Y", уpriorityPaymentTypes– мати цифрове значення, що відмінне від 0 ("0" – вимикає відображення на сторінці оплати).
- token – налаштування для роботи з Токеном (див. розділ 4 «Оплата замовлення з використанням платіжного токену»)
| Параметр | Опис | Обов’язковий |
|---|---|---|
| tokenFlag | Вмикає оплату за Токеном ("N" – не вмикати, "Y" – прийняти до уваги обробку даних) | Обов’язковий параметр для оплати за Токеном |
| returnToken | "Y" – вмикає опцію повернення Токена партнеру на сторінці успішної оплати, "N" або порожнє значення – не повертає Токен на сторінці успішної оплати партнера | Ні |
| token | Значення Токену | Обов’язковий параметр для оплати за Токеном |
| cardMask | Маска Картки | Обов’язковий параметр для оплати за Токеном |
| otherPaymentMethods | Дозволяє вмикати інші способи проведення платежу, коли переданий Токен ("N" – вимикає, "Y" – вмикає) | Ні |
- payer – блок описує налаштування платника
| Параметр | Опис | Обов’язковий |
|---|---|---|
| lang | Мова інтерфейсу платіжної сторінки. Можливі значення: uk – українська мова, en – англійська | Ні |
| emailAddress | Адреса електронної пошти платника | Ні |
| showEmail | "Y" або порожнє значення – вмикає відображення поля "e-mail" на сторінці оплати, "N" – приховує поле "e-mail" на сторінці оплати (значення без задання – "Y") | Ні |
В залежності від переданих значень параметрів emailAddress та showEmail можливі 4 варіанти відображення поля "e-mail" на сторінці оплати:
| Варіант | emailAddress | showEmail | Відображення на сторінці оплати |
|---|---|---|---|
| 1 | порожнє значення | Y | Відображається порожнє поле вводу e-mail |
| 2 | валідний | Y | Відображається попередньо заповнене поле вводу e-mail з можливістю редагування |
| 3 | порожнє значення | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною |
| 4 | валідний | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною. Однак e-mail, що переданий у запиті, обробляється і на нього надсилається квитанція про сплату |
-
style – налаштування стилів сторінки оплати (див. розділ 3.3 «Управління зовнішнім виглядом сторінки оплати»).
-
goods – необов’язковий блок, що містить масив даних для фіскалізації.
| Параметр | Опис | Обов’язковий |
|---|---|---|
| internalCode | Код продавця | Так |
| manufacturerCode | Код виробника | Ні |
| govClassificationCode | Код УКТЗЕД | Ні |
| name | Назва товару\послуги | Так |
| name_en | Назва товару\послуги EN | Ні |
| description | Опис товару\послуги | Ні |
| description_en | Опис товару\послуги EN | Ні |
| price | Ціна ( шт) | Так |
| quantity | Кількість | Так |
| uomCode | Одиниця виміру ( не обов'язково, за замовчуванням шт) | Ні |
| amount | Сума | Так |
| taxRateCodes | Цифровий код ставки податку (попередньо програмується у особистому кабінеті податвого агента). Якщо до товару потрібно застосувати декілька податків - вказати через кому | Так |
| descriptionUrl | Поcилання на опису товара | Ні |
| imageUrl | Посилання на картинку товару | Ні |
| barcode | Штрих-код товару |
Службові функції:
-
PG.success – функція, що приймає об’єкт даних data, який описує проведений платіж. У випадку, якщо Мерчант не пр оводить обробку даних, платіжна кнопка змінює свій стан та назву, що дозволяє платнику завантажити квитанцію при натисканні на неї.
-
PG.brandButton – функція, що приймає об’єкт даних, який описує та стилізує платіжну кнопку.
-
PG.paymentData – функція, що ініціалізує та розміщує платіжну кнопку на сторінці Мерчанта.
Ця функція приймає наступні аргументи:
PG.paymentData(typePayment, data, typeView);
Де:
1) typePayment – рядок, що характеризує тип проведення платежу та може набувати наступних значень:
| Значення | Опис |
|---|---|
| gateway | Цей тип платежу дозволяє створити та провести типовий платіж на основі переданих даних. Об’єкт data формується як для звичайного запиту на основі json |
| stock | Цей тип платежу передбачає проведення платежу на основі переданого ідентифікатора продукту, що був створений в Особистому кабінеті Мерчанта. В цьому випадку об’єкт data набуває наступної структури: var data = { "id":"303429c03b3a743bdf8ee02" }; |
| terminal | Цей тип платежу зберігає обробку властивостей об’єкту data, що передаються при оплаті з використанням типу terminal, але дозволяє залишати billAmount, description, attribute1, attribute2, attribute3, attribute4 незаповненими для подальшої ініціалізації цих даних платником |
| p2p | Цей тип платежу передбачає проведення платежу із зарахуванням коштів на картку Мерчанта, що була перевірена та додана в Особистому кабінеті Мерчанта. В цьому випадку об’єкт data набуває наступної структури: var data = { "hash":"" };, де hash – значення з посилання на переказ |
2) typeView – рядок, що характеризує вигляд модального вікна та може набувати наступних значень:
- modal – відкриває вікно оплати у новому вікні браузера з заданими розмірами (див. мал. 7).
- frame – відкриває вікно оплати у фреймі (див. мал. 8);
-
PG.create – функція, що створює платіжний фрейм на основі даних, що були передані у функцію PG. paymentData. Цю функцію можна використовувати у випадку, коли Мерчант створює власні механізми виклику платіжного фрейму. Не містить жодних аргументів.
-
PG.setButtonId – функція пропонується для випадків, коли Мерчант сам проводить стилізацію кнопки виклику фрейму та ініціалізує власний текст на кнопці. Ця функція приймає в якості аргументу html-атрибут id кнопки Мерчанта. Наприклад:
PG.setButtonId('paymentButton');. Після цього, у разі натискання на кнопку, Мерчанту буде відкриватися платіжний фрейм Portmone.
Цю функцію необхідно використовувати у комбінації с функцією PG.create.
Приклад:
- створення фрейму на основі налаштувань із функції PG. paymentData
PG.paymentData("gateway",data,"frame"); PG.create();
- встановлення id кнопки Мерчанта
PG.setButtonId('paymentButton');
Структура відповіді:
Якщо Мерчант ініціалізує обробку даних після проведення платежу клієнтом на своїй стороні через службову функцію PG.success(), то для цього необхідно реалізувати обробку даних, що будуть передані до функції обробки.
Опис параметрів, що надійдуть до функції обробки:
| Параметр | Опис |
|---|---|
| status | Статус транзакції. Приймає значення PAYED |
| errorCode | Код помилки |
| error | Залишається незаповненим |
| shopBillId | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| billAmount | Сума платежу |
| shopOrderNumber | Номер замовлення (рахунку) у системі Мерчанта |
| cardMask | Маска Картки платника |
| attribute1 | Службове поле |
| attribute2 | Службове поле |
| attribute3 | Службове поле |
| attribute4 | Службове поле |
| receiptLink | Посилання для отримання квитанції |
| lang | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| description | Коментар до замовлення / опис призначення оплати. До 250 символів |
| token | Токен платіжної картки |
| commission | Комісія при проведенні платежу |
| payeeName | Назва Мерчанта |
| billCurrency | Валюта проведення платежу |
| IPSTokenValue | Унікальний токен Visa |
| errorIPSCode | Код помилки, якщо токен Visa не був створений |
| errorIPSMessage | Текст помилки, якщо токен Visa не був створений |

Мал. 7 – приклад вікна оплати у новому вікні браузера з заданими розмірами
3.4.2 Оплата у вбудованому фреймі (iframe)
Технічні вимоги та налаштування Apple Pay: Для Apple Pay існують обмеження на рівні браузерів: у вбудованому iframe кнопка Apple Pay може працювати нестабільно або не відображатися взагалі. Це пов’язано з політикою безпеки Apple, яка вимагає прямої взаємодії з користувачем та перевірки домену мерчанта.
- Щоб забезпечити стабільну роботу Apple Pay у iframe, необхідно:
- Створити сертифікати Apple та пройти верифікацію домену згідно інструкції.
- У об'єкті ініціалізації платежу
dataв блоціpayeeпередавати додаткові параметри, які ідентифікують мерчанта у системі Apple:appleMerchantName— унікальний Merchant ID, створений у кабінеті Apple Developer під час налаштування Apple Pay;appleMerchantLabel— назва, що відображається користувачу у вікні Apple Pay під час вибору картки.
- Для коректної роботи Apple Pay з QR-кодом підключіть офіційну бібліотеку apple-pay-js. Посилання на документацію Apple
<head>
<script
crossorigin
src="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js"
crossorigin="anonymous"
></script>
</head>
- Потрібно розміщати iframe у верхній структурі DOM-дерева сторінки. Для цього:
- Створіть div і задайте йому унікальний id.
- Розташуйте цей div на верхніх рівнях DOM-структури
- У об'єкті ініціалізації платежу
dataпередайте параметрframeHolderIdзі значенням, яке відповідає id створеного елемента.
"frameHolderId": "paymentFrame1"
Інструкція з налаштування сертифікатів Apple Pay та верифікації домену:
Ознайомтесь з відео-інструкцією, яка детально пояснює реєстрацію та перевірку у системі Apple Pay. Детальна відео-інструкція з налаштування Apple Pay.
1. Реєстрація Merchant ID
Ідентифікатор мерчанта унікально ідентифікує вас в Apple Pay як мерчанта, який може приймати платежі. Ідентифікатор мерчанта ніколи не втрачає чинності, і ви можете використовувати один і той самий ідентифікатор для кількох додатків.
- Увійдіть до облікового запису Apple Developer Account.
- Перейдіть у розділ Certificates, Identifiers & Profiles.
- Натисніть Identifiers у боковій панелі, а потім кнопку додавання (+) у верхньому лівому куті.
- Виберіть Merchant IDs, а потім натисніть Continue.
- Введіть Description та Identifier*, після чого натисніть Continue.
- Перегляньте налаштування та натисніть Register.
- Надішліть ваш Merchant ID до Portmone на адресу:
[email protected]. - Отримайте зворотнім листом CSR-файл, сформований Portmone, який буде необхідним для створення Apple Pay Payment Processing Certificate.
Примітка:
Description – опис мерчанта.
Identifier – домен вашого сайту у зворотному порядку з додаванням "merchant" на початку (наприклад, для сайту shop.ua ідентифікатор будеmerchant.ua.shop).
2. Створення Apple Pay Payment Processing Certificate
Apple Pay Payment Processing Certificate пов’язаний з вашим ідентифікатором мерчанта та використовується для шифрування платіжної інформації. Термін дії сертифіката обробки платежів закінчується кожні 25 місяців. Якщо сертифікат буде відкликано, ви можете створити його знову.
- Увійдіть до облікового запису Apple Developer Account.
- У розділі Certificates, Identifiers & Profiles натисніть Identifiers у боковій панелі.
- У розділі Identifiers використайте фільтр у верхньому правому куті та виберіть Merchant IDs.
- Справа оберіть ваш ідентифікатор мерчанта*.
- У розділі Apple Pay Payment Processing Certificate натисніть Create Certificate.
- Завантажте CSR-файл, отриманий від Portmone, натиснувши Choose File, а потім Continue.
- Натисніть Download.
- Надішліть завантажен ий сертифікат (apple_pay.cer) до Portmone на адресу:
[email protected].
Примітка:
Якщо у верхній частині сторінки з’являється банер із повідомленням про необхідність прийняття угоди, натисніть кнопку Review Agreement та дотримуйтесь інструкцій перед продовженням.
3. Реєстрація та верифікація домену
- Увійдіть до облікового запису Apple Developer Account.
- У розділі Certificates, Identifiers & Profiles натисніть Identifiers у боковій панелі, а потім виберіть Merchant IDs у випадаючому меню у верхньому правому куті.
- Оберіть ваш Merchant ID.
- У розділі Merchant Domains натисніть Add Domain.
- Введіть назву свого домену та натисніть Save.
- Завантажте файл
apple-developer-merchantid-domain-association.txt. - Розмістіть файл у кореневій директорії вашого домену за наступним шляхом:
https://<your-domain>/.well-known/apple-developer-merchantid-domain-association.txt - Переконайтесь, що файл доступний через браузер за вказаним URL.
- Натисніть Verify.
- Якщо все налаштовано правильно, статус домену зміниться на Verified.
Примітка:
Домен повинен підтримувати HTTPS.
4. Створення Apple Pay Merchant Identity Certificate
Для роботи з Apple Pay необхідний Merchant Identity Certificate. Цей сертифікат забезпечує безпечне здійснення операцій і ідентифікує мерчанта. Також він потрібний для створення Apple Pay Payment Session під час верифікації магазину.
Перед створенням Apple Pay Merchant Identity Certificate вам необхідно отримати Certificate Signing Request (CSR). Це можна зробити одним із декількох способів:
-
Отримання CSR і приватного ключа від Portmone. (Рекомендований спосіб)
Надішліть лист на адресу:[email protected]с запитом на отримання CSR для створення Apple Pay Merchant Identity Certificate, у відповідь отримайте підготовлений CSR-файл, що відповідає вимогам Apple, разом із приватним ключем. Цей спосіб є рекомендованим, оскільки він спрощує процес і гарантує сумісність. -
Самостійна генерація CSR та приватного ключа
Є декілька шляхів самостійного створення CSR та приватного ключа: використання Keychain Access на macOS (посилання на інструкцію Apple.) або через OpenSSL. Нижче наведено інструкцію для створення за допомогою Keychain Access:
- Відкрийте Keychain Access, що знаходиться в
/Applications/Utilities. - У меню оберіть: Keychain Access → Certificate Assistant → Request a Certificate from a Certificate Authority.
- У вікні, що з'явиться, заповніть поля:
- User Email Address: вкажіть вашу електронну пошту.
- Common Name: введіть назву ключа.
- CA Email Address: залиште пустим.
- Оберіть опцію I will provide the key pair information, щоб вручну створити пару ключів, необхідних для CSR.
- Оберіть опцію Saved to disk і натисніть Continue. Збережіть файл із розширенням
.certSigningRequest. - Використовуйте алгоритм і розмір ключа: RSA(2048). Apple Pay on the Web troubleshooting guide / Create a merchant identity certificate
- Відкрийте Keychain Access, що знаходиться в
Після отримання CSR виконайте наступні дії для створення сертифікату:
- Увійдіть до облікового запису Apple Developer Account.
- У розділі Certificates, Identifiers & Profiles натисніть Identifiers у боковій панелі, а потім виберіть Merchant IDs у випадаючому меню у верхньому правому куті.
- У списку знайдіть створений Merchant ID та натисніть на нього.
- У розділі Apple Pay Merchant Identity Certificate натисніть Create Certificate.
- Завантажте CSR-файл, натиснувши Choose File, оберіть файл і натисніть Continue.
- Завершіть процес, натиснувши Download, щоб зберегти готовий сертифікат.
- Надішліть згенерований сертифікат (merchant_id.cer) та приватний ключ (якщо ви генерували його самостійно) до Portmone на адресу
[email protected].
Інтеграція платіжної кнопки: Для розміщення платіжної кнопки Portmone на сторінці Мерчанта необхідно визначити місце розташування кнопки на сторінці та вставити JavaScript код для підключення скрипта і ініціалізації віджета.
Після завантаження скрипту pg.min.js платіжна кнопка буде розміщена в тому блоці, в якому розміщений код для завантаження скрипту.
Приклад:
<div class="span4">
<script src="https://www.portmone.com.ua/r3/resources/pg/js/asset/pg.min.js?v=15092019"></script>
<script type="text/javascript" id="portmone-script">
var data = {};
var brand = {
height: "40px",
width: "150px",
buttoncolor: "#FF0000",
fontfamily: "Open Sans",
textcolor: "#FFF",
lang: "uk",
padding: "5px",
border: "1px solid grey",
fontsize: "14px",
closemodal: "Y",
};
PG.success(function (data) {
console.log(JSON.stringify(data));
});
PG.paymentData("gateway", data);
PG.brandButton(brand);
</script>
</div>
Брендування платіжної кнопки
Об'єкт brand відповідає за брендування кнопки «Оплатити», при натистканні якої відбувається виклик вікна оплати.
| Параметр | Опис | Обов’язковий |
|---|---|---|
| height | Встановлює висоту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| width | Встановлює ширину кнопки. Якщо інше не було задане, при ймає стиль кнопки, встановлений на сторінці | Ні |
| buttoncolor | Встановлює колір кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| fontfamily | Встановлює тип шрифту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| textcolor | Встановлює колір шрифту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| lang | Встановлює мову для відображення тексту кнопки “Сплатити”/ “Завантажити квитанцію”. Якщо інше не було задане, приймає значення uk – українська | Ні |
| padding | Встановлює значення полів навколо вмісту кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| border | Дозволяє одночасно встановити товщину, стиль і колір рамки навколо кнопки. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| fontsize | Встановлює розмір шрифту. Якщо інше не було задане, приймає стиль кнопки, встановлений на сторінці | Ні |
| closemodal | Опція, що визначає, чи потрібно закривати модальне вікно після здійснення платежу клієнтом. При значенні "N" вікно не закривається, клієнту відображається повідомлення про успішну оплату у модальному вікні. При значенні "Y" – вікно закривається та виконується передача даних платежу до функції обробки мерчанта. Значення без задання: Y | Ні |
Ініціалізація платіжного віджета:
Для роботи віджета необхідно передати об’єкт data, який містить інформацію про продавця, параметри замовлення та методи оплати.
Приклад об’єкта data наведено у розділі "3.4.2 Приклад об’єкта data для режиму iframe"
Опис параметрів об’єкту data:
- payee – блок, що необхідний для ідентифікації партнера
| Параметр | Опис | Обов’язковий |
|---|---|---|
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| login | Логін компанії. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| appleMerchantName | Ідентифікатор продавця Apple - Merchant ID | Так |
| appleMerchantLabel | Назва, яка буде відображатися клієнту в Apple pay при виборі картки. | Так |
| dt | Час створення запиту. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| signature | Підпис запиту | Так |
| shopSiteId | Цифровий ідентифікатор каналу продажу | Ні |
- order – блок, що містить опис платежу
| Параметр | Опис | Обов’язковий |
|---|---|---|
| description | Опис платежу (коментар до замовлення/призначення. Максимальна кількість символів 250 оплати) | Ні |
| shopOrderNumber | Номер замовлення, що сплачується, у системі Партнера. Максимальна кількість символів 128 | Ні |
| billAmount | Сума платежу | Так |
| preauthFlag | Ознака преавторизації платежу (значення "Y" вказує на те, що ця оплата здійснюється з використанням процедури преавторизації (див. розділ 6 «Платежі з преавторизацією»), значення "N" – звичайна оплата без преавторизації) | Ні |
| preauthConfirm | Дата автоматичного списання заблокованих коштів для платежів з преавторизацією. Може використовуватись, якщо у запиті переданий параметр preauthFlag=Y. Передається у форматі: YYYYMMDDHH24MISS (дата та час, після якого преавторизація підтверджується автоматично). Не може бути менше поточної дати. | Ні |
| preauthReject | Дата автоматичного скасування преавторизації. Може використовуватись, якщо у запиті переданий параметр preauthFlag=Y. Передається у форматі: YYYYMMDDHH24MISS (дата та час, після якого преавторизація скасовується автоматично). Не може бути менше поточної дати. | Ні |
| billCurrency | Валюта проведення платежу. Значення без задання: UAH | Ні |
| expTime | Встановлює інтервал, протягом якого замовлення може бути оплачене. Якщо значення параметру було передане, то з моменту виклику платіжної сторінки показується зворотний відлік, який видно Клієнту на сторінці оплати. По закінченню часу на оплату рахунок переходить в статус "REJECTED" і оплатити його неможливо | Ні |
| encoding | Кодування (кодує текст запиту з встановленого кодування у UTF-8) | Ні |
| attribute1 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute2 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute3 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute4 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів 1000 | Ні |
| attribute5 | Використовується для передачі параметрів розщеплення платежу. Максимальна кількість символів 500. (див. розділ 7 «Розщеплення платежу») | Ні |
- paymentTypes – дозволяє обрати способи проведення платежів (Y – вмикати, N – не вми кати). Якщо параметри не задані, тоді використовуються способи платежів, що закріплені за Інтернет-магазином у налаштуваннях Portmone.com, або вмикаються два основні способи проведення платежів: "card", "portmone".
| Параметр | Опис | Обов’язковий |
|---|---|---|
| card | Оплата Карткою | Ні |
| portmone | Оплата через гаманець Portmone.com | Ні |
| token | Оплата за Токеном (у разі активації цього параметру, інші способи не відображаються) | Ні |
| clicktopay | Оплата за допомогою Visa Click to Pay | Ні |
| privat | Оплата через систему LigPay, з вибором картки з Інтернет-банкінгу Приват24 | Ні |
| gpay | Оплата через систему Google Pay, з вибором картки з тих, що були раніше збережені в акаунті Google Pay | Ні |
| createtokenonly | Створення Токену для проведення платежів за Токеном (у разі активації цього параметру, інші способи не відображаються). Параметр надає можливість отримати Токен Картки без проведення реальної оплати (на рахунку блокується 1 грн, яка повертається протягом 30 хвилин). Підходить для звичайних оплат на користь Інтернет-магазину (див. розділ 4 «Оплата замовлення з використанням платіжного токену»), а також для подальшого використання у рамках платежів з картки на картку (див. розділ 5 «Переказ з картки на картку») | Ні |
| gpayonly | Оплата через систему Google Pay, з вибором картки з тих, що були раніше збережені в акаунті Google Pay (у разі активації цього параметру, інші способи не відображаються – на сторінці оплати відображається тільки кнопка "Оплатити через GPay") | Ні |
| applepay | Оплата через систему Apple Pay, з вибором картки з тих, що були раніше збережені в акаунті Apple Pay | Ні |
| applepayonly | Оплата через систему Apple Pay, з вибором картки з тих, що були раніше збережені в акаунті Apple Pay (у разі активації цього параметру, інші способи не відображаються – на сторінці оплати відображається тільки кнопка "Apple Pay") | Ні |
| link | Оплата методом BankPay (через застосунок Банка платника). Метод працює за умови передачі таких параметрів: expTime та "showEmail": "Y" | Ні |
- priorityPaymentTypes – цей блок дозволяє керувати розміщенням способів проведення платежів на сторінці. При значенні 0 навпроти методу оплати – вкладка з методом оплати не вмикається, інше по мірі зростання: 1 – до початку списку, 2 – на другій позиції, 3 – третя і т. д.
Важливо! У
paymentTypesспосіб оплати повинен бути в значенні "Y", уpriorityPaymentTypes– мати цифрове значення, що відмінне від 0 ("0" – вимикає відображення на сторінці оплати).
- token – налаштування для роботи з Токеном (див. розділ 4 «Оплата замовлення з використанням платіжного токену»)
| Параметр | Опис | Обов’язковий |
|---|---|---|
| tokenFlag | Вмикає оплату за Токеном ("N" – не вмикати, "Y" – прийняти до уваги обробку даних) | Обов’язковий параметр для оплати за Токеном |
| returnToken | "Y" – вмикає опцію повернення Токена партнеру на сторінці успішної оплати, "N" або порожнє значення – не повертає Токен на сторінці успішної оплати партнера | Ні |
| token | Значення Токену | Обов’язковий параметр для оплати за Токеном |
| cardMask | Маска Картки | Обов’язковий параметр для оплати за Токеном |
| otherPaymentMethods | Дозволяє вмикати інші способи проведення платежу, коли переданий Токен ("N" – вимикає, "Y" – вмикає) | Ні |
- payer – блок описує налаштування платника
| Параметр | Опис | Обов’язковий |
|---|---|---|
| lang | Мова інтерфейсу платіжної сторінки. Можливі значення: uk – українська мова, en – англійська | Ні |
| emailAddress | Адреса електронної пошти платника | Ні |
| showEmail | "Y" або порожнє значення – вмикає відображення поля "e-mail" на сторінці оплати, "N" – приховує поле "e-mail" на сторінці оплати (значення без задання – "Y") | Ні |
В залежності від переданих значень параметрів emailAddress та showEmail можливі 4 варіанти відображення поля "e-mail" на сторінці оплати:
| Варіант | emailAddress | showEmail | Відображення на сторінці оплати |
|---|---|---|---|
| 1 | порожнє значення | Y | Відображається порожнє поле вводу e-mail |
| 2 | валідний | Y | Відображається попередньо заповнене поле вводу e-mail з можливістю редагування |
| 3 | порожнє значення | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною |
| 4 | валідний | N | Поле вводу адреси електронної пошти не відображається на сторінці оплати. При відкритті сторінки оплати не перевіряється, чи передана Мерчантом адреса електронної пошти та чи є вона валідною. Однак e-mail, що переданий у запиті, обробляється і на нього надсилається квитанція про сплату |
- style – налаштування стилів сторінки оплати.
Зовнішній вигляд сторінки оплати можна налаштовувати за допомогою параметру style.
Опис полів параметру style
| Поле | Опис | Тип стилю сторінки (type), для якого може застосовуватись поле |
|---|---|---|
| type | Встановлює тип стилю для сторінки оплати: • portmone – значення без задання (стандартний стиль portmone.com, див. мал. 3); • brand – повна стилізація сторінки для партнера (див. мал. 4); • co-brand – логотип партнера на сторінці наведений разом з логотипом portmone.com (див. мал. 5); • light – версія для відображення у вигляді фрейму (див. мал. 6). Інструкцію з вбудовування платіжної сторінки у фрейм див. нижче | |
| logo | Містить полсилання на логотип партнера. Підтримує тільки посилання з https схемою. Формат зображення тільки SVG, PNG. Рекомендується використовувати зображення з мінімальним відступом сюжету від усіх країв | brand, co-brand |
| logoWidth | Параметр, що визначає ширину логотипу. Необхідно вводити у вигляді "100px", максимальне рекомендоване значення 300px | brand, co-brand |
| logoHeight | Параметр, що визначає висоту логотипу. Необхідно вводити у вигляді "100px", максимальне рекомендоване значення 50px (для формата PNG максимальна висота – 53px) | brand, co-brand |
| backgroundColorHeader | Встановлює колір секції header на сторінці. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| backgroundColorButtons | Встановлює колір кнопок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| colorTextAndIcons | Встановлює колір тексту та іконок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| borderColorList | Встановлює колір ліній у списку методів проведення платежів. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| bcMain | Визначає колір фону сторінок. Формат вводу – HEX (наприклад, #ff0000) | brand, light |
| privatButtonPosition | У разі використання методу оплати "privat", цей параметр визначає розміщення кнопки Privat24 на платіжній формі. Розташування кнопки може бути задано одним із трьох варіантів: "top" (угорі платіжної форми), "middle" (посередині платіжної форми) або "bottom" (унизу платіжної форми). За замовчуванням використовується значення "bottom". | portmone, brand, light, co-brand |
| closeVisible | Дозволяє керувати відображенням кнопки "закрити" у платіжному фреймі. Приймає значення "Y" або "N". | portmone, brand, light, co-brand |
- goods – необов’язковий блок, що містить масив даних для фіскалізації.
| Параметр | Опис | Обов’язковий |
|---|---|---|
| internalCode | Код продавця | Так |
| manufacturerCode | Код виробника | Ні |
| govClassificationCode | Код УКТЗЕД | Ні |
| name | Назва товару\послуги | Так |
| name_en | Назва товару\послуги EN | Ні |
| description | Опис товару\послуги | Ні |
| description_en | Опис товару\послуги EN | Ні |
| price | Ціна ( шт) | Так |
| quantity | Кількість | Так |
| uomCode | Одиниця виміру ( не обов'язково, за замовчуванням шт) | Ні |
| amount | Сума | Так |
| taxRateCodes | Цифровий код ставки податку (попередньо програмується у особистому кабінеті податвого агента). Якщо до товару потрібно застосувати декілька податків - вказати через кому | Так |
| descriptionUrl | Поcилання на опису товара | Ні |
| imageUrl | Посилання на картинку товару | Ні |
| barcode | Штрих-код товару |
Службові функції:
-
PG.success – функція, що приймає об’єкт даних data, який описує проведений платіж. У випадку, якщо Мерчант не проводить обробку даних, платіжна кнопка змінює свій стан та назву, що дозволяє платнику завантажити квитанцію при натисканні на неї.
-
PG.brandButton – функція, що приймає об’єкт даних, який описує та стилізує платіжну кнопку.
-
PG.paymentData – функція, що ініціалізує та розміщує платіжну кнопку на сторінці Мерчанта.
Ця функція приймає наступні аргументи:
PG.paymentData(typePayment, data, typeView);
Де:
1) typePayment – рядок, що характеризує тип проведення платежу та може набувати наступних значень:
| Значення | Опис |
|---|---|
| gateway | Цей тип платежу дозволяє створити та провести типовий платіж на основі переданих даних. Об’єкт data формується як для звичайного запиту на основі json |
| stock | Цей тип платежу передбачає проведення платежу на основі переданого ідентифікатора продукту, що був створений в Особистому кабінеті Мерчанта. В цьому випадку об’єкт data набуває наступної структури: var data = { "id":"303429c03b3a743bdf8ee02" }; |
| terminal | Цей тип платежу зберігає обробку властивостей об’єкту data, що передаються при оплаті з використанням типу terminal, але дозволяє залишати billAmount, description, attribute1, attribute2, attribute3, attribute4 незаповненими для подальшої ініціалізації цих даних платником |
| p2p | Цей тип платежу передбачає проведення платежу із зарахуванням коштів на картку Мерчанта, що була перевірена та додана в Особистому кабінеті Мерчанта. В цьому випадку об’єкт data набуває наступної структури: var data = { "hash":"" };, де hash – значення з посилання на переказ |
2) typeView – рядок, що характеризує вигляд модального вікна та може набувати наступних значень:
- modal – відкриває вікно оплати у новому вікні браузера з заданими розмірами (див. мал. 7).
- frame – відкриває вікно оплати у фреймі (див. мал. 8);
-
PG.create – функція, що створює платіжний фрейм на основі даних, що були передані у функцію PG. paymentData. Цю функцію можна використовувати у випадку, коли Мерчант створює власні механізми виклику платіжного фрейму. Не містить жодних аргументів.
-
PG.setButtonId – функція пропонується для випадків, коли Мерчант сам проводить стилізацію кнопки виклику фрейму та ініціалізує власний текст на кнопці. Ця функція приймає в якості аргументу html-атрибут id кнопки Мерчанта. Наприклад:
PG.setButtonId('paymentButton');. Після цього, у разі натискання на кнопку, Мерчанту буде відкриватися платіжний фрейм Portmone.
Цю функцію необхідно використовувати у комбінації с функцією PG.create.
Приклад:
- створення фрейму на основі налаштувань із функції PG. paymentData
PG.paymentData("gateway",data,"frame"); PG.create();
- встановлення id кнопки Мерчанта
PG.setButtonId('paymentButton');
Додаткові можливості:
- Розміщення фрейму у визначений елемент сторінки:
- Створіть div і задайте йому унікальний id.
- Розташуйте цей div на верхніх рівнях DOM-структури
- У об'єкті ініціалізації платежу
dataпередайте параметрframeHolderIdзі значенням, яке відповідає id створеного елемента.
"frameHolderId": "paymentFrame1"
-
Керування відображенням кнопки "Закрити" у платіжному фреймі. Щоб керувати відображенням кнопки «Закрити» у фреймі, у блоці
styleоб’єктаdataвстановіть параметрcloseVisible:"Y"— кнопка «Закрити» відображається (значення за замовчуванням)
"N"— кнопка «Закрити» приховується -
Для обробки події закриття фрейму використайте callback-функцію
PG.onClose():
PG.onClose(function () {
console.log("close event");
});
- Для обробки події завантаженя сторінки оплати у фреймі використайте callback-функцію
PG.onFrameLoad():
PG.onFrameLoad(function() {
console.log('frame loaded');
});
Структура відповіді:
Якщо Мерчант ініціалізує обробку даних після проведення платежу клієнтом на своїй стороні через службову функцію PG.success(), то для цього необхідно реалізувати обробку даних, що будуть передані до функції обробки.
Опис параметрів, що надійдуть до функції обробки:
| Параметр | Опис |
|---|---|
| status | Статус транзакції. Приймає значення PAYED |
| errorCode | Код помилки |
| error | Залишається незаповненим |
| shopBillId | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| billAmount | Сума платежу |
| shopOrderNumber | Номер замовлення (рахунку) у системі Мерчанта |
| cardMask | Маска Картки платника |
| attribute1 | Службове поле |
| attribute2 | Службове поле |
| attribute3 | Службове поле |
| attribute4 | Службове поле |
| receiptLink | Посилання для отримання квитанції |
| lang | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| description | Коментар до замовлення / опис призначення оплати. |
| token | Токен платіжної картки |
| commission | Комісія при проведенні платежу |
| payeeName | Назва Мерчанта |
| billCurrency | Валюта проведення платежу |
| IPSTokenValue | Унікальний токен Visa |
| errorIPSCode | Код помилки, якщо токен Visa не був створений |
| errorIPSMessage | Текст помилки, якщо токен Visa не був створений |

Мал. 8 – приклад вікна оплати у фреймі на сайті Інтернет-магазину
3.5. Підпис запиту
Формування поля signature (приклад на PHP):
$login = 'WDISHOP';
$payeeId = '1185';
$shopOrderNumber = 'test';
$billAmount='1';
$key = 'BDFC166F8AE2F5323A557DB6CA16758D';
$dt = date("YmdHis");
$strToSignature = $payeeId.$dt.bin2hex($shopOrderNumber).$billAmount;
$strToSignature = strtoupper($strToSignature).strtoupper(bin2hex($login));
$signature = strtoupper(hash_hmac('sha256', $strToSignature, $key));
echo $signature;
| Параметр | Опис | Обов’язковий |
|---|---|---|
| login | Логін компанії | Так |
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| shopOrderNumber | Номер замовлення, що сплачується, у системі Партнера | Ні |
| billAmount | Сума платежу (значення без копійок - 10, з копійками - 10.23) | Так |
| key | Ключ, який надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| dt | Дата формування підпису | Так |
Доступність і обмеження:
Якщо передаєте параметр shopOrderNumber в запиті на оплату, тоді він має бути переданий у формуванні підпису запиту і співпадати.
Параметр billAmount має співпадати в запиті на оплату.
3.6. Інформація про курс валют
Опис: Цей метод дозволяє отримати інформацію про курс валют.
Запит необхідно виконати на адресу: https://www.portmone.com.ua/r3/api/gateway
Структура запиту:
Будь ласка, зверніться до "3.6 Інформація про курс валют" для вивчення структури запиту.
Параметри для формування JSON-структури запиту:
| Параметр | Опис | Обов’язковий |
|---|---|---|
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| date | date | Так |
Структура відповіді:
Будь ласка, зверніться до "3.6 Успішна відповідь на запит" для вивчення структури відповіді.
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| key | Назва валюти |
| value | курс валюти |
Зверніть увагу:
Якщо налаштуваннями курсу валют не передбачено, то повертається помилка
"code": 500 "message": "Не знайдено курсу валют за вашими налаштуваннями. Зверніться до менеджера за уточненням деталей."
Якщо запит за некоректну дату, то повертається помилка
"code": 500 "message": "Не валідний параметр date. Формат для запиту: dd-mm-yyyy"
3.7 Розтермінування
Розтермінування дозволяє клієнту сплачувати замовлення поступово, у кілька платежів, через банки-партнери Portmone.
Налаштування цього способу оплати здійснюється за допомогою блоку installmentPlan. Якщо блок installmentPlan не передано, але в блоці paymentTypes вказано параметр installment=Y, на сторінці оплати будуть відображені всі доступні варіанти розстрочки зі стандартними налаштуваннями (для методів, де використовується блок paymentTypes).
Примітка: У методі
getLinkInvoiceзамість параметраinstallmentPlanвикористовується параметрinstallmentз аналогічною структурою та правилами використання. У цьому методі блокиpaymentTypesтаpriorityPaymentTypesне застосовуються.
Щоб визначити кількість місяців розстрочки для кожного банку, додайте об’єкт installmentPlan у структуру тіла запиту (див. розділи 3.2. Запит у форматі JSON, 12.4 Приклад запиту на отримання платіжного посилання з розтермінуванням та 12.5. Створення платіжного посилання) у такому форматі:
"installmentPlan": {
"privat24": {
"parts": "3"
},
"oschad": {
"parts": "5"
},
"monobank": {
"parts": "8"
},
"pumb": {
"parts": "3"
},
"otp": {
"parts": "6"
},
"abank": {
"parts": "6"
}
}
| Параметр | Опис | Обов’язковий |
|---|---|---|
| parts | Дозволяє регулювати максимальну кількість місяців для розстрочки. Через кому можна вказати кілька місяців розстрочки:5,6,12 | Ні |
| privat24 | Оплата частинами від ПриватБанку | Ні |
| oschad | Оплата частинами від Ощадбанку | Ні |
| monobank | Оплата частинами від Монобанку | Ні |
| pumb | Оплата частинами від ПУМБ | Ні |
| otp | Оплата частинами від ОТП Банку | Ні |
| abank | Оплата частинами від А-Банку | Ні |
Розстрочка від Приват Банку
Для відображення розстрочки на сторінці оплати потрібно в блоці paymentTypes передавати параметр installment=Y і в блоці priorityPaymentTypes вказати порядок розташування методу, наприклад: "installment":"3"
Приклад сторінки оплати розстрочки від ПриватБанк
Приклад оформлення оплати розстрочки від ПриватБанку
Розстрочка від Монобанку
Для відображення розстрочки на сторінці оплати потрібно в блоці paymentTypes передавати параметр installment=Y і в блоці priorityPaymentTypes вказати порядок розташування методу, наприклад: "installment":"3"
Для можливості передачі номеру телефону платника потрібно в блоці payer передавати параметр phoneNumber=635337143 у форматі 635337143
Приклад сторінки оплати розстрочки від Монобанку
Приклад оформлення оплати розстрочки від Монобанку
Розстрочка від Ощадбанку
Для відображення розстрочки на сторінці оплати потрібно в блоці paymentTypes передавати параметр installment=Y і в блоці priorityPaymentTypes вказати порядок розташування методу, наприклад: "installment":"3"
Приклад сторінки оплати розстрочки від Ощадбанку
Приклад оформлення оплати розстрочки від Ощадбанку
Розстрочка від ПУМБ
Для відображення розстрочки на сторінці оплати потрібно в блоці paymentTypes передавати параметр installment=Y і в блоці priorityPaymentTypes вказати порядок розташування методу, наприклад: "installment":"4"
Приклад сторінки оплати розстрочки від ПУМБ
Приклад оформлення оплати розстрочки від ПУМБ
Розстрочка від ОТП Банк
Для відображення розстрочки на сторінці оплати потрібно в блоці paymentTypes передавати параметр installment=Y і в блоці priorityPaymentTypes вказати порядок розташування методу, наприклад: "installment":"5"
Приклад сторінки оплати розстрочки від ОТП Банк
Приклад оформлення оплати розстрочки від ОТП Банк
Розстрочка від А-Банк
Для відображення розстрочки на сторінці оплати потрібно в блоці paymentTypes передавати параметр installment=Y і в блоці priorityPaymentTypes вказати порядок розташування методу, наприклад: "installment":"6"
Приклад сторінки оплати розстрочки від А-Банк
Приклад оформлення оплати розстрочки від А-Банк
4. Оплата замовлення з використанням платіжного токену
4.1. Отримання токену для оплати
Опис:
Цей метод дозволяє отримати значення Токену та маски картки Клієнта. Після проведення цього методу оплати ви отримаєте значення Токену та маску Платіжної картки Клієнта, яку можете пропонувати Клієнтові в якості способу оплати на своєму ресурсі. У процесі виконання операції зі створення Токена, Portmone.com проведе авторизацію на 1 грн за карткою Клієнта, з наступним поверненням цієї суми на картку Клієнта.
Запит необхідно виконати на адресу: https://www.portmone.com.ua/gateway/
Доступність і обмеження:
Поле description, що передається при виконанні цього методу, є ключовим для подальших оплат за Токеном. При зміні цього параметру у подальших оплатах за Токеном Клієнт буде отримувати повідомлення про помилку.
Структура запиту:
Будь ласка, зверніться до "4.1 Запит на створення Токену" для вивчення структури запиту.
Параметри для формування JSON-структури запиту:
- paymentTypes – блок дозволяє обрати способи проведення платежів (Y – вмикати, N – не вмикати).
| Параметр | Опис | Обов’язковий |
|---|---|---|
| createtokenonly | Для створення Токену необхідно вказати значення "Y" для цього параметру | Так |
- priorityPaymentTypes – блок дозволяє керувати розміщенням способів проведення платежів на сторінці
| Параметр | Опис | Обов’язковий |
|---|---|---|
| createtokenonly | Для створення Токену необхідно вказати значення "1" для цього параметру | Так |
- payee – блок, що необхідний для ідентифікації партнера
| Параметр | Опис | Обов’язковий |
|---|---|---|
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| login | Логін компанії. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| dt | Час створення запиту. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| signature | Підпис запиту | Так |
| shopSiteId | Цифровий ідентифікатор каналу продажу | Ні |
- order – блок, що містить опис платежу
| Параметр | Опис | Обов’язковий |
|---|---|---|
| description | Опис платежу (коментар до замовлення/призначення оплати). Максимальна кількість символів 250 | Обов’язковий, ідентифікує Токен у подальших оплатах |
| shopOrderNumber | Номер замовлення, що сплачується, у системі Партнера. Максимальна кількість символів 128 | Ні |
| billAmount | Сума платежу (для отримання Токену необхідно встановити значення 1 грн) | Так |
| successUrl | Адреса Інтернет-магазину, на яку буде спрямовано клієнта після успішної оплати. Максимальна кількість символів 250 | Ні |
| failureUrl | Адреса Інтернет-магазину, на яку буде спрямовано клієнта у разі скасування оплати. Максимальна кількість символів 250 | Ні |
| preauthFlag | Ознака преавторизації платежу. Обов’язкове значення при отриманні Токену – "N" (звичайна оплата без преавторизації) | Ні |
| billCurrency | Валюта проведення платежу. Значення без задання: UAH | Ні |
| encoding | Кодування (кодує текст запиту з встановленого кодування у UTF-8) | Ні |
| attribute1-4 | Службові поля, заповнюються на розсуд компанії. Максимальна кількість символів 1000 | Ні |
- token – налаштування для роботи з Токеном
| Параметр | Опис | Обов’язковий |
|---|---|---|
| tokenFlag | Вмикає оплату за Токеном ("N" – не вмикати, "Y" – прийняти до уваги обробку даних) | Обов’язковий параметр для оплати за Токеном |
| returnToken | "Y" – вмикає опцію повернення Токена партнеру на сторінці успішної оплати, "N" або порожнє значення – не повертає Токен на сторінці успішної оплати партнера | Ні |
| token | Значення Токену | Залишити порожнім |
| cardMask | Маска Картки | Залишити порожнім |
| otherPaymentMethods | Дозволяє вмикати інші способи проведення платежу, коли переданий Токен ("N" – вимикає, "Y" – вмикає) | Обов’язкове значення "N" |
- payer – блок описує налаштування платника
| Параметр | Опис | Обов’язковий |
|---|---|---|
| lang | Мова інтерфейсу платіжної сторінки. Можливі значення: uk – українська мова, en – англійська | Ні |
| emailAddress | Адреса електронної пошти платника | Ні |
- style – налаштування стилів сторінки оплати (див. розділ 3.3 «Управління зовнішнім виглядом сторінки оплати»).
Структура відповіді:
Будь ласка, зверніться до "4.1 Успішна відповідь на створення Токену" для вивчення структури відповіді.
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| SHOPBILLID | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| SHOPORDERNUMBER | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| APPROVALCODE | Код авторизації |
| BILL_AMOUNT | Передана у запиті сума транзакції |
| TOKEN | Значення Токену для подальших оплат |
| RESULT | Результат виконання операції (у разі успіху = 0) |
| CARD_MASK | Маска Картки платника |
| ATTRIBUTE1 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE2 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE3 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE4 | Службове поле, заповнюється на розсуд компанії |
| RECEIPT_URL | Посилання для отримання квитанції |
| LANG | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| DESCRIPTION | Коментар до замовлення / опис призначення оплати. До 250 символів |
4.2. Проведення оплати за токеном
4.2.1. POST запит
Опис:
Для проведення оплати за Токеном необхідно передати запит методом POST на сторінку платіжного шлюзу – https://www.portmone.com.ua/r3/token/secure/token.
Доступність і обмеження:
Немає обмежень.
Структура запиту:
Будь ласка, зверніться до "4.2.1 Проведення оплати за Токеном. POST-запит" для вивчення структури запиту.
Опис параметрів запиту:
| Параметр | Опис |
|---|---|
| payee_id | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com |
| shop_order_number | Номер замовлення (рахунку), що сплачується, у Інтернет-магазині. До 128 символів |
| bill_amount | Сума замовлення. Валюта – гривні. Дробова частина відокремлюється символом крапки “.” |
| description | Коментар до замовлення/ опис призначення оплати. До 250 символів. |
| application_url | Адреса додатку або Інтернет-магазину, на яку буде спрямований клієнт після успішної авторизації картки. Після успішної оплати замовлення на цю адресу методом POST Portmone.com надішле номер замовлення shop_order_number та дані платежу |
| lang | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| token | Необхідно встановити значення токену, що отриманий на попередньому етапі |
| attribute1-4 | Службові поля, заповнюються на розсуд компанії. До 1000 символів |
| attribute5 | Використовується для передачі параметрів розщеплення платежу (див. розділ 7 «Розщеплення платежу»). Максимальна кількість символів - 500 |
Структура відповіді:
Будь ласка, зверніться до "4.2.1 Проведення оплати за Токеном. Приклад успішної відповіді" для вивчення структури відповіді.
Опис параметрів відповіді шлюзу:
| Параметр | Опис |
|---|---|
| BILL_AMOUNT | Передана у запиті сума транзакції |
| SHOPORDERNUMBER | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| APPROVALCODE | Код авторизації |
| RECEIPT_URL | Посилання для отримання квитанції |
| TOKEN | Значення Токену для подальших оплат |
| CARD_PAYMENT_SYSTEM | Значення платіжної системи (VISA, MASTERCARD, PROSTIR) |
| CARD_LAST_DIGITS | Останні 4 цифри номеру Платіжної картки |
| RESULT | Результат виконання операції (у разі успіху = 0) |
4.2.2. Запит у форматі JSON
Опис:
Для проведення оплати за Токеном необхідно надіслати запит на URL: https://www.portmone.com.ua/gateway/
Доступність і обмеження:
Немає обмежень.
Структура запиту:
Будь ласка, зверніться до "4.2.2 Проведення оплати за Токеном. Приклад запиту у JSON форматі" для вивчення структури запиту.
Параметри для формування data:
- payee – блок, що необхідний для ідентифікації партнера
| Параметр | Опис | Обов’язковий |
|---|---|---|
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| login | Логін компанії. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| dt | Час створення запиту. Використовується при перевірці підпису (необхідний, якщо переданий параметр signature) | Так |
| signature | Підпис запиту | Так |
| shopSiteId | Цифровий ідентифікатор каналу продажу | Ні |
- order – блок, що містить опис платежу
| Параметр | Опис | Обов’язковий |
|---|---|---|
| description | Опис платежу (коментар до замовлення/призначення оплати). Максимальна кількість символів - 250 | Ні |
| shopOrderNumber | Номер замовлення, що сплачується, у системі Партнера. Максимальна кількість символів - 128 | Ні |
| billAmount | Сума платежу | Так |
| successUrl | Адреса Інтернет-магазину, на яку буде спрямовано клієнта після успішної оплати. Максимальна кількість символів 250 | Ні |
| failureUrl | Адреса Інтернет-магазину, на яку буде спрямовано клієнта у разі скасування оплати. Максимальна кількість символів 250 | Ні |
| preauthFlag | Ознака преавторизації платежу (значення "Y" вказує на те, що ця оплата здійснюється з використанням процедури преавторизації (див. розділ 6 «Платежі з преавторизацією»), значення "N" – звичайна оплата без преавторизації) | Ні |
| billCurrency | Валюта проведення платежу. Значення без задання: UAH | Ні |
| encoding | Кодування (кодує текст запиту з встановленого кодування у UTF-8) | Ні |
| attribute1 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів - 1000 | Ні |
| attribute2 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів - 1000 | Ні |
| attribute3 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів - 1000 | Ні |
| attribute4 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів - 1000 | Ні |
| attribute5 | Використовується для передачі параметрів розщеплення платежу (див. розділ 7 «Розщеплення платежу»). Максимальна кількість символів - 500 | Ні |
- paymentTypes – дозволяє обрати способи проведення платежів (Y – вмикати, N – не вмикати). Якщо параметри не задані, тоді використовуються способи платежів, що закріплені за Інтернет-магазином у налаштуваннях Portmone.com, або вмикаються два основні способи проведення платежів: "card", "portmone".
| Параметр | Опис | Обов’язковий |
|---|---|---|
| card | Оплата Карткою | Ні |
| portmone | Оплата через гаманець Portmone.com | Ні |
| token | Оплата за Токеном (у разі активації цього параметру, інші способи не відображаються) | Ні |
| clicktopay | Оплата за допомогою Visa Click to Pay | Ні |
- priorityPaymentTypes – цей блок дозволяє керувати розміщенням способів проведення платежів на сторінці. При значенні 0 навпроти методу оплати – вкладка з методом оплати не вмикається, інше по мірі зростання: 1 – до початку списку, 2 – на другій позиції, 3 – третя і т. д.
Важливо! В
paymentTypesспосіб оплати повинен бути в значенні "Y", вpriorityPaymentTypes– мати цифрове значення, що відмінне від 0 ("0" – вимикає відображення на сторінці оплати).
- token – налаштування для роботи з Токеном
| Параметр | Опис | Обов’язковий |
|---|---|---|
| tokenFlag | Вмикає оплату за Токеном ("N" – не вмикати, "Y" – прийняти до уваги обробку даних) | Так |
| returnToken | "Y" – вмикає опцію повернення Токена партнеру на сторінці успішної оплати, "N" або порожнє значення – не повертає Токен на сторінці успішної оплати партнера | Ні |
| token | Значення Токену | Так |
| cardMask | Маска Картки | Так |
| otherPaymentMethods | Дозволяє вмикати інші способи проведення платежу, коли переданий Токен ("N" – вимикає, "Y" – вмикає) | Ні |
- payer – блок описує налаштування платника
| Параметр | Опис | Обов’язковий |
|---|---|---|
| lang | Мова інтерфейсу платіжної сторінки. Можливі значення: uk – українська мова, en – англійська | Ні |
| emailAddress | Адреса електронної пошти платника | Ні |
- style – налаштування стилів сторінки оплати (див. розділ 3.3 «Управління зовнішнім виглядом сторінки оплати»).
Структура відповіді:
Будь ласка, зверніться до "4.2.2 Проведення оплати за Токеном. Приклад успішної відповіді на запит у форматі JSON" для вивчення структури відповіді.
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| SHOPBILLID | Ідентифікатор транзакції (платіжного документу) у системі Portmone.com |
| SHOPORDERNUMBER | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| APPROVALCODE | Код авторизації |
| BILL_AMOUNT | Передана у запиті сума транзакції |
| TOKEN | Значення Токену для подальших оплат |
| RESULT | Результат виконання операції (у разі успіху = 0) |
| CARD_MASK | Маска Картки платника |
| ATTRIBUTE1 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE2 | Службове поле, заповнюється на розсуд компанії |
| ATTRIBUTE3 | Службове поле, заповнюється на ро зсуд компанії |
| ATTRIBUTE4 | Службове поле, заповнюється на розсуд компанії |
| RECEIPT_URL | Посилання для отримання квитанції |
| LANG | Мова інтерфейсу платіжної системи. Можливі значення: uk – українська мова, en – англійська |
| DESCRIPTION | Коментар до замовлення / опис призначення оплати. До 250 символів |
4.3. Проведення оплати за токеном без CVV2 (рекурентний платіж)
Опис:
Для проведення оплати за Токеном без CVV2 необхідно надіслати запит на такий URL: https://www.portmone.com.ua/r3/recurrent/
Доступність і обмеження:
Немає обмежень.
Структура запиту:
Будь ласка, зверніться до "4.3 Запит рекурентного платежу" для вивчення структури запиту.
Опис параметрів запиту:
| Параметр | Опис |
|---|---|
| login | Логін Інтернет-магазину для доступу до управління акаунтом |
| password | Пароль Інтернет-магазину |
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com |
| shopOrderNumber | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| token | Необхідно встановити значення токену, що отриманий на попередньому етапі |
| description | Коментар до замовлення/ опис призначення оплати. До 250 символів |
| billAmount | Сума платежу. Дробова частина відокремлюється символом крапки “.” |
| billCurrency | Валюта проведення платежу. Значення без задання: UAH |
| preauthFlag | Ознака преавторизації платежу (значення "Y" вказує на те, що ця оплата здійснюється з використанням процедури преавторизації (див. розділ 6 «Платежі з преавторизацією»), значення "N" – звичайна оплата без преавторизації) |
| id | Константа |
Структура відповіді:
Будь ласк а, зверніться до "4.3 Запит рекурентного платежу" для вивчення структури відповіді
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| result | Ознака статусу замовлення. Може приймати значення: - PAYED – оплачене, - CREATED – створене, - REJECTED – скасоване. |
| shopOrderNumber | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| description | Коментар до замовлення/ опис призначення оплати. До 250 символів |
| id | ID запиту з боку Інтернет-магазину до системи Portmone.com |
Важливо! При отриманні помилки по запиту за токеном рекомендуємо робити наступний запит не раніше ніж через 72 години.
4.4. Формування замовлення (платіжного повідомлення) у Viber Bot
Опис:
Необхідно надіслати запит на такий URL: https://www.portmone.com.ua/r3/api/gateway
Доступність і обмеження:
Операція можлива тільки для тих користувачів, які зареєстровані у Portmone Viber Bot.
Структура запиту JSON:
{
"method":"initViberPayment",
"params":{
"data":{
"payeeId":"11344",
"billAmount":"1",
"shopOrderNumber":"shp_0001",
"description":"test",
"msisdnClient":"+380630000000",
"paymentMessage":"test message",
"attribute1":"",
"attribute2":"",
"attribute3":"",
"attribute4":"",
"attribute5":"",
"preauthFlag":"N",
"emailAddress":"[email protected]",
"credentials":""
}
},
"id":"1"
}
Опис параметрів запиту:
| Параметр | Опис |
|---|---|
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com |
| billAmount | Сума платежу. Дробова частина відокремлюється символом крапки “.” |
| shopOrderNumber | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| description | Коментар до замовлення/ опис призначення оплати. До 250 символів |
| msisdnClient | Номер телефону клієнта |
| paymentMessage | Повідомлення, яке побачить клієнт у Viber Bot. Максимум 250 символів |
| attribute1, attribute2, attribute3, attribute4, attribute5 | Атрибути операції, необов'язково заповнювати |
| preauthFlag | Має бути значення N |
| emailAddress | Email клієнта |
| credentials | Необхідні авторизаційні дані, можна отримати у вигляді хеш-рядку тут (у кабінеті: прийом платежів -> автоплатежі) - https://business.portmone.com.ua/request/subscriptions |
| id | Константа |
Структура відповіді:
{
"result": {
"errorCode": "0",
"error": "",
"linkqr": "",
"linkbot": ""
},
"id": "1"
}
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| errorCode | Код помилки |
| error | Опис помилки порожній у разі успішної відповіді. Якщо клієнт не знайдений, повернеться опис "Client not found" |
| linkqr | Посилання на QR код чат боту |
| linkbot | Посилання чат бот |
| id | Константа |
4.5. Отримання даних МПС за токеном Portmone
Опис:
Необхідно надіслати запит на такий URL: https://www.portmone.com.ua/r3/api/gateway
Доступність і обмеження:
Доступно після проведення оплати картою.
Структура запиту JSON:
{
"method":"getDataTokenIPS",
"params":{
"data":{
"login":${MERCHANT_LOGIN},
"password":${MERCHANT_PASSWORD},
"tokenType":"PORTMONE",
"tokenReference":${TOKEN_REFERENCE}
}
},
"id":"1"
}
Опис параметрів запиту:
| Параметр | Опис |
|---|---|
| MERCHANT_LOGIN | Логін мерчанта у системі Portmone |
| MERCHANT_PASSWORD | Пароль мерчанта у системі Portmone |
| TOKEN_REFERENCE | Токен карти, який повертає система Portmone |
| id | Константа |
Структура та приклад відповіді (Mastercard):
{
"result": {
"token_type": "M4M",
"token_info": {
"tokenUniqueReference": "DM4MMC0000****ed8d7249e",
"panUniqueReference": "FM4MMC000012971373*****6a75a3cf",
"productConfig": {
"termsAndConditionsUrl": "",
"issuerName": ",
"cardBackgroundCombinedAssetId": "954e89****8655a",
"iconAssetId": "7fcf53be****cf1fbfe",
"foregroundColor": "ffffff",
"issuerLogoAssetId": "cd90eb72****5cc1",
"shortDescription": "",
"customerServiceEmail": "",
"customerServicePhoneNumber": "",
"customerServiceUrl": "",
"isCoBranded": "false",
"brandLogoAssetId": "3789637f****c509"
},
"tokenInfo": {
"tokenPanSuffix": "4444",
"accountPanSuffix": "4444",
"tokenExpiry": "0823",
"accountPanExpiry": "",
"productCategory": "DEBIT",
"dsrpCapable": true,
"tokenAssuranceLevel": ""
}
}
},
"id": "1"
}
Опис ключових параметрів відповіді:
| Параметр | Опис |
|---|---|
| TOKEN_TYPE | Тип токену в залежності від МПС |
| id | Константа |
Структура та приклад відповіді (Visa):
{
"result": {
"token_type": "VTS",
"token_info": {
"vPanEnrollmentID": "724bfc****38701",
"paymentInstrument": {
"expirationDate": {
"month": "11",
"year": "2023"
},
"last4": "1111",
"cvv2PrintedInd": "Y",
"expDatePrintedInd": "Y",
"enabledServices": {
"merchantPresentedQR": "N"
}
},
"cardMetaData": {
"backgroundColor": "0xffff00",
"foregroundColor": "0x000000",
"labelColor": "0x000000",
"contactWebsite": "https://www.aval.ua",
"contactEmail": "[email protected]",
"contactNumber": "+380444908888",
"contactName": "Raiffeisen Bank Aval",
"privacyPolicyURL": "https://www.aval.ua/storage/files/politika-konfidencijnosti-04042019_1554448866.pdf",
"termsAndConditionsURL": "https://aval.ua/storage/files/wallet-pi.pdf",
"shortDescription": "Visa Classic",
"cardData": [
{
"guid": "8407fa4e5****d705f6cb07",
"contentType": "cardSymbol",
"content": [
{
"mimeType": "image/png",
"width": "100",
"height": "100"
}
]
},
{
"guid": "09e037d****c17995ddf6",
"contentType": "digitalCardArt",
"content": [
{
"mimeType": "image/png",
"width": "1536",
"height": "969"
}
]
}
],
"issuerFlags": {
"deviceBinding": false,
"cardholderVerification": false,
"trustedBeneficiaryEnrollment": false,
"delegatedAuthenticationSupported": true
}
},
"vProvisionedTokenID": "ebc77cd5****bcc8885e01",
"tokenInfo": {
"tokenRequestorID": "1111111111",
"tokenStatus": "ACTIVE",
"last4": "",
"expirationDate": {
"month": "",
"year": ""
}
}
}
},
"id": "1"
}
Опис ключових параметрів відповіді:
| Параметр | Опис |
|---|---|
| TOKEN_TYPE | Тип токену в залежності від МПС |
| id | Константа |
| tokenInfo, cardMetaData, cardData | Мета-дані карти |
4.6. Отримання ассету за унікальним ідентифікатором МПС
Опис:
Необхідно надіс лати запит на такий URL: https://www.portmone.com.ua/r3/api/gateway.
Доступність і обмеження:
Доступно після отримання ідентифікатору МПС методом getDataTokenIPS згідно п. 4.5. Для отримання кожного виду ассету необхідно зробити унікальний запит з відповідним ідентифікатором.
Структура і приклад запиту JSON:
{
"method":"getMetaDataTokenIPS",
"params":{
"data":{
"login":${MERCHANT_LOGIN},
"password":${MERCHANT_PASSWORD},
"tokenType":${TOKEN_TYPE},
"metaDataId":${ASSET_ID}
}
},
"id":"1"
}
Опис параметрів запиту:
| Параметр | Опис |
|---|---|
| MERCHANT_LOGIN | Логін мерчанта у системі Portmone |
| MERCHANT_PASSWORD | Пароль мерчанта у системі Portmone |
| TOKEN_TYPE | Тип токену, отриманий методом getDataTokenIPS згідно п. 4.5 |
| ASSET_ID: | Ідентифікатор ассету, отриманий методом getDataTokenIPS згідно п. 4.5 (tokenUniqueReference - для Mastercard\guid - для Visa) |
| id | Константа |
Структура та приклад відповіді:
{
"result": {
"mediaContents": [
{
"data": "", //Base64 encoded content
"width": 1536,
"type": "image\/png",
"height": 969
}
]
},
"id": "1"
}
4.7. Проведення оплати за Токеном з 3Ds без CVV2 (рекурентний платіж)
Опис:
Для проведення оплати за Токеном з 3Ds без CVV2 необхідно надіслати запит на такий URL: https://www.portmone.com.ua/r3/recurrent/.
Доступність і обмеження:
Немає обмежень.
Структура запиту:
Будь ласка, зверніться до "4.7 Запит рекурентного платежу" для вивчення структури запиту.
Опис параметрів запиту:
| Параметр | Опис | Обов’язковий |
|---|---|---|
| method | Значення: paywith3ds | Так |
| login | Логін Інтернет-магазину для доступу до управління акаунтом | Так |
| password | Пароль Інтернет-магазину | Так |
| payeeId | Ідентифікатор Інтернет-магазину. Надається кожному Партнерові індивідуально при підключенні до системи Portmone.com | Так |
| shopOrderNumber | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів | Ні |
| token | Необхідно встановити значення токену, що отриманий на попередньому етапі | Так |
| description | Коментар до замовлення/ опис призначення оплати. До 250 символів | Так |
| billAmount | Сума платежу. Дробова частина відокремлюється символом крапки “.” | Так |
| billCurrency | Валюта проведення платежу. Значення без задання: UAH | Ні |
| successUrl | Адреса Інтернет-магазину, на яку буде спрямовано клієнта після успішної оплати | Ні |
| attribute1 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів - 1000 | Ні |
| attribute2 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів - 1000 | Ні |
| attribute3 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів - 1000 | Ні |
| attribute4 | Службове поле, заповнюється на розсуд компанії. Максимальна кількість символів - 1000 | Ні |
| id | Константа | Так |
Структура успішної відповіді, коли потрібно пройти 3Ds:
Будь ласка, зверніться до "4.7.1 Успішна відповідь, коли потрібно пройти 3Ds" для вивчення структури відповіді
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| status | Статус транзакції. Може приймати значення: - PAYED – оплачене, - CREATED – створене, - REJECTED – скасоване. |
| shopbillId | Ідентифікатор замовлення у системі Portmone.com |
| shopOrderNumber | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| description | Коментар до замовлення/ опис призначення оплати. До 250 символів |
| pdfUrl | Залишається порожнім |
| authCode | Код авторизації банку (проставляється якщо замовлення оплачене) |
| isNeed3DS | Ознака необхідності проходження перевірки 3D Secure ("Y" – необхідно пройти процедуру перевірки 3D Secure, "N" – додаткові дії не потрібні) |
| actionMPI | URL банку, на який треба перенаправити клієнта для проходження 3D Secure перевірки |
| id | Константа |
При таких значеннях парметрів isNeed3DS = Y, status = CREATED необхідно перейти по actionMPI
Структура відповіді після проходження 3Ds:
Будь ласка, зверніться до "4.7.2 Відповідь після проходження 3Ds" для вивчення структури відповіді
Відповідь надходить на successUrl у форматі POST
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| shopbillId | Ідентифікатор замовлення у системі Portmone.com |
| status | Статус транзакції. Може приймати значення: - PAYED – оплачене, - CREATED – створене, - REJECTED – скасоване. |
| billAmount | Сума платежу. Дробова частина відокремлюється символом крапки “.” |
| billNumber | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| payeeName | |
| authCode | Код авторизації банку (проставляється якщо замовл ення оплачене) |
| commission | Комісія при проведенні платежу |
| pdfUrl | Залишається порожнім |
| payeeId | Ідентифікатор Інтернет-магазину |
| payDate | Дата оплати |
| description | Коментар до замовлення/ опис призначення оплати. До 250 символів |
| cardMask | Маска Картки платника |
| errorMessage | Повідомлення про помилку |
| errorCode | Код помилки |
Структура успішної відповіді, коли не потрібно проходити 3Ds:
Будь ласка, зверніться до "4.7.3 Успішна відповідь, коли не потрібно проходити 3Ds" для вивчення структури відповіді
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| status | Статус транзакції. Може приймати значення: - PAYED – оплачене, - CREATED – створене, - REJECTED – скасоване. |
| shopbillId | Ідентифікатор замовлення у системі Portmone.com |
| shopOrderNumber | Номер замовлення (рахунку) у системі Інтернет-магазину. До 120 символів |
| description | Коментар до замовлення/ опис призначення оплати. До 250 символів |
| pdfUrl | Посилання на квитианцію |
| authCode | Код авторизації банку (проставляється якщо замовлення оплачене) |
| isNeed3DS | Ознака необхідності проходження перевірки 3D Secure ("Y" – необхідно пройти процедуру перевірки 3D Secure, "N" – додаткові дії не потрібні) |
| actionMPI | URL банку, на який треба перенаправити клієнта для проходження 3D Secure перевірки |
| id | Константа |
При таких значеннях парметрів isNeed3DS = N, status = PAYED - транзакція успішна.
Структура неуспішної відповіді:
Будь ласка, зверніться до "4.7.4 Неуспішна відповідь" для вивчення структури відповіді
Опис параметрів відповіді:
| Параметр | Опис |
|---|---|
| Code | Код помилки |
| Message | Текст помилки |
| id | Константа |