What to track
For Global Accounts, webhooks are especially important for:INTERNAL_ACCOUNT.BALANCE_UPDATEDevents for customer-facing balance changesOUTGOING_PAYMENT.*events for withdrawals and payment settlementINCOMING_PAYMENT.*events when your Global Account flow receives payments through UMA-address-based incoming payment flows- Withdrawal settlement, failures, refunds, and reversals
- Transaction state that results from executed quotes
- Customer or verification state changes when KYC/KYB gates account use
Recommended pattern
- Store the customer, account, quote, and transaction IDs from API responses.
- Verify the
X-Grid-Signatureheader before processing. - Process account and transaction webhooks idempotently.
- Update customer-visible state only after confirmed webhook events when settlement status matters.
- Reconcile webhook state against API reads for operational workflows.
Balance updates
When a Global Account balance changes, Grid sends an internal account status webhook:Withdrawal events
Withdrawals from a Global Account create outgoing payment activity after quote execution. Track the resulting transaction through terminal states such asCOMPLETED, FAILED, or EXPIRED, and handle refund events when applicable.
Grid does not send quote-specific webhook events. If your webhook handler misses an event, use List transactions as a backstop.
Incoming payment events
If your platform receives funds through UMA-address-based incoming payment flows, Grid can sendINCOMING_PAYMENT.PENDING, INCOMING_PAYMENT.COMPLETED, and INCOMING_PAYMENT.FAILED webhooks. Pending incoming payments can require your platform to approve or reject the payment synchronously in the webhook response, or asynchronously with POST /transactions/{transactionId}/approve or POST /transactions/{transactionId}/reject.
Not every Global Account funding path uses incoming payment webhooks. For direct account balance updates, use INTERNAL_ACCOUNT.BALANCE_UPDATED as the account balance signal.