Merge two customers
POST
/customers/{id}/merge
const url = 'https://example.com/customers/019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f/merge';const options = { method: 'POST', headers: { cookie: 'bottle.session_token=<bottle.session_token>', 'Content-Type': 'application/json' }, body: '{"intoId":"019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/customers/019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f/merge \ --header 'Content-Type: application/json' \ --cookie bottle.session_token=<bottle.session_token> \ --data '{ "intoId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f" }'Addresses and orders move to the account being kept. The duplicate stays as a tombstone pointing at it, because an order taken against it this morning still has to resolve to something.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
UUID v7
string format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8fUUID v7
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
intoId
required
UUID v7
string format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8fResponses
Section titled “Responses”The account that was kept
Media typeapplication/json
object
id
required
UUID v7
string format: uuid
tradingName
required
string
kind
required
string
legalName
required
string | null
email
required
string | null format: email
phone
required
string | null
paymentTerms
required
string
paymentTermsDays
required
integer | null
billingAddressId
required
UUID v7
string | null format: uuid
hireBillingPeriod
required
string | null
hireBilledTo
required
string | null format: date
notes
required
string | null
archivedAt
required
string | null format: date-time
mergedIntoId
required
UUID v7
string | null format: uuid
legalHold
required
boolean
erasedAt
required
string | null format: date-time
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
Example
{ "id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "tradingName": "Camden Lock Grill", "kind": "commercial", "legalName": "Camden Lock Grill Ltd", "email": "orders@camdenlockgrill.co.uk", "phone": "07700 900123", "paymentTerms": "prepaid", "billingAddressId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "hireBillingPeriod": "weekly", "mergedIntoId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"}Not signed in
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Not a member of that tenant
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Not found
Media typeapplication/json
object
error
required
string
message
required
string
Example
{ "error": "not_found", "message": "Customer not found"}Cannot merge a customer into itself
Media typeapplication/json
object
error
required
string
message
required
string
issues
required
Array<object>
object
path
required
string
message
required
string
Example
{ "error": "validation", "issues": [ { "path": "email", "message": "Invalid email" } ]}