Uploading Documents
To advance a sender to higher compliance levels (Level 2 and above), you may need to upload identity documents and proof of source of funds. These documents are reviewed by the Inyo compliance team.
Document Types
Identity Documents (Document ID)
Government-issued identification uploaded for KYC verification.
Endpoint: POST /organizations/{tenant}/people/{personId}/documents/documentId/{subtype}/upload
Authentication: Tenant-level (x-api-key)
Supported Subtypes:
| Subtype | Description |
|---|---|
FRONT | Front side of the document |
BACK | Back side of the document |
Accepted document types (configured per tenant):
- Driver's License
- Passport
- National ID Card
- State ID
Source of Funds
Proof of the sender's source of funds, required for higher compliance tiers.
Endpoint: POST /organizations/{tenant}/people/{personId}/documents/sourceOfFunds/{subtype}/upload
Authentication: Tenant-level (x-api-key)
Supported Subtypes:
| Subtype | Description |
|---|---|
FRONT | Primary document (e.g., bank statement, pay stub) |
Upload Request
Documents are uploaded as multipart/form-data with the file attached.
# Upload front of driver's license
curl --request POST \
--url https://{FQDN}/organizations/$TENANT/people/$PERSON_ID/documents/documentId/FRONT/upload \
--header "x-api-key: $API_KEY" \
--form "file=@/path/to/drivers-license-front.jpg"
# Upload back of driver's license
curl --request POST \
--url https://{FQDN}/organizations/$TENANT/people/$PERSON_ID/documents/documentId/BACK/upload \
--header "x-api-key: $API_KEY" \
--form "file=@/path/to/drivers-license-back.jpg"
# Upload source of funds
curl --request POST \
--url https://{FQDN}/organizations/$TENANT/people/$PERSON_ID/documents/sourceOfFunds/FRONT/upload \
--header "x-api-key: $API_KEY" \
--form "file=@/path/to/bank-statement.pdf"
Document Verification Status
After uploading, documents are queued for review by the compliance team. You can track the verification status:
Get Current Verification Status
Endpoint: GET /organizations/{tenant}/documents/{documentId}/status
Authentication: Tenant-level
curl --request GET \
--url https://{FQDN}/organizations/$TENANT/documents/$DOCUMENT_ID/status \
--header "x-api-key: $API_KEY"
Get Verification Status History
Endpoint: GET /organizations/{tenant}/documents/{documentId}/status/history
Authentication: Tenant-level
curl --request GET \
--url https://{FQDN}/organizations/$TENANT/documents/$DOCUMENT_ID/status/history \
--header "x-api-key: $API_KEY"
List Person Documents by Status
Endpoint: GET /organizations/{tenant}/people/{personId}/documents
Authentication: Tenant-level
curl --request GET \
--url https://{FQDN}/organizations/$TENANT/people/$PERSON_ID/documents \
--header "x-api-key: $API_KEY"
Verification Statuses
| Status | Description |
|---|---|
Pending | Document uploaded, awaiting review |
Verified | Document accepted — compliance level may upgrade |
NotVerified | Document rejected — see reason and re-upload |
NotReadable | Document image is unclear — request a better scan |
TemplateIdentified | Document type recognized but verification in progress |
Webhook Notifications
Register for the documentUpdatedEvents webhook to receive real-time notifications when a document's verification status changes. See Webhooks for setup instructions.
Best Practices
- Upload high-quality images — blurry or cropped images will be rejected as
NotReadable. - Upload both sides when required — for documents like driver's licenses, upload both
FRONTandBACK. - Check compliance level after verification — once a document is
Verified, callGET /participants/{id}/complianceLevelsto see if the sender has been upgraded. - Handle rejections gracefully — prompt the user to re-upload with clear instructions about what went wrong.
- Use webhooks instead of polling — register for
documentUpdatedEventsto be notified immediately when a document is reviewed.
Test Data
For sandbox testing, use the test data provided in Test Data. Certain name/address combinations trigger specific compliance behaviors (approval, hold, rejection).
Interactive API Documentation — Document ID
Interactive API Documentation — Source of Funds
