Как выбрать поставщика цифровых товаров по API: чек-лист
Десять вопросов к поставщику цифровых товаров с API, которые стоит задать до первого пополнения депозита, и способ проверить ответы на одном заказе.
Содержание 8 разделов
- Повторы и списания
- 1. Можно ли повторить заказ без второго списания
- 2. Видна ли цена до списания
- 3. Что происходит при сорванной доставке
- Доставка
- 4. Есть ли бесплатная проверка получателя
- 5. Какие статусы окончательные
- Безопасность
- 6. Подписаны ли уведомления
- 7. Как хранится ключ
- Работа с API
- 8. Что приходит на превышение лимита
- 9. Что нужно для старта
- 10. Совпадает ли документация с API
- Как это устроено у Hex
- Проверка на одном заказе
- Цена в конце списка
- Чек-лист
Оптовые цены у поставщиков цифровых товаров обычно расходятся на проценты, а повтор запроса, который списывает деньги второй раз, может стоить всего депозита. Поэтому сначала проверяют механику API и только потом сравнивают цену.
#Повторы и списания
#1. Можно ли повторить заказ без второго списания
Сеть рвётся, и рано или поздно ваш запрос уйдёт, а ответ не придёт. Если поставщик принимает ваш идентификатор операции и на повтор с ним возвращает тот же заказ, повтор безопасен. Если нет, выбирать придётся между двойным списанием и клиентом без товара. Спросите, где хранится уникальность: в базе или в памяти на пару минут.
Проверка: отправьте один и тот же запрос дважды и сравните баланс до и после.
#2. Видна ли цена до списания
Удобно, когда заказ создаётся в две фазы: сначала цена фиксируется и показывается клиенту, потом, после его согласия, списывается депозит. Если деньги уходят в момент создания, вы платите за заказы, от которых клиент отказался на экране подтверждения.
#3. Что происходит при сорванной доставке
Возврат на депозит должен быть автоматическим и видимым в статусе заказа. Возврат через тикет стоит переписки и пары дней без денег на каждом сорванном заказе. Отдельно спросите про частичную выдачу: что вернётся, если выдали меньше, чем заказано.
#Доставка
#4. Есть ли бесплатная проверка получателя
Опечатка в юзернейме срывает доставку. Проверка до оплаты, которая не трогает депозит, находит несуществующий аккаунт заранее. Без неё вы узнаёте об ошибке, когда деньги уже ушли.
#5. Какие статусы окончательные
Документация должна прямо называть конечные статусы заказа. «Доставка на проверке» и «доставка не удалась» требуют разных действий. Поставщик, который их не различает, заставит вас возвращать деньги за товар, который клиенту ещё придёт.
#Безопасность
#6. Подписаны ли уведомления
Вебхук без подписи подделает любой, кто знает ваш адрес, и пришлёт «заказ доставлен». Подпись должна считаться на секрете, который видите только вы, и проверяться по сырому телу запроса.
#7. Как хранится ключ
Ключ тратит ваши деньги. Поставщику достаточно хранить его хеш: ключ показывается один раз, а перевыпуск делается в кабинете без письма в поддержку.
#Работа с API
#8. Что приходит на превышение лимита
Лимит запросов встречается почти у каждого поставщика. Ответ 429 с заголовком Retry-After говорит, сколько ждать. Голый отказ заставляет угадывать паузу.
#9. Что нужно для старта
Посмотрите способы пополнения и минимальную сумму. Если для старта нужны юрлицо, договор и проверка документов, первый заказ случится через неделю. Если хватает входа через Telegram, поставщика можно проверить сегодня.
#10. Совпадает ли документация с API
Документацию, которую правят руками, легко забыть обновить вслед за API. Хороший признак: её собирают из спецификации, у каждого кода отказа написано, вернулись ли деньги и стоит ли повторять, а саму спецификацию можно скачать и отдать нейросети.
#Как это устроено у Hex
На площадке два API: цифровые товары и VPN-подписки. Ответы на вопросы из списка по обоим собраны в таблице.
| Вопрос | Цифровые товары | VPN-подписки |
|---|---|---|
| Повтор операции | тот же custom_id возвращает тот же заказ, повтор pay не списывает | тот же custom_id и тело возвращают результат первой попытки с idempotent_replay: true |
| Тот же id, другое тело | возвращается первый заказ | 409 custom_id_conflict |
| Цена до списания | create фиксирует, pay списывает | цены тарифов в GET /plans, покупка списывает сразу |
| Получатель | GET /check-recipient, бесплатно | подписка выдаётся на ваш external_user_id |
| Подпись вебхука | X-Signature: sha256=…, HMAC от сырого тела | то же, плюс X-Event и X-Delivery-Id |
| Повторы вебхука | источник истины опрос GET /order/{custom_id} | до 10 попыток за ~8,5 часа, дедуп по event_id |
| Лимит | около 60 в минуту, 429 с Retry-After | 60 в минуту, 429 с Retry-After |
| Бриф для ИИ | справочник в кабинете API, раздел «Для ИИ-агента» | /api/v1/vpn/llms.txt, без ключа |
#Проверка на одном заказе
Ответы поставщика проверяются за один заказ на минимальную сумму. Порядок одинаковый для любого API:
Все запросы этой проверки для нашего цифрового API, с ответами, есть в статье про интеграцию от ключа до заказа.
#Цена в конце списка
Если вы берёте один товар большими партиями и сами разбираете каждый сбой, механика повторов и возвратов для вас вторична. Тогда сравнивайте цену первой. Для магазина, где идут сотни мелких покупок от разных людей, порядок обратный.
Оптовые цены сравнивайте у тех, кто прошёл первые десять пунктов. Цена у нас персональная и зависит от курса, поэтому смотрите её в кабинете после входа, а не в чужих таблицах.
#Чек-лист
Проверьте нас по этому списку
Войдите через Telegram, выпустите ключ и пройдите проверку на минимальной сумме. Справочник с кодами отказов откроется сразу после входа.
Читать дальше
Как пройти проверку из статьи на нашем API, запрос за запросом.
Почему повтор и подпись важнее цены, с примерами кода.
Нужен ли вам API или хватит магазина в боте.