Skip to content

PiggyPot/gocardless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gocardless

Hex pm

Elixir wrapper for the GoCardless API.

Installation

  1. Add gocardless to your list of dependencies in mix.exs:
def deps do
  [{:gocardless, "~> 1.0.3"}]
end

then...

mix deps.get
  1. Ensure gocardless is started before your application:
def application do
  [applications: [:gocardless]]
end
  1. Add configuration to your app:
config :gocardless,
  api_base: "https://api-sandbox.gocardless.com/",
  api_version: "2015-07-06",
  access_token: "<your-token>"
  1. Example usage:
iex> params = %{
  customers: %{
    email: "name@email.com",
    given_name: "Firstname",
    family_name: "Lastname",
    country_code: "GB"
  }
}
iex> Gocardless.Client.create_customer(params)
{:ok,
  %{"customers" => %{"address_line1" => nil, "address_line2" => nil,
      "address_line3" => nil, "city" => nil, "company_name" => nil,
      "country_code" => "GB", "created_at" => "2017-06-23T13:04:45.459Z",
      "email" => "name@email.com", "family_name" => "Lastname",
      "given_name" => "Firstname", "id" => "CU0009999999", "language" => "en",
      "metadata" => %{}, "postal_code" => nil, "region" => nil,
      "swedish_identity_number" => nil}}}

For more information, see the Hex docs

You can read the docs here

Development Setup

If you are making changes to this codebase and want to test your code, you will need to copy the sample secret file.

cp config/secret.sample.exs config/secret.exs

Then add your GoCardless token where the key is access_token.

Implementation state

Resources that are implemented so far.

  • Customers
  • Customer Bank Accounts
  • Mandates
  • Payments
  • Creditors
  • Events
  • Creditor Bank Accounts
  • Payouts
  • Redirect Flows
  • Refunds
  • Subscriptions

Areas of the codebase that can be improved.

  • Testing error cases

License

The gocardless lib is released under the MIT License.