Skip to main content
POST
/
partner
/
cardholders
Create cardholder
curl --request POST \
  --url https://api.contro.me/v1/partner/cardholders \
  --header 'Content-Type: application/json' \
  --header 'x-contro-api-key: <api-key>' \
  --data '
{
  "externalUserId": "user_42",
  "email": "jane@example.com",
  "phoneNumber": "+14155552671",
  "kycSource": "sumsub",
  "sumsubShareToken": "<string>"
}
'
{
  "id": "ch_abc123",
  "externalUserId": "user_42",
  "firstName": "Jane",
  "lastName": "Doe",
  "email": "jane@example.com",
  "phoneNumber": "+14155552671",
  "kycSource": "api",
  "kycStatus": "approved",
  "status": "active",
  "createdAt": "2026-03-20T14:30:00Z"
}

Documentation Index

Fetch the complete documentation index at: https://partner-docs.contro.dev/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-contro-api-key
string
header
required

Partner API key (sk_live_* for production, sk_test_* for sandbox)

Body

application/json
externalUserId
string
required

Your unique identifier for this user. Min 1 character

Minimum string length: 1
Example:

"user_42"

email
string<email>
required

Valid email address

Example:

"jane@example.com"

phoneNumber
string
required

E.164 formatted phone number

Example:

"+14155552671"

kycSource
enum<string>
required

KYC via Sumsub share token

Available options:
sumsub
sumsubShareToken
string
required

Sumsub share token from the donor partner

Minimum string length: 1

Response

Cardholder created

id
string
required

Contro cardholder ID

Example:

"ch_abc123"

externalUserId
string
required

Your unique identifier for this user

Example:

"user_42"

firstName
string
required

Cardholder's first name

Example:

"Jane"

lastName
string
required

Cardholder's last name

Example:

"Doe"

email
string
required

Email address

Example:

"jane@example.com"

phoneNumber
string | null
required

E.164 formatted phone number, or null if not provided

Example:

"+14155552671"

kycSource
string
required

KYC submission method. One of: api, sumsub, web

Example:

"api"

kycStatus
string
required

KYC verification status. One of: pending, approved, rejected

Example:

"approved"

status
string
required

Cardholder account status. One of: active, suspended, closed

Example:

"active"

createdAt
string
required

ISO 8601 creation timestamp

Example:

"2026-03-20T14:30:00Z"