defmodule ExOAPI.Stripe.SDK.Sources do @doc """ **description**:
Verify a given source.
""" @spec post_sources_source_verify( client :: ExOAPI.Client.t(), body :: %{:values => [String.t()], :expand => [String.t()]} | map(), source :: String.t() ) :: {:ok, ExOAPI.Stripe.Schemas.Error.t() | ExOAPI.Stripe.Schemas.Source.t() | map()} | {:error, any()} def post_sources_source_verify(%ExOAPI.Client{} = client, body, source) do client |> ExOAPI.Client.set_module(ExOAPI.Stripe.SDK) |> ExOAPI.Client.add_method(:post) |> ExOAPI.Client.add_base_url("https://api.stripe.com/", :exoapi_default) |> ExOAPI.Client.add_path("/v1/sources/{source}/verify") |> ExOAPI.Client.add_body(body) |> ExOAPI.Client.replace_in_path("source", source) |> ExOAPI.Client.request() end @doc """ **description**:Retrieves a new Source MandateNotification.
""" @type get_sources_source_mandate_notifications_mandate_notification_opts :: {:expand, String.t()} @spec get_sources_source_mandate_notifications_mandate_notification( client :: ExOAPI.Client.t(), source :: String.t(), mandate_notification :: String.t(), list(get_sources_source_mandate_notifications_mandate_notification_opts()) ) :: {:ok, ExOAPI.Stripe.Schemas.Error.t() | ExOAPI.Stripe.Schemas.SourceMandateNotification.t() | map()} | {:error, any()} def get_sources_source_mandate_notifications_mandate_notification( %ExOAPI.Client{} = client, source, mandate_notification, opts \\ [] ) do client |> ExOAPI.Client.set_module(ExOAPI.Stripe.SDK) |> ExOAPI.Client.add_method(:get) |> ExOAPI.Client.add_base_url("https://api.stripe.com/", :exoapi_default) |> ExOAPI.Client.add_path("/v1/sources/{source}/mandate_notifications/{mandate_notification}") |> ExOAPI.Client.replace_in_path("source", source) |> ExOAPI.Client.replace_in_path("mandate_notification", mandate_notification) |> ExOAPI.Client.add_arg_opts(:keyword, :query, opts, [ {:expand, "expand", "deepObject", true} ]) |> ExOAPI.Client.request() end @doc """ **description**:Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
This request accepts the metadata and owner as arguments. It is also possible to update type specific information for selected payment methods. Please refer to our payment method guides for more detail.
Retrieves an existing source object. Supply the unique source ID from a source creation request and Stripe will return the corresponding up-to-date source object information.
""" @type get_sources_source_opts :: {:expand, String.t()} | {:client_secret, String.t()} @spec get_sources_source( client :: ExOAPI.Client.t(), source :: String.t(), list(get_sources_source_opts()) ) :: {:ok, ExOAPI.Stripe.Schemas.Error.t() | ExOAPI.Stripe.Schemas.Source.t() | map()} | {:error, any()} def get_sources_source(%ExOAPI.Client{} = client, source, opts \\ []) do client |> ExOAPI.Client.set_module(ExOAPI.Stripe.SDK) |> ExOAPI.Client.add_method(:get) |> ExOAPI.Client.add_base_url("https://api.stripe.com/", :exoapi_default) |> ExOAPI.Client.add_path("/v1/sources/{source}") |> ExOAPI.Client.replace_in_path("source", source) |> ExOAPI.Client.add_arg_opts(:keyword, :query, opts, [ {:expand, "expand", "deepObject", true}, {:client_secret, "client_secret", "form", true} ]) |> ExOAPI.Client.request() end @doc """ **description**:Creates a new source object.
""" @spec post_sources( client :: ExOAPI.Client.t(), body :: %{ :usage => String.t() | :reusable | :single_use, :type => String.t(), :token => String.t(), :statement_descriptor => String.t(), :source_order => %{ :shipping => %{ :tracking_number => String.t(), :phone => String.t(), :name => String.t(), :carrier => String.t(), :address => %{ :state => String.t(), :postal_code => String.t(), :line2 => String.t(), :line1 => String.t(), :country => String.t(), :city => String.t() } }, :items => [ %{ :type => String.t() | :discount | :shipping | :sku | :tax, :quantity => integer(), :parent => String.t(), :description => String.t(), :currency => String.t(), :amount => integer() } ] }, :redirect => %{:return_url => String.t()}, :receiver => %{:refund_attributes_method => String.t() | :email | :manual | :none}, :owner => %{ :phone => String.t(), :name => String.t(), :email => String.t(), :address => %{ :state => String.t(), :postal_code => String.t(), :line2 => String.t(), :line1 => String.t(), :country => String.t(), :city => String.t() } }, :original_source => String.t(), :metadata => map(), :mandate => %{ :notification_method => String.t() | :deprecated_none | :email | :manual | :none | :stripe_email, :interval => String.t() | :one_time | :scheduled | :variable, :currency => String.t(), :amount => String.t() | integer(), :acceptance => %{ :user_agent => String.t(), :type => String.t() | :offline | :online, :status => String.t() | :accepted | :pending | :refused | :revoked, :online => %{:user_agent => String.t(), :ip => String.t(), :date => integer()}, :offline => %{:contact_email => String.t()}, :ip => String.t(), :date => integer() } }, :flow => String.t() | :code_verification | :none | :receiver | :redirect, :expand => [String.t()], :customer => String.t(), :currency => String.t(), :amount => integer() } | map() ) :: {:ok, ExOAPI.Stripe.Schemas.Error.t() | ExOAPI.Stripe.Schemas.Source.t() | map()} | {:error, any()} def post_sources(%ExOAPI.Client{} = client, body) do client |> ExOAPI.Client.set_module(ExOAPI.Stripe.SDK) |> ExOAPI.Client.add_method(:post) |> ExOAPI.Client.add_base_url("https://api.stripe.com/", :exoapi_default) |> ExOAPI.Client.add_path("/v1/sources") |> ExOAPI.Client.add_body(body) |> ExOAPI.Client.request() end @doc """ **description**:List source transactions for a given source.
""" @type get_sources_source_source_transactions_opts :: {:starting_after, String.t()} | {:limit, String.t()} | {:expand, String.t()} | {:ending_before, String.t()} @spec get_sources_source_source_transactions( client :: ExOAPI.Client.t(), source :: String.t(), list(get_sources_source_source_transactions_opts()) ) :: {:ok, ExOAPI.Stripe.Schemas.Error.t() | %{ :url => String.t(), :object => String.t() | :list, :has_more => boolean(), :data => [ExOAPI.Stripe.Schemas.SourceTransaction.t()] } | map()} | {:error, any()} def get_sources_source_source_transactions(%ExOAPI.Client{} = client, source, opts \\ []) do client |> ExOAPI.Client.set_module(ExOAPI.Stripe.SDK) |> ExOAPI.Client.add_method(:get) |> ExOAPI.Client.add_base_url("https://api.stripe.com/", :exoapi_default) |> ExOAPI.Client.add_path("/v1/sources/{source}/source_transactions") |> ExOAPI.Client.replace_in_path("source", source) |> ExOAPI.Client.add_arg_opts(:keyword, :query, opts, [ {:starting_after, "starting_after", "form", true}, {:limit, "limit", "form", true}, {:expand, "expand", "deepObject", true}, {:ending_before, "ending_before", "form", true} ]) |> ExOAPI.Client.request() end @doc """ **description**:Retrieve an existing source transaction object. Supply the unique source ID from a source creation request and the source transaction ID and Stripe will return the corresponding up-to-date source object information.
""" @type get_sources_source_source_transactions_source_transaction_opts :: {:expand, String.t()} @spec get_sources_source_source_transactions_source_transaction( client :: ExOAPI.Client.t(), source_transaction :: String.t(), source :: String.t(), list(get_sources_source_source_transactions_source_transaction_opts()) ) :: {:ok, ExOAPI.Stripe.Schemas.Error.t() | ExOAPI.Stripe.Schemas.SourceTransaction.t() | map()} | {:error, any()} def get_sources_source_source_transactions_source_transaction( %ExOAPI.Client{} = client, source_transaction, source, opts \\ [] ) do client |> ExOAPI.Client.set_module(ExOAPI.Stripe.SDK) |> ExOAPI.Client.add_method(:get) |> ExOAPI.Client.add_base_url("https://api.stripe.com/", :exoapi_default) |> ExOAPI.Client.add_path("/v1/sources/{source}/source_transactions/{source_transaction}") |> ExOAPI.Client.replace_in_path("source_transaction", source_transaction) |> ExOAPI.Client.replace_in_path("source", source) |> ExOAPI.Client.add_arg_opts(:keyword, :query, opts, [ {:expand, "expand", "deepObject", true} ]) |> ExOAPI.Client.request() end end