Stripe 
Stripe API client for Elixir. Documentation
- Everything except for Relay features are complete and tested.
- Looking for more contributors/maintainers for this project, currently need help with documentation.
Installation
-
Add
stripeto your list of dependencies inmix.exs:
def deps do
[{:stripe, "~> 0.6.0", hex: :stripe_elixir}]
end-
(Pre-Elixir 1.4) Ensure
stripeis started before your application:
def application do
[applications: [:stripe]]
end- Make sure your stripe secret_key is added to your config file:
config :stripe, :secret_key, <YOUR_SECRET_KEY>- Alternatively, you can also set the secret key as an environment variable:
export STRIPE_SECRET_KEY=<YOUR_SECRET_KEY>Basic Usage
This lib closely follows the official Ruby Client API.
Stripe.{RESOURCE}.createStripe.{RESOURCE}.retrieveStripe.{RESOURCE}.updateStripe.{RESOURCE}.list
Returns {:ok, RESPONSE_BODY} when the request is successful.
} tuples are returned when there is a request/api error See all error types at https://stripe.com/docs/api/ruby#errors
Some Basic Examples
Create a customer
{:ok, %{"id" => "cus_asdfghjkl"} =
Stripe.Customer.create(email: "example@gmail.com")Note that either KeywordLists or Maps with either String or Atom keys are acceptable for arguments and options. So all of the following would also work:
Stripe.Customer.create(%{email: "example@gmail.com"})
Stripe.Customer.create(%{"email" => "example@gmail.com"})
Stripe.Customer.create([{"email", "example@gmail.com"}]) Retrieve that customer:
{:ok, customer} = Stripe.Customer.retrieve("cus_asdfghjkl")Update the customer:
{:ok, %{"metadata" => %{"somedata" => "somevalue"}}} =
Stripe.Customer.update("cus_asdfghjkl", metadata: [somedata: "somevalue"])Delete the customer
{:ok, %{"deleted" => true}} = Stripe.Customer.delete("cus_asdfghjkl")Stripe Connect
To perform a Direct Charge on a connected stripe account, simply pass :stripe_account as an option
Stripe.Charge.create([customer: "cus_asdfghjkl", amount: 400], stripe_account: "acct_sOMeAcCountId")