---
title: "🔒 Update supplier V3"
method: PATCH
path: "/api/v3/suppliers/{id}"
tags: ["Supplier"]
---

# 🔒 Update supplier V3

`PATCH /api/v3/suppliers/{id}`

This endpoint is currently in Beta and available for testing. It may contain bugs, and breaking changes can occur at any time without prior notice. We do not recommend using Beta endpoints in production environments. Should you choose to use it in production, you assume full responsibility for any resulting issues.

This endpoint requires the following scopes: `supplier:update`.

Update an existing supplier.

## Path parameters

- `id` string, required

## Request body

- object
  - `number` string — Supplier number
  - `deviatingSupplierNumber` string — Deviating supplier account number for accounting
  - `mainProject` object — Main project the supplier belongs to
    - `id` string, required — ID of the project
  - `primaryAddress` object — Primary address information for the supplier
    - `name` string
    - `type` 'mrs' | 'mr' | 'company' | 'other'
    - `title` string
    - `contactPerson` string
    - `salutation` string
    - `department` string
    - `subDepartment` string
    - `addressSupplement` string
    - `street` string
    - `zipCode` string
    - `city` string
    - `state` string
    - `country` string
    - `gln` string
    - `email` string
    - `phone` string
    - `mobile` string
    - `fax` string
  - `deviatingBillingAddress` object — Deviating billing address information. Set to null to delete the deviating billing address. When updating, the required fields (name, street, zipCode, city, country) cannot be set to null or empty.
    - `name` string
    - `type` 'mrs' | 'mr' | 'company' | 'other'
    - `title` string
    - `contactPerson` string
    - `salutation` string
    - `department` string
    - `subDepartment` string
    - `addressSupplement` string
    - `street` string
    - `zipCode` string
    - `city` string
    - `state` string
    - `country` string
    - `gln` string
    - `email` string
    - `phone` string
    - `mobile` string
    - `fax` string
  - `communication` object — Communication preferences and settings
    - `language` string — Language preference. The two-letter code of a language that exists in the system settings.
    - `website` string — Website URL
    - `additionalContactInformation` object[] — Additional contact information entries
      - `key` string, required — Contact information type/key
      - `value` string, required — Contact information value. Set to null to delete the entry.
  - `financials` object — Financial information and settings
    - `primaryBankAccount` object — Primary bank account information
      - `bankName` string — Bank name
      - `accountHolder` string — Account holder name
      - `iban` string — IBAN
      - `bic` string — BIC/SWIFT code
      - `sepa` object — SEPA mandate information
        - `isCompanySepa` boolean — Is company SEPA mandate
        - `mandateReference` string — SEPA mandate reference
        - `mandateReferenceChange` boolean — Mandate reference change flag
        - `mandateReferenceDate` string, date — Mandate reference date
        - `usage` 'single' | 'recurring' — SEPA mandate usage type
        - `isInitialMandate` boolean — Is initial mandate
        - `remark` string — SEPA mandate remark
    - `tax` object — Tax information
      - `vatId` string — VAT ID
      - `taxNumber` string — Tax number
      - `taxDisplay` 'automatically' | 'alwaysNet' | 'alwaysGross' — Tax display preference on receipts
      - `taxDeterminationType` 'domestic' | 'eu' | 'import' | 'exempt' — Tax determination type for liabilities
      - `customsInformation` string — Customs information
    - `paymentTerms` object — Payment terms configuration
      - `paymentTargetDays` unknown
      - `paymentTargetDiscount` unknown
      - `paymentTargetDiscountDays` unknown
    - `paymentMethod` object — Payment method reference
      - `id` string, required — ID of the payment method
    - `paypal` object — PayPal payment information
      - `accountHolder` string — PayPal account holder name
      - `paypalAccount` string — PayPal account email
      - `currency` string — PayPal currency
    - `customerNumberForSupplier` string — Customer number at supplier
    - `defaultCurrency` string — Default currency
    - `creditLimit` unknown
  - `fulfillment` object — Fulfillment and delivery settings
    - `deliveryMethod` object — Delivery method reference
      - `id` string, required — ID of the shipping method
    - `deliveryTerms` string — Delivery terms
    - `deliveryBlock` boolean — Delivery block
    - `deliveryBlockDate` string, date — Delivery block date
    - `deliveryBlockReason` string — Delivery block reason
    - `freeShippingEnabled` boolean — Free shipping enabled
    - `freeShippingThreshold` unknown
    - `commissionConsignmentWarehouse` object — Consignment storage location
      - `id` string, required — ID of the storage location
  - `documentDelivery` object — Document delivery preferences
    - `preferFax` boolean — Prefer fax delivery
    - `documentRecipients` object — Document recipients configuration
      - `offer` object — Offer document recipients
        - `to` string — Primary email recipient
        - `cc` string[] — CC email recipients
      - `creditNote` object — Credit note document recipients
        - `to` string — Primary email recipient
        - `cc` string[] — CC email recipients
      - `deliveryNote` object — Delivery note document recipients
        - `to` string — Primary email recipient
        - `cc` string[] — CC email recipients
      - `purchaseOrder` object — Purchase order document recipients
        - `to` string — Primary email recipient
        - `cc` string[] — CC email recipients
  - `accountManager` object — Account manager reference
    - `id` string, required — ID of the address
  - `groups` object[] — Groups the supplier belongs to
    - `id` string, required — Group ID
  - `supplierRoles` object[] — Supplier roles associated with projects. All provided roles will be upserted.
    - `project` object — Project reference
      - `id` string, required — ID of the project
    - `validFrom` string, date — Valid from date
    - `expiresAt` string, date — Expires at date
  - `customFields` object[] — Custom fields for additional custom data
    - `key` string, required — Custom field key, Only customField1 through customField20 are allowed.
    - `label` string — Custom field label
    - `value` string, required — Custom field value
  - `notes` string — Notes for the supplier
  - `supplierPurchaseNote` string — Supplier purchase note text
  - `tags` object[] — Tags to assign to the supplier
    - `title` string, required — Title of the Tag

