Skip to main content
Circle uses webhooks to notify your application when events occur. Circle products handle many operations in the background. When a resource changes state, Circle sends an HTTP POST to the endpoint you configure so your application can react.

Notification API versions

Circle offers two notification systems. Which one you integrate with depends on the product you’re using. The two versions differ in subscription setup, message format, and signature verification. See Set up a webhook endpoint for the flow that matches your product.

Event model

Each webhook notification is an HTTP POST request to a subscriber endpoint you configure. The envelope shape depends on the notification API version.
Used by Circle Wallets, Circle Contracts, CPN payments, Gateway, and StableFX. Each notification includes:You subscribe to the events your application cares about. When a corresponding state change occurs in Circle’s systems, Circle sends a notification to your endpoint.

Delivery, ordering, and idempotency

Circle delivers webhook notifications at least once. If your endpoint does not respond with a success status, or if the request fails, Circle retries delivery. The same notification can be sent more than once. Keep in mind the following:
  • Your endpoint must be idempotent: Your handler must produce the same result each time it runs. Deduplicate on the Notification ID (v2) or MessageId (v1) before applying side effects.
  • Your application must not assume delivery order: Notifications for successive state changes (for example, CONFIRMED then COMPLETE) can arrive in a different order than when the state changes occurred. Handle each notification based on the state it carries, not on its arrival sequence.
To inspect delivery attempts, view payloads, or resend a notification, view Webhook Logs in the Circle Console (Wallets, Contracts) or CPN Console (CPN).