Idempotency
Crossmint webhooks follow an at-least-once delivery guarantee. Duplicate deliveries can occur (for example, if a previous attempt didn’t receive a 2xx response quickly enough). Implement idempotency by:- Using the webhook
idfield as a unique identifier - Storing processed webhook IDs in your database
- Checking if a webhook has already been processed before taking action
Note: The following code examples are pseudocode for illustration purposes.
Response Time
Your webhook endpoint must respond within 15 seconds, otherwise the webhook will be resent. For long-running operations:- Immediately acknowledge the webhook with a 200 response
- Queue the processing work for asynchronous execution
- Process the webhook data in a background job
Note: The following code examples are pseudocode for illustration purposes.
Error Handling
Implement proper error handling to ensure reliable webhook delivery:- Return 2xx within 15 seconds after verifying the signature to acknowledge receipt
- Return 400 for invalid signatures to reject the webhook
- Return 5xx for transient internal errors to trigger automatic retries
Signature Verification
Always verify webhook signatures to ensure requests are legitimate and come from Crossmint. Never process webhooks without verifying their signatures first. See Verify Webhooks for detailed instructions on signature verification.Related Resources
- Add an Endpoint - Configure webhook endpoints
- Verify Webhooks - Verify webhook signatures
- Overview - Learn about webhooks

