When it fires
POST /v1/trades/{id}/confirm was called after the trade’s confirmation token expired. High-value trades must be confirmed within a short window: 60 seconds by default, with the exact deadline returned as confirmation.expiresAt in the create response.
Why it happens
- A human-in-the-loop approval took longer than the window allows.
- Latency in your own pipeline between receiving the token from
POST /v1/tradesand calling confirm.
How to fix
- Call confirm as soon as you receive the token.
- If your approval flow genuinely needs longer, contact ZeroID support about your key’s confirmation window.
- An expired trade is not executed. Create a new trade to retry.