Stripe.API behaviour (stripity_stripe v3.3.2)

View Source

Low-level utilities for interacting with the Stripe API.

Usually the utilities in Stripe.Request are a better way to write custom interactions with the API.

Summary

Functions

Returns backoff in milliseconds.

A low level utility function to generate a new idempotency key for Idempotency-Key request header value.

In config.exs your implicit or explicit configuration is: config :stripity_stripe,

A low level utility function to make an OAuth request to the Stripe API

A low level utility function to make a direct request to the Stripe API

A low level utility function to make a direct request to the files Stripe API

Checks if an error is a problem that we should retry on. This includes both socket errors that may represent an intermittent problem and some special HTTP statuses.

Types

body()

@type body() :: iodata() | {:multipart, list()}

headers()

@type headers() :: %{required(String.t()) => String.t()} | %{}

method()

@type method() :: :get | :post | :put | :delete | :patch

Callbacks

oauth_request(method, t, map)

@callback oauth_request(method(), String.t(), map()) :: {:ok, map()}

Functions

backoff(attempts, config)

@spec backoff(attempts :: non_neg_integer(), config :: Keyword.t()) ::
  non_neg_integer()

Returns backoff in milliseconds.

generate_idempotency_key()

@spec generate_idempotency_key() :: binary()

A low level utility function to generate a new idempotency key for Idempotency-Key request header value.

json_library()

@spec json_library() :: module()

In config.exs your implicit or explicit configuration is: config :stripity_stripe,

json_library: Poison # defaults to Jason but can be configured to Poison

oauth_request(method, endpoint, body, api_key \\ nil, opts \\ [])

A low level utility function to make an OAuth request to the Stripe API

request(body, method, endpoint, headers, opts)

@spec request(map(), method(), String.t(), headers(), list()) ::
  {:ok, map()} | {:error, Stripe.Error.t()}

A low level utility function to make a direct request to the Stripe API

Setting the api key

request(%{}, :get, "/customers", %{}, api_key: "bogus key")

Setting api version

The api version defaults to 2025-11-17.clover but a custom version can be passed in as follows:

request(%{}, :get, "/customers", %{}, api_version: "2018-11-04")

Connect Accounts

If you'd like to make a request on behalf of another Stripe account utilizing the Connect program, you can pass the other Stripe account's ID to the request function as follows:

request(%{}, :get, "/customers", %{}, connect_account: "acc_134151")

request_file_upload(body, method, endpoint, headers, opts)

@spec request_file_upload(map(), method(), String.t(), headers(), list()) ::
  {:ok, map()} | {:error, Stripe.Error.t()}

A low level utility function to make a direct request to the files Stripe API

should_retry?(response, attempts \\ 0, config \\ [])

@spec should_retry?(
  http_success() | http_failure(),
  attempts :: non_neg_integer(),
  config :: Keyword.t()
) :: boolean()

Checks if an error is a problem that we should retry on. This includes both socket errors that may represent an intermittent problem and some special HTTP statuses.

supervisor_children()