The states
An account’skycStatus (returned by Get an account) is one of:
kycStatus | Meaning |
|---|---|
VERIFICATION_PENDING | New account. Can be set up, but can’t move money yet. |
VERIFIED | Approved. All operations are available. |
REJECTED | Verification was declined. |
Individuals and organisations (KYC & KYB)
The account’skycStatus above is what gates money movement. The underlying party is verified too, on a field that depends on its type:
| Party type | Field | States |
|---|---|---|
INDIVIDUAL | kycStatus | VERIFICATION_PENDING → VERIFIED (or REJECTED) |
ORGANISATION | kybStatus | PENDING → VERIFIED (or DENIED) |
kybStatus from Get a party. Like KYC, it’s reviewed by a Venly admin and runs asynchronously after you create the organisation party.
How an account gets verified
Verification is reviewed and approved by a Venly admin — it does not happen through the API, and there’s no endpoint to trigger it. After you create an account, your Venly contact reviews it; once approved, the account’skycStatus becomes VERIFIED.
Check the current status at any time with Get an account and read the kycStatus field.
Wallet readiness (AML, and permits for self-custody)
AVERIFIED kycStatus clears the account, but funds move through the account’s wallet, which has its own gate. Each wallet returned by list wallets carries an amlStatus (PENDING → APPROVED). An account is ready to move money when:
| Custody | Ready when |
|---|---|
| Venly-managed | kycStatus is VERIFIED and the wallet’s amlStatus is APPROVED (both happen during onboarding — no further action). |
| Self-custody | the above plus a CONFIRMED permit on the account wallet — the one-time signature that lets Venly move its funds. |
status field, so use amlStatus (Venly-managed) and permit status (self-custody) as your readiness signals. See Wallets & balances.
What’s blocked until VERIFIED
These calls fail while an account is VERIFICATION_PENDING:
- Create a crypto transfer and Create a fiat transfer
- Create a payment request
- Create a pay-in session
- Create a virtual bank account
code and HTTP status depend on the operation, so handle any of them as not-verified rather than matching a single code:
- Virtual bank account →
400with codekyc-not-verified:
- Pay-in session →
422with codekyc-required:
- Payment request →
400with codeaccount-not-active:
What you can do before verification
Plenty of setup doesn’t require a verified account:- Create parties and accounts
- Add and remove party roles
- Read wallets, balances, permits, and allowances
- For self-custody, sign and submit the token permit — see Approving transfers without gas
Build the pending state into your flow: create the account, then wait for your Venly contact to verify it (poll Get an account until
kycStatus is VERIFIED) before attempting transfers, payments, pay-ins, or virtual bank accounts.Next steps
Approve transfers (self-custody)
Activate a self-custody wallet so Venly can move its funds.
Integration walkthrough
See verification within the full end-to-end flow.

