Всё необходимое для интеграции платёжной системы Aura Pay в ваш проект
Интеграция Aura Pay состоит из нескольких простых шагов. Вы можете начать принимать платежи за 15 минут.
После регистрации и прохождения модерации, в личном кабинете в разделе «Настройки проекта» вы найдёте:
Никогда не передавайте Secret Key третьим лицам и не используйте его на стороне клиента (frontend).
Все запросы к API направляются по адресу:
https://api.aura-pay.shop/v1/
API принимает и возвращает данные в формате JSON. Все запросы должны содержать заголовок:
Content-Type: application/json
Для авторизации используется API-ключ, который передаётся в заголовке каждого запроса.
Authorization: Bearer YOUR_API_KEY
Для критически важных операций (создание платежа, возврат) запрос подписывается с помощью Secret Key по алгоритму HMAC-SHA256.
import hmac, hashlib, json
def sign_request(data, secret_key):
payload = json.dumps(data, sort_keys=True)
signature = hmac.new(
secret_key.encode(),
payload.encode(),
hashlib.sha256
).hexdigest()
return signature
Для создания платежа отправьте POST-запрос на эндпоинт:
| Параметр | Тип | Описание |
|---|---|---|
amount обязательный |
number | Сумма платежа в рублях (мин. 10 ₽) |
order_id обязательный |
string | Уникальный идентификатор заказа в вашей системе |
description опционально |
string | Описание платежа (до 256 символов) |
success_url опционально |
string | URL для перенаправления после успешной оплаты |
fail_url опционально |
string | URL для перенаправления при ошибке оплаты |
webhook_url опционально |
string | URL для уведомлений о статусе платежа |
expire опционально |
integer | Время жизни платежа в минутах (по умолчанию 60) |
curl -X POST https://api.aura-pay.shop/v1/payments/create \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"amount": 1500.00,
"order_id": "ORDER-12345",
"description": "Оплата заказа #12345",
"success_url": "https://example.com/success",
"fail_url": "https://example.com/fail"
}'
{
"status": "success",
"data": {
"id": "pay_8f2k4j6h8d",
"amount": 1500.00,
"currency": "RUB",
"status": "pending",
"payment_url": "https://pay.aura-pay.shop/p/pay_8f2k4j6h8d",
"expire_at": "2026-02-12T15:30:00Z"
}
}
Для проверки статуса платежа используйте GET-запрос:
| Статус | Описание |
|---|---|
pending |
Платёж создан, ожидает оплаты |
processing |
Платёж обрабатывается |
completed |
Платёж успешно завершён |
failed |
Платёж отклонён |
expired |
Истекло время ожидания оплаты |
refunded |
Средства возвращены |
Aura Pay отправляет POST-уведомления на указанный вами URL при изменении статуса платежа.
{
"event": "payment.completed",
"data": {
"id": "pay_8f2k4j6h8d",
"amount": 1500.00,
"currency": "RUB",
"status": "completed",
"order_id": "ORDER-12345",
"paid_at": "2026-02-12T14:35:22Z"
},
"signature": "a1b2c3d4e5f6..."
}
Обязательно проверяйте подпись вебхука перед обработкой платежа:
function verifyWebhook($body, $signature, $secretKey) {
$data = json_decode($body, true);
unset($data['signature']);
$payload = json_encode($data, JSON_SORT_KEYS);
$expected = hash_hmac('sha256', $payload, $secretKey);
return hash_equals($expected, $signature);
}
Ваш сервер должен ответить HTTP 200 в течение 10 секунд. При отсутствии ответа уведомление будет повторно отправлено через 5, 30 и 60 минут.
При возникновении ошибки API возвращает JSON с описанием проблемы.
| Код | HTTP | Описание |
|---|---|---|
INVALID_API_KEY |
401 | Неверный API-ключ |
INVALID_SIGNATURE |
401 | Неверная подпись запроса |
INVALID_AMOUNT |
400 | Некорректная сумма платежа |
DUPLICATE_ORDER |
409 | Заказ с таким order_id уже существует |
PAYMENT_NOT_FOUND |
404 | Платёж не найден |
SHOP_BLOCKED |
403 | Магазин заблокирован |
RATE_LIMIT |
429 | Превышен лимит запросов (100 запросов/мин) |
INTERNAL_ERROR |
500 | Внутренняя ошибка сервера |
{
"status": "error",
"code": "INVALID_AMOUNT",
"message": "Сумма платежа должна быть не менее 10 ₽"
}