All upload categories available for SFTP ingestion
Each category corresponds to a directory name in the upload path:
{category}/{filename}.xlsx
The tables below are the column-by-column reference for every category. Column
names are given in normalized form — headers in your workbook are matched
after normalization, so
KYC Policy Name, kyc policy name, and kyc_policy_name are all the same
column, and column order never matters.Two kinds of “required” apply:
Required header — the column must exist in row 2, or the whole workbook
is rejected.
Required value — the cell must be non-blank on each data row, or that
row is rejected (or skipped, for identifier columns that mark blank rows).
Upload order matters across categories: policies → programs → data.
Programs reference policies by name, and data rows reference programs by
name. A reference to something not yet ingested fails at the row level.
Directory: kyc_cert_policy/Defines Know Your Customer verification policies. Each row configures a named
policy whose operation flags control which verification steps are active.
Policy workbooks configure the network, so they are accepted only from the
network’s governor.
Each flag enables or disables a verification step in the policy. Accepted
values: true/false, yes/no, y/n, 1/0 (case-insensitive).
A blank cell is read as false. All nine headers must be present.
Directory: kyb_cert_policy/Defines Know Your Business verification policies. Same structure as KYC
policies, with business-specific operation flags. Governor-only, like all
configuration categories.
Same value rules as the KYC flags (blank reads as false):
Column
Description
business_identity_verification
Require business identity verification
business_ownership_control_verification
Require ownership and control verification
business_risk_compliance_verification
Require risk and compliance assessment
The trailing _verification may be omitted in these three headers —
business_identity, business_ownership_control, and
business_risk_compliance map to the same flags.
kyb_policy (policy number; Ex. prefix marks example rows) plus the same
optional metadata columns as the KYC Certificate Policy category
(end_date_if_applicable, data source, storage system, consent fields,
permitted purpose scopes).
Directory: programs/Configures network programs that link KYC and KYB policies together with
effective date windows. One spreadsheet row becomes one program plus one
program–policy link per filled slot. The template provides 5 KYC slots and
5 KYB slots per row. Governor-only.
Each slot follows the pattern below, where {n} is the slot number (1–5 in
the template):
Column pattern
Type
Description
kyc_policy_{n}_name
string
KYC policy name for slot n
kyc_policy_{n}_start
date
Effective start date for slot n
kyc_policy_{n}_end_if_applicable
date
Effective end date for slot n (optional)
kyb_policy_{n}_name
string
KYB policy name for slot n
kyb_policy_{n}_start
date
Effective start date for slot n
kyb_policy_{n}_end_if_applicable
date
Effective end date for slot n (optional)
Per-slot rules, enforced row by row:
A slot whose name, start, and end are all blank is skipped silently.
A slot with a name but no start date rejects the row.
A slot with a date but no name rejects the row.
The end date is always optional — leave it blank for open-ended links.
Policy names must match policies already ingested via the KYC or KYB
Certificate Policy categories. Upload policies before programs. These slot
date windows are what later decide which policy applies to a furnished
record’s application_date — see
furnishing policies.
Directory: kyc_furnish_data/Consumer onboarding records furnished toward KYC certificates. Each row is one
consumer tied to a program; at ingest the row is matched against the program’s
linked policies by application_date, and runs once per policy whose window
covers it (rows outside every window are filtered, not errored).
Your external identifier for the record, carried through as opaque metadata
furnisher_federation_id
string
Your external federation identifier, carried through as opaque metadata
social_security_number is a string, not a number. An SSN placed in a
numeric Excel cell loses its leading zeros before SOLO ever sees it, which
changes the matching key and can attach the record to the wrong consumer.
Directory: kyb_furnish_data/Business onboarding records furnished toward KYB certificates. Each row is one
business tied to a program, with the same program/policy resolution behavior
as KYC data.
Registration number from the jurisdiction of formation
identity_verification_timestamp
date
When business identity verification was performed (header identity_verification_ts also accepted)
ownership_control_verification_timestamp
date
When ownership/control verification was performed (ownership_control_verification_ts also accepted)
risk_compliance_assessment_timestamp
date
When the risk/compliance assessment was performed (risk_compliance_ts also accepted)
furnisher_id
string
Your external identifier, carried through as opaque metadata
furnisher_federation_id
string
Your external federation identifier, carried through as opaque metadata
When the three verification timestamps are omitted, the furnish pipeline
falls back to the calendar date of application_date for each one. Provide
them when you have the real dates — they become the evidence timestamps on
the resulting certificates.