Individual Account (VA) Onboarding
A comprehensive guide to verifying individual users and issuing Virtual Bank Accounts (VAs). This workflow covers KYC requirements for both new and existing users.
Individual Account (VA) Onboarding
[!info] Business Context This process is designed for Partners to apply for Virtual Bank Accounts (VAs) for their individual sub-merchants. The workflow is divided into two phases: Identity Verification (KYC) and Account Issuance.
1. Workflow Overview
The following sequence diagram illustrates the end-to-end interaction between the User, Partner, DogPay, and the Bank.
sequenceDiagram
autonumber
participant U as User
participant P as Partner
participant D as DogPay
participant B as Bank
Note over U, B: Phase 1: KYC Verification
alt Case 1: Historical KYC User (Address Verification)
P->>D: Create a POA URL for an authorized entity (API)
Note right of P: POST /open-api/v1/entities/poa-url
D-->>P: Return the POA URL
P->>U: Forward the POA URL
U->>D: Submit POA information (via URL)
else Case 2: New User (Full KYC)
P->>D: Create a Person entity (API)
Note right of P: POST /open-api/v1/entities/person
P->>D: Create an entity auth URL (API)
Note right of P: POST /open-api/v1/entities/auth-url
D-->>P: Return the KYC URL
P->>U: Forward the KYC URL
U->>D: Submit KYC information (via URL)
end
Note over D, B: Unified Backend Processing
D->>B: Submit KYC information
B-->>D: KYC completed
D-->>P: KYC completed (Webhook)
Note right of P: Event: entity.status.update
Note over U, B: Phase 2: Account Opening
U->>P: Submit account opening materials
P->>D: Submit FATCA documents (API)
Note right of P: POST /open-api/v1/file/upload<br/>fileUseType=fatca
P->>D: Submit Source of Funds documents (API)
Note right of P: POST /open-api/v1/file/upload<br/>fileUseType=source_of_funds
P->>D: Create a private VA (API)
Note right of P: POST /open-api/v1/va/private-create
D->>B: Submit account opening information
B-->>D: Account opening completed
D-->>P: Account opening completed (Webhook)
Note right of P: Event: va.create
P->>U: Notify user: Account ready
2. Integration Steps
Step 1: Identity Verification (KYC)
Depending on whether the user is new to the system, choose the appropriate API:
- New Users (Case 2): Call
POST /entities/personto create the entity, thenPOST /entities/auth-urlto get the hosted KYC link. - Existing Users (Case 1): Only a Proof of Address (POA) is required via
POST /entities/poa-url.
Step 2: Compliance Document Upload
Before applying for a VA, compliance documents must be uploaded:
- FATCA: Use
/file/uploadwithfileUseType=fatca. - Source of Funds (SOF): Use
/file/uploadwithfileUseType=source_of_funds.
Step 3: Private VA Creation
Call POST /va/private-create to initiate the account opening request.
3. Webhook Events
| Event Key | Trigger Condition |
|---|---|
entity.status.update | Sent when the user's KYC status is successfully verified. |
va.create | Sent when the Bank confirms the Virtual Account is ready. |
Updated about 13 hours ago
