Rest API Idempotency

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 traceId parameter.
  • The system stores the traceId for 5 minutes to detect repeated requests.
  • If the same traceId is received again within 5 minutes:
    • The API returns HTTP 409 Conflict
    • The request is not reprocessed.
  • If traceId is omitted, the endpoint behaves as before (no idempotency check).

Best Practices

  • Set the client timeout below 5 minutes (ideally 3 minutes), since the traceId is stored for 5 minutes.
  • Generate a unique GUID for each distinct transaction you want to protect from duplicate processing.
  • Use the same traceId when retrying the same transaction to ensure idempotency.