WinCL Admin Reward API

Admin Reward Program Controller

OpenAPI Specification

wincl-admin-reward-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Wincl Admin Admin Reward API
  version: '1.0'
  description: Admin Controller
servers:
- url: https://api.wincl.io:443
  description: Inferred Url
tags:
- name: Admin Reward
  description: Admin Reward Program Controller
paths:
  /bapi/v3/rewards/companies:
    get:
      tags:
      - Admin Reward
      summary: 리워드 기업 목록 조회 (검색/필터/페이징)
      operationId: listUsingGET
      parameters:
      - name: keyword
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: pageNo
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: regFrom
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: regTo
        in: query
        required: false
        style: form
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PagedResponse«RewardCompany»'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
    post:
      tags:
      - Admin Reward
      summary: 리워드 기업 등록
      operationId: createUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RewardCompany'
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/companies/{id}:
    get:
      tags:
      - Admin Reward
      summary: 리워드 기업 상세 조회
      operationId: getUsingGET
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/RewardCompany'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
    put:
      tags:
      - Admin Reward
      summary: 리워드 기업 정보 수정
      operationId: updateUsingPUT
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RewardCompany'
      responses:
        '200':
          description: OK
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
    delete:
      tags:
      - Admin Reward
      summary: 리워드 기업 삭제
      operationId: deleteUsingDELETE
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/issuances:
    get:
      tags:
      - Admin Reward
      summary: 리워드 상품 발급 기록 목록 조회
      operationId: listUsingGET_1
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RewardIssued'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/issuances/{id}:
    get:
      tags:
      - Admin Reward
      summary: 리워드 상품 발급 기록 상세 조회
      operationId: getUsingGET_1
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/RewardIssued'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
    delete:
      tags:
      - Admin Reward
      summary: 리워드 상품 발급 기록 삭제
      operationId: deleteUsingDELETE_1
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/orders:
    get:
      tags:
      - Admin Reward
      summary: 리워드 주문 목록 조회 (전체/검색/필터/페이징)
      operationId: listAllUsingGET
      parameters:
      - name: companyId
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: keyword
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: pageNo
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: programId
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: status
        in: query
        required: false
        style: form
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PagedResponse«RewardOrder»'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/orders/{id}:
    get:
      tags:
      - Admin Reward
      summary: 리워드 주문 상세 조회
      operationId: getUsingGET_2
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/RewardOrder'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
    delete:
      tags:
      - Admin Reward
      summary: 리워드 주문 즉시 취소
      operationId: deleteUsingDELETE_2
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/orders/{id}/cancel/approve:
    post:
      tags:
      - Admin Reward
      summary: 리워드 주문 취소 요청 승인
      operationId: approveCancelUsingPOST
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/programs/{programId}/orders:
    get:
      tags:
      - Admin Reward
      summary: 특정 리워드 프로그램의 주문 목록 조회 (검색/필터/페이징)
      operationId: listByProgramUsingGET
      parameters:
      - name: companyId
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: keyword
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: pageNo
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: programId
        in: path
        description: programId
        required: true
        style: simple
        allowReserved: false
        schema:
          type: string
      - name: status
        in: query
        required: false
        style: form
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PagedResponse«RewardOrder»'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/payments:
    get:
      tags:
      - Admin Reward
      summary: 리워드 결제 로그 목록 조회
      operationId: listUsingGET_2
      parameters:
      - name: eventType
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: keyword
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: orderId
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: pageNo
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: status
        in: query
        required: false
        style: form
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PagedResponse«RewardPaymentLog»'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/payments/{id}:
    get:
      tags:
      - Admin Reward
      summary: 리워드 결제 로그 상세 조회
      operationId: getUsingGET_3
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/RewardPaymentLog'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/companies/{companyId}/programs:
    get:
      tags:
      - Admin Reward
      summary: 리워드 기업의 프로그램 목록 조회 (검색/필터/페이징)
      operationId: listByCompanyUsingGET
      parameters:
      - name: closeFrom
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: closeTo
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: companyId
        in: query
        description: companyId
        required: true
        style: form
        allowReserved: true
        schema:
          type: string
      - name: keyword
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: openFrom
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: openTo
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: pageNo
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: status
        in: query
        required: false
        style: form
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PagedResponse«RewardProgram»'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/programs:
    get:
      tags:
      - Admin Reward
      summary: 리워드 프로그램 목록 조회
      operationId: listUsingGET_3
      parameters:
      - name: closeFrom
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: closeTo
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: companyId
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: keyword
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: openFrom
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: openTo
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        style: form
        schema:
          type: string
      - name: pageNo
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: pageSize
        in: query
        required: false
        style: form
        schema:
          type: integer
          format: int32
      - name: status
        in: query
        required: false
        style: form
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PagedResponse«RewardProgram»'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
    post:
      tags:
      - Admin Reward
      summary: 리워드 프로그램 등록
      operationId: createUsingPOST_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RewardProgram'
      responses:
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v3/rewards/programs/{id}:
    get:
      tags:
      - Admin Reward
      summary: 리워드 프로그램 상세 조회
      operationId: getUsingGET_4
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/RewardProgram'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
    put:
      tags:
      - Admin Reward
      summary: 리워드 프로그램 수정
      operationId: updateUsingPUT_1
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RewardProgram'
      responses:
        '200':
          description: OK
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
    delete:
      tags:
      - Admin Reward
      summary: 리워드 프로그램 삭제
      operationId: deleteUsingDELETE_3
      parameters:
      - name: id
        in: path
        description: id
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - Bearer 토큰 값:
        - global
