Webhooks
Track order lifecycle events and payment status with webhooks
Webhooks Overview
Webhooks allow you to track the status of payments and order lifecycle events in your application. They provide real-time notifications for various events like payment processing, NFT minting, and order fulfillment.
Webhook Systems by Checkout Version
Crossmint offers different webhook systems for Checkout V2 and V3:
Checkout V2 Webhooks (Legacy)
The Checkout V2 webhook system provides basic payment tracking with a single event type:
purchase.succeeded
- Triggered when an NFT has been successfully purchased and delivered
Checkout V3 Webhooks (Current)
The Checkout V3 webhook system offers comprehensive order lifecycle tracking with multiple event types:
Quote Phase
orders.quote.created
- Triggered when a new order is createdorders.quote.updated
- Triggered when order details are modified
Payment Phase
orders.payment.succeeded
- Triggered when payment is successfully processedorders.payment.failed
- Triggered when payment fails
Delivery Phase
orders.delivery.initiated
- Triggered when delivery beginsorders.delivery.completed
- Triggered when delivery succeedsorders.delivery.failed
- Triggered when delivery fails
Setting Up Webhooks
1. Create an endpoint route
Using a standard nodejs API server, create an endpoint.
2. Configure the endpoint
Your endpoint should:
- Handle POST requests only
- Parse webhook events from the request body
- Respond with a
200
status code to acknowledge receipt
Example handler:
Don’t be strict with payload validations as Crossmint may add new fields to the webhooks as products evolve.
3. Example Webhook Responses
4. Pass Custom Arguments (Optional)
You can pass custom arguments through webhooks to track additional information:
- User IDs (If you want additional security, sign this ID with a custom key, or send it as a signed JWT, and verify its integrity later on your server)
- Timestamps
- Product SKUs
- Custom metadata
Example of passing arguments:
Then, extract them on the server:
5. Pre & Post Processing
Add your pre and post processing logic when setting up your webhook listener. For example, you can call back to your database when a certain id has succeeded or even use Sendgrid or EmailJS to send an email to a recipient when a mint completes.
6. Configure in Crossmint Console
- Navigate to the Webhooks page in the console
- Click Add Endpoint
- Enter your endpoint URL
- Select the webhook events to receive
- Click Create
6. Security
For security, verify webhook signatures using the signing secret from your endpoint details page:
See the Verify Webhooks guide for implementation details.
Testing Webhooks
- Use test card number
4242 4242 4242 4242
for successful payments - Use
4000 0000 0000 4954
to test payment failures - Monitor webhook deliveries in the Console
Was this page helpful?