WinCL Coupon API

Coupon Controller

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wincl-coupon-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wincl-coupon-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Wincl Admin Coupon API
  version: '1.0'
  description: Admin Controller
servers:
- url: https://api.wincl.io:443
  description: Inferred Url
tags:
- name: Coupon
  description: Coupon Controller
paths:
  /bapi/v2/coupons/events/{eventId}:
    delete:
      tags:
      - Coupon
      summary: 이벤트, 매직쿠폰 및 연결된 개인쿠폰들을 삭제합니다.
      description: '`eventId`는 `/magic/register`에 사용한 값과 같아야 합니다.<br>이벤트, 매직쿠폰 및 발행된 모든 개인쿠폰을 삭제합니다.'
      operationId: deleteEventUsingDELETE
      parameters:
      - name: eventId
        in: path
        description: 이벤트 ID
        required: true
        style: simple
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WinclResponseData«DeleteEventResult»'
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v2/coupons/magic/issue:
    post:
      tags:
      - Coupon
      summary: 2. 이벤트용 사용자 쿠폰을 벌크로 발행합니다.
      description: '`eventId, magicCouponCode, amount`는 `/magic/register`에 사용한 값과 같아야 합니다.<br>이벤트 참여 1개당 개인쿠폰 1개씩 서버 내부에서 연결됩니다.<br>발행할 개인쿠폰 갯수 (`couponCount`)도 윈클로부터 받아야 합니다.'
      operationId: issueIndividualCouponsUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueIndividualCouponsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WinclResponseData«IssueCouponsResult»'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /bapi/v2/coupons/magic/register:
    post:
      tags:
      - Coupon
      summary: 1. 이벤트용 매직 쿠폰을 발행합니다.
      description: '호출하면 `event*` 필드들로 이벤트를 생성한 후, 나머지 필드들로 매직쿠폰을 생성합니다.<br>`eventId`는 아무 값이나 쓰면 되고, `eventName, eventDescription`은 윈클로부터 받습니다.<br>매직쿠폰은 모든 이벤트 참여자가 공용으로 사용하는 단일쿠폰입니다.<br>`magicCouponCode, productId`는 윈클에서 정해서 알려주어야 합니다.<br>`senderUserId`는 상품을 벌크구매한 윈클 대표 가입자ID이고 `creditId`는 윈클의 구매ID로 둘 다 내부에서 알 수 있습니다.<br>`productId`는 상품ID 입니다. (예: 캄보이아 = 1676884519406W4iqG0qk2W)<br>지급 금액 (`amount`)은 윈클에서 결정하는 각 이벤트 참여자에게 지급할 배출권 양(톤)입니다.'
      operationId: registerMagicCouponsUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterMagicCouponRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WinclResponseData«WinclCoupon»'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /api/v2/coupons/magic/answer:
    post:
      tags:
      - Coupon
      summary: 3. 쿠폰 응모 때 입력한 정보를 수집합니다. (접근토큰이 필요없음)
      description: 이벤트 참여를 위한 참자가 정보 (나이, 성별)을 수집합니다. 가입 전 호출하므로 접근토큰이 필요없습니다.
      operationId: gatherEventAnswerUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatherEventAnswersRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WinclResponseData«GatherEventApplyResult»'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
  /api/v2/coupons/magic/consume:
    post:
      tags:
      - Coupon
      summary: 4. 쿠폰을 사용하여 탄소배출권을 얻습니다. (접근토큰이 필요함)
      description: 가입 후 이벤트 때 받았던 매직쿠폰 코드를 입력하면, 사용자 지갑에 배출권을 넣어줍니다.<br>서버 내부에서는 개인쿠폰으로 변환하고, 배출권을 윈클 지갑에서 꺼내 개인 지갑으로 이동시킵니다.
      operationId: consumeMagicCouponUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsumeMagicCouponRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WinclResponseData«ConsumeCouponResult»'
        '201':
          description: Created
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      security:
      - Bearer 토큰 값:
        - global
