Это руководство проведёт вас по всем шагам подключения: от регистрации до приёма первого платежа на вашем сайте. Если где-то застряли — напишите на support@amypay.ru, поможем.
1. Регистрация
Перейдите на /register, укажите email и пароль. На почту придёт письмо со ссылкой для подтверждения. Сразу после входа рекомендуем включить двухфакторную аутентификацию в разделе «Настройки → 2FA» — это важно, ведь через аккаунт пойдут реальные деньги.
2. Создание кассы (мерчанта)
Касса — это отдельная сущность, привязанная к одному вашему сайту или проекту. Если у вас несколько магазинов, создайте несколько касс.
В личном кабинете откройте «Кассы → Создать» и заполните:
- Название — отображается на странице оплаты и в уведомлениях;
- URL магазина — ссылка на ваш сайт;
- Success URL — куда Плательщик возвращается после успешной оплаты;
- Fail URL — куда возвращается при отмене;
- Notify URL — куда Amypay пришлёт серверное уведомление о смене статуса заказа (вебхук);
- Test mode — включите на время разработки.
{order}, {external_id}, {status}.
Например: https://myshop.ru/thanks?id={external_id}.
3. Способы оплаты
По умолчанию включены все способы, поддерживаемые Сервисом. Вы можете отключить ненужные и настроить комиссии в разделе «Кассы → [название] → Способы оплаты».
| Код | Название | Валюта | Лимит |
|---|---|---|---|
p2p_yoomoney |
ЮMoney | RUB | 100 — 30 000 |
p2p_sbp |
СБП (P2P) | RUB | 10 — 100 000 |
p2p_card |
Карта (P2P) | RUB | 100 — 100 000 |
balance_rub |
С баланса Amypay | RUB | 1 — 1 000 000 |
crypto_bot |
Crypto Bot | RUB | 10 — 1 000 000 |
crypto_btc |
Bitcoin | BTC | 0 — 10 |
crypto_usdt |
USDT (TRC-20) | USDT | 1 — 50 000 |
crypto_ltc |
Litecoin | LTC | 0 — 1 000 |
crypto_doge |
Dogecoin | DOGE | 1 — 5 000 000 |
crypto_bch |
Bitcoin Cash | BCH | 0 — 500 |
crypto_trx |
TRON | TRX | 1 — 10 000 000 |
crypto_eth |
Ethereum | ETH | 0 — 500 |
crypto_bnb |
BNB (BEP-20) | BNB | 0 — 5 000 |
crypto_usdt_erc20 |
USDT (ERC-20) | USDT_ERC20 | 1 — 100 000 |
crypto_usdt_bep20 |
USDT (BEP-20) | USDT_BEP20 | 1 — 100 000 |
crypto_usdc_erc20 |
USDC (ERC-20) | USDC_ERC20 | 1 — 100 000 |
crypto_usdc_trc20 |
USDC (TRC-20) | USDC_TRC20 | 1 — 100 000 |
crypto_usdc_bep20 |
USDC (BEP-20) | USDC_BEP20 | 1 — 100 000 |
4. API-ключ и секретное слово
В разделе «Кассы → [название] → Реквизиты API» получите:
api_key— используется как Bearer-токен при вызовах API;secret_word_1— для подписи ссылок на страницу оплаты;secret_word_2— для проверки подписи вебхуков.
api_key и secret_word_*
в JavaScript, публичном репозитории или в приложении для iOS/Android.
Все обращения к API делайте только с серверной стороны.
5. Создаём первый заказ
Самый простой способ интеграции — создать заказ через API и
перенаправить Плательщика на полученный pay_url.
curl -X POST https://amypay.ru/api/v2/orders \
-H "Authorization: Bearer ваш_api_key" \
-H "Content-Type: application/json" \
-d '{
"amount": 1490.00,
"external_order_id": "ORDER-123",
"description": "Подписка Pro на 1 месяц",
"payer_email": "customer@example.com",
"metadata": { "plan": "pro", "months": 1 }
}'
В ответ получите:
{
"ok": true,
"order": {
"number": "AMY-20260421-000123",
"amount": 1490.00,
"currency": "RUB",
"status": "pending",
"external_order_id": "ORDER-123",
"pay_url": "https://amypay.ru/pay?t=eyJhbGciOi...",
"created_at": 1745251200
}
}
Перенаправьте Плательщика на pay_url — там он увидит
вашу страницу оплаты с выбранными способами.
6. Вебхуки
Когда Плательщик оплатит заказ (или его отменит), Amypay
отправит POST-запрос на ваш Notify URL.
Формат тела — application/x-www-form-urlencoded:
merchant_id=42
amount=1490.00
currency=RUB
pay_currency=RUB
pay_amount=1490.00
amount_credited=1475.1000
order_number=AMY-20260421-000123
external_order_id=ORDER-123
provider=p2p_sbp
test_mode=0
sign=7c4a8d09ca3762af61e59520943dc26494f8941b
metadata[plan]=pro
metadata[months]=1
Подпись считается так:
sign = sha256( api_key + ":" + order_number + ":" + amount + ":" + secret_word_2 )
Проверьте подпись на своей стороне — и только потом меняйте статус
заказа в вашей базе. Ответ ожидается со статусом 2xx;
если сервер недоступен, мы повторим попытку по расписанию
30 сек → 2 мин → 10 мин → 30 мин → 2 часа.
success_url —
это просто страница подтверждения для Плательщика. Реальный
статус обновляйте только на основании вебхука с проверенной подписью.
7. Тестовый режим и sandbox
Включите test_mode у кассы. В этом режиме:
- на странице оплаты появится кнопка «Провести тестовый платёж»;
- заказ сразу переходит в статус
paid; - на ваш Notify URL приходит настоящий вебхук — можно проверить обработку сигнатуры;
- деньги с реальных карт не списываются.
После отладки переключите кассу в боевой режим — и можно принимать первые настоящие платежи.
8. Вывод средств
Полученные деньги хранятся на вашем внутреннем кошельке Amypay. В разделе «Вывод» выберите способ (карта / крипто / иной), укажите сумму и реквизиты. Минимальные суммы и комиссии вывода — на странице Тарифы.
Заявки на вывод в будни обрабатываются в течение нескольких часов. Крупные выплаты могут потребовать дополнительной верификации.
9. Частые ошибки
401 Unauthorized
Проверьте, что передаёте Authorization: Bearer <api_key>
и что касса не в статусе suspended. Ключ должен быть
именно от этой кассы, а не от другой.
422 Validation error
В ответе будет поле errors с именами проблемных параметров.
Чаще всего ошибка в amount (должен быть > 0) или
в длине external_order_id (до 128 символов).
Вебхук не приходит
- Откройте «Заказы → [номер]» — на карточке видны попытки доставки вебхука и коды ответа вашего сервера.
- Убедитесь, что Notify URL отвечает быстрее 10 секунд.
- Проверьте, что на стороне сервера не стоит редирект с 301/302.
Неверная подпись вебхука
Самая частая причина — используется secret_word_1 вместо
secret_word_2. Для вебхука нужно именно второе секретное
слово.