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: v2 and v1 (legacy). V2 now supports all Circle products. See Set up a webhook endpoint for the flow that matches your product, or learn how to migrate your existing endpoints to v2.

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, CPN Managed Payments, Circle Mint, Digital Asset Accounts, End User Onboarding, 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).