PDF generation · Implement

Idempotent PDF Generation Requests Explained

Prevent duplicate work and safely replay matching synchronous generation requests after network failures.

For developer · 7 min · Reviewed Jul 31, 2026

The duplicate-request problem

A client can lose the response after the server has completed generation. Retrying without an operation identity can create duplicate work or ambiguous outcomes.

One key per logical operation

Create a unique key in trusted application code and store it with the business operation. Reuse it only when retrying the same template selection and exactly the same payload.

Do not put customer data or credentials in the key.

Changed and concurrent requests

A reused key with changed render inputs must fail rather than return an unrelated result. A concurrent matching request should wait at the caller or handle the in-progress response instead of creating another operation.

Result lifecycle

A completed matching request can replay the private PDF while that result is retained. PDFDesignAPI private idempotency results expire after 24 hours, so durable business documents must move to application-owned authorized storage.

Combine with bounded retries

Retry only failures classified as transient, use exponential backoff with jitter, and cap both attempts and total elapsed time. Validation and authorization failures need correction, not repetition.

Put this workflow into practice

Read the idempotency docs

Related guides