Skip to main content
POST
/
v1
/
platform
/
businesses
Create business (idempotent)
curl --request POST \
  --url https://sandbox.thredfi.com/v1/platform/businesses/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "external_id": "<string>",
  "legal_name": "<string>",
  "entity_type": "<string>",
  "email": "[email protected]",
  "phone_number": "<string>",
  "tin": "<string>",
  "vat_number": "<string>",
  "company_number": "<string>",
  "country": "GB",
  "province": "<string>",
  "eu_nace_industry_code": "<string>",
  "base_currency": "GBP",
  "accounting_method": "accrual",
  "fiscal_year_end": "2023-12-25",
  "metadata": "<unknown>"
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "external_id": "customer-123",
  "legal_name": "Acme Coffee Limited",
  "name": "Acme Coffee Ltd",
  "entity_type": "limited",
  "phone_number": "+44 20 1234 5678",
  "tin": "1234567890",
  "vat_number": "GB123456789",
  "company_number": "12345678",
  "country": "GB",
  "province": "Greater London",
  "eu_nace_industry_code": "56.30",
  "email": "[email protected]",
  "base_currency": "GBP",
  "accounting_method": "accrual",
  "fiscal_year_end": "2024-03-31",
  "activation_at": "2024-01-15T10:30:00Z",
  "is_active": true,
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-03-20T14:22:00Z",
  "metadata": {
    "erp_id": "ERP-12345",
    "industry": "hospitality"
  }
}

Authorizations

Authorization
string
header
required

Partner-level JWT token (unscoped). Token payload includes partner_id. Business access is validated via partner ownership. Format: Bearer <your-jwt-token>

Use this for: Multi-business operations where the business_id is specified in the URL and partner has access to multiple businesses.

Body

Serializer for creating new businesses

external_id
string
required

Your unique identifier for this business (used for idempotency)

Required string length: 1 - 255

Legal registered name of the business

Required string length: 1 - 255
entity_type
string
required

Business entity type (e.g., 'limited', 'gmbh', 'bv'). Validated for GB, DE, NL, ES, BE. Any string accepted for other countries.

Minimum string length: 1
email
string<email>
required

Primary email address for the business

Minimum string length: 1
phone_number
string

Business phone number

tin
string

Tax identification number (other than VAT)

vat_number
string

EU VAT registration number

Maximum string length: 20
company_number
string

Company registration number (e.g., Companies House number for UK)

Maximum string length: 20
country
string
default:GB

ISO 3166-1 alpha-2 country code (e.g., GB, DE, NL, ES, MY, SG)

Required string length: 1 - 2
province
string

Province or state within the country

Maximum string length: 100
eu_nace_industry_code
string

European NACE industry classification code

Maximum string length: 10
base_currency
string
default:GBP

Base currency for accounting (ISO 4217 code: EUR, GBP, USD, SEK, NOK, DKK, ISK, MYR, SGD)

Required string length: 1 - 3
accounting_method
enum<string>
default:accrual

Accounting method: 'cash' or 'accrual' (default: accrual)

  • cash - Cash Basis
  • accrual - Accrual Basis
Available options:
cash,
accrual
fiscal_year_end
string<date>

Fiscal year end date (format: YYYY-MM-DD, e.g., '2024-03-31' for March 31st year-end)

metadata
any

Custom JSON metadata for partner-specific data

Response

Full business serializer for list and detail views

id
string<uuid>
required

Unique identifier for the business

Legal registered name of the business

Maximum string length: 255
country
string
required

ISO 3166-1 alpha-2 country code (e.g., GB, DE, NL, MY, SG)

Maximum string length: 2
email
string<email>
required

Primary email address for the business

base_currency
string
required

Base currency for accounting (ISO 4217 code)

Maximum string length: 3
accounting_method
string
required

Accounting method: 'cash' or 'accrual'

Maximum string length: 20
fiscal_year_end
string<date>
required

Fiscal year end date

activation_at
string<date-time>
required

Date and time when the business was activated

is_active
boolean
required

Whether the business is active (false if archived)

created_at
string<date-time>
required

Date and time when the business was created

updated_at
string<date-time>
required

Date and time when the business was last updated

external_id
string

Your unique identifier for this business

name
string

Display name for the business (defaults to legal_name)

Maximum string length: 255
entity_type
string

Business entity type (e.g., 'limited', 'gmbh', 'bv')

phone_number
string

Business phone number

tin
string

Tax identification number (other than VAT)

vat_number
string

EU VAT registration number

company_number
string

Company registration number (e.g., Companies House number for UK)

province
string

Province or state within the country

Maximum string length: 100
eu_nace_industry_code
string

European NACE industry classification code

Maximum string length: 10
metadata
any

Custom JSON metadata for partner-specific data