Braintree.Plan (Braintree v0.16.0)
Plans represent recurring billing plans in a Braintree merchant account. The API for plans is read only.
For additional reference see: https://developers.braintreepayments.com/reference/request/plan/all/ruby
Summary
Functions
Get a list of all the plans defined in the merchant account. If there are no plans an empty list is returned.
Create a new plan under a merchant account.
Delete a plan defined in the merchant account by the plan id.
A plan can't be deleted if it has any former or current subscriptions associated with it.
If there is no plan with the specified id, {:error, :not_found}
is returned.
Get a specific plan defined in the merchant account by the plan id. If there is
no plan with the specified id, {:error, :not_found}
is returned.
Updates a specific plan defined in the merchant account by the plan id. If there is
no plan with the specified id, {:error, :not_found}
is returned.
Types
@type t() :: %Braintree.Plan{ add_ons: [any()], balance: String.t(), billing_day_of_month: String.t(), billing_frequency: String.t(), created_at: String.t(), currency_iso_code: String.t(), description: String.t(), discounts: [any()], id: String.t(), name: String.t(), number_of_billing_cycles: String.t(), price: String.t(), trial_duration: String.t(), trial_duration_unit: String.t(), trial_period: String.t(), updated_at: String.t() }
Functions
@spec all(Keyword.t()) :: {:ok, [t()]} | Braintree.HTTP.error()
Get a list of all the plans defined in the merchant account. If there are no plans an empty list is returned.
Example
{:ok, plans} = Braintree.Plan.all()
@spec create(map(), Keyword.t()) :: {:ok, t()} | Braintree.HTTP.error()
Create a new plan under a merchant account.
Example
{:ok, plan} = Braintree.Plan.create(%{
name: "a plan",
billing_frequency: 3,
currency_iso_code: "USD",
price: "10.00"
})
@spec delete(String.t(), Keyword.t()) :: :ok | Braintree.HTTP.error()
Delete a plan defined in the merchant account by the plan id.
A plan can't be deleted if it has any former or current subscriptions associated with it.
If there is no plan with the specified id, {:error, :not_found}
is returned.
@spec find(String.t(), Keyword.t()) :: {:ok, t()} | Braintree.HTTP.error()
Get a specific plan defined in the merchant account by the plan id. If there is
no plan with the specified id, {:error, :not_found}
is returned.
Example
{:ok, plan} = Braintree.Plan.find("existing plan_id")
{:error, :not_found} = Braintree.Plan.find("non-existing plan_id")
@spec update(String.t(), map(), Keyword.t()) :: {:ok, t()} | Braintree.HTTP.error()
Updates a specific plan defined in the merchant account by the plan id. If there is
no plan with the specified id, {:error, :not_found}
is returned.
Example
{:ok, updated_plan} = Braintree.Plan.find("existing plan_id", %{name: "new_name"})
{:error, :not_found} = Braintree.Plan.find("non-existing plan_id")