Skip to main content
POST
/
customers
/
{customerId}
/
features
Submit a feature request
curl --request POST \
  --url https://api.conduit.financial/v2/customers/{customerId}/features \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <idempotency-key>' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "type": "VIRTUAL_ACCOUNT",
  "fields": {
    "certification": {
      "termsAndConditions": true
    }
  },
  "documentIds": [
    "doc_2xKjF9mQb7vN4hL1pR3w8t"
  ],
  "asset": "USD"
}
'
{
  "id": "<string>",
  "status": "pending",
  "createdAt": "2026-01-15T09:30:00.000Z",
  "updatedAt": "2026-01-15T09:30:00.000Z",
  "type": "CUSTOMER_ONBOARDING",
  "clientReferenceId": "ext-12345",
  "submittedAt": "2026-01-15T09:30:00.000Z",
  "failureMessage": "<string>",
  "customerId": "<string>"
}

Authorizations

x-api-key
string
header
required

Headers

Idempotency-Key
string
required

Caller-generated unique key that lets the server safely replay this request. The cached response is returned for 5 minutes on any retry with the same key from the same API principal. Required on every state-changing money-moving or resource-creating POST.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_.:-]{1,128}$

Path Parameters

customerId
string
required

Body

application/json
type
enum<string>
required

The feature being requested

Available options:
VIRTUAL_ACCOUNT,
CRYPTO_WALLET,
WALLET_CUSTODY_CONVERSION
Example:

"VIRTUAL_ACCOUNT"

fields
object

Key-value data required by the feature's requirements

Example:
{
  "certification": { "termsAndConditions": true }
}
documentIds
string[]

Flat list of uploaded document IDs to associate with this feature request

Minimum string length: 1
Example:
["doc_2xKjF9mQb7vN4hL1pR3w8t"]
asset
enum<string>

Target asset for the feature, required for some feature types

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,
BTC,
ETH,
SOL,
TRX
Example:

"USD"

Response

The submitted feature-request application

id
string
required

Unique application identifier

Pattern: ^app_[0-9A-Za-z]{22}$
status
enum<string>
required

Current lifecycle status of the application

Available options:
pending,
processing,
approved,
rejected,
cancelled
Example:

"pending"

createdAt
string<date-time>
required

Timestamp when the application was created

Example:

"2026-01-15T09:30:00.000Z"

updatedAt
string<date-time>
required

Timestamp when the application was last modified

Example:

"2026-01-15T09:30:00.000Z"

type
enum<string>
required
Available options:
CUSTOMER_ONBOARDING
clientReferenceId
string

Client-provided identifier for cross-referencing. Omitted when the client did not supply one.

Pattern: ^[A-Za-z0-9_\-:.]{1,255}$
Example:

"ext-12345"

submittedAt
string<date-time>

Timestamp when the application was submitted for review. Omitted while still in progress.

Example:

"2026-01-15T09:30:00.000Z"

failureCode
enum<string>

Machine-readable failure code on rejected applications. Omitted on non-rejected applications.

Available options:
REJECTED_BY_OPS,
COMPLIANCE_DENIED
failureMessage
string

Customer-facing failure message accompanying failureCode. Omitted on non-rejected applications.

customerId
string

Customer this onboarding application produced. Omitted while the application is still being reviewed; present after approval persists the customer row.

Pattern: ^cus_[0-9A-Za-z]{22}$