# Update a customer

Updates a customer's name, email, addresses and settings. `name` and `email` are required; everything else is
optional and left unchanged when omitted.
Accepts user session headers only. Contact support to request API key access for this endpoint.

Endpoint: PUT /v1/vendors/{vendorGuid}
Version: 1.19
Security: UserGuid, UserToken, SupplierGuid

## Security:

  - `UserGuid` (unknown)
    apiKey in header userGuid

  - `UserToken` (unknown)
    apiKey in header userToken

  - `SupplierGuid` (unknown)
    apiKey in header supplierGuid

## Path parameters:

  - `vendorGuid` (string, required)
    GUID of the customer (vendor).

## Request fields (application/json):

  - `name` (string, required)

  - `email` (string, required)

  - `billTo` (object)
    Address fields accepted when creating or updating an address.

  - `billTo.name` (string)
    Contact name at this address.
    Example: Jane Doe

  - `billTo.company_name` (string)
    Example: Acme, Inc.

  - `billTo.address_line_one` (string)
    Example: 123 Any Street

  - `billTo.address_line_two` (string)
    Example: Unit A

  - `billTo.address_line_three` (string)

  - `billTo.city` (string)
    Example: Anytown

  - `billTo.state` (string)
    Example: CA

  - `billTo.postal_code` (string)
    Example: 12345

  - `billTo.country` (string)
    Example: US

  - `billTo.phone` (string)

  - `billTo.fax` (string)

  - `billTo.email` (string)

  - `billTo.note` (string)

  - `billTo.address_internal_id` (string)
    Your own identifier for this address.

  - `options` (object)
    Optional customer settings. All fields are optional; omitted fields are left unchanged.

  - `options.active` (boolean)

  - `options.customer_internal_id` (string)

  - `options.lock_catalog_id` (integer)

  - `options.price_group_id` (integer)

  - `options.payment_type_id` (integer)

  - `options.payment_term_id` (integer)

  - `options.require_payment` (boolean)

  - `options.credit_limit` (number)

  - `options.open_balance` (number)

  - `options.tax_exempt` (boolean)

  - `options.tax_shipping` (boolean)

  - `options.resale_tax_id` (string)

  - `options.is_ecomm_user` (boolean)

  - `options.net_term_ecomm_user` (boolean)

  - `options.require_po` (boolean)

  - `options.hide_pricing` (boolean)

  - `options.shipping_email` (string)

  - `options.default_shipping_instructions` (string)

  - `options.default_order_category_id` (integer)

  - `options.category_id` (integer)

  - `options.parent_vendor_id` (integer)

  - `options.currency_id` (integer)

  - `options.notes` (string)

  - `options.route_id` (integer)
    Delivery route id. Omit to leave the customer's route unchanged; send null to remove the customer from its route.

  - `options.route_stop_order` (integer)
    Standing stop order of the customer on its route (used by the Route Pick List export). Omit to leave unchanged; send null to clear. Customers without a value sort last, by name.

  - `options.default_local_delivery` (boolean)

  - `options.default_local_pickup` (boolean)

  - `options.timezone` (string)

  - `options.create_in_qbo` (boolean)
    Create the customer in QuickBooks Online after saving.

  - `options.create_in_qbd` (boolean)
    Queue the customer for creation in QuickBooks Desktop after saving.

  - `tokenOptions` (object)
    Connection-level settings for the customer's login (catalog / price group locks, discounts).

  - `tokenOptions.catalog_id` (integer)

  - `tokenOptions.price_group_id` (integer)

  - `tokenOptions.hide_pricing` (boolean)

  - `tokenOptions.price_discount_one` (number)

  - `tokenOptions.price_discount_two` (number)

  - `shippingDetails` (array)
    Replaces the customer's saved shipping preferences (carrier / service defaults).

  - `shippingAccounts` (array)
    Replaces the customer's third-party shipping accounts.

## Response 200:

  - `200` (unknown)
    The updated customer.

