Skip to main content
POST
/
accounts
Create a new account
curl --request POST \
  --url https://api.venlyfinance.com/v1/accounts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "externalId": "user-12345",
  "name": "Jane Doe — Main",
  "chain": "BASE",
  "address": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
  "partyId": "7e3b9c2a-1f4d-4a8b-9c11-2d6e8f0a1b22"
}
'
{
  "success": true,
  "result": {
    "id": "b2a1f0e9-8c7d-4e3a-9f21-0a1b2c3d4e5f",
    "externalId": "user-12345",
    "name": "Jane Doe — Main",
    "kycStatus": "VERIFICATION_PENDING",
    "status": "ACTIVE",
    "createdAt": "2026-01-15T09:30:00",
    "version": 0
  }
}
Creates an account and its wallet. Link an existing party with partyId, or create one inline with the party object. Self-custody accounts also supply the wallet address — see Venly-managed vs self-custody. A new account starts unverified and can’t move money until it is verified.

Authorizations

Body

application/json

Create a new account. You can either:

  • Reference an existing party by providing partyId
  • Create a new party inline by providing the party object

SELF_CUSTODY companies must also supply the wallet address.

externalId
string
required

Unique external reference for this account

Minimum string length: 1
chain
enum<string>
required

Supported blockchain network

Available options:
AVALANCHE,
BASE
name
string

Display name for the account

Required string length: 1 - 255
address
string

Wallet address. Required for SELF_CUSTODY companies

partyId
string<uuid>

ID of an existing party to associate as account holder

party
object
Example:
{
"partyType": "INDIVIDUAL",
"firstName": "John",
"lastName": "Doe",
"address": {
"addressLine1": "123 Main Street",
"city": "Amsterdam",
"postalCode": "1012AB",
"country": "NL"
}
}
cardProviderReference
object

Response

Account created

success
boolean

Indicates whether the request was successful

result
object