OneProvider
API реселлера

API реселлера: коды и тарифы

Пачки кодов, отзыв, погашение кода в ключ и управление тарифными планами реселлера через партнёрский API OneProvider: примеры запросов на curl.

Пачки кодов, отзыв, погашение кода в ключ и управление тарифными планами реселлера через партнёрский API.

Все модели, характеристики и цены Индекс документации для AI-агентов: https://oneprovider.dev/docs/llms.txt

Пачки кодов

Пачка создаётся методом POST /code-batches (право codes, нужен Idempotency-Key): label, count до 200, amount_usd до 5000 на код. Необязательно: key_expires_days или key_expires_hours (сколько живёт ключ после активации кода, по умолчанию 90 дней) и codes_valid_until (до какого момента код можно активировать, ISO 8601; позже неактивированные коды отзываются сами и резерв возвращается).

bash
curl -s -X POST https://app.oneprovider.dev/partner/v1/code-batches \
-H "Authorization: Bearer $OP_PARTNER_TOKEN" \
-H "Idempotency-Key: batch-oct-001" \
-H "Content-Type: application/json" \
-d '{"label":"October promo","count":50,"amount_usd":"5.00","key_expires_hours":24,"codes_valid_until":"2026-12-31T23:59:59Z"}'

Пачка только резервирует стоимость (count x amount_usd) на балансе реселлера: она должна помещаться в «Свободно», но деньги не списываются. Когда код активируют, он становится ключом, лимит которого остаётся в резерве, а списание идёт по мере расхода. Отзыв неактивированных кодов возвращает резерв. Объект пачки: id, label, count, amount_usd, used, revoked, key_expires_hours, key_expires_days, codes_valid_until, created_at.

bash
# list batches, read one, list its codes
curl -s https://app.oneprovider.dev/partner/v1/code-batches -H "Authorization: Bearer $OP_PARTNER_TOKEN"
curl -s https://app.oneprovider.dev/partner/v1/code-batches/<batch id> -H "Authorization: Bearer $OP_PARTNER_TOKEN"
curl -s "https://app.oneprovider.dev/partner/v1/code-batches/<batch id>/codes?status=active&limit=100" \
-H "Authorization: Bearer $OP_PARTNER_TOKEN"
# revoke what is still unredeemed
curl -s -X POST https://app.oneprovider.dev/partner/v1/code-batches/<batch id>/revoke -H "Authorization: Bearer $OP_PARTNER_TOKEN"

Объект кода: code, status (активен, погашен, отозван: active/used/revoked), amount_usd, batch_id, redeemed_at, key_id. Статус одного кода: GET /codes/{code}.

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

Погасить код через API

Если вы сами превращаете код в ключ, вызовите POST /codes/{code}/redeem (нужен Idempotency-Key). Клиента можно указать через customer_id или customer_external_id.

bash
curl -s -X POST https://app.oneprovider.dev/partner/v1/codes/<code>/redeem \
-H "Authorization: Bearer $OP_PARTNER_TOKEN" \
-H "Idempotency-Key: redeem-<code>" \
-H "Content-Type: application/json" \
-d '{"customer_external_id":"user-77"}'

Ответ 201 содержит ключ и его секрет (один раз). Уже погашенный код даёт 409 code_used, отозванный 409 code_revoked.

Тарифы

Тариф это ваша цена клиентам: сколько USD получает ключ, сколько и в какой валюте клиент платит вам, на какой срок. Тарифы нужны для POST /orders (параметр plan_id). Максимум 20 тарифов (409 plan_limit). Чтение тарифов требует право read, изменение plans.

Поля тарифа
ПолеОписание
nameНазвание, до 40 символов.
balance_usdСумма, которую получает ключ.
price, currencyВаша цена клиенту и валюта: USD, RUB, XTR или USDT.
expires_days / expires_hoursСрок ключа: 1..365 дней или 1..8760 часов (одно из двух; по умолчанию 30 дней). В ответе всегда есть expires_hours; expires_days = null, если срок не кратен суткам.
sort, activeПорядок показа и признак активности.
bash
curl -s -X POST https://app.oneprovider.dev/partner/v1/plans \
-H "Authorization: Bearer $OP_PARTNER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Start 10 USD","balance_usd":"10.00","price":"890.00","currency":"RUB","expires_days":30,"sort":1,"active":true}'
curl -s -X PATCH https://app.oneprovider.dev/partner/v1/plans/<plan id> -H "Authorization: Bearer $OP_PARTNER_TOKEN" \
-H "Content-Type: application/json" -d '{"active":false}'
curl -s -X DELETE https://app.oneprovider.dev/partner/v1/plans/<plan id> -H "Authorization: Bearer $OP_PARTNER_TOKEN"

GET /pricing возвращает лимиты, в которые надо укладываться: минимум и максимум суммы ключа, максимальный срок, максимум суммы кода, размер пачки, число тарифов и токенов.

Последнее обновление: 2026-10-21 Нашли ошибку? @Oneproviderhelpbot