Skip to main content
POST
Creates a new customer record tied to the authenticated instance. You can either provide a wallet address directly, or omit it to receive a referenceKey that allows linking a wallet later via the Link Wallet endpoint.
If an archived customer on your instance has this walletAddress as its primary, the call restores that record rather than creating one. The record keeps its ID, linked wallets and kycHash. Its status and verifiedAt are set as for a new record, and its referenceKey is cleared. Every other field this endpoint takes is replaced from the body, and a field you omit is cleared or reset to its default.

Body Parameters

At least one of name, walletAddress and externalId is required.
string
Primary wallet. Letter case does not matter, but a mixed-case address must carry a valid checksum. Stored checksummed. If omitted, a referenceKey is generated for deferred wallet linking.
string
Customer display name. Required when customerType is COMPANY.
string
Your own external reference identifier for this customer. It must be unique among the customers of your instance that are not archived. Update Customer does not take it.
string
default:"INDIVIDUAL"
INDIVIDUAL or COMPANY, in any letter case. Update Customer refuses to change it.
string
ISO 3166-1 alpha-2, alpha-3 or numeric code, in any letter case (DE, DEU or 276). Stored and returned as alpha-3.
string
default:"RETAIL"
RETAIL, PROFESSIONAL or ELIGIBLE_COUNTERPARTY in any letter case, or the key of one of your custom verification profiles, also in any letter case. The record stores the key as the profile spells it, so professional is stored as PROFESSIONAL. A profile that is disabled takes no new customer, so naming one is refused with INVALID_INVESTOR_TYPE and the message says the profile is disabled. Omitted, null or an empty string stores RETAIL, unless the RETAIL preset is disabled. Anything else, a number included, is refused with INVALID_INVESTOR_TYPE, and the message lists the values your instance accepts.When the profile’s blocked-country list holds country, the call is refused with COUNTRY_BLOCKED.
string
Company records only. Up to 300 characters. https:// is added when no scheme is given, and the URL must use http or https with a dotted hostname. Stored in normalised form.
string
Individual records only. The ID of a company record on your instance that is not archived.
string[]
Up to 20 strings of up to 200 characters each. Entries are trimmed, blank ones are dropped, and duplicates are removed ignoring case.
object
Arbitrary key-value metadata to store with the customer record.

Response Fields

Returns 201, including when an archived record was restored.
boolean
Request status
object
The customer record, with the fields listed on Get Customer other than its linked wallets, company links, Sumsub applicant record and audit entries. referenceKey is set when no walletAddress was sent.
status starts as pending. It starts as verified when the registry already holds a verified identity for walletAddress, registered by the Trusset platform verifier or by one of your instance’s verified wallets. On an instance bound to its own register, any verifier counts. A registry read that fails leaves the record pending and does not fail the call.

Error Codes