DodoPayments.Subscriptions (dodo_payments v0.1.0)

Copy Markdown View Source

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

change_plan_params()

@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.

charge_params()

@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.

create_params()

@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.

list_params()

@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.

preview_change_plan_params()

@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.

update_params()

@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.

update_payment_method_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.

usage_history_params()

@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

cancel_scheduled_change_plan(client, subscription_id, opts \\ [])

@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.

change_plan(client, subscription_id, params)

@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.

change_plan(client, subscription_id, params, opts)

@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.

charge(client, subscription_id, params)

Calls Dodo operation subscriptions_charge (POST /subscriptions/{subscription_id}/charge). Required parameters: :product_price.

API parameters must be supplied as a map.

charge(client, subscription_id, params, opts)

Calls Dodo operation subscriptions_charge (POST /subscriptions/{subscription_id}/charge). Required parameters: :product_price.

The final argument contains request-local options.

create(client, params)

This function is deprecated. Use DodoPayments.CheckoutSessions.create/2 for new integrations.

Calls Dodo operation subscriptions_create (POST /subscriptions). Required parameters: :billing, :customer, :product_id, :quantity.

API parameters must be supplied as a map.

create(client, params, opts)

This function is deprecated. Use DodoPayments.CheckoutSessions.create/2 for new integrations.

Calls Dodo operation subscriptions_create (POST /subscriptions). Required parameters: :billing, :customer, :product_id, :quantity.

The final argument contains request-local options.

credit_usage(client, subscription_id, opts \\ [])

Calls Dodo operation subscriptions_credit_usage (GET /subscriptions/{subscription_id}/credit-usage). Required parameters: none.

Options are request-local.

list(client)

Calls Dodo operation subscriptions_list (GET /subscriptions). Required parameters: none. Numbered pagination is zero-based.

Calls the operation with an empty parameter map.

list(client, opts)

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.

list(client, params, opts)

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.

preview_change_plan(client, subscription_id, params)

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.

preview_change_plan(client, subscription_id, params, opts)

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.

retrieve(client, subscription_id, opts \\ [])

Calls Dodo operation subscriptions_retrieve (GET /subscriptions/{subscription_id}). Required parameters: none.

Options are request-local.

update(client, subscription_id)

@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.

update(client, subscription_id, opts)

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.

update(client, subscription_id, params, opts)

Calls Dodo operation subscriptions_update (PATCH /subscriptions/{subscription_id}). Required parameters: none.

Accepts both a Dodo parameter map and request-local options.

update_payment_method(client, subscription_id, params)

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.

update_payment_method(client, subscription_id, params, opts)

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.

usage_history(client, subscription_id)

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.

usage_history(client, subscription_id, opts)

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.

usage_history(client, subscription_id, params, opts)

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.