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

# Get Customer

> Retrieve a single customer by their unique identifier

<Note>
  Returns the full customer object including profile, address, and integration details.
</Note>

## Path Parameters

<ParamField path="id" type="string" required>
  The unique identifier (SSO ID) of the customer to retrieve.

  **Example:** `1234-5678-9012-3456`
</ParamField>

### Response

<ResponseField name="sso_id" type="string">
  Unique identifier for the customer.
</ResponseField>

<ResponseField name="email" type="string">
  Customer's email address.
</ResponseField>

<ResponseField name="firstName" type="string">
  Customer's first name.
</ResponseField>

<ResponseField name="lastName" type="string">
  Customer's last name.
</ResponseField>

<ResponseField name="phone" type="string">
  Customer's phone number.
</ResponseField>

<ResponseField name="stripe_customer_id" type="string">
  Associated Stripe customer ID for payment processing.
</ResponseField>

<ResponseField name="activationDate" type="string">
  ISO 8601 date when the customer account was activated.
</ResponseField>

<ResponseField name="timestamp" type="string">
  ISO 8601 timestamp of the last update to the customer record.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --location --request GET 'https://api.stateset.com/v1/customers/1234-5678-9012-3456' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer <token>'
  ```

  ```graphql GraphQL theme={null}
  query getCustomer($sso_id: uuid!) {
    customers: customers_by_pk(sso_id: $sso_id) {
      sso_id
      activationDate
      email
      firstName
      lastName
      phone
      stripe_customer_id
      timestamp
    }
  }
  ```

  ```javascript Node.js theme={null}
  const customer = await stateset.customers.retrieve(
    '1234-5678-9012-3456'
  );
  ```

  ```python Python theme={null}
  customer = stateset.customers.retrieve(
    '1234-5678-9012-3456'
  )
  ```

  ```ruby Ruby theme={null}
  customer = Stateset::Customers.retrieve(
    '1234-5678-9012-3456'
  )
  ```

  ```go Go theme={null}
  customer, err := stateset.Customers.Retrieve(
    "1234-5678-9012-3456",
  )
  ```

  ```php PHP theme={null}
  $customer = $stateset->customers->retrieve(
    '1234-5678-9012-3456'
  );
  ```

  ```java Java theme={null}
  Customer customer = stateset.customers().retrieve(
    "1234-5678-9012-3456"
  );
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "customer": {
      "sso_id": "1234-5678-9012-3456",
      "email": "jane.doe@example.com",
      "firstName": "Jane",
      "lastName": "Doe",
      "phone": "+1-555-123-4567",
      "stripe_customer_id": "cus_1234567890",
      "activationDate": "2024-01-15T00:00:00.000Z",
      "timestamp": "2024-06-01T12:30:00.000Z"
    }
  }
  ```

  ```json Error Response (404 Not Found) theme={null}
  {
    "error": {
      "code": "RESOURCE_NOT_FOUND",
      "message": "Customer not found",
      "details": {
        "resource": "customer",
        "id": "1234-5678-9012-3456"
      },
      "request_id": "req_abc123def456"
    }
  }
  ```

  ```json Error Response (401 Unauthorized) theme={null}
  {
    "error": {
      "code": "INVALID_API_KEY",
      "message": "The API key provided is invalid or has been revoked",
      "request_id": "req_abc123def456"
    }
  }
  ```
</ResponseExample>
