Configure idempotency headers

View as Markdown
Pro and Enterprise feature

This feature is available only for the Pro and Enterprise plans. To get started, reach out to support@buildwithfern.com.

For endpoints you’ve configured as idempotent, Fern’s SDKs allow you to specify idempotency headers. Typically the headers include Idempotency-Key, but you can also specify additional headers.

How it works for SDK users

Your SDK users can specify an idempotency header like this:

1const response = await client.transactions.send({
2 amount: 100,
3 currency: "usd",
4}, {
5 idempotencyKey: "64099353-b48b-4dcd-98b7-74df1cc57933"
6});

The generated SDKs won’t allow users to specify idempotency headers for non-idempotent endpoints. This ensures that the user knows exactly which invocations are idempotent and which aren’t.

Setting up idempotency headers

To set up idempotency headers in your API, configure the idempotency headers and mark individual endpoints as idempotent.

Configure idempotency using the x-fern-idempotency-headers and x-fern-idempotent extensions:

openapi-overrides.yml
1# Configure the idempotency headers
2x-fern-idempotency-headers:
3 - header: IDEMPOTENCY-KEY
4 name: idempotency_key
5
6# Mark an individual endpoint as idempotent
7paths:
8 /foo:
9 post:
10 x-fern-idempotent: true