{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/lightspeed/main/json-schema/lightspeed-customer-base-schema.json",
  "title": "Customer Base",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/lightspeed-customers-api-openapi.yml#/components/schemas/CustomerBase",
  "properties": {
    "company_name": {
      "description": "Company name.",
      "type": [
        "string",
        "null"
      ]
    },
    "custom_field_1": {
      "description": "Custom field 1. Can be used to store random data.",
      "type": [
        "string",
        "null"
      ]
    },
    "custom_field_2": {
      "description": "Custom field 2.",
      "type": [
        "string",
        "null"
      ]
    },
    "custom_field_3": {
      "description": "Custom field 3.",
      "type": [
        "string",
        "null"
      ]
    },
    "custom_field_4": {
      "description": "Custom field 4.",
      "type": [
        "string",
        "null"
      ]
    },
    "customer_code": {
      "description": "Customer code used for claiming loyalty.",
      "type": "string"
    },
    "customer_group_id": {
      "description": "Customer group ID.",
      "type": "string"
    },
    "date_of_birth": {
      "description": "Birthday.",
      "type": "string"
    },
    "do_not_email": {
      "default": false,
      "description": "Indicates whether the customer opted out of email communications.",
      "type": "boolean"
    },
    "email": {
      "description": "Customer's email address.",
      "type": [
        "string",
        "null"
      ]
    },
    "enable_loyalty": {
      "type": "boolean"
    },
    "enable_promotional_sms": {
      "default": false,
      "description": "Indicates whether the customer opted in to SMS communications.",
      "type": "boolean"
    },
    "fax": {
      "description": "Fax no.",
      "type": [
        "string",
        "null"
      ]
    },
    "first_name": {
      "description": "Customer's first name.",
      "type": [
        "string",
        "null"
      ]
    },
    "gender": {
      "description": "Customer's gender. Can be `M`, `F` or null.",
      "type": [
        "string",
        "null"
      ]
    },
    "last_name": {
      "description": "Customer 's last name.",
      "type": [
        "string",
        "null"
      ]
    },
    "mobile": {
      "description": "Mobile phone no.",
      "type": [
        "string",
        "null"
      ]
    },
    "note": {
      "description": "Customer note.",
      "type": [
        "string",
        "null"
      ]
    },
    "on_account_limit": {
      "description": "Customer's OnAccount Limit.",
      "format": "double",
      "type": [
        "number",
        "null"
      ]
    },
    "phone": {
      "description": "Phone no.",
      "type": [
        "string",
        "null"
      ]
    },
    "physical_address_1": {
      "description": "Physical address, line 1.",
      "type": [
        "string",
        "null"
      ]
    },
    "physical_address_2": {
      "description": "Physical address, line 2.",
      "type": [
        "string",
        "null"
      ]
    },
    "physical_city": {
      "description": "Physical address, city.",
      "type": [
        "string",
        "null"
      ]
    },
    "physical_country_id": {
      "description": "Physical address, country code.",
      "type": [
        "string",
        "null"
      ]
    },
    "physical_postcode": {
      "description": "Physical address, post code.",
      "type": [
        "string",
        "null"
      ]
    },
    "physical_state": {
      "description": "Physical address, state.",
      "type": [
        "string",
        "null"
      ]
    },
    "physical_suburb": {
      "description": "Physical address, suburb.",
      "type": [
        "string",
        "null"
      ]
    },
    "postal_address_1": {
      "description": "Postal address, line 1.",
      "type": [
        "string",
        "null"
      ]
    },
    "postal_address_2": {
      "description": "Postal address, line 2.",
      "type": [
        "string",
        "null"
      ]
    },
    "postal_city": {
      "description": "Postal address, city.",
      "type": [
        "string",
        "null"
      ]
    },
    "postal_country_id": {
      "description": "Postal address, country code.",
      "type": [
        "string",
        "null"
      ]
    },
    "postal_postcode": {
      "description": "Postal address, post code.",
      "type": [
        "string",
        "null"
      ]
    },
    "postal_state": {
      "description": "Postal address, state.",
      "type": [
        "string",
        "null"
      ]
    },
    "postal_suburb": {
      "description": "Postal address, suburb.",
      "type": [
        "string",
        "null"
      ]
    },
    "tax_id": {
      "description": "Customer's tax ID.",
      "type": [
        "string",
        "null"
      ]
    },
    "twitter": {
      "description": "Twitter handle.",
      "type": [
        "string",
        "null"
      ]
    },
    "website": {
      "description": "Website URL.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "first_name",
    "last_name"
  ],
  "type": "object"
}