> ## Documentation Index
> Fetch the complete documentation index at: https://docs.finosu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# LMS Batch Sync Status

## Overview

Check the processing status of a batch LMS sync job created via [LMS Customer Batch Sync](./sync-customer-full-batch.mdx).

## Path Parameters

* **jobId** — The job ID returned by the batch sync endpoint **(required)**. Must be a valid UUID.

## Response Format

```json theme={null}
{
  "jobId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "completed",
  "totalCustomers": 3,
  "processed": 2,
  "failed": 1,
  "progressPercentage": 100.0,
  "createdAt": "2026-08-03T12:00:00Z",
  "processingStartedAt": "2026-08-03T12:00:01Z",
  "processingCompletedAt": "2026-08-03T12:00:15Z",
  "errorMessage": null
}
```

### Response Fields

| Field                     | Type           | Description                                                       |
| ------------------------- | -------------- | ----------------------------------------------------------------- |
| **jobId**                 | string         | Unique job identifier                                             |
| **status**                | string         | Current status: `pending`, `processing`, `completed`, or `failed` |
| **totalCustomers**        | integer        | Total number of customers in the batch                            |
| **processed**             | integer        | Number of customers successfully synced                           |
| **failed**                | integer        | Number of customers that failed to sync                           |
| **progressPercentage**    | float          | Percentage of customers processed (0.0 to 100.0)                  |
| **createdAt**             | string         | ISO 8601 timestamp when the job was created                       |
| **processingStartedAt**   | string or null | ISO 8601 timestamp when processing began                          |
| **processingCompletedAt** | string or null | ISO 8601 timestamp when processing finished                       |
| **errorMessage**          | string or null | Error description if the job failed                               |

### Status Values

* **pending** — Job is queued but background processing has not started yet
* **processing** — Job is actively syncing customers. Poll again to see updated progress.
* **completed** — All customers have been processed. Check `processed` and `failed` for results.
* **failed** — The job encountered a fatal error (e.g., could not read batch data) or all customers failed to sync.

## Polling Recommendations

* Poll every **5 seconds** while status is `processing`
* Stop polling when status is `completed` or `failed`
* The `progressPercentage` field provides a quick progress indicator

## Error Handling

| Status  | Meaning                                                    |
| ------- | ---------------------------------------------------------- |
| **200** | Job found, status returned                                 |
| **400** | Invalid job ID format (not a valid UUID)                   |
| **404** | Job not found (wrong ID or belongs to a different company) |

## Authentication

Requires **X-API-Key** header. The job must belong to the company associated with the API key.
