---
title: "Update customer"
method: PATCH
path: "/api/v2/customers/{id}"
tags: ["Customer"]
---

# Update customer

`PATCH /api/v2/customers/{id}`

Update an existing customer.

## Path parameters

- `id` string, required — Resource identifier.

## Request body

- object
  - `customerType` 'person' | 'company', nullable — Discriminator to create a company. If 'company' is used then 'name' is required. If 'person' is used then 'firstname' and 'lastname' are required.
  - `firstname` string, nullable — Firstname of customer
  - `lastname` string, nullable — Lastname of customer
  - `name` string, nullable — Name of the company
  - `title` string, nullable — Title prefix for customer name. It will be used for communication.
  - `birthdate` string, date, nullable — Birhtdate of customer
  - `number` string, nullable — Customer number. if this is not provided default number ranges will be applied automatically
  - `deviatingCustomerNumber` string, nullable — Deviating Customer number.
  - `salutation` 'mr' | 'mrs' | 'company' | 'other', nullable — Decide kind of person if necessary. This value is e.g. responsible to apply automatic rules for salutation
  - `salutationPhrase` string, nullable — You can specify a salutation how a customer/company should be addressed and override automatic rules.
  - `department` string, nullable — Specify a department for customer
  - `subDepartment` string, nullable — Specify a sub-department for customer
  - `contactDetails` object — Contact information of a customer
    - `phone` string, nullable — Phone number of a customer
    - `mobile` string, nullable — Mobile number of a customer
    - `fax` string, nullable — Fax number of a customer
    - `email` string, nullable — Email address of a customer
    - `website` string, nullable — URL of customers website
    - `additionalData` object[] — List of additional not default contact data
      - `label` string, required — Specific key for customer contact data
      - `value` string, nullable, required — Value for specified customers contact data key
  - `accountManager` object, nullable
    - `id` string, required — Resource identifier.
  - `salesManager` object, nullable
    - `id` string, required — Resource identifier.
  - `isLead` boolean — Decides if customer is a lead
  - `contactPerson` string, nullable — Name of contact person
  - `groups` integer[], nullable — Specify the list of groups the customer should belong to
  - `customFields` object[] — List of custom field values
    - `id` integer, required — Identifier of custom field (max range: 1-20)
    - `value` string, nullable, required — Value of custom field
  - `financials` object — Financial information of a customer
    - `tax` object — Tax information
      - `taxation` 'domestic' | 'eu-delivery' | 'export' | 'free' — Taxation settings
      - `taxDisplay` 'automatically' | 'always-net' | 'always-gross' — Display of receipts with gross / net values.
      - `useDeliveryThreshold` boolean — Use delivery threshold
      - `taxNumber` string, nullable — Tax number
      - `vatId` string, nullable — VAT ID of customer
    - `paymentTerms` object — Payment terms
      - `fixedPaymentTerms` boolean — Fixed payment terms
      - `paymentTargetDays` integer, nullable — Payment terms target in days
      - `paymentTargetDiscount` number — Payment terms target discount
      - `paymentTargetDiscountDays` integer, nullable — Payment terms discount days
    - `paymentMethod` object, nullable
      - `id` string, required — Resource identifier.
    - `subscriptionPaymentMethod` 'invoice' | 'direct-debit', nullable — Payment method for subscriptions
    - `customsInformation` string, nullable — Customs information
    - `creditLimit` number, float — Credit limit
    - `defaultCurrency` string — Default currency for this customer
  - `primaryBankAccount` object
    - `bankName` string — Name of bank institute
    - `owner` string, nullable — Name of account owner
    - `iban` string, nullable — International Bank Account Number
    - `bic` string, nullable — Bank Identifier Code
    - `sepa` object — Object contains SEPA information
      - `companySepa` boolean — Different SEPA mandate especially foir companies
      - `mandateReference` string, nullable — Mandate reference
      - `mandateReferenceChange` boolean — Set to true if mandate reference changes for this customer
      - `mandateReferenceDate` string, date, nullable — Mandate reference date
      - `usage` 'recurring' | 'single' — Type of usage: singe mandate or recurring one
      - `initial` boolean — Set to true if it is first usage of this mandate
      - `remark` string, nullable — Additional comment
  - `documentDelivery` object — Additional settings for document delivery
    - `autoCreateDocuments` 'both' | 'delivery_note' | 'invoice' — Create receipts in auto-shipping
    - `invoiceAlwaysPaper` boolean — Even with automatic dispatch, a paper invoice is always created
    - `amountInvoicePrints` integer, nullable — Number of printouts during shipping
    - `preferFax` boolean — Prefer sending by FAX
  - `language` string, nullable — Language ISO code for customer communication
  - `mainProject` object — Main Project id
    - `id` string, required — Resource identifier.
  - `commission` number, float — Commission percentage for this customer
  - `identifier` string, nullable — Custom identifier for the customer
  - `logfile` string — Log entries of customer activities
  - `lat` number, float, nullable — Latitude coordinate
  - `lng` number, float, nullable — Longitude coordinate
  - `fromShop` object — Shop where customer originated from
    - `id` string, required — Resource identifier.
  - `marketing` object — Marketing preferences and settings
    - `marketingBan` boolean — Whether marketing is banned for this customer
    - `showBirthdayInCalendar` boolean — Show customer birthday in calendar
    - `birthdayCard` boolean — Send birthday card to customer
    - `ageApproval` boolean — Customer has approved age verification
  - `shipping` object — Shipping information
    - `freeShipping` boolean — Indicates if free shipping is enabled for this customer
    - `trackingMailBan` boolean — Indicates if tracking mail is banned for this customer
    - `deliveryBan` boolean — Indicates if delivery is banned for this customer
    - `freeShippingFrom` number, float — Minimum order amount for free shipping
    - `deliveryBanReason` string, nullable — Reason for delivery ban
    - `deliveryBanDate` string, date, nullable — Date when delivery ban was set
    - `shippingMethod` object, nullable — Nullable reference to another resource
      - `id` string, required — Resource identifier.

## Response `204`

Operation completed successfully, no response body

## Other responses

- `400` — IETF RFC 9457 Problem API compliant response
- `401` — Unable to authenticate the client
- `403` — Unable to authorize the client
- `404` — Resource was not found or not enough access privileges
- `409` — Request conflict with the current state of the target resource
- `415` — Resource representation send in the request is not supported.
- `429` — Too many API calls made.

---

[API](https://skmtc.net/xentral/apis/xentral-api.md) · [All operations](https://skmtc.net/xentral/apis/xentral-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/xentral/xentral-api/versions/8a27ba392442/schema)
