This release updates the public Idempotency guide to better explain deterministic Idempotency-Key generation. The guide now clarifies that the request body must be canonicalized before hashing, and it includes clearer reference samples for Python and Node.js.
Impact: The Idempotency guide now explains more precisely how to compute body_hash: the request body must be canonicalized before hashing, with object keys sorted alphabetically at every level and serialized consistently.
Action required: Review your implementation if you generate deterministic Idempotency-Key values client-side, especially in non-Python implementations.
References: /products/fincore/guides/idempotency
Impact: The Python sample now includes clearer inline comments and step-by-step guidance for generating a deterministic Idempotency-Key. No backend behavior changed.
Action required: None, unless you want to align your implementation with the updated reference example.
References: /products/fincore/guides/idempotency
Impact: The Node.js sample was updated to make the normalization logic clearer and align the example with canonical JSON hashing expectations described in the guide.
Action required: If you implemented the previous sample directly, verify that your body hashing logic produces the same deterministic output for semantically identical payloads, including nested objects.
References: /products/fincore/guides/idempotency
Canonicalize the request body before hashing
- Sort object keys consistently before computing the SHA-256 hash.
- Ensure semantically identical payloads generate the same
body_hash.
Keep UUID v5 generation unchanged
- Continue using:
name = client_id + method + body_hashIdempotency-Key = UUIDv5(namespace, name)
- Continue using:
Validate client-side implementations
- If you copied a previous example into production code, confirm it matches the canonicalization rules described in the updated guide.