Overview
Sync multiple customers and all their loans from your company’s configured LMS in a single request. The endpoint processes customers asynchronously — it immediately returns a job ID (HTTP 202 Accepted) and processes customers in the background. UseGET /webhooks/lms/sync/batch/{jobId} to check the processing status.
Each customer is processed independently. Individual failures do not block the rest.
How It Works
- You send a list of customer IDs from your LMS
- Finosu returns a job ID immediately
- In the background, for each customer ID:
- Fetches customer info from your LMS (name, phone, email, SSN, address, etc.)
- Creates or updates the customer in Finosu
- Fetches all loans for that customer
- Creates loan records and schedules as appropriate
- You poll for status until the job completes
Request Body Format
Fields
- customerIds - Array of customer identifiers in your LMS (required)
- Minimum: 1 ID
- Maximum: 100 IDs per request
- Each ID must be a non-empty string
Response Format
The endpoint immediately returns HTTP 202 with a job ID:Response Fields
- jobId — Unique identifier for the batch job. Use this to poll for status.
- totalCustomers — Total number of customers queued for processing.
- message — Instructions for checking progress.
Checking Job Status
UseGET /webhooks/lms/sync/batch/{jobId} to check progress:
Status Values
- pending — Job is queued but not yet started
- processing — Job is currently processing customers
- completed — All customers have been processed (some may have failed individually)
- failed — Job encountered a fatal error, or all customers failed
Partial Success Handling
- Individual failures don’t stop processing — If one customer fails (e.g., not found in your LMS), the rest continue
- Detailed tracking — The
failedcount shows how many customers could not be synced - Transaction isolation — Each customer is processed in its own transaction
When to Use Batch vs Single
Use the batch endpoint when:- Syncing multiple customers from your LMS at once
- Performing initial data migration
- Running scheduled sync workflows
- You have more than a few customers to sync
- Syncing one customer in real-time (e.g., webhook from your LMS on application submission)
- Testing or debugging individual customer sync
- You need the sync result immediately in the response
Comparison with POST /customers/batch
Error Handling
Authentication
Requires X-API-Key header with a valid webhook API key. The key determines which company and LMS integration to use.Limits
- Maximum 100 customer IDs per request
- Each customer ID must be a non-empty string