Checkout NovaPay
Загальний опис
Checkout NovaPay – це новий сервіс для онлайн-торгівлі, який поєднує платіжний та логістичний функціонал в одному рішенні. Іншими словами, клієнт може одночасно оплатити товар або оформити післяплату і оформити доставку прямо на сайті торговця.
Переваги Checkout NovaPay
Для платника (клієнт мерчанта) – простіший і швидший процес покупки:
🔄 Автоматичне підвантаження даних клієнта, таких як: ПІБ, улюблені способи доставки та оплати покупця (якщо вони є в NovaPay).
📍 Можливість обрати відділення або інший спосіб отримання. Якщо дані вже є в системі – NovaPay заповнює їх автоматично.
💳 Доступність різних способів оплати (карта, Google/Apple Pay, рахунок NovaPay, післяплата).
Для торговця (мерчанта) – легке підключення платіжного та логістичного модуля без складної інтеграції:
⚡ Прискорений процес checkout підвищує конверсію.
✅ Мінімізація помилок завдяки автоматичному заповненню даних клієнта.
📦 Надає інформацію для оформлення логістичної операції та може створити ЕН замість мерчанта.
Для NovaPay – розширення екосистеми та залучення нових клієнтів через торговців:
🌐 Розширення екосистеми та залучення нових клієнтів через торговців.
Термінологія
Кнопка NovaPay – метод оплати NovaPay з переходом Платника у додаток МД NovaPay.
iframe NovaPay/ iframe – платіжна сторінка NovaPay.
Платник – особа яка планує здійснити купівлю товару/послуги у торговця через WEB|APP|чат-бот торговця.
МД NovaPay – мобільний додаток NovaPay.
Експрес-накладна (ЕН) – це унікальний код з 14 цифр, який присвоюється Новою поштою кожному відправленню.
Торговець (мерчант) – ЮО/ФОП, що здійснюють підприємницьку діяльність та мають підписаний договір з NovaPay на переказ коштів.
Скасування (Void) – це скасування платежу в той же день, коли він був здійснений (до 23:50) або до зарахування коштів на рахунок мерчанта. Тобто кошти не списуються остаточно, і операція анулюється ще до завершення обробки в платіжних системах.
- 1 Термінологія
- 2 Процес оплати
- 3 Інтеграція Checkout NovaPay
Процес оплати
Оплата при передачі номера телефону торговцем
Платник натискає "Купити через NovaPay" на сайті.
Торговець надсилає запит до NovaPay API, передаючи номер телефону платника.
NovaPay перевіряє базу даних та, якщо платник є, автоматично підтягує його ПІБ, телефон та інші дані у checkout.
Платник перевіряє або змінює дані, обирає спосіб доставки (відділення, поштомат, кур’єр).
Вибирає метод оплати:
Google Pay / Apple Pay
Введення картки
Кнопка NovaPay (оплата у мобільному додатку NovaPay)
Оплата у відділенні (якщо товар з післяплатою)
NovaPay може автоматично створювати ЕН у системі Нової пошти, однак мерчант має можливість обрати режим без автоматичного формування ЕН.
Торговцю передаються: платіж, ЕН а також інформація про платника й обрану точку доставки.
Торговець відправляє товар у вибране платником місце.
Оплата без передачі номера телефону (введення вручну)
Платник натискає "Купити через NovaPay".
NovaPay відкриває checkout без автоматично підставлених даних.
Платник вводить ПІБ, номер телефону, вибирає спосіб доставки.
Якщо платник має акаунт у NovaPay, він може пройти верифікацію через QR-код або номер телефону для автоматичного заповнення форми.
Подальші етапи збігаються з попереднім варіантом: вибір оплати, створення ЕН, передача даних торговцю.
Інтеграція Checkout NovaPay
Протестувати API запити можна за посиланням: https://novapay.readme.io/reference/checkout
Крок 1: Автентифікація
Цей API використовує формат JSON для отримання тіла запитів і передачі відповідей.
API використовує підписи RSA (передаються в заголовку x-sign) для перевірки походження запиту. Підпис створюється на основі тіла запиту, шифрується у форматі base64 і перевіряється аналогічним чином. Для отримання доступу до API зв’яжіться з нашою службою підтримки, надавши свій відкритий ключ RSA.
Якщо мерчант обирає автоматичне створення ЕН, він повинен надати свій API-ключ Нової Пошти. Це необхідно для того, щоб ЕН формувалася від імені мерчанта та відображалась у його кабінеті Нової Пошти.
Генерація підписів
Алгоритм створення підпису – SHA-256
Рекомендований ключ: зашифрований паролем, довжина 2048 біт.
Ключі
Merchant ID
merchant_id = "надається NovaPay при реєстрації"
Крок 2: Створення чекаут-сесії | Create checkout session
Мерчант створює checkout-сесію, передаючи необхідні дані про замовлення.
Метод POST
URL ендпоінту на проді https://api-ecom.novapay.ua/v1/checkout/session
Параметри запиту
Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
merchant_id |
| ✅ Так | ID мерчанта, від імені якого створюється сесія. |
callback_url |
| ✅ Так | Після оплати ми надішлемо postback на цей url з інформацією про сесію. |
success_url |
| ❌ Ні | Після успішної оплати клієнт може натиснути кнопку і перейти за цим посиланням. |
fail_url |
| ❌ Ні | Після невдалої оплати клієнт може натиснути кнопку і перейти за цим посиланням. |
client_phone |
| ❌ Ні | Номер телефону з кодом країни. |
create_express_waybill |
| ❌ Ні | Ознака чи потрібно створювати електронну накладну:
|
delivery |
| ❌ Ні | Дані про посилку. Обов'язково до заповнення лише якщо |
volume_weight |
| ❌ Ні | Об’ємна вага посилки. Обов'язково до заповнення лише якщо |
weight |
| ❌ Ні | Фізична вага посилки. Обов'язково до заповнення лише якщо |
Крок 3: Додавання товарів у кошик та отримання посилання на оплату | Add checkout payment
Метод POST
URL ендпоінту на проді https://api-ecom.novapay.ua/v1/checkout/payment
Параметри запиту
Параметр | Тип | Обов’язковий | Опис |
|---|---|---|---|
merchant_id |
| ✅ Так | ID мерчанта, від імені якого створена сесія. |
session_id |
| ✅ Так | Ідентифікатор сесії, отриманий у відповіді на запит "Create checkout session". |
amount |
| ✅ Так | Загальна сума замовлення. |
external_id |
| ❌ Ні | Ідентифікатор замовлення в системі мерчанта (для реєстрів). |
use_hold |
| ❌ Ні | Параметр двоетапної оплати (утримати кошти та підтвердити). Якщо не вказати цей параметр, значення буде «false». Значення «true» вказується, якщо використовується параметр доставки. |
identifier |
| ❌ Ні | Необов'язковий параметр для створення платежу отримувачу, який відрізняється від власника мерчанта (ЄДРПОУ). |
products |
| ❌ Ні | Масив товарів у замовленні. |
description |
| ❌ Ні | Назва або опис товару. |
count |
| ✅ Так (якщо є products) | Кількість одиниць товару. |
price |
| ✅ Так (якщо є products) | Ціна за одиницю. |
image |
| ❌ Ні | URL-зображення товару. |
Після цього платник бачить frame checkout NovaPay та проводить оплату.
Крок 4: Отримання статусу платежу та створеної ЕН в Новій Пошті | Checkout postbacks
Після оплати NovaPay надсилає postback на callback_url, вказаний при створенні сесії.
Є три сценарії отримання postback:
Postback після оплати (якщо платник одразу сплатив замовлення).
Postback після створення ЕН.
Postback із причиною невдалого створення ЕН.