Skip to main content
GET
Discover feature requirements for a customer

Authorizations

x-api-key
string
header
required

Path Parameters

customerId
string
required
Example:

"cus_1A2b3C4d5E6f7G8h9I0jKl"

Query Parameters

type
enum<string>
required

Feature whose requirements you want to discover.

Available options:
virtual_account,
crypto_wallet,
yield
asset
enum<string>

Target asset for the feature. On a virtual account it narrows the requirements to the providers that can hold that currency. Ignored by feature types whose requirements do not depend on the asset. Omit it to resolve over every eligible provider.

Available options:
USD,
EUR,
GBP,
CHF,
JPY,
CAD,
AUD,
NZD,
SGD,
HKD,
CNY,
KRW,
INR,
BRL,
MXN,
ARS,
CLP,
COP,
PEN,
ZAR,
NGN,
KES,
GHS,
EGP,
AED,
SAR,
ILS,
TRY,
PLN,
CZK,
HUF,
SEK,
NOK,
DKK,
THB,
IDR,
MYR,
PHP,
VND,
TWD,
USDC,
USDT,
DAI,
EURC,
PYUSD,
OUSD,
BTC,
ETH,
SOL,
TRX,
XLM,
POL

Response

schemaVersion
enum<string>
required

Discovery response schema version. Bumps on any breaking discovery-response change (field renamed, removed, type changed, conditional semantics changed). Distinct from the webhook envelope's apiVersion which tracks the API major. Clients pin the literal and fail loudly on mismatch; servers do not negotiate.

Available options:
3
context
enum<string>
required

The discovery context that produced this requirements set.

Available options:
onboarding,
feature,
order
Example:

"onboarding"

country
string
required

ISO 3166-1 alpha-3 country code the requirements were resolved for. Always three uppercase letters.

Pattern: ^[A-Z]{3}$
Example:

"USA"

fields
object[]
required

Scalar fields the integrator must collect, with format hints and allowedValues for enum fields.

documents
object[]
required

Customer-level documents to collect. Rows are usually keyed by canonicalType — EXCEPT address-targeted proof-of-address, which can appear as two rows sharing canonicalType PROOF_OF_ADDRESS disambiguated by addressTarget (registered / operating); collect both, and key those rows on addressTarget, not canonicalType alone. Upload every requiredArtifacts[] entry and any one alternatives[] entry when present, otherwise upload the row itself via POST /v2/documents.

minDocuments
integer
required

Document floor: the minimum number of documents POST /v2/onboarding accepts — currently 0 or 1. 1 means the submission must carry at least one document, counting documentIds at the top level and on each person; a submission with none anywhere is rejected with 422 ONBOARDING_NOT_READY. 0 means documents are optional at submit. Submit checks the count, not the type. The review checks each documents[] row with required: true, so send what each of them asks for with the submission: its minCount, and one row per groupId.

Required range: 0 <= x <= 9007199254740991
Example:

1

individualRequirements
object[]
required

Per-role count and person-level field + document requirements for ownership.persons[].