文档·幂等性
🔁

幂等性

`Idempotency-Key` 头部如何在不稳定网络上重试时避免重复扣费。

为什么重要

网络会在请求中途失败。如果你 POST /v1/activations 而连接在你看到响应前断开,你不知道激活是否已创建。简单地重试可能会扣两次费。

Idempotency-Key 头部解决了这个问题:在重试时发送相同的密钥,得到相同的结果。

如何使用

为每个逻辑操作生成一个 UUID,并在同一操作的每次重试时发送它:

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/* 端点:激活、租用、存款、延期。读取端点(GET)已经幂等并忽略此头部。

冲突

如果你用相同密钥但不同 body 重用,API 返回 409 idempotency_conflict。在重试时保持 body 相同,或生成新密钥。

SDK 行为

官方 SDK 为每次创建调用自动生成幂等性密钥,并在自动重试时重用。如有需要可用显式密钥覆盖。