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

# Retrieve customer detail

> Retrieves the full `CustomerDetail` object, including `business`, `segments`, `addresses`, `banking`, `loyalty`, `notification_preferences`, and the assigned `customer_group_id`.



## OpenAPI

````yaml https://openapi.commercengine.io/ce-pos.json get /pos/customers/{id}
openapi: 3.1.0
info:
  title: CE POS APIs
  description: >-
    The consolidated Point of Sale surface. Every operation is served under the
    storefront base URL; operations tagged POSAdmin are proxied to the admin
    service by the POS backend.
  version: '1.0'
servers:
  - url: https://staging.api.commercengine.io/api/v1/{store_id}/storefront
    description: Staging Server
    variables:
      store_id:
        description: Store ID
        default: store_id
    x-speakeasy-server-id: staging
  - url: https://prod.api.commercengine.io/api/v1/{store_id}/storefront
    description: Prod Server
    variables:
      store_id:
        description: Store ID
        default: store_id
    x-speakeasy-server-id: prod
security:
  - Authorization: []
tags:
  - name: POS
    description: Operations backed by the storefront service
  - name: POSAdmin
    description: Operations proxied to the admin service
paths:
  /pos/customers/{id}:
    get:
      tags:
        - POSAdmin
      summary: Retrieve customer detail
      description: >-
        Retrieves the full `CustomerDetail` object, including `business`,
        `segments`, `addresses`, `banking`, `loyalty`,
        `notification_preferences`, and the assigned `customer_group_id`.
      operationId: pos-get-customer-detail
      parameters:
        - name: id
          in: path
          description: Customer Id
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  success:
                    type: boolean
                  content:
                    properties:
                      customer:
                        $ref: '#/components/schemas/CustomerDetail'
                    type: object
      security:
        - Authorization: []
