Skip to main content
When a user signs up for accounting in your platform, create a corresponding business in Thred.
1

Prepare business information

Collect the required data from your user:Required fields:
  • external_id - Your stable internal user/business ID (used for idempotency)
  • legal_name - Business legal name
  • entity_type - Business entity type (validation depends on country)
  • email - Business contact email
Business entity type validation: GB, DE, NL, ES, and BE require specific business entity type codes. All other countries accept any value.See complete business entity type reference
Optional fields:
  • country - ISO 2-letter code such as NL, GB, or DE
  • base_currency - ISO currency code such as EUR, GBP, or USD
  • accounting_method - accrual or cash
  • company_number - Company registration number
  • vat_number - VAT/tax ID
  • coa_language - Chart of accounts language such as en or nl
  • metadata - Partner-specific JSON metadata
2

Call the Create Business API

POST to /v1/platform/businesses/ with a partner-scoped token:
POST https://sandbox.thredfi.com/v1/platform/businesses/
Authorization: Bearer {partner_token}
Example payload:
{
  "external_id": "customer-12345",
  "legal_name": "Acme Solutions B.V.",
  "entity_type": "bv",
  "email": "accounting@acme.example",
  "country": "NL",
  "base_currency": "EUR",
  "accounting_method": "accrual",
  "vat_number": "NL123456789B01",
  "company_number": "12345678",
  "coa_language": "en"
}
See Create Business API endpoint
3

Store the business_id

Save the returned business_id in your database:
{
  "id": "964f4325-3efb-400d-a1bd-8b1f29e828cf",
  "external_id": "customer-12345",
  "legal_name": "Acme Solutions B.V.",
  "entity_type": "bv",
  "country": "NL",
  "base_currency": "EUR",
  "is_active": true
}
Map this to your user record:
user.thred_business_id = response["id"]
user.save()
4

Get business-scoped token

Exchange your partner token for a business-scoped token:
POST https://sandbox.thredfi.com/v1/platform/{business_id}/oauth2/token/
Authorization: Bearer {partner_token}
Store the returned token for API calls and frontend SDK.See Authentication guide

Idempotency

Use external_id to prevent duplicate businesses.If you retry with the same external_id, Thred returns the existing business instead of creating a new one. This is safe for network failures and retries.

What Happens After Creation

Thred automatically:
  1. Sets up chart of accounts (based on business entity type and country)
  2. Initializes accounting periods
  3. Creates default tax configurations
  4. Prepares the accounting UI for embedding
Your user can now access the embedded accounting interface.
Business created. Now set up authentication to secure API access.