Inyo

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:

SubtypeDescription
FRONTFront side of the document
BACKBack 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:

SubtypeDescription
FRONTPrimary 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

StatusDescription
PendingDocument uploaded, awaiting review
VerifiedDocument accepted — compliance level may upgrade
NotVerifiedDocument rejected — see reason and re-upload
NotReadableDocument image is unclear — request a better scan
TemplateIdentifiedDocument 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 FRONT and BACK.
  • Check compliance level after verification — once a document is Verified, call GET /participants/{id}/complianceLevels to 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 documentUpdatedEvents to 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