Skip to main content
All customer webhooks are sent to your collection_url.

Parameter overview

The event

Customer-level transitions all fire a single event on the wire: event_type = customer.status_changed. The old_status and new_status fields tell you which way the customer just moved — for example PENDING → VERIFIED, PROCESSING → REJECTED, or REJECTED → PROCESSING (after a re-submission). You will commonly hear about these as “the verified webhook” or “the rejected webhook” — that’s shorthand for the same customer.status_changed event with new_status=VERIFIED or new_status=REJECTED. There are no separate event_type values for them on the wire.

When the event fires

  • Verification approvednew_status=VERIFIED. The customer can now be used for Virtual Bank Account creation, payouts, and any other operation that requires a verified customer.
  • Verification rejectednew_status=REJECTED. Check the comment field for the customer-level reason. For business customers, also fetch GET /api/external/customer/{id} to read per-owner and per-document admin_comments arrays — the actionable per-record feedback lives there.
  • Submitted for review (business customers)new_status=PROCESSING, fired right after POST /api/external/customer/{id}/submit. Indicates the customer is now locked and under compliance review.
  • Reverted by adminnew_status=PENDING after a previously-VERIFIED or REJECTED customer is moved back to PENDING by our operations team. Rare.
Verification is not instant. After documents are uploaded (individual) or /submit is called (business), the customer enters a review process. You will not receive this webhook immediately — it arrives once the review is complete.For individual customers, the review finishes within a few minutes in most cases; up to 2 hours under additional screening. Do not raise support tickets within that window. Escalate only if pending for 5 hours or more.For business customers, KYB review typically takes 1–5 business days. Do not raise tickets within that window. Escalate only if PROCESSING for more than 5 business days. See Business customer KYB.

Example payload

Rejected example

Possible statuses

No per-owner or per-KYB-document webhooks. For business customers, individual owner and document state changes during review do not emit webhooks. The customer-level customer.status_changed event is the only signal — when it fires with new_status=VERIFIED or new_status=REJECTED, fetch the customer to read the per-record state.

Verification timing

  • Individual customers: typically a few minutes; up to 2 hours under additional screening. Do not escalate before 2 hours; contact operations only if pending for 5 hours or more.
  • Business customers: typically 1–5 business days. Compliance reviews each owner and each KYB document individually. Do not escalate within the 5-business-day window. See Business customer KYB for the full lifecycle.