## Response 200 fields (application/json):

  - `vendorModel` (object)
    A customer of the supplier. The full model includes many integration-specific fields (QuickBooks, Stripe, FastBound, routing); only the commonly used ones are listed here.

  - `vendorModel.id` (integer)

  - `vendorModel.guid` (string)

  - `vendorModel.supplier_id` (integer)

  - `vendorModel.parent_vendor_id` (integer)

  - `vendorModel.customer_internal_id` (string)
    Your own identifier for this customer.

  - `vendorModel.name` (string)

  - `vendorModel.email` (string)

  - `vendorModel.shipping_email` (string)

  - `vendorModel.phone` (string)

  - `vendorModel.cell` (string)

  - `vendorModel.fax` (string)

  - `vendorModel.address_line_one` (string)

  - `vendorModel.address_line_two` (string)

  - `vendorModel.city` (string)

  - `vendorModel.state` (string)

  - `vendorModel.postal_code` (string)

  - `vendorModel.country` (string)

  - `vendorModel.active` (boolean)

  - `vendorModel.tax_exempt` (boolean)

  - `vendorModel.resale_tax_id` (string)

  - `vendorModel.lock_catalog_id` (integer)
    When set, the customer can only order from this catalog.

  - `vendorModel.price_group_id` (integer)
    Price group used for this customer's pricing.

  - `vendorModel.payment_type_id` (integer)

  - `vendorModel.payment_term_id` (integer)

  - `vendorModel.require_payment` (boolean)

  - `vendorModel.credit_limit` (number)

  - `vendorModel.open_balance` (number)

  - `vendorModel.is_ecomm_user` (boolean)
    True for Orderwerks Online (e-commerce) customers.

  - `vendorModel.net_term_ecomm_user` (boolean)

  - `vendorModel.require_po` (boolean)

  - `vendorModel.standing_po` (string)

  - `vendorModel.hide_pricing` (boolean)

  - `vendorModel.currency_id` (integer)

  - `vendorModel.notes` (string)

  - `vendorModel.default_order_category_id` (integer)

  - `vendorModel.route_id` (integer)

  - `vendorModel.route_stop_order` (integer)
    Standing stop order of the customer on its route; null = unordered (sorts last, by name).

  - `vendorModel.timezone` (string)

  - `vendorModel.bill_to_id` (integer)

  - `vendorModel.ship_to_id` (integer)

  - `vendorModel.Bill_To` (object)
    A billing or shipping address. Additional internal fields may be present.

  - `vendorModel.Bill_To.id` (integer)

  - `vendorModel.Bill_To.guid` (string)

  - `vendorModel.Bill_To.vendor_id` (integer)

  - `vendorModel.Bill_To.order_id` (integer)

  - `vendorModel.Bill_To.name` (string)
    Contact name at this address.

  - `vendorModel.Bill_To.company_name` (string)

  - `vendorModel.Bill_To.address_line_one` (string)

  - `vendorModel.Bill_To.address_line_two` (string)

  - `vendorModel.Bill_To.address_line_three` (string)

  - `vendorModel.Bill_To.city` (string)

  - `vendorModel.Bill_To.state` (string)

  - `vendorModel.Bill_To.postal_code` (string)

  - `vendorModel.Bill_To.country` (string)

  - `vendorModel.Bill_To.phone` (string)

  - `vendorModel.Bill_To.fax` (string)

  - `vendorModel.Bill_To.email` (string)

  - `vendorModel.Bill_To.note` (string)

  - `vendorModel.Bill_To.address_internal_id` (string)
    Your own identifier for this address, if one was supplied.

  - `vendorModel.Bill_To.is_vendor_main_ship_to` (boolean)

  - `vendorModel.Bill_To.verified` (boolean)
    True when the address was verified against a postal database.

  - `vendorModel.Bill_To.lat` (number)

  - `vendorModel.Bill_To.lng` (number)

  - `vendorModel.Bill_To.created_at` (string)

  - `vendorModel.Bill_To.updated_at` (string)

  - `vendorModel.created_at` (string)

  - `vendorModel.updated_at` (string)

  - `vendorModel.deleted_at` (string)
    Present only in delta-sync responses for soft-deleted customers.

  - `resource` (string)
    Example: vendor

## Response 400:

  - `400` (unknown)
    The request is malformed or references a resource the supplier does not own (for example an unknown catalog GUID).

## Response 400 fields (application/json):

  - `message` (string, required)
    Human-readable error message.
    Example: Invalid Catalog GUID

  - `error` (string)
    Underlying error detail, when available.

  - `code` (string)
    Machine-readable code for specific failures (for example `INVALID_DELTA_CURSOR`).

## Response 401:

  - `401` (unknown)
    Missing or invalid credentials.

## Response 401 fields (application/json):

  - `message` (string, required)
    Human-readable error message.
    Example: Invalid Catalog GUID

  - `error` (string)
    Underlying error detail, when available.

  - `code` (string)
    Machine-readable code for specific failures (for example `INVALID_DELTA_CURSOR`).

## Response 403:

  - `403` (unknown)
    The credentials are valid but the user lacks the access level this endpoint requires.

## Response 403 fields (application/json):

  - `message` (string, required)
    Human-readable error message.
    Example: Invalid Catalog GUID

  - `error` (string)
    Underlying error detail, when available.

  - `code` (string)
    Machine-readable code for specific failures (for example `INVALID_DELTA_CURSOR`).

