Skip to main content
This flow is rolled out per merchant through a feature flag — off by default. It only applies when the company is created with a segment (see Create Company and List Segments).Merchants without the flag enabled continue on the legacy onboarding flow.For the full integration walkthrough, see Onboarding Documents Integration.

Status Flow

When a company is created with a segment, it is moved to pending_documents and the onboarding webhook delivers the list of documents the client must send. Once all required documents are sent, the solicitation advances to documents_under_review. After compliance approves every document, the flow branches by modality (derived from the company address country):
  • National (address in Brazil): the solicitation moves to waiting_signature while the legal representatives sign the contract; once signed, the account is created and becomes active.
  • Cross-border (address outside Brazil): the solicitation moves to waiting_bank_channel, then to bank_channel_created once the bank channel is opened, and finally to active. There is no signature step for cross-border.
A rejection sends the solicitation back to pending_documents, and a closed review moves it to canceled. This flow does not go through due_diligence_review (that step only exists in the legacy flow).

Statuses

pending

First status of the process. The account opening request has been received and is awaiting processing.

pending_documents

The documents required for the company’s segment and modality (national/crossborder) were resolved and attached to the onboarding request. The webhook for this status includes the list of documents the client must send (see Webhook Payload). The solicitation stays here until all required documents are sent; optional documents do not block the transition.

documents_under_review

All required documents were sent and compliance is reviewing them. The webhook payload still includes the documents list, now carrying each document’s review state. A rejection sends the solicitation back to pending_documents (preserving already-approved documents); once everything is approved the flow branches by modality (waiting_signature for national, waiting_bank_channel for cross-border).

waiting_signature

National only. All documents were approved and the contract is awaiting signature by the legal representatives. Fetch the signing links with the Get Signature Link endpoint and route each representative to their sign_url. Once every signer has signed, the account is created and the solicitation moves to active. The webhook payload for this status does not include the documents array.

waiting_bank_channel

Cross-border only. All documents were approved and the bank channel is being opened by WEpayments. The webhook payload for this status does not include the documents array.

bank_channel_created

Cross-border only. The bank channel was created; the account is being finalized and will move to active. The webhook payload for this status does not include the documents array.

active

Account is active/approved. At this status, the webhook sends the account_id (MID - Merchant ID) that identifies the merchant’s account.

canceled

Onboarding did not proceed (e.g. compliance closed the review). The webhook payload includes the documents list.

inactive

Account is inactive after being previously activated.

closed

Account has been closed.

Webhook Payload

The payload always carries the solicitation id, its status and updated_at. The documents array is included while the solicitation is in pending_documents, documents_under_review or canceled:
id
string
UUID of the solicitation.
status
string
Current status of the solicitation.
updated_at
string
Timestamp of the last status change (ISO 8601).
account_id
string | null
The merchant account identifier (MID). null until the account is created — populated when status is active.
documents
array
List of documents required for the company, resolved from its segment and modality. Present when status is pending_documents, documents_under_review or canceled.
When is it fired? A webhook is dispatched on every status change, on every document upload, and on every compliance decision — so expect multiple deliveries per solicitation. Reconcile by id + status and the per-document state, and keep your handler idempotent.
Delivery & retries: your webhook endpoint must return a 200 OK status code to acknowledge receipt. If it fails or returns an error, delivery is retried up to 3 times, every 15 minutes.
To receive onboarding status updates via webhook, register them using the Webhook Setup endpoint.