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.
Event types
Payment intent events
ThepaymentIntents 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 createdpending: awaiting deposit; one-time intents use this stateactive: deposit address assigned; continuous intents use this in place ofpendingcomplete: funds received in fullexpired: intent expired before completionfailed: intent could not be fulfilledrefunded: funds returned to the sender
Example paymentIntents payload
Payment events
Thepayments event fires when a payment status changes.
payment.status values:
pending: payment detected, awaiting confirmationpaid: funds settled to the merchant walletfailed: payment could not be completed
Example payments payload
Address book recipient events
TheaddressBookRecipients event fires when a recipient’s status changes.
addressBookRecipient.status values:
pending: recipient submitted, awaiting reviewactive: recipient approvedinactive: recipient deactivateddenied: recipient rejectedfailed: verification failedpending_verification: additional verification in progresson_hold: review paused pending more information
Example addressBookRecipients payload
Payout events
Thepayouts 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 progresscomplete: funds delivered to the destinationfailed: payout could not be completed
Example payouts payload
destination instead:
Example fiat withdrawal payload
payouts event fires only when a payout reaches a terminal status
(complete or failed), not while it’s pending.
Wire transfer events
ThewireTransfer 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 progresscomplete: funds sent to the bankfailed: withdrawal could not be completed
Example wireTransfer payload
Credit transfer events
ThecreditTransfer 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 creditdisbursed: funds sent to the walletpaid: transfer repaid in full
Example creditTransfer payload
Credit transfer fields
ThecreditTransfer object has these fields:
Wire bank account events
Thewire 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 accountcomplete: account linked successfullyfailed: account could not be linked
Example wire payload
Deposit events
Thedeposits 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 progresscomplete: funds credited to the wallet or sub-accountfailed: deposit could not be settled
Example deposits payload
Account events
Theaccounts 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 progressactive: sub-account ready for userejected: sub-account denied
This event reports the result of a compliance check. In most cases, it is
active or rejected.Example accounts payload