Skip to navigation

write_customer

Create and manage customers and their contacts

Live server: on mcp.solvimon.com only the draft actions are available, see Access modes.

Creates and manages customers and their contacts. Types: ORGANIZATION (B2B) and INDIVIDUAL (B2C). Country drives tax calculation and is set inside the address: organization.registered_address.country or individual.residential_address.country. One organization can be the parent of several child customers for consolidated billing.

Actions: create, update, upsert, delete, activate, deprecate, archive. With resource_type: contacts: create, update, delete.

On live: create (always DRAFT) and update while the customer is DRAFT.

  • DRAFT by default. A create without status makes a DRAFT customer. You can quote a DRAFT customer, but it must be activated before the quote converts to a subscription.
  • Custom fields merge on update, so setting one field keeps the others. Pass custom_fields_mode: replace to replace the list.
  • type can be switched if the new sub-object is sent in the same update. timezone can change only while the customer has no DRAFT or ACTIVE subscription.
  • Changing a customer’s parents regroups it and reprocesses its invoices. The result warns you.
  • Archive, delete and role changes are checked against the backend’s rules before anything is sent, and refused with the reason.
  • A contact create asks whether the contact receives invoices by email. Deleting a contact is confirm-first and warns when nobody would be left receiving invoices.
Create a customer
{
"action": "create",
"body": {
"type": "ORGANIZATION",
"reference": "acme-001",
"timezone": "Europe/Amsterdam",
"organization": {
"legal_name": "Acme Corp",
"registered_address": {
"country": "NL",
"city": "Amsterdam",
"line1": "Keizersgracht 1",
"postal_code": "1015CJ"
}
}
}
}

A customer has no billing_entity_id or country_code field. The API rejects both.