> This page is for version v2026-04-01 (default).
> For other versions, use one of these documentation indexes:
> - v2026-04-01 (default): https://docs.givechariot.com/v2026-04-01/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.givechariot.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.givechariot.com/_mcp/server.

# Mail Uploads

Lockbox providers upload batches of mail items to Chariot using presigned URLs. See the [Get a Mailbox Upload URL](/v2026-01-15/api/mailbox/get-upload-url) API reference for endpoint details.

Also see: [Batch Format](/v2026-01-15/guides/lockbox-providers/batch-format) | [Provisioning](/v2026-01-15/guides/lockbox-providers/provisioning)

## Upload Process

### Prepare the batch

Create a ZIP file containing TIFF images and a CSV index file. See the [Batch Format](/v2026-01-15/guides/lockbox-providers/batch-format) guide for the expected format and examples.

### Request a presigned upload URL

Send a request to the Chariot API:

**`POST /mailbox/upload_url`**

```json title="POST /mailbox/upload_url"
{
  "location_id": "po_543"
}
```

Returns:

```json
{
  "url": "https://chariot-lockbox-uploads.s3.us-east-1.amazonaws.com/provider_id/location_id/2026/03/16/12/01jf7x8m9n0p1q2r3s4t5u6v.zip"
}
```

### Upload the batch

Upload the ZIP file via PUT request to the returned URL:

```bash
curl -X PUT -T batch.zip "https://chariot-lockbox-uploads.s3.us-east-1.amazonaws.com/provider_id/location_id/2026/03/16/12/01jf7x8m9n0p1q2r3s4t5u6v.zip"
```

## Rescans

When a mail item requires a rescan, Chariot will send a request via email to the lockbox provider with the following information:

* The provider's ID of the mail item that requires a rescan
* The location ID (or PO box) that the mail item was sent to

Once received, the lockbox provider should re-upload the batch using the same process as above, with one additional parameter: `rescan = true`.

**`POST /mailbox/upload_url`**

```json title="POST /mailbox/upload_url"
{
  "location_id": "po_543",
  "rescan": true
}
```

### Notes

* The batch must include both the rescanned TIFF image(s) **and** the standard CSV index file
* The CSV must contain only the line items for the rescanned mail item
* The CSV must use the **same `mail_item_id`** (described in the [Batch Format](/v2026-01-15/guides/lockbox-providers/batch-format) guide) as the original submission so Chariot can match the rescan to the original data