compliant, and they have a payout_usable bank
account. This page explains how each of those comes about, and the two
different paths that get you there.
Two onboarding paths
You enter the details. If you already hold the beneficiary’s identity and bank details, create them directly and register their bank account. This is the path the quickstart walks. The beneficiary enters their own. Send a collection invite and Cleff emails the beneficiary a secure link to a Cleff-hosted form where they submit their own profile and bank details. This keeps the most sensitive data (bank account numbers, tax details) out of your systems entirely. Both paths are batch-capable: collection invites accept 1..N beneficiaries in one call, and bulk invites accept up to 500 CSV-shaped rows, creating an identity stub per row and inviting each one. The dashboard’s invite buttons drive these same endpoints.How collection links behave
- Each link carries a scope, which is what the form may collect: a full onboarding, just new bank details, or tax documents. It authorizes only that submission; it is not a login and grants no standing access.
- Links expire after 7 days. Re-inviting issues a fresh link and invalidates the prior one; you can also cancel a live request outright.
- Live links are visible as
pending_requestson the beneficiary, and submission is observable viacollection_statusanddetails_submitted_at. - Invite emails render in your Business’s brand if you have configured one (dashboard Settings → Company → Brand), always with a “Powered by Cleff” attribution, and with a sandbox banner when sent from sandbox.
The compliance attestation
Payout creation requires the beneficiary to becompliant. Compliance is
KYC for a person and KYB for a business, and in the current model it is
your Business that attests to it: passing acknowledged: true at creation, or
calling acknowledge compliance
later, records that your Business has independently verified the
beneficiary’s identity and moves them pending → compliant, stamping
acknowledged_at.
Editing a PII trigger field (legal name, date of birth, tax id, country)
after acknowledgment sets reacknowledgment_required; re-acknowledge to
clear it before the next payout. Cleff can also place a beneficiary in
suspended, which blocks payouts until the hold is lifted.
The schema is shaped so that provider-verified compliance can replace the
attestation model without breaking your integration.
Bank accounts
Bank accounts are a sub-resource of the beneficiary, and payouts name one explicitly; a beneficiary can hold several (different currencies, a replacement after a failed payout). Three independent checks fold into the one flag worth reading,payout_usable:
- Verified: the account belongs to a compliance-acknowledged
beneficiary. Registration against an already-
compliantbeneficiary verifies immediately. - Validated: the routing details pass Cleff’s format checks (US ABA checksum, IBAN mod-97 for IBAN corridors).
- Not rail-rejected: the payout rail has not refused the account. A
rejection reason, when present, is surfaced as
rail_rejection_reason.
last4 in every
response; the full number is never serialized back. If a payout is refused
because of the destination account, the
error catalogue names the exact check that failed and
the resolving action.