Приём платежей

Создание платежа

Главный метод интеграции: создаёт транзакцию-приём и возвращает ссылку на оплату.

POST/integration/transactions

Создаёт платёж (депозит) от имени мерчанта. В ответ приходит объект транзакции со статусомpending и полем payment_url, на которое нужно отправить покупателя.

Параметры запроса

Тело запроса — JSON. Суммы — целые числа в минорных единицах.

ПолеТипОписание
amountобяз.integerСумма к оплате в минорных единицах валюты currency. Минимум 1.
currencyобяз.stringВалюта оплаты: RUB, USD или EUR.
payment_methodобяз.stringКод активного метода оплаты, например sbp.
external_idобяз.stringВаш идентификатор заказа (до 255 символов). Обеспечивает идемпотентность.
descriptionопц.stringНазначение платежа (до 255 символов). Опционально.
metadataопц.objectПроизвольный JSON-объект, который вернётся в ответе и запросах статуса.
payloadопц.stringПроизвольная строка до 1024 символов для ваших служебных данных.
callback_urlопц.string (https)URL для вебхуков, только HTTPS и публичный хост. Если не задан — берётся из настроек мерчанта. Обязателен хотя бы один из источников.
success_urlопц.string (url)Куда вернуть клиента после успешной оплаты. По умолчанию — из настроек.
fail_urlопц.string (url)Куда вернуть клиента при неудаче. По умолчанию — из настроек.
callback_url: обязателен и только HTTPS

Если callback_url не передан в запросе и не задан в настройках мерчанта, платёж не будет создан (403). URL должен использовать HTTPS и публичный хост — иначе 422. Без него вы не узнаете об оплате.

Пример запроса

201 Created
curl -X POST https://api.cashera.cash/api/v1/integration/transactions \
-H "X-Api-Key: $CASHERA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 49900,
"currency": "RUB",
"payment_method": "sbp",
"external_id": "order-10428",
"description": "Подписка Pro, 1 мес.",
"metadata": { "user_id": 7781, "plan": "pro" }
}'

Ответ

201 Created — объект транзакции. Поля без обёрткиdata, на верхнем уровне.

201 Created
{
"uuid": "9b1f2c4e-7a01-4b9d-8f1c-2eab57d90c11",
"type": "deposit",
"amount": 49900,
"gross_amount": 49900,
"net_amount": 48403,
"fee_amount": 1497,
"fee_payer": "merchant",
"currency": "RUB",
"settlement_currency": "USDT",
"settlement_amount": 5280000,
"fx_rate": "0.01090000",
"fx_rate_updated_at": "2026-06-02T18:04:51+00:00",
"payment_method": "sbp",
"status": "pending",
"external_id": "order-10428",
"description": "Подписка Pro, 1 мес.",
"metadata": { "user_id": 7781, "plan": "pro" },
"payment_url": "pay.cashera.cash/9b1f2c4e",
"expires_at": "2026-06-02T18:20:00+00:00",
"paid_at": null,
"created_at": "2026-06-02T18:05:00+00:00",
"updated_at": "2026-06-02T18:05:00+00:00"
}
Свой экран оплаты

Вместо редиректа на payment_url вы можете получить QR/реквизиты и показать их в своём интерфейсе — см. реквизиты H2H.

Суммы и комиссия

  • amount — сумма, которую вы запросили.
  • gross_amount — сумма к списанию с клиента (зависит от того, кто платит комиссию).
  • net_amount — сумма после удержания комиссии.
  • fee_amount / fee_payer — размер и плательщик комиссии (merchant или customer).
  • settlement_amount — сколько USDT (в микроюнитах) зачислится на баланс по курсу fx_rate.

Ошибки

ПолеТипОписание
401опц.UnauthorizedНеверный или отсутствующий X-Api-Key.
403опц.ForbiddenМерчант отключён, не может принимать платежи, либо не задан callback_url.
422опц.Unprocessable EntityОшибка валидации (см. поле errors): неверная валюта, выключенный метод и т.п.
502опц.Bad GatewayПлатёжный провайдер вернул ошибку при инициации платежа.
422 Unprocessable
{
"message": "The selected payment method is invalid.",
"errors": {
"payment_method": ["The selected payment method is invalid."]
}
}