View Source ExOAPI.Stripe.SDK.SetupIntents (exoapi_stripe v0.1.4)

Link to this section Summary

Functions

description: <p>Returns a list of SetupIntents.</p>

description: <p>Retrieves the details of a SetupIntent that has previously been created. </p>

description: <p>Creates a SetupIntent object.</p>

description: <p>Updates a SetupIntent object.</p>

description: <p>A SetupIntent object can be canceled when it is in one of these statuses: <code>requires_payment_method</code>, <code>requires_confirmation</code>, or <code>requires_action</code>. </p>

description: <p>Confirm that your customer intends to set up the current or provided payment method. For example, you would confirm a SetupIntent when a customer hits the “Save” button on a payment method management page on your website.</p>

description: <p>Verifies microdeposits on a SetupIntent object.</p>

Link to this section Types

Link to this type

get_setup_intents_intent_opts()

View Source
@type get_setup_intents_intent_opts() ::
  {:expand, String.t()} | {:client_secret, String.t()}
Link to this type

get_setup_intents_opts()

View Source
@type get_setup_intents_opts() ::
  {:starting_after, String.t()}
  | {:payment_method, String.t()}
  | {:limit, String.t()}
  | {:expand, String.t()}
  | {:ending_before, String.t()}
  | {:customer, String.t()}
  | {:created, String.t()}

Link to this section Functions

Link to this function

get_setup_intents(client, opts \\ [])

View Source
@spec get_setup_intents(client :: ExOAPI.Client.t(), [get_setup_intents_opts()]) ::
  {:ok,
   ExOAPI.Stripe.Schemas.Error.t()
   | %{
       url: String.t(),
       object: String.t() | :list,
       has_more: boolean(),
       data: [ExOAPI.Stripe.Schemas.SetupIntent.t()]
     }
   | map()}
  | {:error, any()}

description: <p>Returns a list of SetupIntents.</p>

Link to this function

get_setup_intents_intent(client, intent, opts \\ [])

View Source
@spec get_setup_intents_intent(
  client :: ExOAPI.Client.t(),
  intent :: String.t(),
  [get_setup_intents_intent_opts()]
) ::
  {:ok,
   ExOAPI.Stripe.Schemas.Error.t()
   | ExOAPI.Stripe.Schemas.SetupIntent.t()
   | map()}
  | {:error, any()}

description: <p>Retrieves the details of a SetupIntent that has previously been created. </p>

Client-side retrieval using a publishable key is allowed when the client_secret is provided in the query string.

When retrieved with a publishable key, only a subset of properties will be returned. Please refer to the SetupIntent object reference for more details.

Link to this function

post_setup_intents(client, body)

View Source
@spec post_setup_intents(
  client :: ExOAPI.Client.t(),
  body ::
    %{
      usage: String.t() | :off_session | :on_session,
      single_use: %{currency: String.t(), amount: integer()},
      return_url: String.t(),
      payment_method_types: [String.t()],
      payment_method_options: %{
        us_bank_account: %{
          verification_method:
            String.t() | :automatic | :instant | :microdeposits
        },
        sepa_debit: %{mandate_options: %{}},
        card: %{
          request_three_d_secure: String.t() | :any | :automatic,
          mandate_options: %{
            supported_types: [String.t() | :india],
            start_date: integer(),
            reference: String.t(),
            interval_count: integer(),
            interval: String.t() | :day | :month | :sporadic | :week | :year,
            end_date: integer(),
            description: String.t(),
            currency: String.t(),
            amount_type: String.t() | :fixed | :maximum,
            amount: integer()
          }
        },
        acss_debit: %{
          verification_method:
            String.t() | :automatic | :instant | :microdeposits,
          mandate_options: %{
            transaction_type: String.t() | :business | :personal,
            payment_schedule: String.t() | :combined | :interval | :sporadic,
            interval_description: String.t(),
            default_for: [String.t() | :invoice | :subscription],
            custom_mandate_url: String.t()
          },
          currency: String.t() | :cad | :usd
        }
      },
      payment_method: String.t(),
      on_behalf_of: String.t(),
      metadata: map(),
      mandate_data: %{
        customer_acceptance: %{
          type: String.t() | :offline | :online,
          online: %{user_agent: String.t(), ip_address: String.t()},
          offline: %{},
          accepted_at: integer()
        }
      },
      expand: [String.t()],
      description: String.t(),
      customer: String.t(),
      confirm: boolean()
    }
    | map()
) ::
  {:ok,
   ExOAPI.Stripe.Schemas.Error.t()
   | ExOAPI.Stripe.Schemas.SetupIntent.t()
   | map()}
  | {:error, any()}

description: <p>Creates a SetupIntent object.</p>

After the SetupIntent is created, attach a payment method and confirmto collect any required permissions to charge the payment method later.

Link to this function

post_setup_intents_intent(client, body, intent)

