> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sphinxhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Customer Model

> A Customer represents an individual or a company that is the subject of a screening case.

The Customer model is the starting point for any investigation. It holds the core identity information for the individual or company you want to screen.

You can create a Customer object independently before creating a case, or create it inline when you create a new case. Once a customer is created, you can reuse their `id` to run multiple cases over time, which is useful for ongoing monitoring or periodic reviews.

**Updating customers:** Use `PATCH /api/customers/update/` to partially update an existing customer by `external_id`. Only the fields you include are changed — omitted fields stay as they are. The `full_name` field is not required on this endpoint. POST is also accepted for backward compatibility.

**Upsert via case creation:** When creating a customer inline with a case, if a customer with the same `external_id` already exists in your organization, the existing customer is updated. All of `full_name`, `customer_type`, and `input_details` are replaced — omitted fields are set to null. If you only want to reuse the customer without changing it, pass `customer_id` instead.

<ResponseField name="id" type="integer" required>
  A unique identifier for the customer.
</ResponseField>

<ResponseField name="external_id" type="string">
  An optional identifier from your system to link customers.
</ResponseField>

<ResponseField name="full_name" type="string" required>
  The full legal name of the individual or company.
</ResponseField>

<ResponseField name="customer_type" type="string">
  The type of customer, either `INDIVIDUAL` or `COMPANY`.
</ResponseField>

<ResponseField name="input_details" type="object">
  A flexible JSON object for additional customer details like date of birth, address, or registration number.
</ResponseField>

<ResponseField name="sync_platforms" type="array">
  External platform references for outbound sync. When configured, customer updates are automatically synced to the external platform (e.g. Salesforce). List of objects, e.g. `[{"domain": "bofi--dev.sandbox.my.salesforce.com", "id": "500WA..."}]`.
</ResponseField>

<ResponseField name="delete_after" type="integer">
  Number of days until the customer is automatically deleted. Use `0` for immediate deletion, or `-1` for indefinite retention (never delete). Max `365`. Defaults to `-1` (indefinite).
</ResponseField>
