---
title: "Update a customer"
method: PUT
path: "/companies/{companyId}/customers/{customerId}"
tags: ["customers"]
---

# Update a customer

`PUT /companies/{companyId}/customers/{customerId}`

## Request

- Base URL: `https://api.bokio.se/v1`
- URL: `https://api.bokio.se/v1/companies/{companyId}/customers/{customerId}`
- Auth: HTTP bearer

Update an existing customer for the company.

**Scope:** `customers:write`

If `customerNumber` is omitted or null, the existing customer number is preserved. A supplied customer number replaces it and is preserved exactly.

## Request body

- Customer
  - `id` string, uuid
  - `name` string, required
  - `customerNumber` string, nullable: Customer number. On create, omitting this field or setting it to null automatically suggests the next numeric value. On update, omitting this field or setting it to null preserves the existing value. Supplied values are preserved exactly.
  - `type` 'company' | 'private', required
  - `vatNumber` string
  - `orgNumber` string
  - `paymentTerms` string: Payment terms for the invoices. Payment terms can both take free text or days, in digits, until the payment is due. On the invoice, if a digit is provided it will be suffixed with "days". For example, "30" will be displayed as "30 days" on the invoice. Note that the suffix will, similar to the rest of the invoice, use the language on the customer.
  - `contactsDetails` object[]
    - `id` string, uuid, nullable: Should not be set for new items
    - `name` string
    - `email` string
    - `phone` string
    - `isDefault` boolean
  - `address` AddressWithCountrySubdivision
    - `line1` string, required
    - `line2` string, nullable
    - `city` string, required
    - `postalCode` string, required
    - `country` string, country, required: ISO 3166-1 alpha-2 country code
    - `countrySubdivision` string, nullable: ISO 3166-2 subdivision code (e.g. ENG, SCT, WLS, NIR for GB). Currently required for GB (United kingdom) country.
  - `language` 'sv' | 'en': Default 'sv'
  - `constructionReverseChargeEnabled` boolean: Whether invoices for this customer may use construction reverse charge. This can only be enabled when the customer is a Swedish company. Defaults to false.
  - `modifiedDateTime` string, date-time, nullable: The date and time the customer was last modified. Returns null for customers that were changed before this field was introduced.

## Response `200`

Customer updated

- Customer
  - `id` string, uuid
  - `name` string, required
  - `customerNumber` string, nullable: Customer number. On create, omitting this field or setting it to null automatically suggests the next numeric value. On update, omitting this field or setting it to null preserves the existing value. Supplied values are preserved exactly.
  - `type` 'company' | 'private', required
  - `vatNumber` string
  - `orgNumber` string
  - `paymentTerms` string: Payment terms for the invoices. Payment terms can both take free text or days, in digits, until the payment is due. On the invoice, if a digit is provided it will be suffixed with "days". For example, "30" will be displayed as "30 days" on the invoice. Note that the suffix will, similar to the rest of the invoice, use the language on the customer.
  - `contactsDetails` object[]
    - `id` string, uuid, nullable: Should not be set for new items
    - `name` string
    - `email` string
    - `phone` string
    - `isDefault` boolean
  - `address` AddressWithCountrySubdivision
    - `line1` string, required
    - `line2` string, nullable
    - `city` string, required
    - `postalCode` string, required
    - `country` string, country, required: ISO 3166-1 alpha-2 country code
    - `countrySubdivision` string, nullable: ISO 3166-2 subdivision code (e.g. ENG, SCT, WLS, NIR for GB). Currently required for GB (United kingdom) country.
  - `language` 'sv' | 'en': Default 'sv'
  - `constructionReverseChargeEnabled` boolean: Whether invoices for this customer may use construction reverse charge. This can only be enabled when the customer is a Swedish company. Defaults to false.
  - `modifiedDateTime` string, date-time, nullable: The date and time the customer was last modified. Returns null for customers that were changed before this field was introduced.

## Other responses

- `400`: Missing required information

## Changes

- **2026-11-03** `9395020f3da2`: 4 info
  - added the new optional request property `constructionReverseChargeEnabled`
  - added the new optional request property `customerNumber`
  - added the optional property `constructionReverseChargeEnabled` to the response with the `200` status
  - added the optional property `customerNumber` to the response with the `200` status

[Operation history](https://skmtc.dev/bokio/apis/company-api/changes/companies/:companyId/customers/:customerId/put.md)

---

[API](https://skmtc.dev/bokio/apis/company-api.md) - [All operations](https://skmtc.dev/bokio/apis/company-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bokio/apis/company-api/revisions/9395020f3da2?raw)
