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.
After creating an account, the user must complete KYC verification by uploading identity documents. This guide covers the upload flow, status tracking, and handling rejections.
Upload flow
1. 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/id-document.jpg"
Accepted formats: JPEG, PNG, PDF (max 10MB)
Document types:
id_verification — Government-issued photo ID (required)
proof_of_address — Utility bill, bank statement (if requested)
tax_document — W-9 or equivalent (if requested)
2. Track verification status
Option A: Poll
curl -X GET "$BASE_URL/documents/$DOCUMENT_ID" \
-H "Authorization: Basic $AUTH"
Option B: Webhooks (recommended)
Subscribe to document.approved and document.rejected events:
curl -X POST "$BASE_URL/webhooks" \
-H "Authorization: Basic $AUTH" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.com/webhooks/bluum",
"events": ["document.approved", "document.rejected"]
}'
3. Handle the result
| Status | What to do |
|---|
approved | Proceed to bank linking and funding |
rejected | Show the rejection reason and prompt re-upload |
Handling rejections
When a document is rejected, the response includes a reason:
{
"document_id": "doc_a1b2c3d4e5f6g7h8",
"upload_status": "rejected",
"rejection_reason": "Document is expired"
}
Display the reason to your user and allow them to upload a replacement. There is no limit on upload attempts.
Common rejection reasons:
- Document is blurry or illegible
- Document is expired
- Name doesn’t match account identity
- Document type not recognized
Listing documents
# All documents for an account
curl -X GET "$BASE_URL/documents/accounts/$ACCOUNT_ID/upload" \
-H "Authorization: Basic $AUTH"
# Filter by status
curl -X GET "$BASE_URL/documents/accounts/$ACCOUNT_ID/upload?status=approved" \
-H "Authorization: Basic $AUTH"
Sandbox behavior
In sandbox, all document uploads are auto-approved within seconds. To test rejection flows, use specific test values documented in your dashboard.
Next steps
Once KYC is approved: