Business Entity Onboarding and KYC Guide
This guide aims to help primary merchants (Agents or Payment Service Providers, PSPs) complete the basic onboarding and KYC compliance review for their secondary merchants (Business Entities) via API.
Business ContextThis workflow is specifically used for the admission and certification of business sub-merchants. Unlike individual onboarding, the business certification process involves not only a strict review of company credentials but also identity verification for multiple key related persons (such as Directors and Ultimate Beneficial Owners, UBOs). Associated personnel must complete biometric authentication, upload personal ID documents, and provide personal proof of address during the information submission phase.
Core Application Workflow ⚙️
The business entity onboarding certification consists of four main phases: entity creation, business file submission, status and personnel list query, and core personnel verification.
sequenceDiagram
autonumber
participant U as "Business User"
participant P as "Partner Platform"
participant D as "DogPay"
Note over U, D: Business KYC Verification
P->>D: 1. Create a business entity
Note right of P: POST /open-api/v1/entities/business-v2
P->>D: 2. Submit business KYC files
Note right of P: POST /open-api/v1/entities/business-kyc-v2
P->>D: 3. Query status and personnel list
Note right of P: GET /open-api/v1/entities/business-kyc-info
D-->>P: Return kycStatus and personId list
loop For each required key person (Director/UBO)
P->>D: 4. Get unique biometric URL
Note right of P: POST /open-api/v1/entities/biometric-url
D-->>P: Return the authentication URL
P->>U: Forward the URL to the executive
U->>D: 5. Visit URL, upload ID docs, and perform liveness check
D-->>P: 6. Personnel biometric success (Webhook)
Note right of P: Event: entity.person.biometric.success
end
D-->>P: 7. All persons authenticated (Webhook)
Note right of P: Event: entity.status.update
Note over D, D: Final review by partner and compliance team
D-->>P: 8. Business KYC completed (Webhook)
Note right of P: Event: entity.status.update
Detailed Integration Steps 🚀
Step 1: Entity Creation
Call the Create Business Entity (v2) endpoint to initialize the secondary merchant's basic record in the system.
Step 2: Compliance Material Upload and KYC Submission
In this phase, you must upload various entity files to obtain fileId values before submitting the review request.
- Business File Upload: Call the Upload File endpoint to obtain the
fileIdfor business qualifications. - Pre-uploading Address Proof: The personnel objects (
signer,ubos) contain apoaFileIdfield. You must call the upload file endpoint mentioned above in advance, specifying thefileUseTypeasaddress_proofto upload personal proof of address materials. Obtain the file ID and populate it into the respective person'spoaFileIdfield. - KYC Submission: Call the Submit Business KYC (v2) endpoint, mapping all acquired file IDs and business information.
Step 3: Query Personnel List and Review Status
After submitting the business KYC, the system automatically generates a list of key personnel who require identity verification.
You can check the business personnel list returned by the endpoint at the end of Step 2, or call the Get business KYC information endpoint. This interface is not only used to actively pull the overall review status (kycStatus) of the business KYC, but more importantly, you can use this interface to obtain the personId list of core personnel and their respective current authentication status.
Step 4: Complete ID Upload and Biometric Authentication
Every key individual designated by the system must complete personal identity verification:
- Obtain Link: For each
personIdretrieved in Step 3, call the Get Biometric URL endpoint and distribute the returned URL to the corresponding corporate personnel. - Submit ID and Liveness Check: After the business personnel open the authentication link in their browser, they will follow the on-screen instructions to upload their personal identification documents (such as passports, ID cards, driver's licenses, etc.) directly on that page, and complete the Face ID liveness check.
- Status Monitoring: You can listen for the
entity.person.biometric.successevent to track individual progress in real-time. Once the final individual completes all verifications, the system will trigger theentity.status.updateevent.
Step 5: Exception and Rejection Handling
If the submitted KYC materials are non-compliant, the system will change the kycStatus to request.
In this scenario, please refer to the Business KYC Rejection and Resubmission Guide to retrieve rejection details and call the corresponding resubmission endpoints to update the materials.
KYC Submission Validation Rules 🛡️
Business Type and Registration Region Matching
businessType must use one of the allowed values below and must match the registration region:
businessType | Allowed Regions |
|---|---|
private_limited_company | HK / SG / GB / VG / US / Other |
limited_liability_partnership | HK / SG / GB / VG / US / Other |
partnership | HK / SG / GB / US / Other |
sole_proprietorship | HK / SG / GB / US / Other |
listed_company | HK / SG / GB / VG / US / Other |
limited_liability_company | US / Other |
unlimited_company | US / Other |
Values such as public_limited_company, company, individual_businesses, trust, other, branch_office, and public_unlimited_company_with_share_capital are rejected.
Public Company Must Uselisted_companyFor public companies, only
listed_company(listed company) is accepted in the whitelist. Usingpublic_limited_companyfor Hong Kong / Singapore public companies will be rejected.
18 Years of Age Validation
Signers and UBOs must be at least 18 years old on the submission date; turning 18 on the submission date is considered passing. resubmit-person performs the check when birthDate is provided, while add-person always validates it.
Prohibited Country Validation
Business KYC submission and resubmission validate all countries/regions related to the business and its personnel. If any country is configured with level prohibited in the risk_country_level dictionary, the system returns HTTP 400 with business code 1000300. The message includes the matched country codes (ISO-2, comma-separated when multiple). Empty fields are skipped, and country codes are trimmed and converted to uppercase before matching.
File Validation Is Skipped When a Prohibited Country Is HitProhibited country validation runs before the region-based file checklist. Once a prohibited country is matched, the system does not continue to check required files.
Fields No Longer Collected
registerCapital, taxStructure, taxCountries, and hasBearerShares are no longer collected. Passing these fields does not cause an error, but they have no effect. Integrators should not rely on receiving these values back after submission.
Company Size
The numberOfEmployees enum values remain unchanged: few (1-20 employees), normal (20-50 employees), and lot (50+ employees).
Compliance Document Checklist 📋
When calling the upload endpoints, ensure that the fileUseType values strictly match the requirements below.
Document Upload Technical SpecificationsFormat Restrictions
Supported formats are JPEG (.jpg / .jpeg), PNG, WEBP, PDF, DOCX, and XLSX. DOC / XLS formats are not supported.Upload Request
The upload endpoints requiremultipart/form-data, and theContent-Typeheader must includeboundary.fileName Rules
fileNameis optional. When omitted, the original file name is used if it contains only ASCII characters; otherwise, afile_<uuid>.<ext>name is generated.fileNamemust not contain/,\, or control characters.Unified Submission Path
All compliance documents (including business materials and personnel address proofs) must be uniformly uploaded via the Upload File endpoint.
1. Business Required Documents (By Country/Region)
The required qualification documents are determined by region, business type, and years of establishment. Please strictly upload files using the corresponding fileUseType dictionary values from the table below.
| Region | Business Type | Required Documents (fileUseType) |
|---|---|---|
| HK | Private limited company | CI business_license; BR company_business_registration_certificate; NNC1 nnc1 / NAR1 nar1 (choose one) |
| Public company | CI; BR; annual return nar1; shareholder register SHAREHOLDER_INFORMATION_DOCUMENT | |
| LLP / Partnership | CI; BR; AoA article_of_Incorporation; director register DIRECTOR_INFORMATION_DOCUMENT; shareholder register SHAREHOLDER_INFORMATION_DOCUMENT | |
| Sole proprietorship | CI; BR | |
| SG | Private limited company | CI; BizFile BIZ_FILE |
| Public company | CI; BizFile; AoA article_of_Incorporation | |
| LLP / Partnership | CI; BizFile; AoA; shareholder register SHAREHOLDER_INFORMATION_DOCUMENT | |
| Sole proprietorship | CI; BizFile | |
| US | Non-sole (private/public/LLC/LLP/LP/GP) | CI; operating agreement article_of_Incorporation; EIN other; director register DIRECTOR_INFORMATION_DOCUMENT; shareholder register SHAREHOLDER_INFORMATION_DOCUMENT |
| Sole proprietorship | CI; EIN other | |
| GB | Private / Public / LLP | CI; AoA article_of_Incorporation; director register DIRECTOR_INFORMATION_DOCUMENT; shareholder register SHAREHOLDER_INFORMATION_DOCUMENT |
| Partnership | Business registration (HMRC) other; AoA; director register; shareholder register | |
| Sole proprietorship | Business registration (HMRC) other; director register DIRECTOR_INFORMATION_DOCUMENT | |
| VG | Private / Public | CI; AoA; director register; shareholder register; plus Good Standing other when established for more than 1 year |
| LLP | CI; AoA; director register; plus Good Standing other when established for more than 1 year | |
| Other | Non-sole | CI; business registration other; AoA; Good Standing other; director register; shareholder register (max 6 files) |
| Sole proprietorship | CI; Good Standing other |
The share structure chart is uploaded with other and is required only when the business is not a sole proprietorship and no single shareholder holds 100% of the shares. The UK CS01 is uploaded with ANNUAL_AUDIT_FORM and is optional.
2. Required Personnel Documents (Personal)
fileUseType Enum | Business Description |
|---|---|
address_proof | Personal proof of address (obtain the ID and populate it into the poaFileId field of the corresponding personnel object) |
Error Code Reference 🔍
| HTTP | Business Code | Scenario | Action |
|---|---|---|---|
| 400 | 1000300 | A prohibited country is involved | Check the country codes in message and resubmit |
| 400 | -1 | Business type does not match the region, required files are missing, or the person is under 18 | Correct the data based on the returned message and resubmit |
| 400 | 1000101 | Unsupported file type | Use JPEG/PNG/JPG/WEBP/PDF/DOCX/XLSX |
| 400 | 1000106 | Upload request is not multipart or lacks boundary | Fix the Content-Type and retry |
| 400 | 1000110 | Upload request does not include the file field | Upload using the file field |
| 413 | 1000111 | A single file exceeds the size limit | Compress or split the file and retry |
| 413 | 1000113 | The request body exceeds the size limit | Reduce the request body and retry |
Asynchronous Webhook Handling 🔔
Since the core review processes are executed asynchronously, please ensure your system correctly handles the following Webhook events to drive the business loop.
| Event Key | Trigger Logic Description |
|---|---|
entity.status.update |
|
entity.person.biometric.success | Authentication Successful: Triggered when a business associate successfully completes Face ID biometric authentication. |
entity.person.biometric.request | Authentication Rejected: Triggered when biometric authentication is rejected due to operational errors. The user must be guided to retry. |
Updated 7 days ago
