Retrying API calls without being charged twice
Networks fail at the worst moment. Here is how idempotency keys make a retry safe.
Finovel team · 1 November 2026
Your server sends a verification request. The connection drops before the answer comes back. Did the check run? Were you charged? Should you try again?
Without help, there is no safe answer: retrying might pay for the same check twice, and not retrying might leave a customer stuck.
Send a key with each request
Add an Idempotency-Key header that identifies the piece of work, such as an order or application number.
Idempotency-Key: application-48213-pan
Then retry as often as you need:
- Same key, same body: you get the stored response. No new check runs and nothing more is charged. Stored responses are kept for 24 hours.
- Same key, different body: you get a 409 error, because that is almost always a bug.
- The last attempt failed or your balance was low: the key is released, so a retry runs again.
How charging stays exact
Before a production call, the price is held in your wallet. When the result arrives, the hold is either captured or released in one step, along with the request's final state. Each request can settle only once, so a retry cannot charge twice, and errors are never charged.
If a request is ever left unfinished, it is marked as unknown and its hold is released without charging you.
You can read the details in the docs.
Tell us what you need to verify
We will reply with the right APIs and a price for your volumes.