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

# 고객 상세 조회

> 고객 상세정보를 반환합니다.



## OpenAPI

````yaml /steppay_v1.json get /api/v1/customers/{id}
openapi: 3.0.1
info:
  title: STEPPAY
  version: '1.0'
  contact:
    name: Steppay
    url: https://www.steppay.kr
    email: contact@steppay.kr
servers:
  - url: https://api.steppay.kr
    description: Generated server url
security:
  - Secret-Token: []
paths:
  /api/v1/customers/{id}:
    get:
      tags:
        - 고객 API
      summary: 고객 상세 조회
      description: 고객 상세정보를 반환합니다.
      operationId: v1_getCustomerDetail
      parameters:
        - name: id
          in: path
          description: 고객 번호
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: 정상적으로 조회됨
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductCustomerdto'
              examples:
                응답 예시:
                  value:
                    id: 1
                    status: NORMAL
                    username: test@gmail.com
                    name: 테스트 고객
                    email: test@gmail.com
                    phone: '01012345678'
                    orderCount: 0
                    totalPurchasedPrice: 0
                    shipping: null
                    orders: []
                    subscriptions: []
                    paymentMethods: []
                    code: customer_AbCdEfGhI
                    marketingSms: false
                    marketingEmail: false
                    marketingKakao: false
                    attributes: {}
                    createdAt: '9999-01-01T00:00:00'
                    additionalRecipients: []
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductErrorresponse'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductErrorresponse'
components:
  schemas:
    ProductCustomerdto:
      title: 고객 상세 정보
      required:
        - additionalRecipients
        - attributes
        - createdAt
        - id
        - marketingEmail
        - marketingKakao
        - marketingSms
        - orderCount
        - orders
        - paymentMethods
        - region
        - subscriptions
        - totalPurchasedPrice
      type: object
      properties:
        id:
          type: integer
          description: 고객 번호
          format: int64
        status:
          type: string
          description: 고객 상태
          enum:
            - NORMAL
            - DORMANT
        username:
          type: string
          description: 고객 아이디
        name:
          type: string
          description: 고객 이름
        email:
          type: string
          description: 고객 이메일
        phone:
          type: string
          description: 고객 전화번호
        orderCount:
          type: integer
          description: 고객이 주문한 주문 개수
          format: int32
        totalPurchasedPrice:
          type: number
          description: 고객이 구매한 전체 금액
        shipping:
          $ref: '#/components/schemas/Shipping'
        orders:
          type: array
          description: 고객과 연관된 주소 목록
          items:
            $ref: '#/components/schemas/CustomerOrderDTO'
        subscriptions:
          type: array
          description: 고객과 연관된 구독 목록
          items:
            $ref: '#/components/schemas/CustomerSubscriptionDTO'
        paymentMethods:
          type: array
          description: 고객이 사용중인 결제수단 목록
          items:
            $ref: '#/components/schemas/PaymentMethodDTO'
        code:
          type: string
          description: 고객 코드
        marketingSms:
          type: boolean
          description: 고객이 허가한 마케팅 채널 - SMS
        marketingEmail:
          type: boolean
          description: 고객이 허가한 마케팅 채널 - Email
        marketingKakao:
          type: boolean
          description: 고객이 허가한 마케팅 채널 - Kakao
        attributes:
          type: object
          additionalProperties:
            type: string
            description: 고객 추가 데이터
          description: 고객 추가 데이터
        createdAt:
          type: string
          description: 고객 생성 시점
          format: date-time
        additionalRecipients:
          type: array
          description: 추가 수신인
          items:
            type: string
            description: 추가 수신인
        region:
          $ref: '#/components/schemas/RegionDTO'
    ProductErrorresponse:
      required:
        - errorCode
      type: object
      properties:
        traceId:
          type: string
        errorCode:
          type: string
        errorMessage:
          type: string
        details:
          $ref: '#/components/schemas/ReturnError'
    Shipping:
      title: 배송지 정보
      required:
        - address1
        - address2
        - name
        - phone
        - postcode
      type: object
      properties:
        name:
          maxLength: 2147483647
          minLength: 1
          type: string
          description: 수령인 이름
        phone:
          maxLength: 2147483647
          minLength: 1
          type: string
          description: 수령인 전화번호
        postcode:
          maxLength: 2147483647
          minLength: 1
          type: string
          description: 우편번호
        address1:
          maxLength: 2147483647
          minLength: 1
          type: string
          description: 주소
        address2:
          maxLength: 2147483647
          minLength: 1
          type: string
          description: 세부 주소
        state:
          type: string
          description: 주 정보
        city:
          type: string
          description: 도시 정보
        countryCode:
          type: string
          description: 국가 코드
      description: 고객이 최근에 사용한 배송지
    CustomerOrderDTO:
      title: 고객과 연관된 주소 정보
      required:
        - amount
        - claimMethodType
        - createdAt
        - currency
        - id
        - productName
        - type
      type: object
      properties:
        id:
          type: integer
          description: 주문 번호
          format: int64
        type:
          type: string
          description: 주문 타입
          enum:
            - RECURRING
            - ONE_TIME
            - PAYMENT_METHOD
            - RECURRING_INITIAL
            - ADD_USAGE
            - ADDITIONAL
            - ADD_PAYMENT_METHOD
        productName:
          type: string
          description: 상품명
        amount:
          type: number
          description: 주문 금액
        claimMethodType:
          type: string
          description: 선불인지 후불인지 정보
          enum:
            - PRE
            - POST
        createdAt:
          type: string
          description: 생성 일시
          format: date-time
        currency:
          type: string
          description: 승인 통화
      description: 고객과 연관된 주소 목록
    CustomerSubscriptionDTO:
      title: 고객과 연관된 구독 정보
      required:
        - code
        - currency
        - id
        - items
        - recurring
        - status
      type: object
      properties:
        id:
          type: integer
          description: 구독 번호
          format: int64
        code:
          type: string
          description: 구독 코드
        nextPaymentDateTime:
          type: string
          description: 다음 결제 시점
          format: date-time
        items:
          type: array
          description: 구독 항목들
          items:
            $ref: '#/components/schemas/SubscriptionItemDTO'
        status:
          type: string
          description: 구독 상태
          enum:
            - ACTIVE
            - UNPAID
            - PENDING_PAUSE
            - PAUSE
            - PENDING_CANCEL
            - EXPIRED
            - CANCELED
            - INCOMPLETE
            - QUEUEING
        recurring:
          $ref: '#/components/schemas/Interval'
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethodDTO'
        endDate:
          type: string
          description: 종료일
          format: date-time
        lastPaymentDateTime:
          type: string
          description: 최근 결제 시점
          format: date-time
        currency:
          type: string
          description: 승인 통화
      description: 고객과 연관된 구독 목록
    PaymentMethodDTO:
      title: 결제수단 정보
      required:
        - id
        - paymentInfo
      type: object
      properties:
        id:
          type: integer
          description: 결제수단 번호
          format: int64
        paymentInfo:
          type: string
          description: 결제수단 정보
      description: 고객이 사용중인 결제수단 목록
    RegionDTO:
      title: 판매국가 정보
      required:
        - country
        - countryCode
        - currencies
        - language
        - name
      type: object
      properties:
        name:
          title: Region Enum Code
          type: string
        currencies:
          title: 해당 국가에서 사용되는 통화 코드 목록
          type: array
          items:
            title: 해당 국가에서 사용되는 통화 코드 목록
            type: string
        country:
          title: 국가 이름
          type: string
        countryCode:
          title: 국가 코드(ISO 3166 alpha-2)
          type: string
        state:
          title: 주 이름
          type: string
        language:
          title: 국가 언어 코드
          type: string
      description: 지역
    ReturnError:
      type: object
    SubscriptionItemDTO:
      title: 구독 항목 정보
      required:
        - claimMethodType
        - currency
        - featuredImageUrl
        - hasOptions
        - id
        - isAdditional
        - isOnetimePurchasable
        - keepWhenRenew
        - plan
        - price
        - priceType
        - productName
        - productType
        - quantity
        - selectedOptions
        - selectedProductOptionIds
        - selectedProductOptionPrice
        - type
      type: object
      properties:
        id:
          type: integer
          description: 구독 항목 번호
          format: int64
        code:
          type: string
          description: 구독 항목 코드
        productName:
          type: string
          description: 상품명
        productType:
          type: string
          description: 상품 타입
          enum:
            - BOX
            - SOFTWARE
            - BUNDLE
            - INVOICE
            - DRAFT
        isOnetimePurchasable:
          type: boolean
          description: 활성구독 제한 여부
        featuredImageUrl:
          type: string
          description: 이미지 URL
        selectedProductOptionLabel:
          type: string
          description: 선택한 옵션 정보
        selectedProductOptionIds:
          type: array
          description: 선택한 옵션들의 ID
          items:
            type: integer
            description: 선택한 옵션들의 ID
            format: int64
        selectedProductOptionPrice:
          type: number
          description: 선택한 옵션 추가 금액
        plan:
          $ref: '#/components/schemas/Plan'
        price:
          type: number
          description: 가격
        currency:
          type: string
          description: 가격 통화
        quantity:
          type: integer
          description: 수량
          format: int32
        isAdditional:
          type: boolean
          description: 추가 구매 상품인지 여부
        keepWhenRenew:
          type: boolean
          description: 갱신될 때 유지되는 항목인지 여부
        hasOptions:
          type: boolean
          description: 옵션이 존재하는지 여부
        maximumPurchaseQuantity:
          type: integer
          description: 최대 구매 가능 수량
          format: int32
        productCode:
          type: string
          description: 상품 코드
        priceCode:
          type: string
          description: 가격 플랜 코드
        type:
          type: string
          description: 항목 타입
          enum:
            - SKU
            - TAX
            - SHIPPING
            - DISCOUNT
            - OFFLINE
            - FEE
            - ADDS
            - INSTANT
            - USAGE
        claimMethodType:
          type: string
          description: 선불인지 후불인지 정보
          enum:
            - PRE
            - POST
        priceType:
          type: string
          description: 가격 플랜 타입
          enum:
            - ONE_TIME
            - FLAT
            - UNIT_BASED
            - USAGE_BASED
            - VOLUME_BASED
            - BUNDLE
        selectedOptions:
          type: array
          description: 선택된 옵션
          items:
            type: integer
            description: 선택된 옵션
            format: int64
        parentSubscriptionItemCode:
          type: string
          description: 파생 구독 아이템의 부모(번들) 아이템 코드
      description: 구독 항목들
    Interval:
      required:
        - interval
        - intervalCount
      type: object
      properties:
        interval:
          type: string
          enum:
            - DAY
            - WEEK
            - MONTH
            - YEAR
        intervalCount:
          type: integer
          format: int32
      description: 구독 주기 정보
    Plan:
      title: 가격 플랜 정보
      required:
        - name
        - description
      type: object
      properties:
        name:
          type: string
          description: 플랜 이름
        description:
          type: string
          description: 플랜 설명
        detailDescription:
          type: string
          description: 자세히 보기
        isHiddenFromShop:
          type: boolean
          description: '플랜 사용 여부 (기본값: false)'
        adminName:
          type: string
          description: 어드민 플랜 이름
      description: 가격 플랜 정보
  securitySchemes:
    Secret-Token:
      type: apiKey
      in: header
      name: Secret-Token

````