components:
  schemas:
    CustomerDetail:
      title: CustomerDetail
      allOf:
        - $ref: '#/components/schemas/Customer'
        - type: object
          properties:
            loyalty:
              description: '`null` when the customer is not enrolled in a loyalty program.'
              oneOf:
                - type: 'null'
                - $ref: '#/components/schemas/CustomerLoyalty'
            notification_preferences:
              $ref: '#/components/schemas/NotificationPreferences'
      x-tags:
        - Customers
    Customer:
      title: Customer
      allOf:
        - $ref: '#/components/schemas/CustomerInfo'
        - type: object
          properties:
            business:
              $ref: '#/components/schemas/BusinessInfo'
            segments:
              type: array
              items:
                $ref: '#/components/schemas/CustomerSegment'
            addresses:
              type: array
              items:
                $ref: '#/components/schemas/AdminCustomerAddress'
            banking:
              description: >-
                Bank accounts saved against the customer, used for refunds and
                payouts.
              type: array
              items:
                $ref: '#/components/schemas/CustomerBankAccount'
      x-tags:
        - Customers
    CustomerLoyalty:
      title: CustomerLoyalty
      type: object
      properties:
        membership_number:
          type: string
        points_earned:
          description: total points earned within the current loyalty program.
          type: integer
        points_redeemed:
          description: total points redeemed within the current loyalty program.
          type: integer
        points_balance:
          description: total points available.
          type: integer
        total_spent:
          description: >-
            The total amount a customer has spent within the current loyalty
            program, excluding taxes, promotional discounts, and redeemed
            loyalty points. This value is used to determine tier eligibility and
            earning points calculation.
          type: integer
        total_orders:
          description: >-
            The total number of completed orders counted in the current loyalty
            program.
          type: integer
        lifetime_spent:
          description: ' The total amount a customer has spent across all time, regardless of loyalty program participation. This includes all completed orders and excludes taxes, promotional discounts, and redeemed points.'
          type: integer
        lifetime_orders:
          description: >-
            The total number of completed orders across all time, regardless of
            loyalty program.
          type: integer
        date_of_join:
          description: ' The date and time when the customer first enrolled in the loyalty program.'
          type: string
          format: date-time
        date_of_assign:
          description: >-
            The date and time when the customer's current loyalty tier or
            program instance was assigned. This may change when tiers are
            upgraded, downgraded, or reassigned.
          type:
            - string
            - 'null'
          format: date-time
        date_of_reset:
          description: ' The date and time when the customer’s current loyalty program cycle will reset, at which points earned, points redeemed, balance points, total spent, total orders will be cleared.'
          type:
            - string
            - 'null'
          format: date-time
        current_tier:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
        next_tier:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            total_spent_threshold:
              type:
                - integer
                - 'null'
              minimum: 0
            total_orders_threshold:
              type:
                - integer
                - 'null'
              minimum: 0
        name:
          type: string
        renewal_type:
          type: string
          enum:
            - yearly
            - never
            - custom
        tier_upgrade_criteria:
          type: string
          enum:
            - total-spent
            - total-orders
            - custom
      x-tags:
        - Customers
    NotificationPreferences:
      title: NotificationPreferences
      description: 'Set channel preferences for each type of '
      type: object
      properties:
        transactional:
          $ref: '#/components/schemas/NotificationChannelPreferences'
          description: >-
            These notifications are typically critical for user engagement,
            providing updates, confirmations, or alerts related to their account
            activities.
        promotional:
          $ref: '#/components/schemas/NotificationChannelPreferences'
          description: >-
            These notifications aim to engage users with promotional content and
            enhance their overall experience with the platform.
        newsletter:
          $ref: '#/components/schemas/NotificationChannelPreferences'
          description: >
            These notifications are often sent periodically as part of a
            subscription service.
    CustomerInfo:
      title: CustomerInfo
      type: object
      properties:
        id:
          description: user id
          type: string
          readOnly: true
        first_name:
          type: string
        last_name:
          type:
            - string
            - 'null'
        full_name:
          type: string
          readOnly: true
        profile_image_url:
          type:
            - string
            - 'null'
          readOnly: true
        country_code:
          type: string
        phone:
          type: string
        email:
          type: string
        is_phone_verified:
          type: boolean
          readOnly: true
        is_email_verified:
          type: boolean
          readOnly: true
        is_whatsapp_verified:
          type: boolean
          readOnly: true
        status:
          $ref: '#/components/schemas/CustomerStatus'
        created_at:
          type: string
          format: date-time
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
        last_seen:
          description: Empty string when the customer has no recorded activity yet.
          type:
            - string
            - 'null'
          readOnly: true
        kyc_status:
          $ref: '#/components/schemas/KycStatus'
        is_verified:
          type: boolean
          readOnly: true
        customer_group_id:
          description: >-
            The Customer Group the customer belongs to. Drives group-specific
            pricing and promotions.
          type:
            - string
            - 'null'
        tags:
          type:
            - array
            - 'null'
          items:
            type: string
      x-tags:
        - Customers
    BusinessInfo:
      title: BusinessInfo
      type: object
      properties:
        name:
          type: string
        business_type:
          type: string
        pan_number:
          type:
            - string
            - 'null'
        gstin:
          type:
            - string
            - 'null'
        is_registered_under_gst:
          type: boolean
      x-tags:
        - Customers
    CustomerSegment:
      title: CustomerSegment
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      x-tags:
        - Customers
    AdminCustomerAddress:
      title: CustomerAddress
      type: object
      required:
        - first_name
        - phone
        - email
        - address_line1
        - pincode
        - city
        - state
        - country
      properties:
        id:
          type: string
          readOnly: true
        first_name:
          type:
            - string
            - 'null'
        last_name:
          type:
            - string
            - 'null'
        country_code:
          description: "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.\r\n"
          type: string
        phone:
          description: 10 digit phone number without country code.
          type:
            - string
            - 'null'
        email:
          type:
            - string
            - 'null'
        address_line1:
          type:
            - string
            - 'null'
        address_line2:
          type:
            - string
            - 'null'
        landmark:
          type:
            - string
            - 'null'
        pincode:
          type:
            - string
            - 'null'
        city:
          type:
            - string
            - 'null'
        state:
          type:
            - string
            - 'null'
        country:
          type: string
          enum:
            - India
        gstin:
          description: Use in shipping details only for third party.
          type:
            - string
            - 'null'
        business_name:
          description: Use in shipping details only for third party.
          type:
            - string
            - 'null'
        is_phone_verified:
          type: boolean
          readOnly: true
        is_email_verified:
          type: boolean
          readOnly: true
        is_default_shipping:
          type: boolean
        is_default_billing:
          type: boolean
        created_at:
          type: string
          format: date-time
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
      examples: []
      x-tags:
        - Customers
    CustomerBankAccount:
      title: CustomerBankAccount
      type: object
      required:
        - account_type
        - account_name
        - account_number
        - ifsc_code
        - bank_name
      properties:
        id:
          type: string
          readOnly: true
        account_type:
          enum:
            - inbound
            - outbound
        account_name:
          type: string
        account_number:
          type: string
        ifsc_code:
          type: string
        bank_name:
          type: string
        is_default:
          description: default bank account for the customer.
          type: boolean
        is_verified:
          type: boolean
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        modified_at:
          type: string
          format: date-time
          readOnly: true
      x-tags:
        - Customers
    NotificationChannelPreferences:
      title: NotificationChannelPreferences
      description: Set specific channel preferences
      type: object
      properties:
        email:
          description: >-
            Indicates whether the user has opted to receive notifications via
            email.
          type: boolean
          default: true
        sms:
          description: >-
            Indicates whether the user has opted to receive notifications via
            SMS.
          type: boolean
          default: true
        whatsapp:
          description: >-
            Indicates whether the user has opted to receive notifications via
            WhatsApp.
          type: boolean
          default: true
    CustomerStatus:
      enum:
        - active
        - inactive
    KycStatus:
      enum:
        - pending
        - approved
        - rejected
  securitySchemes:
    Authorization:
      type: http
      description: Access token
      scheme: bearer

````