Skip to main content
POST
/
v1
/
platform
/
businesses
/
{business_id}
/
customers
Create a customer
curl --request POST \
  --url https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/customers/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "external_id": "<string>",
  "reference_number": "<string>",
  "individual_name": "<string>",
  "company_name": "<string>",
  "email": "[email protected]",
  "mobile_phone": "<string>",
  "office_phone": "<string>",
  "address_line1": "<string>",
  "address_line2": "<string>",
  "city": "<string>",
  "state_county": "<string>",
  "postal_code": "<string>",
  "country": "<string>",
  "vat_number": "<string>",
  "tax_exempt": false,
  "status": "active",
  "transaction_tags": [
    "<unknown>"
  ],
  "notes": "<string>",
  "metadata": "<unknown>",
  "payment_terms_days": 123,
  "credit_limit_cents": 1,
  "document": {
    "file": "<string>",
    "document_type": "customer_document",
    "upload_source": "<string>",
    "metadata": "<unknown>",
    "tags": "<unknown>"
  }
}
'
{
  "type": "<string>",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "external_id": "<string>",
  "reference_number": "<string>",
  "individual_name": "<string>",
  "company_name": "<string>",
  "display_name": "<string>",
  "email": "[email protected]",
  "mobile_phone": "<string>",
  "office_phone": "<string>",
  "address_line1": "<string>",
  "address_line2": "<string>",
  "city": "<string>",
  "state_county": "<string>",
  "postal_code": "<string>",
  "country": "<string>",
  "full_address": "<string>",
  "address_string": "<string>",
  "vat_number": "<string>",
  "tax_exempt": true,
  "status": "<string>",
  "is_active": true,
  "is_archived": true,
  "transaction_tags": [
    "<unknown>"
  ],
  "notes": "<string>",
  "metadata": "<unknown>",
  "payment_terms_days": 123,
  "credit_limit": 123,
  "credit_limit_cents": 123,
  "outstanding_balance": 123,
  "documents": [
    {
      "url": "<string>",
      "expires_in": 123,
      "document_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "file_name": "<string>",
      "file_size": 123,
      "mime_type": "<string>"
    }
  ],
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "archived_at": "2023-11-07T05:31:56Z"
}

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.

Path Parameters

business_id
string<uuid>
required

Business UUID provided by Thred (unique identifier for the business)

Body

Serializer for creating new customers

external_id
string

Your unique identifier for this customer (used for idempotency)

reference_number
string

Customer reference number for invoices and statements

individual_name
string

Individual/contact person 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 the customer

mobile_phone
string

Mobile phone number

office_phone
string

Office/landline phone number

address_line1
string

Street address line 1

address_line2
string

Street address line 2 (building, suite, etc.)

city
string

City or town

state_county
string

State, county, or region

postal_code
string

Postal/ZIP code

country
string

ISO 3166-1 alpha-2 country code

vat_number
string

VAT registration number (for UK: GB followed by 9 digits)

tax_exempt
boolean
default:false

Whether customer is exempt from tax/VAT

status
enum<string>
  • active - Active
  • archived - Archived
  • suspended - Suspended
Available options:
active,
archived,
suspended
transaction_tags
any[]

Array of tags for categorization and filtering

notes
string

Internal notes about the customer

metadata
any

Custom JSON metadata for partner-specific data

payment_terms_days
integer

Number of days for payment terms (e.g., 30 for Net 30)

credit_limit_cents
integer

Maximum credit limit in cents (e.g., 100000 for £1,000)

Required range: x >= 0
document
object

Optional document upload

Response

Main customer serializer for customer API endpoints Returns customer information with comprehensive details Used for both list and detail responses

type
string
required

Type identifier (always 'CustomerData')

id
string<uuid>
required

Unique identifier for the customer

external_id
string
required

Your unique identifier for this customer (used for idempotency)

reference_number
string
required

Customer reference number for invoices and statements

individual_name
string
required

Individual/contact person name (required if company_name not provided)

company_name
string
required

Registered company name (required if individual_name not provided)

display_name
string
required

Display name for the customer (auto-generated from company_name or individual_name)

email
string<email>
required

Primary email address for the customer

mobile_phone
string
required

Mobile phone number

office_phone
string
required

Office/landline phone number

address_line1
string
required

Street address line 1

address_line2
string
required

Street address line 2 (building, suite, etc.)

city
string
required

City or town

state_county
string
required

State, county, or region

postal_code
string
required

Postal/ZIP code

country
string
required

ISO 3166-1 alpha-2 country code

full_address
string
required

Complete formatted address with all fields

address_string
string
required

Single-line formatted address

vat_number
string
required

VAT registration number (for UK: GB followed by 9 digits)

tax_exempt
boolean
required

Whether customer is exempt from tax/VAT

status
string
required

Customer status (ACTIVE or ARCHIVED)

is_active
boolean
required

Whether the customer is active (read-only)

is_archived
boolean
required

Whether the customer is archived (read-only)

transaction_tags
any[]
required

Array of tags for categorization and filtering

notes
string
required

Internal notes about the customer

metadata
any
required

Custom JSON metadata for partner-specific data

payment_terms_days
integer
required

Number of days for payment terms (e.g., 30 for Net 30)

credit_limit
integer
required

Maximum credit limit in cents (e.g., 100000 for £1,000)

credit_limit_cents
integer
required

Maximum credit limit in cents (e.g., 100000 for £1,000)

outstanding_balance
integer
required

Current outstanding balance in cents (read-only, computed)

documents
object[]
required

All documents linked to this customer with presigned URLs (retrieve only, not in list)

created_at
string<date-time>
required

Date and time when the customer was created

updated_at
string<date-time>
required

Date and time when the customer was last updated

archived_at
string<date-time>
required

Date and time when the customer was archived (null if active)