Skip to content
Village of Theoria

Register a vendor

POST
/vendors
curl --request POST \
--url https://theoria.hypertheory-labs.com/clerk-records/purchasing/vendors \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "taxId": "example", "contactEmail": "hello@example.com", "contactPhone": "example" }'

Registers a vendor. A newly registered vendor has no standing record and is therefore not approved. Standing is established separately.

Media type application/json
object
name
required
string
>= 1 characters
taxId
required
string
contactEmail
string | null format: email
contactPhone
string | null
Example generated
{
"name": "example",
"taxId": "example",
"contactEmail": "hello@example.com",
"contactPhone": "example"
}

Vendor registered.

Media type application/json
object
id
required
string format: uuid
name
required
string
taxIdLast4
required
string
>= 4 characters <= 4 characters
registeredOn
required
string format: date
contactEmail
string | null format: email
contactPhone
string | null
Example generated
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"name": "example",
"taxIdLast4": "example",
"registeredOn": "2026-04-15",
"contactEmail": "hello@example.com",
"contactPhone": "example"
}
Location
string format: uri-reference

Problem details.

Media type application/problem+json

RFC 9457 problem details.

object
type
string format: uri
title
string
status
integer
detail
string
instance
string
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

A vendor with this tax identifier is already registered.

Media type application/problem+json

RFC 9457 problem details.

object
type
string format: uri
title
string
status
integer
detail
string
instance
string
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}
Training environment Theoria, Ohio is a fictional town. Course material for Hypertheory Training.