Skip to main content
billing_address is replaced, not merged, whenever you send an object for it in PATCH /v1/customers/{customer_id}. Any component you leave out of that object becomes null, even if a value was previously stored. This is the only field on the customer object where omitted, explicit null, and an object all mean something different. It is not guessable from the field list above, so read this before you write an update.
Worked example. A customer already has this stored:
Sending {"billing_address": {"city": "Paris"}} on PATCH /v1/customers/{customer_id}, intending to correct only the city, replaces the whole object instead:
line1 and country are gone even though nobody meant to touch them, and the address is no longer valid to submit as evidence. Send the full object (all six keys, with the ones you want to keep repeated back) whenever you’re changing part of an address. This is deliberate. A partial address written over a stored one produces a plausible-looking address that is actually wrong, and this value is what gets submitted as evidence on a dispute. A silent partial write is worse than a rejected request. name and phone_number do not work this way. Sending either of those updates only that field and leaves the rest of the customer alone. billing_address is the exception. Validation. country must be a real ISO-3166-1 alpha-2 code (for example NG, FR). Invalid codes are rejected. line1 and country are required whenever an address object is supplied. An all-empty object ({}) is rejected outright; send explicit null if your intent is to clear the address.
customer_id
string
required

Unique identifier for the customer, prefixed with cust_.

Example:

"cust_1a2b3c4d5e6f"

email
string<email>
required

The customer's email address.

Example:

"jane@example.com"

metadata
object
required

Your own key-value data attached to the customer.

Example:
created_at
string<date-time>
required

ISO 8601 timestamp when the customer was created.

Example:

"2026-01-24T12:00:00.000Z"

updated_at
string<date-time>
required

ISO 8601 timestamp when the customer was last updated.

Example:

"2026-01-24T12:00:00.000Z"

name
string | null

The customer's full name. null when not set.

Example:

"Jane Doe"

phone_number
string | null

The customer's phone number in E.164 format, e.g. +2348012345678.

Example:

"+2348012345678"

billing_address
object | null

The customer's billing address, or null if none is set.