SubscriptionAPI
Billing operations for personal and team plans.
List plans and subscriptions
plans, _, err := client.SubscriptionAPI.
MainApiV1GetListPlansGet(ctx).
Execute()
subscriptions, _, err := client.SubscriptionAPI.
MainApiV1ListSubscriptionsPost(ctx).
Execute()
Create a subscription
subscriptionBody := analogwakatime.NewMainApiV1CreateSubscriptionPostRequest()
subscriptionBody.SetPriceId("PRICE_ID_FROM_PLANS")
subscription, _, err := client.SubscriptionAPI.
MainApiV1CreateSubscriptionPost(ctx).
MainApiV1CreateSubscriptionPostRequest(*subscriptionBody).
Execute()
soloPlus, _, err := client.SubscriptionAPI.
MainApiV1CreateSoloPlusSubscriptionPost(ctx).
Execute()
soloPlusPlus, _, err := client.SubscriptionAPI.
CreateSoloPlusPlusSubscription(ctx).
Execute()
teamSubscription, _, err := client.SubscriptionAPI.
MainApiV1CreateTeamSubscriptionPost(ctx).
Execute()
Cancel and invoices
const subscriptionID int32 = 42
cancelBody := analogwakatime.NewCancelPendingSubscriptionRequest(subscriptionID)
cancelled, _, err := client.SubscriptionAPI.
CancelSubscription(ctx).
CancelPendingSubscriptionRequest(*cancelBody).
Execute()
pendingCancellation, _, err := client.SubscriptionAPI.
CancelPendingSubscription(ctx).
CancelPendingSubscriptionRequest(*cancelBody).
Execute()
invoiceBody := analogwakatime.NewCreateInvoiceRequest()
invoiceBody.SetSubscriptionId(subscriptionID)
invoice, _, err := client.SubscriptionAPI.
CreateInvoice(ctx).
CreateInvoiceRequest(*invoiceBody).
Execute()
invoices, _, err := client.SubscriptionAPI.ListInvoices(ctx).Execute()
CancelSubscription requests cancellation. CancelPendingSubscription
cancels a previously scheduled cancellation.
Stripe webhook (backend only)
Intended for a verified Stripe webhook receiver, not a browser or desktop client. Verify the Stripe signature before building this body.
object := analogwakatime.NewMainApiV1WebhooksStripePostRequestDataObject()
object.SetId("SUBSCRIPTION_ID_FROM_STRIPE")
object.SetStatus("active")
data := analogwakatime.NewMainApiV1WebhooksStripePostRequestData()
data.SetObject(*object)
webhookBody := analogwakatime.NewMainApiV1WebhooksStripePostRequest()
webhookBody.SetEvent("customer.subscription.updated")
webhookBody.SetData(*data)
processed, _, err := client.SubscriptionAPI.
MainApiV1WebhooksStripePost(ctx).
MainApiV1WebhooksStripePostRequest(*webhookBody).
Execute()