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

# Get Customer

> Retrieve a specific customer by ID, including their legal identifiers

## Authorization

<ParamField header="Authorization" type="string" required>
  Bearer token. Format: `Bearer qwoty_your_token`
</ParamField>

## Path Parameters

<ParamField path="id" type="string" required>
  UUID of the customer
</ParamField>

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl https://qwoty.app/api/customers/550e8400-e29b-41d4-a716-446655440000 \
    -H "Authorization: Bearer qwoty_your_token"
  ```

  ```javascript JavaScript theme={null}
  const customerId = '550e8400-e29b-41d4-a716-446655440000'

  const response = await fetch(`https://qwoty.app/api/customers/${customerId}`, {
    headers: { Authorization: 'Bearer qwoty_your_token' },
  })
  const data = await response.json()
  ```

  ```python Python theme={null}
  import requests

  customer_id = '550e8400-e29b-41d4-a716-446655440000'

  response = requests.get(
      f'https://qwoty.app/api/customers/{customer_id}',
      headers={'Authorization': 'Bearer qwoty_your_token'},
  )
  data = response.json()
  ```
</CodeGroup>

## Response

<ResponseField name="success" type="boolean">
  `true` if the request succeeded
</ResponseField>

<ResponseField name="data" type="object">
  The customer object

  <Expandable title="Customer Object">
    <ResponseField name="id" type="string">UUID</ResponseField>
    <ResponseField name="workspace_id" type="string">Workspace UUID</ResponseField>
    <ResponseField name="name" type="string">Customer name</ResponseField>
    <ResponseField name="type" type="string">`company` or `individual`</ResponseField>
    <ResponseField name="segment_id" type="string | null">Segment UUID</ResponseField>
    <ResponseField name="logo" type="string | null">Logo URL</ResponseField>

    <ResponseField name="tax_ids" type="array">
      Legal identifiers

      <Expandable title="Tax ID Object">
        <ResponseField name="tax" type="string">Legal identifier code (e.g., `"VAT"`, `"SIREN"`)</ResponseField>
        <ResponseField name="tax_value" type="string">Legal identifier value (e.g., `"FR12345678901"`)</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="id_crm" type="string | null">External CRM ID</ResponseField>
    <ResponseField name="id_erp" type="string | null">External ERP ID</ResponseField>
    <ResponseField name="id_accounting" type="string | null">External accounting ID</ResponseField>
    <ResponseField name="contact_ids" type="string[]">Array of contact UUIDs linked to this customer. Use `GET /api/contacts/{id}` to fetch each contact.</ResponseField>
    <ResponseField name="address_ids" type="string[]">Array of address UUIDs linked to this customer. Use `GET /api/addresses/{id}` to fetch each address.</ResponseField>
    <ResponseField name="created_at" type="string">ISO 8601 timestamp</ResponseField>
    <ResponseField name="updated_at" type="string">ISO 8601 timestamp</ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Success Response theme={null}
  {
    "success": true,
    "data": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "workspace_id": "706eb564-6c4a-4e18-841c-bdd79be6bca7",
      "name": "Acme Corporation",
      "type": "company",
      "segment_id": null,
      "logo": null,
      "tax_ids": [
        { "tax": "VAT", "tax_value": "FR12345678901" },
        { "tax": "SIREN", "tax_value": "123456789" }
      ],
      "id_crm": "crm_001",
      "id_erp": null,
      "id_accounting": null,
      "contact_ids": [
        "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "b2c3d4e5-f6a7-8901-bcde-f12345678901"
      ],
      "address_ids": ["c3d4e5f6-a7b8-9012-cdef-123456789012"],
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-01-15T10:30:00Z"
    }
  }
  ```

  ```json Not Found theme={null}
  {
    "success": false,
    "error": "Customer not found"
  }
  ```
</ResponseExample>