components:
  schemas:
    ConsumeMagicCouponRequest:
      title: ConsumeMagicCouponRequest
      type: object
      properties:
        eventId:
          type: string
        magicCouponCode:
          type: string
    WinclResponseData«GatherEventApplyResult»:
      title: WinclResponseData«GatherEventApplyResult»
      type: object
      properties:
        code:
          type: string
        data:
          $ref: '#/components/schemas/GatherEventApplyResult'
        message:
          type: string
    WinclResponseData«IssueCouponsResult»:
      title: WinclResponseData«IssueCouponsResult»
      type: object
      properties:
        code:
          type: string
        data:
          $ref: '#/components/schemas/IssueCouponsResult'
        message:
          type: string
    DeleteEventResult:
      title: DeleteEventResult
      type: object
      properties:
        deleteed:
          type: boolean
        eventId:
          type: string
    GatherEventApplyResult:
      title: GatherEventApplyResult
      type: object
      properties:
        eventId:
          type: string
        gathered:
          type: boolean
    WinclResponseData«ConsumeCouponResult»:
      title: WinclResponseData«ConsumeCouponResult»
      type: object
      properties:
        code:
          type: string
        data:
          $ref: '#/components/schemas/ConsumeCouponResult'
        message:
          type: string
    IssueCouponsResult:
      title: IssueCouponsResult
      type: object
      properties:
        eventId:
          type: string
        issuedCount:
          type: integer
          format: int32
        magicCouponCode:
          type: string
    WinclResponseData«WinclCoupon»:
      title: WinclResponseData«WinclCoupon»
      type: object
      properties:
        code:
          type: string
        data:
          $ref: '#/components/schemas/WinclCoupon'
        message:
          type: string
    WinclCoupon:
      title: WinclCoupon
      type: object
      properties:
        amount:
          type: number
          format: bigdecimal
        consumedAt:
          type: string
          format: date-time
        couponCode:
          type: string
        couponStatus:
          type: string
          enum:
          - ENABLED
          - UNUSED
          - USED
          - USING
        couponType:
          type: string
          enum:
          - INDIVIDUAL
          - MAGIC
        creditId:
          type: string
        eventId:
          type: string
        id:
          type: string
        productId:
          type: string
        userId:
          type: string
    IssueIndividualCouponsRequest:
      title: IssueIndividualCouponsRequest
      type: object
      properties:
        amount:
          type: number
          description: 참자가에게 지급할 배출권 양 (톤)
          format: bigdecimal
        couponCount:
          type: integer
          description: 생성할 개인쿠폰 갯수
          format: int32
        eventId:
          type: string
        magicCouponCode:
          type: string
    WinclResponseData«DeleteEventResult»:
      title: WinclResponseData«DeleteEventResult»
      type: object
      properties:
        code:
          type: string
        data:
          $ref: '#/components/schemas/DeleteEventResult'
        message:
          type: string
    ConsumeCouponResult:
      title: ConsumeCouponResult
      type: object
      properties:
        couponCode:
          type: string
        couponId:
          type: string
        couponStatus:
          type: string
          enum:
          - ENABLED
          - UNUSED
          - USED
          - USING
    RegisterMagicCouponRequest:
      title: RegisterMagicCouponRequest
      type: object
      properties:
        amount:
          type: number
          description: 참자가에게 지급할 배출권 양 (톤)
          format: bigdecimal
        creditId:
          type: string
        eventDescription:
          type: string
        eventId:
          type: string
        eventName:
          type: string
        magicCouponCode:
          type: string
        productId:
          type: string
        senderUserId:
          type: string
    GatherEventAnswersRequest:
      title: GatherEventAnswersRequest
      type: object
      properties:
        answers:
          type: array
          description: 응답 목록 (참가자 답변을 질문 순서대로 Array 형태에 담음)
          items:
            type: string
        emissionAmount:
          type: number
          description: 결과 탄소배출량
          format: bigdecimal
        eventId:
          type: string
          description: 이벤트 ID
        questionSetId:
          type: string
          description: 질문 세트 ID (한 이벤트에 질문지 세트가 여럿인 경우 구별)
  securitySchemes:
    Bearer 토큰 값:
      type: http
      scheme: bearer
      bearerFormat: JWT