---
title: "Updates metadata for multiple customers"
method: POST
path: "/customers/metadata/bulk"
tags: ["Customers"]
---

# Updates metadata for multiple customers

`POST /customers/metadata/bulk`

## Request

- Base URL: `https://api.rillet.com`
- URL: `https://api.rillet.com/customers/metadata/bulk`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/rillet/apis/rillet-accounting-api/docs/customers/metadata/bulk/post.ts> (a function with typed inputs; its response is checked against the schema)

Patches metadata on up to 1,000 customers in one atomic request. Each customer may receive
different values. If a customer is missing or any key or value is invalid, nothing is
written for any customer. Per customer this behaves exactly like patch-customer-metadata:
keys omitted for that customer are left unchanged; null, empty, and whitespace-only values
clear that key.
Metadata-only changes are recorded in the audit log but do not trigger customer.updated
webhooks or customer integration syncs.

## Request body

- BulkUpdateCustomerMetadataRequest
  - `customers` BulkCustomerMetadataUpdate[], required
    - `customer_id` string, uuid, required
    - `metadata` object, required: Partial update for this customer. Omitted keys are left unchanged; null or empty values clear a key.

## Response `200`

OK

- BulkUpdateCustomerMetadataResponse
  - `customers` BulkCustomerMetadataResult[], required
    - `customer_id` string, uuid, required
    - `metadata` object, required

## Other responses

- `default`: Error

## Changes

- **2026-11-03** `c393d0102005`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rillet/apis/rillet-accounting-api/changes/customers/metadata/bulk/post.md)

---

[API](https://skmtc.dev/rillet/apis/rillet-accounting-api.md) - [All operations](https://skmtc.dev/rillet/apis/rillet-accounting-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rillet/apis/rillet-accounting-api/revisions/c393d0102005?raw)
