Idempotence
Un réseau coupé au mauvais moment laisse un doute : la session a-t-elle été créée ? Envoyez un en-tête Idempotency-Key unique par opération et rejouez sans crainte.
- La même clé avec le même corps renvoie la même réponse, avec l'en-tête
Idempotent-Replayed: true. La session n'est créée et facturée qu'une fois. - La même clé avec un corps différent :
422 idempotency_key_reused. - Pendant que la première requête est en cours :
409 idempotency_request_in_progress, réessayez un peu plus tard. - Les clés sont conservées 24 heures, par compte et par mode. 1 à 255 caractères : un UUID ou votre identifiant d'opération.
curl -X POST https://checkid.lapieuvre.tech/v1/sessions \
-H "Authorization: Bearer sk_test_…" \
-H "Idempotency-Key: inscription-user_1842-1" \
-H "Content-Type: application/json" \
-d '{
"client_reference_id": "user_1842"
}'
const response = await fetch("https://checkid.lapieuvre.tech/v1/sessions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CHECKID_SECRET_KEY}`,
"Idempotency-Key": "inscription-user_1842-1",
"Content-Type": "application/json",
},
body: JSON.stringify({
"client_reference_id": "user_1842"
}),
});
const data = await response.json();
$ch = curl_init('https://checkid.lapieuvre.tech/v1/sessions');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('CHECKID_SECRET_KEY'),
'Idempotency-Key: inscription-user_1842-1',
'Content-Type: application/json',
],
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'client_reference_id' => 'user_1842',
]),
]);
$data = json_decode(curl_exec($ch), true);
import os
import requests
response = requests.post(
"https://checkid.lapieuvre.tech/v1/sessions",
headers={
"Authorization": f"Bearer {os.environ['CHECKID_SECRET_KEY']}",
"Idempotency-Key": "inscription-user_1842-1",
},
json={
"client_reference_id": "user_1842",
},
timeout=10,
)
data = response.json()