Documentation Index
Fetch the complete documentation index at: https://docs.bluumfinance.com/llms.txt
Use this file to discover all available pages before exploring further.
Every investment account must complete Know Your Customer (KYC) verification before trading. Bluum handles the compliance pipeline — you collect documents from the user and submit them through the API.
How KYC works
Upload Documents → Processing → Approved / Rejected
│
(auto-approved
in sandbox)
- Create an account with identity and contact information
- Upload identity documents (government-issued ID, proof of address)
- Bluum verifies the documents against the identity information
- Account is approved or rejected
In sandbox, documents are auto-approved. In production, verification typically completes within minutes but may take up to 24 hours for manual review.
Document types
| Type | Description | Required |
|---|
id_verification | Government-issued photo ID (passport, driver’s license, national ID) | Yes |
proof_of_address | Utility bill, bank statement, or tax document showing current address | Situational |
w9_form | W-9 tax form | Situational |
Upload a document
curl -X POST "$BASE_URL/documents/accounts/$ACCOUNT_ID/upload" \
-H "Authorization: Basic $AUTH" \
-F "document_type=id_verification" \
-F "file=@/path/to/drivers-license.jpg"
Supported file formats: JPEG, PNG, PDF. Maximum file size: 10MB.
Document statuses
| Status | Meaning |
|---|
processing | Document uploaded, verification in progress |
approved | Verification successful |
rejected | Verification failed — upload a new document |
Checking document status
Poll the document endpoint or use webhooks:
# Get a specific document
curl -X GET "$BASE_URL/documents/{document_id}" \
-H "Authorization: Basic $AUTH"
# List all documents for an account
curl -X GET "$BASE_URL/documents/accounts/$ACCOUNT_ID/upload?status=approved" \
-H "Authorization: Basic $AUTH"
Use webhooks to receive real-time notifications when document verification completes, rather than polling.
Handling rejections
When a document is rejected, the response includes a reason. Common rejection reasons:
| Reason | Resolution |
|---|
| Document is blurry or illegible | Re-upload with higher quality image |
| Document is expired | Upload a current, non-expired document |
| Name mismatch | Ensure the name on the document matches the account identity |
| Document type not accepted | Use a supported government-issued photo ID |
Prompt the user to upload a replacement document. There is no limit on upload attempts.
Compliance workflow statuses
For more complex compliance scenarios, Bluum uses a multi-step compliance workflow:
| Status | Meaning |
|---|
IN_PROGRESS | Compliance checks are running |
PENDING_REVIEW | Requires manual review |
APPROVED | All checks passed |
REJECTED | One or more checks failed |
SUSPENDED | Account compliance suspended |
EXPIRED | Compliance window expired, re-verification needed |
Key endpoints
| Method | Path | Description |
|---|
POST | /documents/accounts/{account_id}/upload | Upload a document |
GET | /documents/{document_id} | Get document status |
GET | /documents/accounts/{account_id}/upload | List account documents |