Linkage is not the verdict
Two different questions, two different endpoints. Mixing them up is the most common mistake here.GET /parties/{partyId}/iv-verification
reports how far the party got through the pipeline:
This endpoint always returns
200 for an existing party. It never errors to signal a verification
outcome, and it reflects party-level linkage only — never your company’s tenant provisioning state.
ivCaseReference is durable
Once the platform returns a case reference, it is populated and never cleared — including on
FAILED after a decline. It’s null only while no reference was ever returned.
Read the field directly rather than gating on status:
ivCaseReference to Venly support when investigating a stuck
or disputed verification. It survives declines specifically so a rejected case can still be traced.
Diagnosing a stall
That last row catches people regularly. The party and the account each carry their own status, and only
the account’s
kycStatus gates money movement. See
Roles & entities.Every verification error code
Provisioning and eligibility
These are configuration, not transient. Retrying will not help.Tokens
See mint the token late — this is
almost always a token-age problem.
Platform
The distinction matters:
500 means your request was understood and refused, 503 means nobody
answered. Only retry the second.
Downstream provisioning
Bank-rail provisioning onboards the account holder for verification, so it surfaces verification state through its own codes:recipient-verification-pending vs recipient-verification-rejected is the retryable/terminal split
for virtual bank accounts — the two look
similar but only the first is worth a retry.
Pay-out recipient gate
Not verification errors as such, but they’re what a cleared KYC/KYB still runs into:
A verified party is not automatically a permitted pay-out recipient — see
the recipient gate.
Retry policy at a glance
Next steps
Onboarding lifecycle
The three gates and how they compose.
Errors & error codes
The API-wide error reference.

