Weelay

Merchant API

Публичное описание Merchant API: base URL, авторизация, создание счетов, список счетов, получение счёта, ответы, ошибки и безопасность.

Документация Опубликовано: 2026-06-21 Читать ~4 мин.

Общие положения

Merchant API позволяет backend продавца работать с Weelay программно: проверить текущий API-ключ, создать счёт, получить список счетов и получить один счёт.

Base URL:

https://api.weelay.com/v1

Merchant API должен вызываться только с backend продавца. Secret API key нельзя размещать во frontend, публичном JavaScript, мобильном приложении без защищённого backend или открытом репозитории.

Авторизация

Merchant API использует secret API key проекта.

Каждый защищённый запрос должен содержать header:

Authorization: Bearer weelay_secret_...

Secret key должен начинаться с weelay_secret_.

Если header отсутствует, ключ неверный, ключ отозван, проект неактивен или аккаунт неактивен, API вернёт ошибку.

Рекомендуемые headers

Для JSON-запросов используйте:

  • Accept: application/json;
  • Content-Type: application/json;
  • Authorization: Bearer weelay_secret_....

Health endpoint

GET /health

Полный URL:

https://api.weelay.com/v1/health

Этот endpoint проверяет, что API отвечает. Merchant secret key для него не нужен.

Проверка API-ключа

GET /merchant/me

Полный URL:

https://api.weelay.com/v1/merchant/me

Endpoint возвращает данные текущего проекта и API-ключа.

Используйте его, чтобы проверить, что secret API key работает и относится к активному проекту.

Создание счёта

POST /merchant/invoices

Полный URL:

https://api.weelay.com/v1/merchant/invoices

Минимальный body:

{"amount":"10.55","order_id":"ORDER-1001"}

Поля запроса:

  • amount — обязательная строка с положительной суммой, максимум 2 знака после точки;
  • order_id — необязательная строка до 120 символов.

amount должен передаваться строкой, а не числом.

Idempotency-Key

При создании счёта рекомендуется передавать header:

Idempotency-Key: order-1001

Если backend продавца повторит запрос с тем же Idempotency-Key, Weelay вернёт уже созданный счёт вместо создания дубля.

Это защищает продавца от повторного создания счёта при timeout, сетевой ошибке или повторной отправке запроса.

Ответ при создании счёта

При успешном создании счёта API возвращает статус 201.

Основные поля ответа:

  • id — публичный id счёта;
  • project_id — публичный id проекта;
  • status — статус счёта;
  • amount — сумма к оплате;
  • currency — валюта;
  • network — сеть оплаты;
  • order_id — id заказа продавца, если был передан;
  • payment_url — ссылка на страницу оплаты;
  • payment_expires_at — срок оплаты;
  • paid_at — время оплаты, если счёт оплачен;
  • tx_hash — hash транзакции, если платёж найден;
  • created_at;
  • updated_at.

Сохраняйте id, order_id, payment_url и status у себя в системе.

Список счетов

GET /merchant/invoices

Полный URL:

https://api.weelay.com/v1/merchant/invoices

Query parameters:

  • status — необязательный фильтр по статусу;
  • limit — количество записей от 1 до 100;
  • page — номер страницы.

Пример query:

GET /merchant/invoices?status=pending&limit=20&page=1

Ответ содержит список счетов и данные pagination.

Получение одного счёта

GET /merchant/invoices/{invoice}

Полный URL:

https://api.weelay.com/v1/merchant/invoices/{invoice}

{invoice} должен быть публичным id счёта формата inv_....

Продавец может получить только счёт своего проекта.

Статусы счетов

Основные статусы:

  • pending — счёт создан и ждёт оплату;
  • paid — платёж найден и подтверждён;
  • expired — срок оплаты истёк;
  • failed — счёт не может быть успешно завершён.

Заказ продавца должен выполняться только после статуса paid.

Формат успешного ответа

Успешный ответ содержит:

  • success;
  • message;
  • data;
  • meta, если есть дополнительные данные;
  • trace_id.

trace_id нужен для диагностики и обращения в поддержку.

Формат ошибки

Ошибка содержит:

  • success;
  • message;
  • error.code;
  • error.details;
  • trace_id.

Сохраняйте trace_id в своих логах, но не логируйте полный secret API key.

Основные ошибки

Возможные ошибки авторизации:

  • API_KEY_REQUIRED;
  • API_KEY_INVALID_FORMAT;
  • API_KEY_INVALID;
  • API_KEY_REVOKED;
  • PROJECT_NOT_ACTIVE;
  • ACCOUNT_NOT_ACTIVE.

Возможные общие ошибки:

  • VALIDATION_ERROR;
  • NOT_FOUND;
  • METHOD_NOT_ALLOWED;
  • RATE_LIMITED;
  • INTERNAL_SERVER_ERROR.

Лимиты запросов

Merchant API использует лимиты запросов.

Если лимит превышен, API вернёт ошибку RATE_LIMITED со статусом 429.

Продавец должен обрабатывать такую ошибку спокойно и повторять запрос позже, если это допустимо для его сценария.

Безопасность secret key

Secret API key должен храниться только на backend.

Нельзя:

  • отправлять secret key в браузер;
  • вставлять secret key во frontend JavaScript;
  • хранить secret key в открытом репозитории;
  • писать полный secret key в логи;
  • отправлять secret key в чаты, тикеты или скриншоты.

Если ключ раскрыт, отзовите его в dashboard и создайте новый.

Production-рекомендации

Для production-интеграции:

  • создавайте счета только с backend;
  • используйте Idempotency-Key;
  • сохраняйте payment_url;
  • связывайте счёт со своим заказом через order_id;
  • выполняйте заказ только после paid;
  • обрабатывайте webhook идемпотентно;
  • сохраняйте trace_id ошибок;
  • не логируйте secret API key.

Куда идти дальше

После этой страницы полезно прочитать:

  • Руководство подключения;
  • Счета;
  • Статусы счетов;
  • Idempotency-Key;
  • Webhook-уведомления;
  • Ошибки API.

Поддержка

Нужна помощь?

Напишите в поддержку Weelay, если на странице нет нужного ответа.