---
title: "Create vendor"
method: POST
path: "/v1/platform/businesses/{business_id}/vendors/"
tags: ["Vendors"]
---

# Create vendor

`POST /v1/platform/businesses/{business_id}/vendors/`

## Request

- Base URL: `https://docs.thredfi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.thredfi.com/v1/platform/businesses/{business_id}/vendors/`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - HTTP basic
  - HTTP bearer
  - HTTP bearer

Create a new vendor within a business.

## Path parameters

- `business_id` string, required

## Request body

- CreateVendorRequest: Input serializer for creating a vendor
  - `external_id` string: Your unique identifier for this vendor (used for idempotency)
  - `individual_name` string: Vendor individual name (required if company_name not provided)
  - `company_name` string: Registered company name (required if individual_name not provided)
  - `email` string, email: Primary email address for vendor communications
  - `mobile_phone` string: Mobile phone number (E.164 format recommended, e.g., +44 7700 900123)
  - `office_phone` string: Office phone number (E.164 format recommended, e.g., +44 20 7946 0958)
  - `address_string` string: Vendor mailing address (single string)
  - `memo` string: Internal notes or description for this vendor
  - `transaction_tags` unknown[]: List of tags for categorization
    - unknown
  - `country` string: Two-letter country code (ISO 3166-1 alpha-2, e.g., NL, DE, US)
  - `vat_number` string: VAT/Tax registration number (e.g., NL123456789B01 for Netherlands)
  - `document` VendorDocumentUploadRequest: Vendor specific document upload payload.
    - `file` string, binary
    - `document_type` string
    - `upload_source` string
    - `metadata` unknown
    - `tags` unknown

## Response `201`

- Vendor: Serializer for vendor objects returned by the vendors list endpoint
  - `type` string, required: Resource type (always 'VendorData')
  - `id` string, uuid, required: Unique vendor identifier
  - `external_id` string: Your unique identifier for this vendor (used for idempotency)
  - `individual_name` string: Vendor individual name (for sole traders/freelancers)
  - `company_name` string: Registered company name (for limited companies)
  - `email` string, email: Primary email address for vendor communications
  - `mobile_phone` string, required: Mobile phone number (E.164 format, e.g., +44 7700 900123)
  - `office_phone` string, required: Office phone number (E.164 format, e.g., +44 20 7946 0958)
  - `address_string` string, required: Full formatted address (read-only, auto-generated)
  - `memo` string, required: Internal notes or description for this vendor
  - `status` string, required: Vendor status (ACTIVE, INACTIVE, ARCHIVED, BLOCKED)
  - `transaction_tags` unknown[], required: List of tags for categorization
    - unknown
  - `documents` DocumentFileUrl[], required: All documents linked to this vendor with presigned URLs
    - `url` string, uri, required: Presigned URL for document download
    - `expires_in` integer, required: Seconds until URL expires
    - `document_id` string, uuid, required: Document UUID
    - `file_name` string, required: Original document filename
    - `file_size` integer, required: File size in bytes
    - `mime_type` string, required: MIME type of the document

## Other responses

- `400`: Validation errors in request data
- `401`: Authentication required - missing or invalid API key
- `403`: Permission denied - insufficient privileges
- `404`: Resource not found
- `409`: Conflict - resource already exists or invalid state transition
- `422`: Unprocessable entity - business logic validation failed
- `500`: Internal server error

---

[API](https://skmtc.dev/thredfi/apis/thredfi-accounting-platform-api.md) - [All operations](https://skmtc.dev/thredfi/apis/thredfi-accounting-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/thredfi/apis/thredfi-accounting-platform-api/revisions/0c1918254db3?raw)
