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 = HOSTED
  • kyc_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:

  1. Call Create Account Owner with kyc_mode = HOSTED.
  2. The Account Owner is created with status PENDING.
  3. Redirect your customer to the returned kyc_url.
  4. The customer completes the KYC process in the hosted flow.
  5. 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:

  1. Call Create Account Owner with kyc_mode = EXTERNAL.
  2. Provide the external KYC token (e.g., SumSub Copy Applicant share token).
  3. We retrieve and validate the KYC information from the provider.
  4. 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 = INDIVIDUAL
  • type = ORGANIZATION

⚠️ When using SELF_DECLARED, supporting documentation is mandatory.

⚠️

Compliance Requirement: Before using type = SELF_DECLARED in 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:

  • id
  • upload_front_url
  • upload_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 TypeINDIVIDUALORGANIZATIONNotes
NATIONAL_IDGovernment-issued national ID
PASSPORTInternational passport
DRIVERS_LICENSEGovernment-issued driver’s license
SELFIESelfie of the individual
CERTIFICATE_OF_INCORPORATIONRequired for organizations
SOURCE_OF_FUNDSMay be requested depending on risk profile
PROOF_OF_ADDRESSUtility 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.jpg

Important:

  • 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:

  1. Use the document id returned in Step 1.
  2. 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 ModeWho Performs KYCDocuments Required
HOSTEDCustomer via hosted widgetHandled by provider
EXTERNALExisting KYC providerHandled by provider
SELF_DECLAREDYou collect and submit dataYes (mandatory)

For most integrations, we strongly recommend using HOSTED or EXTERNAL unless you already operate your own KYC flow.