tgpay cryptoAPI
crypto-payapisubscriptionsrecurring

API 参考:订阅

阅读约 1 分钟最后更新: 2026年8月22日

周期性扣款——相对 Crypto Bot 的扩展。您建一个套餐(金额 + 周期),把它的授权链接发给 用户,之后平台每一期从他们的钱包余额里扣款,扣掉手续费之后给您的应用余额入账。通用约定见 商户 API 参考页面。

模型

套餐是一份不可变的快照:用户授权的那一份,就是这个金额、这个周期。要改价格,就建一个 新套餐并把旧的归档——现有订阅者仍然按他们授权过的条件续费。第一期在授权时扣。

续费在每期结束时自动扣。续费失败(余额不足、账号受限)时,订阅进入 grace,平台在宽限期内 每小时重试一次(目前是 48 小时);仍然扣不上的话,订阅变成 expired。商户拿 current_period_end 当准入截止时间来读。

生命周期里的每一个事件都有一个可订阅的 webhooksubscription_activatedsubscription_chargedsubscription_cancelledsubscription_expired

createSubscriptionPlan

POST /pay/api/createSubscriptionPlan——权限范围 subscriptions

参数类型必填含义
namestring1–64 个字符,显示给订阅者
assetstring币种代码
amountstring每期扣款额,正的小数字符串
period_daysinteger扣款周期天数,从平台最小值(目前是 7)到 365

返回的是套餐对象plan_idnameassetamountamount_minorperiod_daysarchivedmini_app_subscribe_url——您发给用户去授权的那条 t.me 链接——以及 created_at

错误:404 unknown_asset400 invalid_amount409 invalid_period503 subs_disabled (该功能在平台侧被关掉了)。

getSubscriptionPlans

GET /pay/api/getSubscriptionPlans——权限范围 read,无参数。返回 {"items": [plan, …]},按时间倒序,每一项多带一个字段:active_subscribers——该套餐上仍然 有效的(active + grace)订阅数。

archiveSubscriptionPlan

POST /pay/api/archiveSubscriptionPlan——权限范围 subscriptions。一个参数:plan_id。 它阻止的是新的授权;现有订阅照样按各自的快照续费(要逐个终止,请用 cancelSubscription)。归档没法通过 API 撤销。返回的是更新后的套餐对象,archived: true。 错误:404 plan_not_found

getSubscriptions

GET /pay/api/getSubscriptions——权限范围 read。过滤条件:plan_iduser_idstatusactive / grace / cancelled / expired),外加 offset / count(最大 500)。 返回 {"items": [subscription, …]},按时间倒序。

订阅对象subscription_idplan_iduser_id(订阅者的 Telegram ID)、快照条件 (assetamountamount_minorperiod_days)、statusauto_renewperiod_no (已付期数)、current_period_start / current_period_endcreated_atcancelled_atcancelled_byusermerchant)、expired_at

cancelSubscription

POST /pay/api/cancelSubscription——权限范围 subscriptions。一个参数:subscription_id。 它停掉续费(cancelled_by: "merchant");已付的那一期到 current_period_end 之前照常能用, 状态立即变为 cancelled,订阅者会收到通知。被取消的订阅者之后可以通过同一条套餐链接重新 授权。返回的是更新后的订阅对象。

错误:404 sub_not_found409 sub_not_active(已经取消或已经到期)。