Skip to main content
Managed Payments uses the v1 Circle APIs notification subscription system, which is separate from the CPN Platform v2 webhook system. For CPN Platform webhook events, see the CPN Platform webhook events reference.
See Set up a webhook endpoint to register an endpoint. The webhooks overview defines the v1 envelope.

Event types

Payment intent events

The paymentIntents event fires when an intent is created or gets a deposit address. It also fires when the intent receives funds. timeline[].status values:
  • created: intent created
  • pending: awaiting deposit; one-time intents use this state
  • active: deposit address assigned; continuous intents use this in place of pending
  • complete: funds received in full
  • expired: intent expired before completion
  • failed: intent could not be fulfilled
  • refunded: funds returned to the sender
Example paymentIntents payload

Payment events

The payments event fires when a payment status changes. payment.status values:
  • pending: payment detected, awaiting confirmation
  • paid: funds settled to the merchant wallet
  • failed: payment could not be completed
Example payments payload

Address book recipient events

The addressBookRecipients event fires when a recipient’s status changes. addressBookRecipient.status values:
  • pending: recipient submitted, awaiting review
  • active: recipient approved
  • inactive: recipient deactivated
  • denied: recipient rejected
  • failed: verification failed
  • pending_verification: additional verification in progress
  • on_hold: review paused pending more information
Example addressBookRecipients payload

Payout events

The payouts event fires when a payout status changes. It covers both stablecoin payouts and fiat withdrawals. Read destination.type to tell them apart: an address_book or blockchain destination is a stablecoin payout, and a wire destination is a fiat withdrawal. A fiat withdrawal also carries a fees object and, if the bank returns the funds, a return object. payout.status values:
  • pending: payout initiated, in progress
  • complete: funds delivered to the destination
  • failed: payout could not be completed
Example payouts payload
A fiat withdrawal carries a bank destination instead:
Example fiat withdrawal payload
The payouts event fires only when a payout reaches a terminal status (complete or failed), not while it’s pending.

Wire transfer events

The wireTransfer event fires when a fiat withdrawal changes status. Circle delivers it as a webhook to Managed Payments accounts, alongside the payouts event for the same withdrawal. It’s separate from the wire event, which reports bank account link status. wireTransfer.status values:
  • pending: withdrawal initiated, in progress
  • complete: funds sent to the bank
  • failed: withdrawal could not be completed
Example wireTransfer payload

Credit transfer events

The creditTransfer event fires when a credit transfer status changes. A credit transfer draws funds from a line of credit. creditTransfer.status values:
  • requested: funds requested from the line of credit
  • disbursed: funds sent to the wallet
  • paid: transfer repaid in full
Example creditTransfer payload

Credit transfer fields

The creditTransfer object has these fields:

Wire bank account events

The wire event fires when a linked wire bank account changes status. Create the account through the Wires API. wire.status values:
  • pending: Circle is verifying the account
  • complete: account linked successfully
  • failed: account could not be linked
Example wire payload

Deposit events

The deposits event fires when a fiat deposit settles to a wallet or sub-account. The payload includes the deposit id, amount, source, and destination. deposit.status values:
  • pending: deposit detected, settlement in progress
  • complete: funds credited to the wallet or sub-account
  • failed: deposit could not be settled
Example deposits payload

Account events

The accounts event reports a sub-account’s status. Use it to learn when a new sub-account is ready. account.status values:
  • pending: sub-account created, compliance check in progress
  • active: sub-account ready for use
  • rejected: sub-account denied
This event reports the result of a compliance check. In most cases, it is active or rejected.
Example accounts payload