Документація·Ідемпотентність
🔁

Ідемпотентність

Як хедер `Idempotency-Key` оберігає від подвійного списання при ретраях на нестабільних мережах.

Навіщо це

Мережі падають посеред запиту. Якщо ви робите POST /v1/activations і з'єднання обривається до отримання відповіді, ви не знаєте, чи активація була створена. Наївний retry може списати двічі.

Хедер Idempotency-Key вирішує це: надішліть той самий ключ на retry — отримаєте той самий результат.

Як використовувати

Згенеруйте UUID на логічну операцію, надсилайте його на кожному retry:

KEY=$(uuidgen)
curl -X POST https://api.eveses.com/v1/activations \
  -H "Authorization: Bearer $EVESES_API_KEY" \
  -H "Idempotency-Key: $KEY" \
  -d '{"country":"ua", "service":"telegram"}'

Повтор того ж запиту з тим самим Idempotency-Key повертає оригінальну відповідь — без другої активації, без другого списання.

TTL

Ключі зберігаються 24 години. Після цього слот звільняється і ключ можна використати як новий.

Де застосовується

Усі POST /v1/* ендпоінти що створюють або списують: активації, оренда, депозити, продовження. Read-ендпоінти (GET) вже ідемпотентні і ігнорують хедер.

Конфлікти

Якщо ви переуикористовуєте ключ із іншим body — API повертає 409 idempotency_conflict. Або тримайте body ідентичним на ретраях, або генеруйте новий ключ.

Поведінка SDK

Офіційні SDK автоматично генерують idempotency-keys для кожного create-виклику і переуикористовують їх на автоматичних retry. Можна перевизначити явним ключем.