---
title: "Create or update multiple accounting vendors"
method: POST
path: "/vendors/bulk"
tags: ["vendors"]
deprecated: true
---

# Create or update multiple accounting vendors

`POST /vendors/bulk`

> **Deprecated.**

Allows for the creation or updating of multiple vendors in a single request. Maximum 100 vendors per request.

**Deprecation notice:** This synchronous endpoint is deprecated for high-volume use. Use POST /vendors/bulk-async instead — it avoids request timeouts on large batches and provides progress tracking via the batch polling API. This endpoint remains fully supported for existing integrations.

## Headers

- `Authorization` string, required
- `X-Api-Key` string, required
- `X-API-Version` string
- `Idempotency-Key` string

## Request body

- object
  - `ottimate_company_id` integer, required
  - `vendors` VendorsBulkPostRequestBodyContentApplicationJsonSchemaVendorsItems[], required
    - `erp_vendor_name` string, required — Vendor name
    - `erp_vendor_id` string, required — Unique vendor ID in ERP system
    - `email` string — (Optional) Vendor email
    - `phone` string — (Optional) Vendor phone number
    - `net_terms` string — (Optional) Payment terms
    - `payment_method` 'credit_card' | 'ach' | 'check' | 'wire_transfer' | 'unknown' — (Optional) Vendor payment method
    - `address_line_1` string — (Optional) Vendor address line 1
    - `address_line_2` string — (Optional) Vendor address line 2
    - `city` string — (Optional) Vendor city
    - `state` string — (Optional) Vendor state
    - `zipcode` string — (Optional) Vendor zipcode

## Response `201`

Successfully created or updated

- VendorsPostVendorsBulkResponse201
  - `version` string
  - `success_count` integer
  - `created_count` integer
  - `updated_count` integer
  - `error_count` integer
  - `created` VendorsBulkPostResponsesContentApplicationJsonSchemaCreatedItems[]
    - `id` integer
    - `ottimate_company_id` integer
    - `erp_vendor_id` string, nullable
    - `erp_vendor_name` string, nullable
    - `email` string, nullable
    - `phone` string, nullable
    - `net_terms` string, nullable
    - `payment_method` 'credit_card' | 'ach' | 'check' | 'wire_transfer' | 'unknown'
    - `address_line_1` string, nullable
    - `address_line_2` string, nullable
    - `city` string, nullable
    - `state` string, nullable
    - `zipcode` string, nullable
  - `updated` VendorsBulkPostResponsesContentApplicationJsonSchemaUpdatedItems[]
    - `id` integer
    - `ottimate_company_id` integer
    - `erp_vendor_id` string, nullable
    - `erp_vendor_name` string, nullable
    - `email` string, nullable
    - `phone` string, nullable
    - `net_terms` string, nullable
    - `payment_method` 'credit_card' | 'ach' | 'check' | 'wire_transfer' | 'unknown'
    - `address_line_1` string, nullable
    - `address_line_2` string, nullable
    - `city` string, nullable
    - `state` string, nullable
    - `zipcode` string, nullable
  - `errors` VendorsBulkPostResponsesContentApplicationJsonSchemaErrorsItems[]
    - `index` integer
    - `erp_vendor_id` string, nullable
    - `error` string
    - `type` string

## Other responses

- `400` — Bad request - Invalid parameters or request format
- `403` — Forbidden - Access denied or insufficient permissions

## Changes

> 11 revisions in range; 7 could not be searched.

- **2026-08-17** `c231509a03cf` — 1 breaking, 2 info
  - the `message` response's property type/format changed from `string`/`` to ``/`` for status `400`
  - the response property `code` became required for the status `400`
  - the response property `message` became required for the status `400`
- **2026-08-13** `1f089f3e34d9` — 3 breaking
  - the response property `code` became optional for the status `400`
  - the response property `message` became optional for the status `400`
  - the `message` response's property type/format changed from ``/`` to `string`/`` for status `400`

[Change history](https://skmtc.dev/ottimate/apis/api-reference/changes/vendors/bulk/post.md)

---

[API](https://skmtc.dev/ottimate/apis/api-reference.md) · [All operations](https://skmtc.dev/ottimate/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ottimate/api-reference/revisions/ba91ff4c6969/schema)
