---
title: "Upload users via CSV file"
method: POST
path: "/users/bulk/csv"
tags: ["Users"]
---

# Upload users via CSV file

`POST /users/bulk/csv`

Upload a CSV file containing user information for bulk creation. The CSV file should follow
a specific format with required and optional columns based on user type.

### CSV Format
The CSV file should have the following columns:

Required columns for all users:
- umaAddress: The user's UMA address (e.g., $john.doe@uma.domain.com)
- platformUserId: Your platform's unique identifier for the user
- userType: Either "INDIVIDUAL" or "BUSINESS"

Required columns for individual users:
- fullName: Individual's full name
- birthDate: Date of birth in YYYY-MM-DD format
- addressLine1: Street address line 1
- city: City
- state: State/Province/Region
- postalCode: Postal/ZIP code
- country: Country code (ISO 3166-1 alpha-2)
- accountType: Bank account type (CLABE, US_ACCOUNT, PIX, IBAN)
- accountNumber: Bank account number
- bankName: Name of the bank

Required columns for business users:
- businessLegalName: Legal name of the business
- addressLine1: Street address line 1
- city: City
- state: State/Province/Region
- postalCode: Postal/ZIP code
- country: Country code (ISO 3166-1 alpha-2)
- accountType: Bank account type (CLABE, US_ACCOUNT, PIX, IBAN)
- accountNumber: Bank account number
- bankName: Name of the bank

Optional columns for all users:
- addressLine2: Street address line 2
- platformAccountId: Your platform's identifier for the bank account
- description: Optional description for the user

Optional columns for individual users:
- email: User's email address

Optional columns for business users:
- businessRegistrationNumber: Business registration number
- businessTaxId: Tax identification number

Additional required columns based on account type:

For US_ACCOUNT:
- routingNumber: ACH routing number (9 digits)
- accountCategory: Either "CHECKING" or "SAVINGS"

For CLABE:
- clabeNumber: 18-digit CLABE number

For PIX:
- pixKey: PIX key value
- pixKeyType: Type of PIX key (CPF, CNPJ, EMAIL, PHONE, RANDOM)

For IBAN:
- iban: International Bank Account Number
- swiftBic: SWIFT/BIC code (8 or 11 characters)

See the UserBankAccountInfo and UserInfo schemas for more details on the required and optional fields.

### Example CSV
```csv
umaAddress,platformUserId,userType,fullName,birthDate,addressLine1,city,state,postalCode,country,accountType,accountNumber,bankName,platformAccountId,businessLegalName,routingNumber,accountCategory
john.doe@uma.domain.com,user123,INDIVIDUAL,John Doe,1990-01-15,123 Main St,San Francisco,CA,94105,US,US_ACCOUNT,123456789,Chase Bank,chase_primary_1234,,222888888,SAVINGS
acme@uma.domain.com,biz456,BUSINESS,,,400 Commerce Way,Austin,TX,78701,US,US_ACCOUNT,987654321,Bank of America,boa_business_5678,Acme Corp,121212121,CHECKING
```

The upload process is asynchronous and will return a job ID that can be used to track progress.
You can monitor the job status using the `/users/bulk/jobs/{jobId}` endpoint.

## Response `202`

CSV upload accepted for processing

- object
  - `jobId` string, required — Unique identifier for the bulk import job
  - `status` 'PENDING' | 'PROCESSING', required

## Other responses

- `401` — Unauthorized
- `500` — Internal service error

---

[API](https://skmtc.net/lightsparkdev/apis/uma-as-a-service-umaaas-api.md) · [All operations](https://skmtc.net/lightsparkdev/apis/uma-as-a-service-umaaas-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightsparkdev/uma-as-a-service-umaaas-api/revisions/2e2b5ba6d69b/schema)