## Response `200`

Update an existing supplier.

- object
  - `data` object — Supplier entity
    - `id` string — ID of the supplier
    - `createdAt` string, date-time — Creation timestamp
    - `updatedAt` string, date-time — Last update timestamp
    - `number` string — Supplier number
    - `deviatingSupplierNumber` string — Deviating supplier account number for accounting
    - `mainProject` object — Main project the supplier belongs to
      - `id` string
    - `primaryAddress` object — Represents a postal address with contact information.
      - `name` string, required — Represents an address consisting of a physical address and contact information. It is used in various documents, such as invoices, delivery notes, etc.
      - `type` 'mrs' | 'mr' | 'company' | 'other'
      - `title` string
      - `contactPerson` string
      - `department` string
      - `subDepartment` string
      - `addressSupplement` string
      - `street` string
      - `zipCode` string
      - `city` string
      - `state` string
      - `country` string
      - `salutation` string
      - `gln` string
      - `email` string
      - `phone` string
      - `fax` string
      - `mobile` string
    - `deviatingBillingAddress` object — Represents a postal address with contact information.
      - `name` string, required — Represents an address consisting of a physical address and contact information. It is used in various documents, such as invoices, delivery notes, etc.
      - `type` 'mrs' | 'mr' | 'company' | 'other'
      - `title` string
      - `contactPerson` string
      - `department` string
      - `subDepartment` string
      - `addressSupplement` string
      - `street` string
      - `zipCode` string
      - `city` string
      - `state` string
      - `country` string
      - `salutation` string
      - `gln` string
      - `email` string
      - `phone` string
      - `fax` string
      - `mobile` string
    - `communication` object — Communication preferences and settings for the supplier
      - `language` string
      - `website` string
      - `additionalContactInformation` object[] — Additional contact information entries
        - `key` string
        - `value` string
    - `financials` object — Financial information and settings for the supplier
      - `primaryBankAccount` object
        - `bankName` string — Masked by default. Requires supplier:readBanking scope for unmasked value.
        - `accountHolder` string — Masked by default. Requires supplier:readBanking scope for unmasked value.
        - `iban` string — Masked by default (e.g. DE89**************3000). Requires supplier:readBanking scope for unmasked value.
        - `bic` string — Masked by default. Requires supplier:readBanking scope for unmasked value.
        - `sepa` object
          - `isCompanySepa` boolean
          - `mandateReference` string — Masked by default. Requires supplier:readBanking scope for unmasked value.
          - `mandateReferenceChange` boolean
          - `mandateReferenceDate` string
          - `usage` 'single' | 'recurring'
          - `isInitialMandate` boolean
          - `remark` string
      - `tax` object
        - `vatId` string
        - `taxNumber` string
        - `taxDisplay` 'automatically' | 'alwaysNet' | 'alwaysGross'
        - `taxDeterminationType` 'domestic' | 'eu' | 'export' | 'exempt'
        - `customsInformation` string
      - `paymentTerms` object
        - `paymentTargetDays` integer
        - `paymentTargetDiscount` number, float
        - `paymentTargetDiscountDays` integer
      - `paymentMethod` object
        - `id` string
      - `customerNumberForSupplier` string
      - `defaultCurrency` string
      - `creditLimit` unknown
      - `paypal` object
        - `accountHolder` string
        - `paypalAccount` string
        - `currency` string
    - `fulfillment` object — Fulfillment and delivery settings for the supplier
      - `freeShippingEnabled` boolean
      - `freeShippingThreshold` number, float
      - `deliveryTerms` string
      - `deliveryBlock` boolean
      - `deliveryBlockDate` string, date
      - `deliveryBlockReason` string
      - `commissionConsignmentWarehouse` object
        - `id` string
    - `documentDelivery` object — Document delivery preferences for the supplier
      - `preferFax` boolean
      - `documentRecipients` object — Document recipients configuration for different document types
        - `offer` object
          - `to` string
          - `cc` string[]
        - `creditNote` object
          - `to` string
          - `cc` string[]
        - `deliveryNote` object
          - `to` string
          - `cc` string[]
        - `purchaseOrder` object
          - `to` string
          - `cc` string[]
    - `supplierRoles` object[] — Projects associated with the supplier as a supplier role. When id is null, it means all projects in the system.
      - `project` object — Project associated with the supplier
        - `id` string
      - `validFrom` string, date
      - `expiresAt` string, date
    - `groups` object[]
      - `id` string
    - `accountManager` object — Account manager responsible for the supplier
      - `id` string
    - `customFields` object[] — Custom fields with their values and metadata
      - `key` string
      - `value` string
      - `label` string
    - `notes` string — Notes added for the supplier
    - `supplierPurchaseNote` string — Supplier purchase note text
    - `deliveryAddresses` object[] — Delivery Addresses associated with the supplier
      - `id` string, required — Unique identifier for the delivery address
      - `type` 'company' | 'mrs' | 'mr' | 'other', required — Type of the delivery address recipient. Use 'company' for business addresses, 'mrs' for female recipients, 'mr' for male recipients, and 'other' for other types.
      - `name` string, required — Full name of the delivery address recipient. For companies, this is the company name. For persons, this is the full name.
      - `title` string — Title of the contact person.
      - `contactPerson` string — Name of the contact person at this delivery address. This is typically used for company addresses to specify who should receive the delivery.
      - `salutation` string — Salutation or greeting phrase for the delivery address. Can be used for personalized communication.
      - `department` string — Department name at the delivery address. Useful for routing deliveries within larger organizations.
      - `subDepartment` string — Sub department name at the delivery address. Useful for routing deliveries within larger organizations.
      - `addressSupplement` string — Additional address information such as building name, floor, hall, or specific delivery instructions for the location
      - `street` string, required — Street name and house number of the delivery address
      - `zipCode` string, required — Postal code (ZIP code) of the delivery address
      - `city` string, required — City name of the delivery address
      - `state` string — State or region code in ISO 3166-2 format (without country prefix). Required for countries with states/provinces.
      - `country` string, required — Country code in ISO 3166-1 alpha-2 format
      - `gln` string — Global Location Number (GLN) - a 13-digit number used to uniquely identify physical locations or legal entities globally. Used in supply chain and logistics for automated identification.
      - `phone` string — Primary phone number for the delivery address. Used for delivery coordination and communication.
      - `mobile` string — Mobile phone number for the delivery address contact. Useful for urgent delivery notifications.
      - `fax` string — Fax number for the delivery address. Still used by some organizations for official communications.
      - `email` string, email — Email address for delivery notifications and communication
      - `deliveryDetails` object, required — Delivery-specific settings and information for the address
        - `taxType` 'domestic' | 'eu' | 'export' | 'exempt' — Tax classification for deliveries to this address. 'domestic' for same-country deliveries, 'eu' for EU cross-border, 'export' for non-EU international, 'exempt' for tax-exempt deliveries.
        - `defaultDeliveryAddress` boolean — Indicates whether this is the default delivery address. Only one delivery address per customer/supplier should be set as default.
        - `termsOfDelivery` string — Incoterms or delivery terms code (e.g., EXW, FOB, CIF, DAP). Defines the responsibilities and costs between buyer and seller during shipping.
        - `vatId` string — VAT identification number for this delivery address. May differ from the main VAT ID for multi-location businesses.
        - `remark` string — Internal notes about this delivery address. Not visible externally. Used for operational information like opening hours, special handling instructions, or access codes.
        - `note` string — Public notes or delivery instructions for this address. May be shared with carriers or printed on delivery documents.
    - `contactPersons` object[] — Contact persons associated with the supplier
      - `id` string — ID of contact person
      - `type` 'mrs' | 'mr' | 'company' | 'other' — Type of contact person
      - `name` string — Name of contact person
      - `title` string — Title of contact person
      - `salutation` string — Salutation of contact person
      - `department` string — Department of contact person
      - `subDepartment` string — Sub-Department of contact person
      - `street` string — Street of contact person address
      - `addressSupplement` string — Address supplement of contact person address
      - `zipCode` string — Zip code of contact person address
      - `city` string — City of contact person address
      - `country` string — Country of contact person address
      - `state` string — State of contact person address
      - `phone` string — Phone number of contact person
      - `mobile` string — Mobile number of contact person
      - `fax` string — Fax number of contact person
      - `email` string — Email address of contact person
      - `contactPersonDetails` object — Contact person details
        - `position` string
        - `birthday` string, date
        - `language` string
        - `allowMarketingEmails` boolean
        - `internalNote` string
        - `remarks` string
      - `groups` object[] — Group information
        - `id` string — ID of group
      - `createdAt` string, date-time — Creation timestamp
      - `updatedAt` string, date-time — Last update timestamp
    - `tags` object[] — Tags assigned to the supplier
      - `id` string
      - `title` string

## Other responses

- `400` — Failed validation
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `429` — Too Many Requests

---

[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/revisions/8a27ba392442/schema)
