Skip to content

Commit c5cad2d

Browse files
github-actions[bot]github-actionshabara-k
authored
Add Coupon API Support to Messaging API (#832)
line/line-openapi#111 # Add Coupon API Support to Messaging API We've supported a set of new APIs that make it possible to create, manage, and deliver coupons via the Messaging API. These features provide functionality similar to what's available through the LINE Official Account Manager interface ([see here](https://www.lycbiz.com/jp/manual/OfficialAccountManager/coupons-create/)), allowing developers to integrate coupon-related workflows into their bots more flexibly. For more details, see the official announcement: [LINE Developers News — Coupon API Released (2025/08/06)](https://developers.line.biz/en/news/2025/08/06/coupon-api/) ## New API Endpoints - `POST /v2/bot/coupon` Create a new coupon. The request includes metadata such as the coupon title, description, image URLs, validity period, reward details(e.g. 1000yen discount), acquisition requirements, time zone, etc. - `GET /v2/bot/coupon` Retrieve a list of coupons associated with the bot. - `GET /v2/bot/coupon/{couponId}` Fetch detailed information about a specific coupon. - `PUT /v2/bot/coupon/{couponId}` Mark a coupon as expired. ## Messaging API Update Message Object now supports a new type: `type=coupon` This allows developers to send coupons directly to users via the Messaging API, similar to sending text, image, or template messages. ## Example Requests ### Create a Coupon ``` POST /v2/bot/coupon Content-Type: application/json ``` #### Request body ```json { "title": "1000 yen off coupon", "acquisitionCondition": { "type": "normal" }, "visibility": "PUBLIC", "startTimestamp": 1672537600, "endTimestamp": 1672624000, "maxUseCountPerTicket": 1, "reward": { "type": "discount", "priceInfo": { "priceInfoType": "fixed", "fixedAmount": 1000 } }, "imageUrl": "https://example.com/coupon_image.png", "barcodeImageUrl": "https://example.com/coupon_barcode.png", "timezone": "ASIA_TOKYO" } ``` #### Response ```json { "couponId": "abc1234" } ``` ### Send a Coupon Message ```json { "to": "<userId>", "messages": [ { "type": "coupon", "couponId": "abc1234" } ] } ``` --------- Co-authored-by: github-actions <[email protected]> Co-authored-by: habara keigo <[email protected]>
1 parent 01558ac commit c5cad2d

File tree

47 files changed

+5084
-74
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+5084
-74
lines changed

line-openapi

linebot/v3/messaging/__init__.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
from linebot.v3.messaging.exceptions import ApiException
3636

3737
# import models into sdk package
38+
from linebot.v3.messaging.models.acquisition_condition_request import AcquisitionConditionRequest
39+
from linebot.v3.messaging.models.acquisition_condition_response import AcquisitionConditionResponse
3840
from linebot.v3.messaging.models.action import Action
3941
from linebot.v3.messaging.models.age_demographic import AgeDemographic
4042
from linebot.v3.messaging.models.age_demographic_filter import AgeDemographicFilter
@@ -53,13 +55,44 @@
5355
from linebot.v3.messaging.models.camera_roll_action import CameraRollAction
5456
from linebot.v3.messaging.models.carousel_column import CarouselColumn
5557
from linebot.v3.messaging.models.carousel_template import CarouselTemplate
58+
from linebot.v3.messaging.models.cash_back_fixed_price_info_request import CashBackFixedPriceInfoRequest
59+
from linebot.v3.messaging.models.cash_back_fixed_price_info_response import CashBackFixedPriceInfoResponse
60+
from linebot.v3.messaging.models.cash_back_percentage_price_info_request import CashBackPercentagePriceInfoRequest
61+
from linebot.v3.messaging.models.cash_back_percentage_price_info_response import CashBackPercentagePriceInfoResponse
62+
from linebot.v3.messaging.models.cash_back_price_info_request import CashBackPriceInfoRequest
63+
from linebot.v3.messaging.models.cash_back_price_info_response import CashBackPriceInfoResponse
5664
from linebot.v3.messaging.models.chat_reference import ChatReference
5765
from linebot.v3.messaging.models.clipboard_action import ClipboardAction
5866
from linebot.v3.messaging.models.clipboard_imagemap_action import ClipboardImagemapAction
5967
from linebot.v3.messaging.models.confirm_template import ConfirmTemplate
68+
from linebot.v3.messaging.models.coupon_cash_back_reward_request import CouponCashBackRewardRequest
69+
from linebot.v3.messaging.models.coupon_cash_back_reward_response import CouponCashBackRewardResponse
70+
from linebot.v3.messaging.models.coupon_create_request import CouponCreateRequest
71+
from linebot.v3.messaging.models.coupon_create_response import CouponCreateResponse
72+
from linebot.v3.messaging.models.coupon_discount_reward_request import CouponDiscountRewardRequest
73+
from linebot.v3.messaging.models.coupon_discount_reward_response import CouponDiscountRewardResponse
74+
from linebot.v3.messaging.models.coupon_free_reward_request import CouponFreeRewardRequest
75+
from linebot.v3.messaging.models.coupon_free_reward_response import CouponFreeRewardResponse
76+
from linebot.v3.messaging.models.coupon_gift_reward_request import CouponGiftRewardRequest
77+
from linebot.v3.messaging.models.coupon_gift_reward_response import CouponGiftRewardResponse
78+
from linebot.v3.messaging.models.coupon_list_response import CouponListResponse
79+
from linebot.v3.messaging.models.coupon_message import CouponMessage
80+
from linebot.v3.messaging.models.coupon_others_reward_request import CouponOthersRewardRequest
81+
from linebot.v3.messaging.models.coupon_others_reward_response import CouponOthersRewardResponse
82+
from linebot.v3.messaging.models.coupon_response import CouponResponse
83+
from linebot.v3.messaging.models.coupon_reward_request import CouponRewardRequest
84+
from linebot.v3.messaging.models.coupon_reward_response import CouponRewardResponse
6085
from linebot.v3.messaging.models.create_rich_menu_alias_request import CreateRichMenuAliasRequest
6186
from linebot.v3.messaging.models.datetime_picker_action import DatetimePickerAction
6287
from linebot.v3.messaging.models.demographic_filter import DemographicFilter
88+
from linebot.v3.messaging.models.discount_explicit_price_info_request import DiscountExplicitPriceInfoRequest
89+
from linebot.v3.messaging.models.discount_explicit_price_info_response import DiscountExplicitPriceInfoResponse
90+
from linebot.v3.messaging.models.discount_fixed_price_info_request import DiscountFixedPriceInfoRequest
91+
from linebot.v3.messaging.models.discount_fixed_price_info_response import DiscountFixedPriceInfoResponse
92+
from linebot.v3.messaging.models.discount_percentage_price_info_request import DiscountPercentagePriceInfoRequest
93+
from linebot.v3.messaging.models.discount_percentage_price_info_response import DiscountPercentagePriceInfoResponse
94+
from linebot.v3.messaging.models.discount_price_info_request import DiscountPriceInfoRequest
95+
from linebot.v3.messaging.models.discount_price_info_response import DiscountPriceInfoResponse
6396
from linebot.v3.messaging.models.emoji import Emoji
6497
from linebot.v3.messaging.models.emoji_substitution_object import EmojiSubstitutionObject
6598
from linebot.v3.messaging.models.error_detail import ErrorDetail
@@ -118,6 +151,8 @@
118151
from linebot.v3.messaging.models.limit import Limit
119152
from linebot.v3.messaging.models.location_action import LocationAction
120153
from linebot.v3.messaging.models.location_message import LocationMessage
154+
from linebot.v3.messaging.models.lottery_acquisition_condition_request import LotteryAcquisitionConditionRequest
155+
from linebot.v3.messaging.models.lottery_acquisition_condition_response import LotteryAcquisitionConditionResponse
121156
from linebot.v3.messaging.models.mark_messages_as_read_request import MarkMessagesAsReadRequest
122157
from linebot.v3.messaging.models.members_ids_response import MembersIdsResponse
123158
from linebot.v3.messaging.models.membership import Membership
@@ -128,9 +163,12 @@
128163
from linebot.v3.messaging.models.message_action import MessageAction
129164
from linebot.v3.messaging.models.message_imagemap_action import MessageImagemapAction
130165
from linebot.v3.messaging.models.message_quota_response import MessageQuotaResponse
166+
from linebot.v3.messaging.models.messaging_api_pager_coupon_list_response import MessagingApiPagerCouponListResponse
131167
from linebot.v3.messaging.models.multicast_request import MulticastRequest
132168
from linebot.v3.messaging.models.narrowcast_progress_response import NarrowcastProgressResponse
133169
from linebot.v3.messaging.models.narrowcast_request import NarrowcastRequest
170+
from linebot.v3.messaging.models.normal_acquisition_condition_request import NormalAcquisitionConditionRequest
171+
from linebot.v3.messaging.models.normal_acquisition_condition_response import NormalAcquisitionConditionResponse
134172
from linebot.v3.messaging.models.number_of_messages_response import NumberOfMessagesResponse
135173
from linebot.v3.messaging.models.operator_demographic_filter import OperatorDemographicFilter
136174
from linebot.v3.messaging.models.operator_recipient import OperatorRecipient
@@ -144,6 +182,7 @@
144182
from linebot.v3.messaging.models.quota_type import QuotaType
145183
from linebot.v3.messaging.models.recipient import Recipient
146184
from linebot.v3.messaging.models.redelivery_recipient import RedeliveryRecipient
185+
from linebot.v3.messaging.models.referral_acquisition_condition_response import ReferralAcquisitionConditionResponse
147186
from linebot.v3.messaging.models.reply_message_request import ReplyMessageRequest
148187
from linebot.v3.messaging.models.reply_message_response import ReplyMessageResponse
149188
from linebot.v3.messaging.models.rich_menu_alias_list_response import RichMenuAliasListResponse

0 commit comments

Comments
 (0)