---
title: "Update Subcontractor"
method: PUT
path: "/subcontractors/{vendor_uid}"
---

# Update Subcontractor

`PUT /subcontractors/{vendor_uid}`

## Request

- Base URL: `https://dc-region.zuperpro.com/api`
- URL: `https://dc-region.zuperpro.com/api/subcontractors/{vendor_uid}`
- Auth: API key in header `x-api-key`

Operates on Subcontractors, shown in the Zuper client app as "Subcontractor" (in every industry). Subcontractors share the exact same underlying schema and endpoints as Vendors / Suppliers; they're distinguished only by the `vendor_type` field (`SUB_CONTRACTOR` here) and the `/subcontractors` route prefix.

## Path parameters

- `vendor_uid` string, required

## Request body

- object
  - `vendor` object
    - `vendor_name` string: Required.
    - `vendor_email` string, email: Required.
    - `vendor_contact_name` string: Required.
    - `vendor_display_name` string: Required. Name displayed throughout the application.
    - `tax_identifier` string, nullable: Should be unique.
    - `vendor_description` string
    - `vendor_contact_no` object: Required.
      - `work` string
      - `mobile` string
    - `vendor_delivery_method` 'JOB_ADDRESS' | 'WAREHOUSE' | 'PICKUP'
    - `vendor_address` object
      - `city` string
      - `state` string
      - `street` string
      - `country` string
      - `county` string
      - `landmark` string
      - `geo_cordinates` number[]: [latitude, longitude]
      - `label` string
      - `first_name` string
      - `last_name` string
      - `email` string
      - `phone_number` string
    - `vendor_billing_address` object
      - `city` string
      - `state` string
      - `street` string
      - `country` string
      - `county` string
      - `landmark` string
      - `geo_cordinates` number[]: [latitude, longitude]
      - `label` string
      - `first_name` string
      - `last_name` string
      - `email` string
      - `phone_number` string
    - `vendor_bank_details` object, nullable
      - `account_name` string
      - `account_number` string
      - `bank_name` string
      - `branch_identifier` string
      - `remarks` string
    - `accounts` object: If provided, `payment_term` is required within it.
      - `payment_term` string: Payment term UID.
      - `tax_group` string, nullable: Tax group UID.
    - `vendor_contacts` object[]
      - `name` string
      - `email` string
      - `phone` string
      - `work` string
    - `vendor_lead_time` number, nullable: In days.
    - `type` 'VENDOR' | 'SUB_CONTRACTOR': Optional — forced server-side to match the route you call (`/vendors` → VENDOR, `/subcontractors` → SUB_CONTRACTOR). Immutable after creation; sending it on Update is validated but not persisted.
    - `attachments` object[]
      - `file_name` string
      - `url` string
      - `file_size` integer
      - `visible_to_customer` boolean
    - `custom_fields` object[]
    - `vendor_catalog` object[]: Optional — create catalog entries for this vendor in the same call (same shape as the Create Vendor Catalog endpoint's items).

## Response `200`

200

- object
  - `type` 'SUCCESS'
  - `title` string
  - `message` string

## Changes

- **2026-11-03** `3c21bc232e16`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zuper/apis/zuper-pro-api/changes/subcontractors/:vendor_uid/put.md)

---

[API](https://skmtc.dev/zuper/apis/zuper-pro-api.md) - [All operations](https://skmtc.dev/zuper/apis/zuper-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zuper/apis/zuper-pro-api/revisions/3c21bc232e16?raw)
