lib/stripe/http_client.ex

defmodule Stripe.HTTPClient do
  @callback init() :: :ok

  @callback request(
              method :: atom(),
              url :: binary(),
              headers :: [{binary(), binary()}],
              body :: binary(),
              opts :: keyword()
            ) ::
              {:ok,
               %{
                 status: 200..599,
                 headers: [{binary(), binary()}],
                 body: binary()
               }}
              | {:error, term()}
end