Prerequisites

Before starting the onboarding process, ensure you have:
  • API credentials (Get your API key)
  • Customer’s personal information
  • Required documents in digital format (PDF, PNG, or JPEG)

Process overview

1

Create Customer Profile

Add the customer’s basic information
2

Upload Documents

Submit identity and proof of address documents
3

Start Verification

Initiate the KYC verification process
4

Monitor Status

Check verification progress and handle any issues

Step 1: Create an Individual Customer

Start by creating an individual customer profile with their basic information.
Request
curl -X POST https://api.lumx.io/customers \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "individual",
    "name": "John Doe",
    "taxId": "123.456.789-00",
    "birthDate": "1990-01-01",
    "country": "BRA",
    "email": "john.doe@example.com"
  }'

Required Fields

FieldTypeDescriptionExample
typestringMust be "individual""individual"
namestringCustomer’s full legal name"John Doe"
taxIdstringValid tax ID for the country"123.456.789-00" (CPF for Brazil)
birthDatestringDate of birth (YYYY-MM-DD)"1990-01-01"
countrystringISO 3166-1 alpha-3 country code"BRA"
emailstringValid email address"john.doe@example.com"
The response includes a customerId and a KYC link:
Response
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "type": "individual",
  "name": "William Default",
  "taxId": "123.456.789-00",
  "link": "https://in.sumsub.com/websdk/p/sbx_aA00bB11cC33dD44",
  "birthDate": "1990-01-01",
  "country": "BRA",
  "email": "william.default@example.com",
  "walletAddress": "0x1234567890123456789012345678901234567890",
  "blockExplorerUrl": "https://amoy.polygonscan.com/address/0x1234567890123456789012345678901234567890",
  "verification": {
    "status": "not_started",
    "level": "standard"
  },
  "transactionLimits": {
    "single": "1000.00",
    "daily": "10000.00",
    "monthly": "100000.00"
  },
  "createdAt": "2021-01-01T00:00:00Z",
  "updatedAt": "2021-01-01T00:00:00Z"
}
You can either use the API endpoints or the link provided in the response above to proceed with the next steps.

Step 2: Upload Required Documents

Individual customers must provide identity verification and proof of address documents.

Document requirements

1. Identity Document (Choose one)
  • National ID Card (id_card) - front and back
  • Driver’s License (drivers_license) - front and back
  • Passport (passport) - single page
2. Proof of Address
  • Must be dated within the last 3 months
  • Shows full name and residential address

Upload Examples

curl -X POST https://api.lumx.io/customers/{customerId}/documents \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@/path/to/passport.pdf" \
  -F 'metadata={
    "type": "passport",
    "country": "BRA"
  }'
File Requirements:
  • Formats: PDF, PNG, or JPEG
  • Maximum size: 50MB per document
  • Documents must be clearly legible and fully visible
  • Both physical (scanned) and digital documents are accepted

Step 3: Start KYC Verification

Once all documents are uploaded, initiate the KYC verification process:
Request
curl -X POST https://api.lumx.io/customers/{customerId}/verifications \
  -H "Authorization: Bearer YOUR_API_KEY"
Processing Time: Individual KYC verification is usually completed within minutes, though it may take longer during peak times.

Step 4: Monitor Verification Status

Check the verification progress and results:
Request
curl -X GET https://api.lumx.io/customers/{customerId}/verifications \
  -H "Authorization: Bearer YOUR_API_KEY"
Response
{
  "customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "status": "not_started",
  "level": "standard",
  "statusReason": {
    "rejectLabels": ["screenshot", "unsatisfactory_photos"],
    "documents": [
      {
        "type": "passport",
        "status": "temporary_rejection",
        "comment": "Screenshots aren't accepted. Please upload a live photo of the document.",
        "rejectLabels": ["screenshot", "unsatisfactory_photos"]
      },
      {
        "type": "utility_bill",
        "status": "temporary_rejection"
      }
    ]
  }
}

Verification Statuses

TypeDescription
not_startedVerification hasn’t been initiated yet
under_verificationDocuments are being reviewed
approvedCustomer is fully verified and ready to transact
temporary_rejectionDocuments need to be resubmitted
final_rejectionCustomer was not approved

Next Steps

Learn how to onboard business customers or move to exchange rates.