View Source
@spec post_setup_intents_intent(
  client :: ExOAPI.Client.t(),
  body ::
    %{
      payment_method_types: [String.t()],
      payment_method_options: %{
        us_bank_account: %{
          verification_method:
            String.t() | :automatic | :instant | :microdeposits
        },
        sepa_debit: %{mandate_options: %{}},
        card: %{
          request_three_d_secure: String.t() | :any | :automatic,
          mandate_options: %{
            supported_types: [String.t() | :india],
            start_date: integer(),
            reference: String.t(),
            interval_count: integer(),
            interval: String.t() | :day | :month | :sporadic | :week | :year,
            end_date: integer(),
            description: String.t(),
            currency: String.t(),
            amount_type: String.t() | :fixed | :maximum,
            amount: integer()
          }
        },
        acss_debit: %{
          verification_method:
            String.t() | :automatic | :instant | :microdeposits,
          mandate_options: %{
            transaction_type: String.t() | :business | :personal,
            payment_schedule: String.t() | :combined | :interval | :sporadic,
            interval_description: String.t(),
            default_for: [String.t() | :invoice | :subscription],
            custom_mandate_url: String.t()
          },
          currency: String.t() | :cad | :usd
        }
      },
      payment_method: String.t(),
      metadata: String.t() | map(),
      expand: [String.t()],
      description: String.t(),
      customer: String.t()
    }
    | map(),
  intent :: String.t()
) ::
  {:ok,
   ExOAPI.Stripe.Schemas.Error.t()
   | ExOAPI.Stripe.Schemas.SetupIntent.t()
   | map()}
  | {:error, any()}

description: <p>Updates a SetupIntent object.</p>

Link to this function

post_setup_intents_intent_cancel(client, body, intent)

View Source
@spec post_setup_intents_intent_cancel(
  client :: ExOAPI.Client.t(),
  body ::
    %{
      expand: [String.t()],
      cancellation_reason:
        String.t() | :abandoned | :duplicate | :requested_by_customer
    }
    | map(),
  intent :: String.t()
) ::
  {:ok,
   ExOAPI.Stripe.Schemas.Error.t()
   | ExOAPI.Stripe.Schemas.SetupIntent.t()
   | map()}
  | {:error, any()}

description: <p>A SetupIntent object can be canceled when it is in one of these statuses: <code>requires_payment_method</code>, <code>requires_confirmation</code>, or <code>requires_action</code>. </p>

Once canceled, setup is abandoned and any operations on the SetupIntent will fail with an error.

Link to this function

post_setup_intents_intent_confirm(client, body, intent)

View Source
@spec post_setup_intents_intent_confirm(
  client :: ExOAPI.Client.t(),
  body ::
    %{
      return_url: String.t(),
      payment_method_options: %{
        us_bank_account: %{
          verification_method:
            String.t() | :automatic | :instant | :microdeposits
        },
        sepa_debit: %{mandate_options: %{}},
        card: %{
          request_three_d_secure: String.t() | :any | :automatic,
          mandate_options: %{
            supported_types: [String.t() | :india],
            start_date: integer(),
            reference: String.t(),
            interval_count: integer(),
            interval: String.t() | :day | :month | :sporadic | :week | :year,
            end_date: integer(),
            description: String.t(),
            currency: String.t(),
            amount_type: String.t() | :fixed | :maximum,
            amount: integer()
          }
        },
        acss_debit: %{
          verification_method:
            String.t() | :automatic | :instant | :microdeposits,
          mandate_options: %{
            transaction_type: String.t() | :business | :personal,
            payment_schedule: String.t() | :combined | :interval | :sporadic,
            interval_description: String.t(),
            default_for: [String.t() | :invoice | :subscription],
            custom_mandate_url: String.t()
          },
          currency: String.t() | :cad | :usd
        }
      },
      payment_method: String.t(),
      mandate_data:
        %{
          customer_acceptance: %{
            type: String.t() | :online,
            online: %{user_agent: String.t(), ip_address: String.t()}
          }
        }
        | %{
            customer_acceptance: %{
              type: String.t() | :offline | :online,
              online: %{user_agent: String.t(), ip_address: String.t()},
              offline: %{},
              accepted_at: integer()
            }
          },
      expand: [String.t()],
      client_secret: String.t()
    }
    | map(),
  intent :: String.t()
) ::
  {:ok,
   ExOAPI.Stripe.Schemas.Error.t()
   | ExOAPI.Stripe.Schemas.SetupIntent.t()
   | map()}
  | {:error, any()}

description: <p>Confirm that your customer intends to set up the current or provided payment method. For example, you would confirm a SetupIntent when a customer hits the “Save” button on a payment method management page on your website.</p>

If the selected payment method does not require any additionalsteps from the customer, the SetupIntent will transition to the succeeded status.

Otherwise, it will transition to the requires_action status andsuggest additional actions via next_action. If setup fails, the SetupIntent will transition to the requires_payment_method status.

Link to this function

post_setup_intents_intent_verify_microdeposits(client, body, intent)

View Source
@spec post_setup_intents_intent_verify_microdeposits(
  client :: ExOAPI.Client.t(),
  body ::
    %{
      expand: [String.t()],
      descriptor_code: String.t(),
      client_secret: String.t(),
      amounts: [integer()]
    }
    | map(),
  intent :: String.t()
) ::
  {:ok,
   ExOAPI.Stripe.Schemas.Error.t()
   | ExOAPI.Stripe.Schemas.SetupIntent.t()
   | map()}
  | {:error, any()}

description: <p>Verifies microdeposits on a SetupIntent object.</p>