Gringotts Logo

Gringotts is a payment processing library in Elixir integrating various payment gateways, this draws motivation for shopify's activemerchant gem.

Build StatusCoverage StatusDocs coverage

A simple and unified API to access dozens of different payment gateways with very different internal APIs is what Gringotts has to offer you.

Installation

From hex.pm

TODO: add this once the api is hosted on hexpm

Usage

This simple example demonstrates how a purchase can be made using a person's credit card details.

Add configs in config/config.exs file.

config :Gringotts, Gringotts.Gateways.Stripe,
adapter: Gringotts.Gateways.Stripe,
api_key: "YOUR_KEY",
default_currency: "USD"

Copy and paste this code in your module

alias Gringotts.Gateways.Stripe
alias Gringotts.{CreditCard, Address, Worker, Gateways}
card = %CreditCard{
first_name: "John",
last_name: "Smith",
number: "4242424242424242",
year: "2017",
month: "12",
cvc: "123"
}
address = %Address{
street1: "123 Main",
city: "New York",
region: "NY",
country: "US",
postal_code: "11111"
}
case Gringotts.purchase(:my_gateway, Stripe, 199.95, card, billing_address: address,
description: "Amazing T-Shirt") do
{:ok, %{authorization: authorization}} ->
IO.puts("Payment authorized #{authorization}")
{:error, %{code: :declined, reason: reason}} ->
IO.puts("Payment declined #{reason}")
{:error, %{code: error}} ->
IO.puts("Payment error #{error}")
end

Supported Gateways

Road Map

License

MIT