Subscription lifecycle, plan and usage operations.
Summary
Types
Parameters for subscriptions_change_plan. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionChangePlanParams.
Parameters for subscriptions_charge. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionChargeParams.
Parameters for subscriptions_create. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionCreateParams.
Parameters for subscriptions_list. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionListParams.
Parameters for subscriptions_preview_change_plan. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionPreviewChangePlanParams.
Parameters for subscriptions_update. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionUpdateParams.
Parameters for subscriptions_update_payment_method. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionUpdatePaymentMethodParams.
Parameters for subscriptions_usage_history. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionRetrieveUsageHistoryParams.
Functions
Calls Dodo operation subscriptions_cancel_change_plan (DELETE /subscriptions/{subscription_id}/change-plan/scheduled). Required parameters: none.
Calls Dodo operation subscriptions_change_plan (POST /subscriptions/{subscription_id}/change-plan). Required parameters: :product_id, :proration_billing_mode, :quantity.
Calls Dodo operation subscriptions_change_plan (POST /subscriptions/{subscription_id}/change-plan). Required parameters: :product_id, :proration_billing_mode, :quantity.
Calls Dodo operation subscriptions_charge (POST /subscriptions/{subscription_id}/charge). Required parameters: :product_price.
Calls Dodo operation subscriptions_charge (POST /subscriptions/{subscription_id}/charge). Required parameters: :product_price.
Calls Dodo operation subscriptions_create (POST /subscriptions). Required parameters: :billing, :customer, :product_id, :quantity.
Calls Dodo operation subscriptions_create (POST /subscriptions). Required parameters: :billing, :customer, :product_id, :quantity.
Calls Dodo operation subscriptions_credit_usage (GET /subscriptions/{subscription_id}/credit-usage). Required parameters: none.
Calls Dodo operation subscriptions_list (GET /subscriptions). Required parameters: none. Numbered pagination is zero-based.
Calls Dodo operation subscriptions_list (GET /subscriptions). Required parameters: none. Numbered pagination is zero-based.
Calls Dodo operation subscriptions_list (GET /subscriptions). Required parameters: none. Numbered pagination is zero-based.
Calls Dodo operation subscriptions_preview_change_plan (POST /subscriptions/{subscription_id}/change-plan/preview). Required parameters: :product_id, :proration_billing_mode, :quantity.
Calls Dodo operation subscriptions_preview_change_plan (POST /subscriptions/{subscription_id}/change-plan/preview). Required parameters: :product_id, :proration_billing_mode, :quantity.
Calls Dodo operation subscriptions_retrieve (GET /subscriptions/{subscription_id}). Required parameters: none.
Calls Dodo operation subscriptions_update (PATCH /subscriptions/{subscription_id}). Required parameters: none.
Calls Dodo operation subscriptions_update (PATCH /subscriptions/{subscription_id}). Required parameters: none.
Calls Dodo operation subscriptions_update (PATCH /subscriptions/{subscription_id}). Required parameters: none.
Calls Dodo operation subscriptions_update_payment_method (POST /subscriptions/{subscription_id}/update-payment-method). Required parameters: :payment_method.
Calls Dodo operation subscriptions_update_payment_method (POST /subscriptions/{subscription_id}/update-payment-method). Required parameters: :payment_method.
Calls Dodo operation subscriptions_usage_history (GET /subscriptions/{subscription_id}/usage-history). Required parameters: none. Numbered pagination is zero-based.
Calls Dodo operation subscriptions_usage_history (GET /subscriptions/{subscription_id}/usage-history). Required parameters: none. Numbered pagination is zero-based.
Calls Dodo operation subscriptions_usage_history (GET /subscriptions/{subscription_id}/usage-history). Required parameters: none. Numbered pagination is zero-based.
Types
@type change_plan_params() :: %{ :product_id => String.t(), :proration_billing_mode => DodoPayments.Enums.proration_billing_mode(), :quantity => number(), optional(:adaptive_currency_fees_inclusive) => boolean(), optional(:addons) => [DodoPayments.RequestTypes.attach_addon()], optional(:discount_code) => String.t(), optional(:discount_codes) => [String.t()], optional(:effective_at) => DodoPayments.Enums.effective_at(), optional(:metadata) => DodoPayments.RequestTypes.flat_metadata(), optional(:on_payment_failure) => DodoPayments.Enums.payment_failure_behavior(), optional(String.t()) => DodoPayments.RequestTypes.input_value() } | DodoPayments.RequestTypes.compatibility_params()
Parameters for subscriptions_change_plan. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionChangePlanParams.
@type charge_params() :: %{ :product_price => number(), optional(:adaptive_currency_fees_inclusive) => boolean(), optional(:customer_balance_config) => DodoPayments.RequestTypes.customer_balance_config(), optional(:metadata) => DodoPayments.RequestTypes.flat_metadata(), optional(:product_currency) => DodoPayments.Enums.currency(), optional(:product_description) => String.t(), optional(String.t()) => DodoPayments.RequestTypes.input_value() } | DodoPayments.RequestTypes.compatibility_params()
Parameters for subscriptions_charge. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionChargeParams.
@type create_params() :: %{ :billing => DodoPayments.RequestTypes.billing_address(), :customer => DodoPayments.RequestTypes.customer_request(), :product_id => String.t(), :quantity => number(), optional(:addons) => [DodoPayments.RequestTypes.attach_addon()], optional(:allowed_payment_method_types) => [ DodoPayments.Enums.payment_method_type() ], optional(:billing_currency) => DodoPayments.Enums.currency(), optional(:customer_business_name) => String.t(), optional(:discount_code) => String.t(), optional(:discount_codes) => [String.t()], optional(:force_3ds) => boolean(), optional(:mandate_min_amount_inr_paise) => number(), optional(:metadata) => DodoPayments.RequestTypes.flat_metadata(), optional(:on_demand) => DodoPayments.RequestTypes.on_demand_subscription(), optional(:one_time_product_cart) => [ DodoPayments.RequestTypes.one_time_product_cart_item() ], optional(:payment_link) => boolean(), optional(:payment_method_id) => String.t(), optional(:redirect_immediately) => boolean(), optional(:require_phone_number) => boolean(), optional(:return_url) => String.t(), optional(:short_link) => boolean(), optional(:show_saved_payment_methods) => boolean(), optional(:tax_id) => String.t(), optional(:trial_period_days) => number(), optional(String.t()) => DodoPayments.RequestTypes.input_value() } | DodoPayments.RequestTypes.compatibility_params()
Parameters for subscriptions_create. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionCreateParams.
@type list_params() :: %{ optional(:page_number) => number(), optional(:page_size) => number(), optional(:brand_id) => String.t(), optional(:cancel_at_next_billing_date) => boolean(), optional(:created_at_gte) => String.t(), optional(:created_at_lte) => String.t(), optional(:customer_id) => String.t(), optional(:product_id) => String.t(), optional(:status) => DodoPayments.Enums.subscription_status(), optional(String.t()) => DodoPayments.RequestTypes.input_value() } | DodoPayments.RequestTypes.compatibility_params()
Parameters for subscriptions_list. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionListParams.
@type preview_change_plan_params() :: %{ :product_id => String.t(), :proration_billing_mode => DodoPayments.Enums.proration_billing_mode(), :quantity => number(), optional(:adaptive_currency_fees_inclusive) => boolean(), optional(:addons) => [DodoPayments.RequestTypes.attach_addon()], optional(:discount_code) => String.t(), optional(:discount_codes) => [String.t()], optional(:effective_at) => DodoPayments.Enums.effective_at(), optional(:metadata) => DodoPayments.RequestTypes.flat_metadata(), optional(:on_payment_failure) => DodoPayments.Enums.payment_failure_behavior(), optional(String.t()) => DodoPayments.RequestTypes.input_value() } | DodoPayments.RequestTypes.compatibility_params()
Parameters for subscriptions_preview_change_plan. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionPreviewChangePlanParams.
@type update_params() :: %{ optional(:billing) => DodoPayments.RequestTypes.billing_address(), optional(:cancel_at_next_billing_date) => boolean(), optional(:cancel_reason) => String.t(), optional(:cancellation_comment) => String.t(), optional(:cancellation_feedback) => DodoPayments.Enums.cancellation_feedback(), optional(:credit_entitlement_cart) => [ DodoPayments.RequestTypes.subscription_credit_entitlement() ], optional(:customer_business_name) => String.t(), optional(:customer_name) => String.t(), optional(:disable_on_demand) => DodoPayments.RequestTypes.disable_on_demand(), optional(:metadata) => DodoPayments.RequestTypes.flat_metadata(), optional(:next_billing_date) => String.t(), optional(:pause) => boolean(), optional(:status) => DodoPayments.Enums.subscription_status(), optional(:subscription_period_count) => number(), optional(:subscription_period_interval) => DodoPayments.Enums.time_interval(), optional(:tax_id) => String.t(), optional(String.t()) => DodoPayments.RequestTypes.input_value() } | DodoPayments.RequestTypes.compatibility_params()
Parameters for subscriptions_update. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionUpdateParams.
@type update_payment_method_params() :: %{ :payment_method => DodoPayments.RequestTypes.subscription_payment_method(), optional(String.t()) => DodoPayments.RequestTypes.input_value() } | DodoPayments.RequestTypes.compatibility_params()
Parameters for subscriptions_update_payment_method. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionUpdatePaymentMethodParams.
@type usage_history_params() :: %{ optional(:page_number) => number(), optional(:page_size) => number(), optional(:end_date) => String.t(), optional(:meter_id) => String.t(), optional(:start_date) => String.t(), optional(String.t()) => DodoPayments.RequestTypes.input_value() } | DodoPayments.RequestTypes.compatibility_params()
Parameters for subscriptions_usage_history. Exact fields use atom keys; string-keyed and mixed-key maps remain supported. Source: locked upstream resources/subscriptions.ts declaration SubscriptionRetrieveUsageHistoryParams.
Functions
@spec cancel_scheduled_change_plan( DodoPayments.Client.t(), String.t() | integer(), keyword() ) :: {:ok, nil | DodoPayments.Response.t(nil)} | {:error, Exception.t()}
Calls Dodo operation subscriptions_cancel_change_plan (DELETE /subscriptions/{subscription_id}/change-plan/scheduled). Required parameters: none.
Options are request-local.
@spec change_plan( DodoPayments.Client.t(), String.t() | integer(), change_plan_params() ) :: {:ok, nil} | {:error, Exception.t()}
Calls Dodo operation subscriptions_change_plan (POST /subscriptions/{subscription_id}/change-plan). Required parameters: :product_id, :proration_billing_mode, :quantity.
API parameters must be supplied as a map.
@spec change_plan( DodoPayments.Client.t(), String.t() | integer(), change_plan_params(), keyword() ) :: {:ok, nil | DodoPayments.Response.t(nil)} | {:error, Exception.t()}
Calls Dodo operation subscriptions_change_plan (POST /subscriptions/{subscription_id}/change-plan). Required parameters: :product_id, :proration_billing_mode, :quantity.
The final argument contains request-local options.
@spec charge(DodoPayments.Client.t(), String.t() | integer(), charge_params()) :: {:ok, DodoPayments.SubscriptionChargeResponse.t()} | {:error, Exception.t()}
Calls Dodo operation subscriptions_charge (POST /subscriptions/{subscription_id}/charge). Required parameters: :product_price.
API parameters must be supplied as a map.
@spec charge( DodoPayments.Client.t(), String.t() | integer(), charge_params(), keyword() ) :: {:ok, DodoPayments.SubscriptionChargeResponse.t() | DodoPayments.Response.t(DodoPayments.SubscriptionChargeResponse.t())} | {:error, Exception.t()}
Calls Dodo operation subscriptions_charge (POST /subscriptions/{subscription_id}/charge). Required parameters: :product_price.
The final argument contains request-local options.
@spec create(DodoPayments.Client.t(), create_params()) :: {:ok, DodoPayments.SubscriptionCreateResponse.t()} | {:error, Exception.t()}
Calls Dodo operation subscriptions_create (POST /subscriptions). Required parameters: :billing, :customer, :product_id, :quantity.
API parameters must be supplied as a map.
@spec create(DodoPayments.Client.t(), create_params(), keyword()) :: {:ok, DodoPayments.SubscriptionCreateResponse.t() | DodoPayments.Response.t(DodoPayments.SubscriptionCreateResponse.t())} | {:error, Exception.t()}
Calls Dodo operation subscriptions_create (POST /subscriptions). Required parameters: :billing, :customer, :product_id, :quantity.
The final argument contains request-local options.
@spec credit_usage(DodoPayments.Client.t(), String.t() | integer(), keyword()) :: {:ok, DodoPayments.SubscriptionCreditUsageResponse.t() | DodoPayments.Response.t(DodoPayments.SubscriptionCreditUsageResponse.t())} | {:error, Exception.t()}
Calls Dodo operation subscriptions_credit_usage (GET /subscriptions/{subscription_id}/credit-usage). Required parameters: none.
Options are request-local.
@spec list(DodoPayments.Client.t()) :: {:ok, DodoPayments.Page.Numbered.t(DodoPayments.Subscription.t())} | {:error, Exception.t()}
Calls Dodo operation subscriptions_list (GET /subscriptions). Required parameters: none. Numbered pagination is zero-based.
Calls the operation with an empty parameter map.
@spec list(DodoPayments.Client.t(), list_params() | nil | keyword()) :: {:ok, DodoPayments.Page.Numbered.t(DodoPayments.Subscription.t()) | DodoPayments.Response.t( DodoPayments.Page.Numbered.t(DodoPayments.Subscription.t()) )} | {:error, Exception.t()}
Calls Dodo operation subscriptions_list (GET /subscriptions). Required parameters: none. Numbered pagination is zero-based.
Pass a map for Dodo parameters or a keyword list for request-local options.
@spec list(DodoPayments.Client.t(), list_params() | nil, keyword()) :: {:ok, DodoPayments.Page.Numbered.t(DodoPayments.Subscription.t()) | DodoPayments.Response.t( DodoPayments.Page.Numbered.t(DodoPayments.Subscription.t()) )} | {:error, Exception.t()}
Calls Dodo operation subscriptions_list (GET /subscriptions). Required parameters: none. Numbered pagination is zero-based.
Accepts both a Dodo parameter map and request-local options.
@spec preview_change_plan( DodoPayments.Client.t(), String.t() | integer(), preview_change_plan_params() ) :: {:ok, DodoPayments.SubscriptionPreviewChangePlanResponse.t()} | {:error, Exception.t()}
Calls Dodo operation subscriptions_preview_change_plan (POST /subscriptions/{subscription_id}/change-plan/preview). Required parameters: :product_id, :proration_billing_mode, :quantity.
API parameters must be supplied as a map.
@spec preview_change_plan( DodoPayments.Client.t(), String.t() | integer(), preview_change_plan_params(), keyword() ) :: {:ok, DodoPayments.SubscriptionPreviewChangePlanResponse.t() | DodoPayments.Response.t( DodoPayments.SubscriptionPreviewChangePlanResponse.t() )} | {:error, Exception.t()}
Calls Dodo operation subscriptions_preview_change_plan (POST /subscriptions/{subscription_id}/change-plan/preview). Required parameters: :product_id, :proration_billing_mode, :quantity.
The final argument contains request-local options.
@spec retrieve(DodoPayments.Client.t(), String.t() | integer(), keyword()) :: {:ok, DodoPayments.Subscription.t() | DodoPayments.Response.t(DodoPayments.Subscription.t())} | {:error, Exception.t()}
Calls Dodo operation subscriptions_retrieve (GET /subscriptions/{subscription_id}). Required parameters: none.
Options are request-local.
@spec update(DodoPayments.Client.t(), String.t() | integer()) :: {:ok, DodoPayments.Subscription.t()} | {:error, Exception.t()}
Calls Dodo operation subscriptions_update (PATCH /subscriptions/{subscription_id}). Required parameters: none.
Calls the operation with an empty parameter map.
@spec update( DodoPayments.Client.t(), String.t() | integer(), update_params() | nil | keyword() ) :: {:ok, DodoPayments.Subscription.t() | DodoPayments.Response.t(DodoPayments.Subscription.t())} | {:error, Exception.t()}
Calls Dodo operation subscriptions_update (PATCH /subscriptions/{subscription_id}). Required parameters: none.
Pass a map for Dodo parameters or a keyword list for request-local options.
@spec update( DodoPayments.Client.t(), String.t() | integer(), update_params() | nil, keyword() ) :: {:ok, DodoPayments.Subscription.t() | DodoPayments.Response.t(DodoPayments.Subscription.t())} | {:error, Exception.t()}
Calls Dodo operation subscriptions_update (PATCH /subscriptions/{subscription_id}). Required parameters: none.
Accepts both a Dodo parameter map and request-local options.
@spec update_payment_method( DodoPayments.Client.t(), String.t() | integer(), update_payment_method_params() ) :: {:ok, DodoPayments.SubscriptionUpdatePaymentMethodResponse.t()} | {:error, Exception.t()}
Calls Dodo operation subscriptions_update_payment_method (POST /subscriptions/{subscription_id}/update-payment-method). Required parameters: :payment_method.
API parameters must be supplied as a map.
@spec update_payment_method( DodoPayments.Client.t(), String.t() | integer(), update_payment_method_params(), keyword() ) :: {:ok, DodoPayments.SubscriptionUpdatePaymentMethodResponse.t() | DodoPayments.Response.t( DodoPayments.SubscriptionUpdatePaymentMethodResponse.t() )} | {:error, Exception.t()}
Calls Dodo operation subscriptions_update_payment_method (POST /subscriptions/{subscription_id}/update-payment-method). Required parameters: :payment_method.
The final argument contains request-local options.
@spec usage_history(DodoPayments.Client.t(), String.t() | integer()) :: {:ok, DodoPayments.Page.Numbered.t(DodoPayments.SubscriptionUsageHistory.t())} | {:error, Exception.t()}
Calls Dodo operation subscriptions_usage_history (GET /subscriptions/{subscription_id}/usage-history). Required parameters: none. Numbered pagination is zero-based.
Calls the operation with an empty parameter map.
@spec usage_history( DodoPayments.Client.t(), String.t() | integer(), usage_history_params() | nil | keyword() ) :: {:ok, DodoPayments.Page.Numbered.t(DodoPayments.SubscriptionUsageHistory.t()) | DodoPayments.Response.t( DodoPayments.Page.Numbered.t(DodoPayments.SubscriptionUsageHistory.t()) )} | {:error, Exception.t()}
Calls Dodo operation subscriptions_usage_history (GET /subscriptions/{subscription_id}/usage-history). Required parameters: none. Numbered pagination is zero-based.
Pass a map for Dodo parameters or a keyword list for request-local options.
@spec usage_history( DodoPayments.Client.t(), String.t() | integer(), usage_history_params() | nil, keyword() ) :: {:ok, DodoPayments.Page.Numbered.t(DodoPayments.SubscriptionUsageHistory.t()) | DodoPayments.Response.t( DodoPayments.Page.Numbered.t(DodoPayments.SubscriptionUsageHistory.t()) )} | {:error, Exception.t()}
Calls Dodo operation subscriptions_usage_history (GET /subscriptions/{subscription_id}/usage-history). Required parameters: none. Numbered pagination is zero-based.
Accepts both a Dodo parameter map and request-local options.