🤖 AI Промпти для вайб-кодерів
Вайб-кодинг — це коли ви просто описуєте, що вам потрібно, а AI пише весь код.
Оберіть ваш рівень досвіду нижче. Ми дамо вам практичні інструкції та готові промпти, які можна скопіювати прямо в AI.
Наведені нижче промпти — готові рецепти. Просто скопіюйте текст промпту й вставте у Replit, Lovable, Bolt.new або будь-який інший AI-агент. Не потрібно розуміти структуру коду — AI все зробить за вас.
⚡ Як це працює (3 кроки):
💰 Я хочу приймати платежі #
Скопіюйте цей промпт, вставте в Lovable або Replit, і AI напише вам платіжну форму.
Я хочу додати на свій сайт можливість приймати платежі через Monobank. ЗАДАЧА: Напиши повний готовий код для створення платежу та перенаправлення користувача на оплату. ЩО МАЄ СТАТИСЯ: 1. На моєму сайті кнопка "Перейти до оплати" 2. Користувач клацає → створюється платіж в Monobank 3. Користувач переходить на сторінку оплати Monobank 4. Після оплати він повертається на мій сайт 5. Я перевіряю статус платежу та показую результат ТЕСТОВІ ДАНІ: - Сума: 100 грн (10000 копійок) - Опис платежу: "Тестова оплата" - Куди повертати користувача після оплати: https://mysite.com/payment-result МІЙ ТОКЕН MONOBANK: [вставити токен з особистого кабінету https://web.monobank.ua/] ДОКУМЕНТАЦІЯ (прочитай): - Створення платежу: https://monobank.ua/api-docs/acquiring/methods/ia/post--api--merchant--invoice--create - Перевірка статусу: https://monobank.ua/api-docs/acquiring/methods/ia/get--api--merchant--invoice--status Напиши весь код для цього flow.
🔔 Сервер повинен знати про платіж #
Налаштування автоматичного сповіщення сервера про платіж.
Мені потрібно щоб мій сервер автоматично дізнавався коли користувач оплатив. ЗАДАЧА: Налаштуй автоматичне отримання інформації про платежі від Monobank (webhook). ЩО МАЄ СТАТИСЯ: 1. Користувач платить на сторінці Monobank 2. Monobank автоматично надсилає інформацію на мій сервер 3. Мій сервер отримує дані: invoiceId, статус (success/failure), сума 4. Я перевіряю що це дійсно від Monobank (перевірка підпису) 5. Зберігаю інформацію про платіж в базу даних 6. Логую всі webhook запити для відладки МІЙ ТОКЕН: [вставити токен] WEBHOOK URL: https://mysite.com/api/payment/webhook (цей URL потрібно вказати при створенні платежу в полі webHookUrl) ДОКУМЕНТАЦІЯ: - Webhook верифікація: https://monobank.ua/api-docs/acquiring/dev/webhooks/verify - Публічний ключ: https://monobank.ua/api-docs/acquiring/dev/webhooks/get--api--merchant--pubkey - Статуси платежів: https://monobank.ua/api-docs/acquiring/methods/ia/get--api--merchant--invoice--status ВАЖЛИВО: - Перевіряй X-Sign header (ECDSA підпис) - Зберігай invoiceId, status, amount, date в БД - Додай логування в файл або консоль - Обробляй статуси: success, failure, processing, hold, expired Напиши весь код для цього flow.
💳 Збереження картки для швидкої оплати #
Дозвольте користувачам платити однією кнопкою наступного разу.
Хочу щоб користувачі могли зберегти картку і платити швидше наступного разу.
ЗАДАЧА:
Реалізуй збереження картки користувача та оплату збереженою карткою.
ЩО МАЄ СТАТИСЯ:
1. Перший платіж: показати чекбокс "Зберегти картку для наступних платежів"
2. Якщо користувач погоджується - Monobank зберігає картку і дає мені walletId
3. Я зберігаю walletId в базі (прив'язаний до користувача)
4. Наступний платіж: використовую walletId замість нової картки
5. Показати користувачу список його збережених карток (маска **1234)
6. Дати можливість видалити збережену картку
МІЙ ТОКЕН:
[вставити токен]
ВАЖЛИВО:
- Картка зберігається В MONOBANK, не у мене!
- Я зберігаю лише walletId (безпечний токен)
- При створенні платежу передаю saveCardData: { saveCard: true }
- Отримую walletId з webhook після оплати
- Для повторної оплати використовую /api/merchant/wallet/payment
ДОКУМЕНТАЦІЯ:
- Збереження картки: https://monobank.ua/api-docs/acquiring/methods/ia/post--api--merchant--invoice--create (параметр saveCardData)
- Оплата по токену: https://monobank.ua/api-docs/acquiring/extras/tokens/post--api--merchant--wallet--payment
- Список карток: https://monobank.ua/api-docs/acquiring/extras/tokens/get--api--merchant--wallet--card--list
- Видалення картки: https://monobank.ua/api-docs/acquiring/extras/tokens/del--api--merchant--wallet--card
FLOW:
1. POST /invoice/create з saveCardData.saveCard = true
2. Webhook прийде з walletData.walletId → зберегти в БД
3. Наступна оплата: POST /wallet/payment з walletId
4. GET /wallet/card/list для показу списку карток
5. DELETE /wallet/card для видалення
Напиши весь код для цього flow.⏸️ Холд платежу перед доставкою #
Блокування коштів до відправки, потім зняття після підтвердження доставки.
Хочу спочатку заблокувати гроші на картці, перевірити замовлення, і тільки потім зняти кошти. ЗАДАЧА: Реалізуй hold-платіж (блокування коштів без зняття) та фіналізацію. ЩО МАЄ СТАТИСЯ: 1. Користувач оформляє замовлення 2. Я БЛОКУЮ кошти на його картці (hold), але НЕ знімаю 3. Кошти заблоковані на 9 днів максимум 4. Я перевіряю наявність товару, збираю замовлення, відправляю 5. Коли відправив - викликаю finalize → кошти ЗНІМАЮТЬСЯ з картки 6. Якщо щось не так - НЕ викликаю finalize, hold автоматично скасується АЛЬТЕРНАТИВА: Якщо ПІСЛЯ finalize (кошти вже зняті) клієнт повертає товар - викликаю cancel для повернення коштів МІЙ ТОКЕН: [вставити токен] СЦЕНАРІЇ: A) Успішна доставка: create(hold) → webhook(status=hold) → відправка → finalize → webhook(status=success) B) Скасування до відправки: create(hold) → webhook(status=hold) → проблема → НЕ викликаю finalize → авто-скасування C) Повернення після доставки: create(hold) → finalize → success → клієнт повернув → cancel → reversed ДОКУМЕНТАЦІЯ: - Створення hold: https://monobank.ua/api-docs/acquiring/methods/ia/post--api--merchant--invoice--create (параметр paymentType: "hold") - Фіналізація: https://monobank.ua/api-docs/acquiring/methods/ia/post--api--merchant--invoice--finalize - Скасування: https://monobank.ua/api-docs/acquiring/methods/ia/post--api--merchant--invoice--cancel - Статуси: https://monobank.ua/api-docs/acquiring/methods/ia/get--api--merchant--invoice--status ВАЖЛИВО: - paymentType: "hold" при створенні інвойсу - Webhook прийде зі status="hold" після блокування - НЕ ПЛУТАЙ: cancel тільки для status="success", не для hold! - Hold автоскасування через 9 днів - Можна фіналізувати на МЕНШУ суму (часткова фіналізація) - Перевіряй чи не пройшло 8+ днів перед finalize - Webhook може прийти двічі - роби ідемпотентність Напиши весь код для цього flow.
📋 Мені потрібні чеки й фіскалізація #
Потрібні чеки для каси чи звіти про товари? AI налаштує передачу даних про товари й фіскалізацію.
У мене магазин і мені потрібні чеки з переліком товарів при оплаті.
ЗАДАЧА:
Додай до платежів інформацію про товари щоб формувались фіскальні чеки.
ЩО МАЄ СТАТИСЯ:
1. Користувач додає товари в кошик
2. При оплаті я передаю список товарів в Monobank
3. Monobank генерує чек з переліком товарів
4. Після оплати можу отримати PDF чека
5. Вміти обробляти знижки на товар або на весь кошик
МОЇ ТОВАРИ (приклад):
- Кава Латте 300мл: 60 грн (6000 копійок)
- Круасан з шоколадом: 45 грн (4500 копійок)
- Сік апельсиновий: 35 грн (3500 копійок)
МІЙ ТОКЕН:
[вставити токен]
СТРУКТУРА ТОВАРУ:
{
name: "Назва товару",
qty: 2, // кількість
sum: 6000, // ціна за 1шт в копійках
total: 12000, // qty * sum
code: "LATTE300", // внутрішній код (опційно)
barcode: "4820000000000", // штрихкод (опційно)
tax: [1] // податок: [0]=без ПДВ, [1]=20% ПДВ, [2]=7%
}
ЗНИЖКИ:
Варіант 1 - На весь кошик:
{
amount: 19500, // загальна сума ПІСЛЯ знижки
merchantPaymInfo: {
basketOrder: [товари],
discounts: [{
type: "discount", // або "extra" для надбавки
mode: "percent", // або "value" для фіксованої суми
value: 10 // 10% знижка
}]
}
}
Варіант 2 - На конкретний товар:
{
name: "Кава Латте",
qty: 1,
sum: 6000,
total: 6000,
tax: [1],
discounts: [{
type: "discount",
mode: "value",
value: 500 // знижка 5 грн на цей товар
}]
}
ДОКУМЕНТАЦІЯ:
- basketOrder в invoice: https://monobank.ua/api-docs/acquiring/methods/ia/post--api--merchant--invoice--create
- Отримання чека PDF: https://monobank.ua/api-docs/acquiring/extras/prro/get--api--merchant--invoice--fiscal-checks
ВАЖЛИВО:
- Сума всіх total ПОВИННА = amount інвойсу!
- tax обов'язковий якщо у тебе пРРО
- НЕ створюй окремі товари для знижок, використовуй discounts[]
- qty може бути float (1.5 для 1.5кг)
- Знижки можуть бути type="extra" (надбавка/доставка)
ПРИКЛАДИ:
1. Кошик без знижок:
Латте 2шт + Круасан 1шт = 12000 + 4500 = 16500 (amount)
2. Знижка 10% на кошик:
Total = 16500, знижка = 1650, amount = 14850
3. Доставка +50грн:
Total = 16500, extra = 5000, amount = 21500
Напиши функції:
- Створення платежу з товарами
- Обробки знижок
- Отримання PDF чека після оплати!💡 Важливо знати перед тим, як почати
🔑 Токен (ключ доступу)
AI запитає у вас токен. Для тестування (перш ніж увімкнути реальні платежі) отримайте його тут: https://api.monobank.ua/ (тестовий) або https://web.monobank.ua/ (реальний).
🧪 Тестуйте перед production
Спочатку тестуйте з тестовим токеном. Потім, коли все працює — переходьте на реальний токен.
🔒 Безпека — серйозно
AI напише код, але ви все одно відповідальні за безпеку. Особливо для вебхуків — переконайтеся, що сигнатура перевіряється. Якщо AI напише код, перечитайте його хоча б раз.
❌ Типові помилки
- Помилка в сумі: пам'ятайте, суми в копійках (100 грн = 10000 копійок)
- Забули webhook — платіж пройде, але сервер не дізнається про це
- Токен видимий у коді — не робіть так, це небезпечно
- Не перевіряєте статус платежу — обов'язково чекайте "success" чи "failure"
🚀 Готові почати?
Рекомендований порядок:
- Почніть з промпту «Я хочу приймати платежі»
- Потім додайте «AI повинен дізнатися про платіж автоматично»
- Якщо все працює — додавайте інші функції (збереження картки, холду тощо)
❓ Щось не вийшло?
Якщо AI напише помилки або код не працює, просто спробуйте ще раз. AI іноді помиляється, але при повторній спробі зазвичай все вийде.
Також ви можете:
- Уточнити промпт — додайте більше деталей про те, що вам потрібно
- Поділити задачу — замість усього одразу, просіть AI робити крок за кроком
- Показати помилку — скопіюйте текст помилки в чат, AI допоможе це виправити
- Змінити платформу — спробуйте іншу IDE або AI сервіс
Пам'ятайте: вайб-кодинг — це ітеративний процес. Рідко все вийде з першої спроби, але наполегливість завжди дає результат!