Proof of Source of Funds (PoSoF)
Proof of Source of Funds (PoSoF) entitlements allow users to increase their deposit limits by providing verifiable documentation regarding the origin of their funds.
By default, all onboarded accounts have a basic deposit limit (Level 1). To upgrade to higher tiers, users must undergo a PoSoF verification process involving manual compliance review.
Entitlement Summary
| Field | Value | Description |
|---|---|---|
| Name | posof_level_2, posof_level_3 (Person) | The per-level system names used to trigger Person upgrades. Corporates have a single PoSoF entitlement with no level in the name (see Corporate PoSoF). |
| Applies To | Person, Corporate | For Persons, upgrades are triggered by you via the API. For Corporates, PoSoF is triggered by DLT's compliance team (see Corporate PoSoF). |
| Prerequisites | 1. Onboarded: The entity must have completed KYC/KYB Onboarding. | |
| Outcome | The account's PoSoF tier is updated. The final tier is decided by compliance and returned in the completion webhook. |
PoSoF Tiers
| Level | Description | Verification Type |
|---|---|---|
| Level 1 | Basic tier granted upon successful onboarding. For Corporates, the initial level is derived automatically from the onboarding risk assessment. | Automated |
| Level 2 | Increased deposit limits. | Manual Review |
| Level 3 | Maximum deposit limits. | Manual Review |
High-Level Workflow
The PoSoF process follows the standard Entitlement Trigger Flow. Unlike the automated Level 1 checks, higher tiers involve a manual review by the compliance team.
- Trigger: Initiate the upgrade request via
POST /persons/{id}/entitlement_triggersusing the desired level's name (posof_level_2orposof_level_3). - Initial Requirements: The system issues a
requirementsQuestionnairewebhook (Reason:posof_level_upgrade). The user must provide information about their wealth and upload supporting documents. - Manual Review & Additional Information Loop: A compliance officer reviews the submission.
- Iterative Requests: If the documents are unclear or more detail is needed, the officer can trigger a new requirements loop.
- Notification: Your application will receive a new
requirementsQuestionnairewebhook (Reason:posof_level_upgrade).
- Final Decision: The compliance officer makes the final determination on the account's tier.
- Completion: The workflow concludes with an
entitlementCompletedwebhook.
Upgrade Rules
Direct Upgrades
Users are not required to follow a linear progression (Level 1 → Level 2 → Level 3). A user currently at Level 1 can trigger Level 3 directly if they have the necessary documentation to support the higher limit.
Compliance Decision & Agent Discretion
When a user triggers an upgrade (e.g., Level 3), the compliance team evaluates all provided documents. The compliance officer has the final say on the granted level. Even if a user requests Level 3, the officer may determine that only Level 2 is appropriate based on the documentation.
The actual level granted is communicated via the entitlementCompleted webhook payload:
{
"notification_type": "entitlementCompleted",
"details": {
"posof_level": "Level 2"
}
}
Corporate PoSoF
For Corporates there are no per-level entitlements - a single PoSoF entitlement covers the review, and the compliance officer decides the granted level at the end. The review is triggered by DLT's compliance team, not via the partner API. The rest of the flow matches the retail process, with these specifics:
-
Start: You receive an
entitlementStartedwebhook (owner_type: corporate) when the review begins. -
Account Locking: The system may apply withdrawal, trading, and/or funding locks for the duration of the review, announced via the
applyWithdrawalLock/applyTradingLock/applyFundingLocknotifications. Released locks are announced with the correspondingrelease...Lockevents. -
Requirements: A
requirementsQuestionnairewebhook (Reason:posof_level_upgrade) requests the source-of-funds information. Submit responses viaPOST /corporates/{corporate_id}/questionnaires/{questionnaire_id}/response. -
Completion: The review always concludes with an
entitlementCompletedwebhook carrying the compliance decision -posof_upgraded(Accepted/Rejected) and the granted level:{
"notification_type": "entitlementCompleted",
"details": {
"posof_upgraded": "Accepted",
"posof_level": "Level 2"
}
}Rejection also arrives asentitlementCompletedA rejected corporate PoSoF review is delivered as
entitlementCompletedwith"posof_upgraded": "Rejected"and"posof_level": null- noentitlementFailedwebhook is sent. Evaluateposof_upgraded, not just the notification type.
The corporate's initial PoSoF level is assigned automatically during KYB Onboarding, derived from the onboarding risk assessment.