Create an account
Create a Universal Payment Account (UPA) for an individual or business you serve.
externalUserId and the subject’s legal classification in subjectType (individual or business). Stableyard returns the canonical account.id that every account-scoped endpoint uses. Classify the real subject the UPA represents, not the owner of a connected wallet.
You can also pass initial wallets, a handle and an email. If you send wallets and none is marked isPreferredSettlement, the first settlement-supported wallet becomes the settlement wallet. Sending email with emailVerified is equivalent to calling Verify or link an account email right after creation: emailVerified: true asserts you already verified the address and requires partner-asserted verification to be enabled for the app environment, while false starts Stableyard’s own OTP flow.
The call is create-only: an externalUserId that already has a UPA returns 409 account_already_exists. Idempotency-Key is required. Retrying with the same key and identical input returns the original account; different input returns 409 idempotency_conflict. Change wallets, settlement and the handle later through their dedicated endpoints.
See Universal Payment Account for what the account controls.Authorizations
HTTP Basic auth. Username is the Stableyard app ID. Password is the app secret. The optional Stableyard-Version request header must match the environment pin.
Headers
Required retry key for account creation. Reusing the same key with identical input returns the original account; reusing it with different input returns 409 idempotency_conflict.
1 - 256^[ -~]+$"account-user-123-v1"
Optional contract-version assertion. Omit it to use the app environment's pinned version. A different supported version is accepted only after that environment is explicitly migrated.
2026-09-09 Body
Stable partner-owned identifier. Unicode control characters are rejected.
128"user_123"
Required legal classification of the UPA subject. This is explicit and is never inferred from identifiers, wallets, metadata, or payment behavior.
individual, business "individual"
105"alice"
Optional payer-facing recipient identity. It is separate from app branding and can be updated later with the versioned display-profile endpoint.
Optional connected wallets to link during account creation. If one settlement-supported wallet is sent, it becomes settlement. If multiple wallets are sent, mark one with isPreferredSettlement; otherwise the first settlement-supported wallet becomes settlement.
1Optional UPA email, linked during account creation. Requires emailVerified.
320Set with email. true asserts you already verified this address yourself, using the same partner_asserted contract as POST /accounts/{id}/email/verification-challenges — Stableyard trusts the assertion without sending its own OTP, and only if partner-asserted verification is enabled for this app environment. false or omitted starts Stableyard's own OTP flow to that address.
true
Optional partner metadata. Must be JSON-safe, at most 4096 bytes, depth 3, 25 keys per object, 512 characters per string, and 50 items per array.