To prevent accidental duplicate processing (for example, if a request is retried due to network issues or timeouts), transactional send endpoints support idempotency via the optional traceId parameter.
How It Works
- Each request can include a unique GUID
traceIdparameter. - The system stores the
traceIdfor 5 minutes to detect repeated requests. - If the same
traceIdis received again within 5 minutes:- The API returns HTTP 409 Conflict
- The request is not reprocessed.
- If
traceIdis omitted, the endpoint behaves as before (no idempotency check).
Best Practices
- Set the client timeout below 5 minutes (ideally 3 minutes), since the
traceIdis stored for 5 minutes. - Generate a unique GUID for each distinct transaction you want to protect from duplicate processing.
- Use the same
traceIdwhen retrying the same transaction to ensure idempotency.