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" --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.


Country-Specific Requirements

Argentina

For individuals in Argentina, both identifiers are required when creating the Account Owner:

IdentifierFieldDescription
DNItax_idThe national identity document number
CUILadditional_tax_idThe tax identification number

Collecting the CUIL via SumSub: when using kyc_mode = HOSTED, both identifiers are collected as part of the hosted flow — no additional setup is needed on your side.

When using kyc_mode = EXTERNAL with a SumSub Copy Applicant share token, the CUIL is captured through SumSub's tin field (fixedInfo.tin on the applicant). Infinia maps the applicant data as follows:

  • The national ID (DNI) remains the primary identifier and is stored in tax_id.
  • The tin value (CUIL) is stored in additional_tax_id.

Make sure the TIN field is enabled and collected in your SumSub applicant level so the CUIL flows through to the Account Owner. If the CUIL is missing, account creation for Argentine individuals will be rejected.


Summary

KYC ModeHow verification happensDocument upload via APIWhen to use it
HOSTEDYour customer completes the hosted KYC widget (kyc_url); the Account Owner moves from PENDING to COMPLETEDNot needed — documents are collected in the hosted flowYou don't operate your own KYC flow and want the simplest integration
EXTERNALInfinia imports an already-approved verification from your KYC provider (e.g. SumSub Copy Applicant share token)Not needed — documents are reused from the providerYou already verify your customers with a supported provider
SELF_DECLAREDYou collect the identity data and submit it directly; requires prior approval from Infinia's Compliance teamRequired — documents must be uploaded before creating the Account OwnerYou run your own KYC and compliance process end to end

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


Did this page help you?