Before you integrate, itโs worth knowing what your users actually go through. This covers each stage of the DollarPe flow, the statuses your backend will see, and when to act on them.Documentation Index
Fetch the complete documentation index at: https://docs.dollarpe.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Journey stages
A new user goes through up to four stages before completing a transaction. Returning users who are already verified skip directly to the transaction stage.Onboarding
The user provides personal details: name, date of birth, address, and tax ID. This data is submitted via the widget or your own screens if youโre on the API path.
KYC verification
The user uploads an identity document and takes a selfie. DollarPe runs automated checks. Customer status moves to
PROCESSING immediately, then resolves to VERIFIED or FAILED.KYC typically completes within minutes. You receive a CUSTOMER webhook when it resolves.Bank linking (payout only)
For payout flows, the user adds a bank account or UPI ID. DollarPe verifies it via penny drop or UPI validation. Bank status moves to
VERIFIED or FAILED.Not required for payin. A user can have multiple bank accounts, each verified independently.Status flow by stage
| Stage | Object | Status transitions |
|---|---|---|
| KYC | CUSTOMER | UNVERIFIED โ PROCESSING โ VERIFIED / FAILED |
| Bank | BANK | PROCESSING โ VERIFIED / FAILED |
| Payin order | PAYIN | PROCESSING โ SUCCESS / FAILED / ON_HOLD |
| Payout order | PAYOUT | PROCESSING โ SUCCESS / FAILED / REFUNDED |
Returning users
A returning user withCUSTOMER status VERIFIED skips onboarding and KYC. For payout, they also need at least one BANK status VERIFIED. For payin, they land directly on the transaction screen without bank linking.
Widget path
If you use hosted mode or iframe integration, the widget manages every step above. Your backend only needs to:- Create the customer before the user first opens the widget
- Listen to webhooks for status changes
- Act on terminal states (release crypto on
PAYINSUCCESS, hold onON_HOLD, investigate onFAILED)

