Identity
Party
The legal identity behind every account. Two types:INDIVIDUAL— a natural person (requiresfirstName,lastName)ORGANISATION— a company or business (requiresname, optionallyvatNumber)
Party Role
The relationship between a party and an account. Currently only one role type exists:ACCOUNT_HOLDER— the party owns or co-owns the account
KYC / KYB
Know Your Customer (individuals) and Know Your Business (organisations). Identity verification that runs after party creation, tracked on two separate fields:kycStatus(individuals & accounts) —VERIFICATION_PENDING → VERIFIED(orREJECTED)kybStatus(organisations) —PENDING → VERIFIED(orDENIED)
VERIFIED. See Account verification.
Account structure
Account
The container that holds wallets, virtual bank accounts, and transfer history for a party (or set of parties). Pinned to a single blockchain network at creation. Statuses:ACTIVE, SUSPENDED, CLOSED.
External ID
A merchant-supplied unique identifier for an account or party (externalId field). Use it as a shortcut in transfer requests (receiverExternalId) instead of looking up the Venly UUID.
Account wallet
The wallet that holds an account’s balance, bound to one chain. Itstype is either VENLY_MANAGED (Venly holds the keys; funds move via API calls) or SELF_CUSTODY (your customer holds the keys and signs a one-time permit so Venly can move funds). See Wallets & balances.
Escrow wallet
A second, always Venly-managed wallet on the account that holds funds in flight during settlement — for example, amounts reserved by a payment request. You never sign for it.Orchestration wallet
The Venly-controlled wallet that pulls funds from a self-custody account wallet via ERC-20transferFrom. It is the spender a self-custody permit authorises, and it’s returned as orchestrationWallet on the allowances response.
Virtual Bank Account (VBA)
A bank account reference (IBAN + BIC for EUR_SEPA) attached to a Venly account. Used to receive fiat funding that’s auto-converted to crypto and credited to the wallet. See Create a virtual bank account.IBAN / BIC
International Bank Account Number and Bank Identifier Code — the standard EUR_SEPA addressing format returned on a virtual bank account.Reference Code
A unique string returned with each VBA. The end user must include this in their SEPA payment message — it’s how the incoming wire is matched to the right account. Without it, settlement falls back to manual reconciliation.Beneficiary Name
The legal name on the bank account record (typically a Venly custody entity). Display this to end users alongside the IBAN when they initiate a wire.Money movement
Transfer
A value movement from one account to another, addressed byreceiverAccountId or receiverExternalId. Two flavors, depending on how you denominate the amount:
- Fiat transfer — you send a fiat
currency+amount; it’s resolved to the underlying stablecoin and settled on-chain. The response carries afiatOriginblock (original currency, amount, exchange rate). - Crypto transfer — you send a crypto
asset+chain+amount, moved directly between the accounts on-chain.
Transfer Status
Lifecycle states:PENDING → COMPLETED (or FAILED with an errorMessage).
Payment Session (Fiat-to-Crypto)
A hosted checkout flow that converts a card or bank payment into crypto credited to an account’s wallet. Returns apaymentUrl you redirect the user to. See Create a fiat-to-crypto payment session.
Payment Request
A pre-authorised request for funds, used in card-provider integrations. Two endpoints exist:/payment-requests (for card providers) and /accounts/{id}/payment-requests (account-scoped).
On-chain primitives
Permit (EIP-2612)
A signed message that grants a spender permission to move tokens from a wallet, without an on-chain approval transaction. Used to delegate spending authority cheaply. See Get permit messages.Allowance (ERC-20)
The amount of a token that a third party is approved to spend from a wallet. Queried per wallet + token. See Get wallet token allowances.Stablecoin
A cryptocurrency pegged to a fiat currency. Supported assets:USDC, EURC, USDT, USDS.
Blockchain Network
The chain an account’s wallet is provisioned on, fixed at account creation. The API supportsBASE, AVALANCHE, and POLYGON; the chains available to your company are configured by Venly. Requesting a chain your company isn’t set up for returns 400 invalid-request with a message listing your supported chains. See Supported chains & assets.
API mechanics
Idempotency Key
A UUID supplied in the request body of state-changing endpoints to make retries safe. Same key + same body returns the original response; same key + different body returns422. See the Idempotency rules.
Optimistic Locking (version)
On update endpoints, the request body includes a version integer matching the resource’s current version. Concurrent updates with a stale version return 409 Conflict. Refetch, increment, retry.
Pagination
List endpoints acceptpage (1-based), size, sortOn, and sortOrder query parameters and return a pagination object in the response. See Pagination conventions.
Error handling
Every response carries asuccess flag and, on failure, an errors array of { code, message }. Branch on the stable code. See the Errors & error codes reference.
Status enums (quick reference)
A wallet has no
status field — GET .../wallets returns amlStatus only. Readiness isn’t a single returned value: a Venly-managed wallet is ready once amlStatus is APPROVED; a self-custody wallet is ready once its permit status is CONFIRMED.See also
Integration walkthrough
Watch every term above used in context, end to end.
API conventions
Idempotency, pagination, and versioning rules.

