mangoex v0.3.0 Mangoex.Behaviour behaviour

Public API for MangoEx

Summary

Callbacks

auth(arg0, arg1)
auth(String.t, String.t) :: tuple

Authorises Mangoex to use MangoPay

Examples

iex> Mangoex.Client.auth("CLIENT_ID", "PASSPHRASE")
{:ok,
%{"access_token" => "99999999999999999999", "expires_in" => 1199, "token_type" => "bearer"}
check_kyc_document(arg0)
check_kyc_document(String.t) :: tuple

Checks a User’s KYC document status.

Examples

iex> Mangoex.Client.auth("CLIENT_ID", "PASSPHRASE")
iex> Mangoex.Client.check_kyc_document("99999999")
{:ok,
 %{"CreationDate" => 1498207261, "Id" => "99999999",
   "RefusedReasonMessage" => nil, "RefusedReasonType" => nil,
   "Status" => "VALIDATION_ASKED", "Tag" => nil, "Type" => "ADDRESS_PROOF",
   "UserId" => "25015768"}}
check_users_emoney(arg0, map)
check_users_emoney(String.t, map) :: tuple

Checks a User’s emoney status.

Examples

iex> Mangoex.Client.auth("CLIENT_ID", "PASSPHRASE")
iex> Mangoex.Client.check_users_emoney("99999999", %{})
{:ok,
 %{"CreditedEMoney" => %{"Amount" => 0, "Currency" => "EUR"},
   "DebitedEMoney" => %{"Amount" => 0, "Currency" => "EUR"},
   "UserId" => "99999999"}}

iex> Mangoex.Client.check_users_emoney("99999999", %{Currency: "GBP"})
{:ok,
 %{"CreditedEMoney" => %{"Amount" => 0, "Currency" => "GBP"},
   "DebitedEMoney" => %{"Amount" => 0, "Currency" => "GBP"},
   "UserId" => "99999999"}}
create_bank_account(atom, arg1, map)
create_bank_account(:iban, String.t, map) :: tuple
create_bank_account(:gb, String.t, map) :: tuple
create_card(map)
create_card(map) :: tuple
create_kyc_document(arg0, map)
create_kyc_document(String.t, map) :: tuple
create_kyc_page(arg0, arg1, map)
create_kyc_page(String.t, String.t, map) :: tuple
create_payin(arg0, map)
create_payin(:bankwire_direct | :card_direct, map) :: tuple
create_payout(map)
create_payout(map) :: tuple
create_refund(arg0, arg1, map)
create_refund(:payin | :transfer, String.t, map) :: tuple
create_transfer(map)
create_transfer(map) :: tuple
create_user(arg0, map)
create_user(:legal | :natural, map) :: tuple

Creates a User on MangoPay

Examples

iex> Mangoex.Client.auth("CLIENT_ID", "PASSPHRASE")
iex> params = %{
  FirstName: "Joe",
  LastName: "Blogs",
  Address: %{
    AddressLine1: "1 Mangopay Street",
    AddressLine2: "The Loop",
    City: "Paris",
    Region: "Ile de France",
    PostalCode: "75001",
    Country: "FR"
  },
  Birthday: 1463496101,
  Nationality: "GB",
  CountryOfResidence: "FR",
  Email: "test@mangopay.com"
}
iex> Mangoex.Client.create_user(:natural, params)
{:ok,
 %{"Address" => %{"AddressLine1" => "1 Mangopay Street",
     "AddressLine2" => "The Loop", "City" => "Paris", "Country" => "FR",
     "PostalCode" => "75001", "Region" => "Ile de France"},
   "Birthday" => 1463496101, "Capacity" => "NORMAL",
   "CountryOfResidence" => "FR", "CreationDate" => 1501165918,
   "Email" => "test@mangopay.com", "FirstName" => "Joe", "Id" => "30091968",
   "IncomeRange" => nil, "KYCLevel" => "LIGHT", "LastName" => "Blogs",
   "Nationality" => "GB", "Occupation" => nil, "PersonType" => "NATURAL",
   "ProofOfAddress" => nil, "ProofOfIdentity" => nil, "Tag" => nil}}
create_wallet(map)
create_wallet(map) :: tuple
get_payin(arg0)
get_payin(String.t) :: tuple
get_payout(arg0)
get_payout(String.t) :: tuple
get_transfer(arg0)
get_transfer(String.t) :: tuple
get_wallet(arg0)
get_wallet(String.t) :: tuple

Returns a Wallet

Examples

iex> Mangoex.Client.auth("CLIENT_ID", "PASSPHRASE")
iex> Mangoex.Client.get_wallet("99999999")
{:ok,
 %{"Balance" => %{"Amount" => 2716,
     "Currency" => "GBP"},
   "CreationDate" => 1493386336,
   "Currency" => "GBP",
   "Description" => "test",
   "FundsType" => "DEFAULT", "Id" => "99999999",
   "Owners" => ["99999999"]}
list_users()
list_users() :: tuple
submit_kyc_document(arg0, arg1, map)
submit_kyc_document(String.t, String.t, map) :: tuple

Submits a KYC document for validation by MangoPay

Examples

iex> Mangoex.Client.auth("CLIENT_ID", "PASSPHRASE")
iex> Mangoex.Client.submit_kyc_document("99999999","99999999", %{Status: "VALIDATION_ASKED"})
{:ok,
%{"CreationDate" => 1498207261, "Id" => "99999999",
 "RefusedReasonMessage" => nil, "RefusedReasonType" => nil,
 "Status" => "VALIDATION_ASKED", "Tag" => nil, "Type" => "ADDRESS_PROOF",
 "UserId" => "99999999"}}
update_user(arg0, arg1, map)
update_user(:legal | :natural, String.t, map) :: tuple

Updates a User on the system pattern match LegalPersonType to update a legal user

Examples

iex> Mangoex.Client.auth("CLIENT_ID", "PASSPHRASE")
iex> params = %{FirstName: "Updated"}
iex> Mangoex.Client.update_user("00000001", params)
{:ok,
 %{"Address" => %{"AddressLine1" => "1 Mangopay Street",
     "AddressLine2" => "The Loop", "City" => "Paris", "Country" => "FR",
     "PostalCode" => "75001", "Region" => "Ile de France"},
   "Birthday" => 1463496101, "Capacity" => "NORMAL",
   "CountryOfResidence" => "FR", "CreationDate" => 1501165918,
   "Email" => "test@mangopay.com", "FirstName" => "Updated", "Id" => "00000001",
   "IncomeRange" => nil, "KYCLevel" => "LIGHT", "LastName" => "Blogs",
   "Nationality" => "GB", "Occupation" => nil, "PersonType" => "NATURAL",
   "ProofOfAddress" => nil, "ProofOfIdentity" => nil, "Tag" => nil}}