Base URL (staging):
https://api-staging.venlyfinance.com/v1 · Auth: OAuth2 Bearer token — see Authentication.
Whether your company is Venly-managed or self-custody changes one step below — see Venly-managed vs self-custody.Step 1 — Create a party
A party is the person or organisation behind an account. It’s createdACTIVE immediately — there’s no verification step for a party.
Response (201)
id — it’s the partyId you link in the next step. For an organisation, send partyType: ORGANISATION with name (and optional vatNumber) instead of firstName/lastName.
Step 2 — Open an account linked to the party
An account holds the wallet, IBANs, and transfer history. Pass thepartyId from Step 1 to link the party as ACCOUNT_HOLDER. The wallet is provisioned automatically.
The only difference between company types is the wallet address:
- Venly-managed — Venly creates and holds the wallet. Don’t send an
address. - Self-custody — the customer controls the wallet. You must send their
address.
Response (201)
kycStatus: VERIFICATION_PENDING. It exists and can be set up, but it can’t move money yet.
Self-custody omitting
address returns 400 "Address is required for SELF_CUSTODY wallet type". See Venly-managed vs self-custody for the full difference (including permits).Step 3 — Get the account verified
Account verification is reviewed and approved by a Venly admin — there’s no API call to trigger it. Once approved, the account’skycStatus becomes VERIFIED.
Poll the account until it flips:
Response (200)
kycStatus is VERIFIED, creating virtual bank accounts, transfers, payment requests, and pay-in sessions all fail with a KYC error — the exact code and HTTP status depend on the operation (e.g. 400 kyc-not-verified for virtual bank accounts, 422 kyc-required for pay-in sessions). See Account verification.
Step 4 — Create a virtual bank account
With the account verified, issue a EUR IBAN so it can be funded via SEPA. Incoming euros are converted to thetargetCryptocurrency and credited to the wallet.
Response (201)
iban and referenceCode to your customer — the referenceCode is what links their incoming SEPA payment to this account.
Next steps
Full Integration Walkthrough
Funding, transfers, and tracking — end to end.
Self-custody: approving transfers
Sign a permit so a self-custody account can move funds.
Account verification
States, gating, and what works before verification.
API reference
Every endpoint, field, and example.

