Skip to main content
POST
/
documents
Upload a document (flat resource)
curl --request POST \
  --url https://api.bluumfinance.com/v1/documents \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: multipart/form-data' \
  --form document='@example-file' \
  --form 'document_type=<string>' \
  --form 'investor_id=<string>' \
  --form 'user_id=<string>' \
  --form expires_at=2023-11-07T05:31:56Z \
  --form compliance_workflow_id=3c90c3cc-0d44-4b50-8888-8dd25736052a \
  --form compliance_check_id=3c90c3cc-0d44-4b50-8888-8dd25736052a \
  --form 'metadata={}'
{
  "document_id": "doc_01j9x8m2k7qpzwv3t5r6y8n0ab",
  "object": "document",
  "owner_id": "<string>",
  "document_type": "id_verification",
  "file_name": "id-front.png",
  "mime_type": "image/png",
  "uploaded_at": "2023-11-07T05:31:56Z",
  "file_size": 123,
  "expires_at": "2023-11-07T05:31:56Z",
  "metadata": {}
}

Authorizations

Authorization
string
header
required

HTTP Basic Authentication using the API Key as username and API Secret as password.

Body

multipart/form-data
document
file
required

The file to upload (PDF, JPG, PNG, DOC, DOCX up to 10MB).

document_type
string
required

Free-form document classifier (e.g., passport, proof_of_address).

purpose
enum<string>

Optional purpose tag; used for retention bookkeeping.

Available options:
KYC,
KYB,
EDD,
TAX,
FUNDING_VERIFICATION,
AGREEMENT,
ACCOUNT_STATEMENT,
TRADE_CONFIRMATION,
OTHER
investor_id
string

Investor owner (prefixed inv_… id). Mutually exclusive with user_id.

user_id
string

User owner (e.g., UBO uploads). Mutually exclusive with investor_id.

expires_at
string<date-time>

Optional explicit retention deadline.

compliance_workflow_id
string<uuid>

Optional compliance workflow to link this document to.

compliance_check_id
string<uuid>

Optional compliance check to link this document to.

metadata
object

Optional metadata key-value pairs. For multipart clients that cannot send nested objects, pass a JSON-encoded string; the API accepts either form.

Response

Document created

Document resource returned by /v1/documents endpoints. Uses the flat document shape: document_id is the public id, owner_type / owner_id are polymorphic ownership refs (INVESTOR / USER / TENANT). purpose indicates what the doc is for (KYC, KYB, EDD, TAX, FUNDING_VERIFICATION, AGREEMENT, OTHER).

document_id
string
required
Example:

"doc_01j9x8m2k7qpzwv3t5r6y8n0ab"

object
enum<string>
required
Available options:
document
owner_type
enum<string>
required
Available options:
tenant,
investor,
user
owner_id
string
required

UUID of the owning entity (raw, not prefix-encoded).

document_type
string
required

Free-form classifier (e.g. PASSPORT, BANK_STATEMENT, CIP_RESULT).

Example:

"id_verification"

file_name
string
required
Example:

"id-front.png"

mime_type
string
required
Example:

"image/png"

status
enum<string>
required
Available options:
uploaded,
processing,
accepted,
rejected,
expired
uploaded_at
string<date-time>
required
purpose
enum<string> | null
Available options:
kyc,
kyb,
edd,
tax,
funding_verification,
agreement,
account_statement,
trade_confirmation,
other
file_size
integer | null
expires_at
string<date-time> | null
metadata
object