components:
  schemas:
    RewardIssued:
      title: RewardIssued
      type: object
      properties:
        createdAt:
          type: string
          description: 기록일
          format: date-time
        deliveredAt:
          type: string
          description: 상품 확인 완료 일시
          format: date-time
        deliveryType:
          type: string
          description: 배송 방식
          enum:
          - OFFLINE
          - ONLINE
        id:
          type: string
          description: 발급 ID (UUID)
        orderId:
          type: string
          description: 주문 ID (UUID)
        sentAt:
          type: string
          description: 발송 완료 일시
          format: date-time
        sentTo:
          type: string
          description: 배송지 정보
        status:
          type: string
          description: 상태
          enum:
          - CANCELLED
          - DELIVERED
          - ISSUED
          - SENT
    RewardOrder:
      title: RewardOrder
      type: object
      properties:
        buyerId:
          type: string
          description: 구매자 ID (user.id_usr)
        cancelReason:
          type: string
          description: 취소 사유
        canceledAt:
          type: string
          description: 취소 일시
          format: date-time
        canceledBy:
          type: string
          description: 취소 주체
          enum:
          - ADMIN
          - SYSTEM
          - USER
        carrier:
          type: string
          description: 택배사명
        completedAt:
          type: string
          description: 거래 완료일
          format: date-time
        createdAt:
          type: string
          description: 주문 생성일
          format: date-time
        creditUsed:
          type: string
          description: 크레딧 사용 내역 (JSON)
        deliveryStatus:
          type: string
          description: 배송 상태
          enum:
          - DELIVERED
          - READY
          - RETURNED
          - SHIPPED
          - UNSET
        id:
          type: string
          description: 주문 ID (UUID)
        paidAt:
          type: string
          description: 결제 집행일
          format: date-time
        postalCode:
          type: string
          description: 우편번호
        programId:
          type: string
          description: 프로그램 ID (UUID)
        qty:
          type: integer
          description: 구매 수량
          format: int32
        recipientAddress:
          type: string
          description: 배송지 주소
        recipientAddressDetail:
          type: string
          description: 상세 주소
        recipientName:
          type: string
          description: 수령인 이름
        recipientPhone:
          type: string
          description: 수령인 전화번호
        status:
          type: string
          description: 상태
          enum:
          - CANCELLED
          - CANCEL_REQUESTED
          - COMPLETED
          - PAID
          - PAY_REQUESTED
          - PENDING
        trackingNo:
          type: string
          description: 운송장 번호
        unitCreditSnapshot:
          type: number
          description: 주문 시점 크레딧 단가 스냅샷
          format: bigdecimal
        updatedAt:
          type: string
          description: 수정일
          format: date-time
    RewardPaymentLog:
      title: RewardPaymentLog
      type: object
      properties:
        amountCredit:
          type: number
          description: 이벤트 시점 크레딧 처리량
          format: bigdecimal
        amountPartial:
          type: number
          description: 부분 취소 수량
          format: bigdecimal
        createdAt:
          type: string
          description: 이벤트 발생 일시
          format: date-time
        errorCode:
          type: string
          description: 실패 시 에러 코드
        errorMessage:
          type: string
          description: 실패 시 에러 메시지
        eventType:
          type: string
          description: 이벤트 타입
          enum:
          - CANCEL_COMPLETED
          - CANCEL_REQUESTED
          - DELIVERY_COMPLETED
          - PARTIAL_CANCEL
          - PAYMENT_COMPLETED
          - PAYMENT_REQUESTED
        id:
          type: string
          description: 로그 ID (UUID)
        initiatedBy:
          type: string
          description: 이벤트 주체
          enum:
          - ADMIN
          - SYSTEM
          - USER
        metadata:
          type: string
          description: 추가 데이터 (JSON)
        orderId:
          type: string
          description: 주문 ID (UUID)
        status:
          type: string
          description: 상태
          enum:
          - FAIL
          - PENDING
          - SUCCESS
    PageInfo:
      title: PageInfo
      type: object
      properties:
        pageNo:
          type: integer
          description: 현재 페이지 번호
          format: int32
        pageSize:
          type: integer
          description: 페이지 사이즈
          format: int32
        totalPage:
          type: integer
          description: 전체 아이템 수
          format: int32
    RewardCompany:
      title: RewardCompany
      type: object
      properties:
        agreedTermsPrivacy:
          type: string
          description: 개인정보처리방침 동의 일시
          format: date-time
        agreedTermsReward:
          type: string
          description: 리워드 운영정책 동의 일시
          format: date-time
        agreedTermsService:
          type: string
          description: 서비스 이용약관 동의 일시
          format: date-time
        approvedAt:
          type: string
          description: 승인일
          format: date-time
        approvedBy:
          type: string
          description: 승인자
        commerceRegDoc:
          type: string
          description: 통신판매업 신고 서류 스토리지 URL
        commerceRegNo:
          type: string
          description: 통신판매업 신고 번호
        companyName:
          type: string
          description: 기업명
        companyNo:
          type: string
          description: 기업번호
        companyRegDoc:
          type: string
          description: 등록증 스토리지 URL (JSON)
        contactEmail:
          type: string
          description: 담당자 이메일
        contactName:
          type: string
          description: 담당자 이름
        contactPhone:
          type: string
          description: 담당자 전화번호
        createdAt:
          type: string
          description: 작성일
          format: date-time
        id:
          type: string
          description: 리워드용 기업 ID (UUID)
        rejectionReason:
          type: string
          description: 반려 사유
        representativeName:
          type: string
          description: 대표자명
        status:
          type: string
          description: 상태
          enum:
          - APPROVED
          - PENDING
          - REJECTED
          - SUSPENDED
        updatedAt:
          type: string
          description: 수정일
          format: date-time
    PagedResponse«RewardPaymentLog»:
      title: PagedResponse«RewardPaymentLog»
      type: object
      properties:
        items:
          type: array
          description: 목록 데이터
          items:
            $ref: '#/components/schemas/RewardPaymentLog'
        pageInfo:
          description: 페이징 정보
          $ref: '#/components/schemas/PageInfo'
    RewardProgram:
      title: RewardProgram
      type: object
      properties:
        buyerCondition:
          type: string
          description: 구매자 조건 (JSON)
        companyId:
          type: string
          description: 기업 ID (UUID)
        content:
          type: string
          description: 상세 내용
        createdAt:
          type: string
          description: 작성일
          format: date-time
        creditSettings:
          type: string
          description: 크레딧 설정 (JSON)
        creditWeight:
          type: number
          description: 가중치
          format: bigdecimal
        csPhone:
          type: string
          description: 소비자 상담 전화번호
        endedAt:
          type: string
          description: 종료일
          format: date-time
        id:
          type: string
          description: 프로그램 ID (UUID)
        imageUrl:
          type: string
          description: 이미지 URL (JSON)
        maxQtyPerUser:
          type: integer
          description: 1인당 최대 구매 수량
          format: int32
        refundPolicy:
          type: string
          description: 반환방법
        remainingQty:
          type: integer
          description: 잔여 수량
          format: int32
        rewardName:
          type: string
          description: 리워드 명
        rewardType:
          type: string
          description: 리워드 타입
          enum:
          - EXPERIENCE
          - PRODUCT
          - VOUCHER
        startedAt:
          type: string
          description: 시작일
          format: date-time
        status:
          type: string
          description: 상태
          enum:
          - CANCELLED
          - CLOSED
          - DRAFT
          - ENDED
          - OPENED
          - PENDING
          - REGISTERED
        thumbnailUrl:
          type: string
          description: 썸네일 URL
        title:
          type: string
          description: 프로그램 제목
        totalQty:
          type: integer
          description: 총 수량
          format: int32
        unitCreditPrice:
          type: number
          description: 리워드 1개당 크레딧 가격
          format: bigdecimal
        updatedAt:
          type: string
          description: 수정일
          format: date-time
        usableStores:
          type: string
          description: 이용가능 매장
        validPeriod:
          type: string
          description: 유효기간 및 이용조건
    PagedResponse«RewardOrder»:
      title: PagedResponse«RewardOrder»
      type: object
      properties:
        items:
          type: array
          description: 목록 데이터
          items:
            $ref: '#/components/schemas/RewardOrder'
        pageInfo:
          description: 페이징 정보
          $ref: '#/components/schemas/PageInfo'
    PagedResponse«RewardProgram»:
      title: PagedResponse«RewardProgram»
      type: object
      properties:
        items:
          type: array
          description: 목록 데이터
          items:
            $ref: '#/components/schemas/RewardProgram'
        pageInfo:
          description: 페이징 정보
          $ref: '#/components/schemas/PageInfo'
    PagedResponse«RewardCompany»:
      title: PagedResponse«RewardCompany»
      type: object
      properties:
        items:
          type: array
          description: 목록 데이터
          items:
            $ref: '#/components/schemas/RewardCompany'
        pageInfo:
          description: 페이징 정보
          $ref: '#/components/schemas/PageInfo'
  securitySchemes:
    Bearer 토큰 값:
      type: http
      scheme: bearer
      bearerFormat: JWT