Account Owners
An Account Owner is the verified legal entity (individual or company) behind a named account, required for compliance and KYC purposes.
Account Owner Integration Methods
When creating an Account Owner for a named account, we support two integration approaches depending on your compliance and onboarding setup.
For named accounts, creating an Account Owner is mandatory. The Account Owner object stores the identity and compliance information required to issue and operate an account in the name of a specific person or business
1. KYC Provider Integration (Recommended)
We recommend integrating through a supported KYC provider. This reduces implementation complexity and ensures a smoother compliance flow.
You can create the Account Owner with:
kyc_mode = HOSTEDkyc_mode = EXTERNAL
kyc_mode = HOSTED
With HOSTED, we return a kyc_url that contains a hosted verification widget.
When created using this method, the Account Owner will initially have the status PENDING. Once the customer successfully completes the hosted KYC flow and verification is approved, the status will transition to COMPLETED.
Flow:
- Call
Create Account Ownerwithkyc_mode = HOSTED. - The Account Owner is created with status
PENDING. - Redirect your customer to the returned
kyc_url. - The customer completes the KYC process in the hosted flow.
- Upon successful verification, the Account Owner status changes to
COMPLETED.
kyc_mode = EXTERNAL
With EXTERNAL, you provide a customer who has already completed KYC with a supported provider.
We currently support:
- SumSub using the Copy Applicant share token
- Persona (coming soon)
Flow:
- Call
Create Account Ownerwithkyc_mode = EXTERNAL. - Provide the external KYC token (e.g., SumSub Copy Applicant share token).
- We retrieve and validate the KYC information from the provider.
- Once verification is confirmed, the Account Owner status transitions to
COMPLETED.
This option is ideal if you already have an existing KYC integration and want to reuse completed verifications.
2. Self-Declared Data
If you prefer to handle KYC data collection yourself, you may submit raw identity information directly using:
kyc_mode = SELF_DECLARED
kyc_mode = SELF_DECLARED
This is supported for both:
type = INDIVIDUALtype = ORGANIZATION
⚠️ When using SELF_DECLARED, supporting documentation is mandatory.
Compliance Requirement: Before using
type = SELF_DECLAREDin production, Infinia’s Compliance team must review and approve your integration, including validation of the source of the identity data being collected and your KYC and compliance process, to ensure regulatory alignment and proper risk controls.
Document Upload Flow (Required for SELF_DECLARED)
When using kyc_mode = SELF_DECLARED, supporting documentation must be uploaded before creating the Account Owner.
Step 1 — Initiate Document Upload
Call the Initiate Document Upload endpoint and specify the required document_type.
The response will include:
idupload_front_urlupload_back_url(if applicable)expires_at
Example response:
{
"id": "acdd6e51-ca66-4204-8a97-0a6be27254dc",
"upload_front_url": "https://upload-url.example.com/uploads/doc_123/front",
"upload_back_url": "https://upload-url.example.com/uploads/doc_123/back",
"expires_at": "2026-02-16T22:00:00Z"
}Supported Document Types
The following document_type values are supported when calling Initiate Document Upload.
| Document Type | INDIVIDUAL | ORGANIZATION | Notes |
|---|---|---|---|
NATIONAL_ID | ✅ | ❌ | Government-issued national ID |
PASSPORT | ✅ | ❌ | International passport |
DRIVERS_LICENSE | ✅ | ❌ | Government-issued driver’s license |
SELFIE | ✅ | ❌ | Selfie of the individual |
CERTIFICATE_OF_INCORPORATION | ❌ | ✅ | Required for organizations |
SOURCE_OF_FUNDS | ✅ | ✅ | May be requested depending on risk profile |
PROOF_OF_ADDRESS | ✅ | ✅ | Utility bill, bank statement, etc. |
Step 2 — Upload File (HTTP PUT)
You must perform an HTTP PUT request directly to the provided upload URL.
The request body must contain the raw binary file.
Example using curl:
curl -X PUT "https://upload-url.example.com/uploads/doc_123/front" -H "Content-Type: image/jpeg" --upload-file document_front.jpgImportant:
- Use the exact URL returned in the response.
- Send the raw binary file as the request body.
- Set the appropriate Content-Type header (for example: image/jpeg, image/png, application/pdf).
- A successful upload typically returns HTTP 200 OK or 204 No Content.
If a back side is required, repeat the same process using the upload_back_url.
If the expires_at timestamp is reached before the upload completes, you must initiate a new document upload request.
Step 3 — Create Account Owner
Once the file upload succeeds:
- Use the document
idreturned in Step 1. - Include it in the appropriate document field when calling Create Account Owner.
Only after successful upload and referencing the document id can the Account Owner be created under SELF_DECLARED.
Summary
| KYC Mode | Who Performs KYC | Documents Required |
|---|---|---|
HOSTED | Customer via hosted widget | Handled by provider |
EXTERNAL | Existing KYC provider | Handled by provider |
SELF_DECLARED | You collect and submit data | Yes (mandatory) |
For most integrations, we strongly recommend using HOSTED or EXTERNAL unless you already operate your own KYC flow.
Updated 25 days ago
