README.md

# BepaidEx - Elixir Library for bePaid payment processing gateway

[![CircleCI](https://circleci.com/gh/PavelTyk/bepaid_ex/tree/master.svg?style=shield)](https://circleci.com/gh/PavelTyk/bepaid_ex/tree/master)
[![Hex.pm](https://img.shields.io/librariesio/release/hex/bepaid_ex/0.9.0.svg)](https://hex.pm/packages/bepaid_ex)
[![Hex.pm](https://img.shields.io/hexpm/v/bepaid_ex.svg)](https://hex.pm/packages/bepaid_ex)

The BepaidEx Elixir library provides convenient access to the [bePaid API](https://docs.bepaid.by/en/introduction) from applications written in the Elixir language.

## Installation

Add `bepaid_ex` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:bepaid_ex, "~> 0.9.0"}
  ]
end
```

Update your dependencies:

```
$ mix deps.get
```

## Configuration

BepaidEx requires certain properties to be configured.

In order to load ENV vars at runtime, use `{:system, ENV_VAR_NAME}` notation.
Please note ENV vars have to be set prior app loading: `export BEPAID_SHOP_ID=123`...

```elixir
config :bepaid_ex,
  shop_id: {:system, "BEPAID_SHOP_ID"},
  key_secret: {:system, "BEPAID_KEY_SECRET"}
```

Otherwise you can set constant values via binaries:

```elixir
config :bepaid_ex,
  shop_id: "BEPAID_SHOP_ID_HERE",
  key_secret: "BEPAID_KEY_SECRET_HERE"
```

## Usage example:

```elixir
alias Bepaid.{Gateway, Payment}

%Payment{amount: 100, description: "Test payment", test: true}
|> Payment.set_tracking_id()
|> Payment.update_customer(%{ip: "127.0.0.1"})
|> Payment.update_credit_card(%{token: "TOKEN"})
|> Bepaid.put_charge()
```

## Links

* [Documentation][1]
* [Hex][2]

## License

Parameterize is released under [MIT][3] license.

[1]: https://hexdocs.pm/bepaid_ex/Bepaid.Gateway.html

[2]: https://hex.pm/packages/bepaid_ex

[3]: https://github.com/paveltyk/bepaid_ex/blob/master/LICENSE.md