mangoex v0.3.0 Mangoex.Client

Summary

Functions

Authorises Mangoex to use MangoPay

Checks a User’s KYC document status

Checks a User’s emoney status

Creates a User on MangoPay

Returns a Wallet

Callback implementation for Mangoex.Behaviour.list_users/0

Submits a KYC document for validation by MangoPay

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

Functions

auth(client_id, client_pass)

Authorises Mangoex to use MangoPay

Examples

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

Callback implementation for Mangoex.Behaviour.auth/2.

check_kyc_document(kyc_document_id)

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"}}

Callback implementation for Mangoex.Behaviour.check_kyc_document/1.

check_users_emoney(user_id, body)

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"}}

Callback implementation for Mangoex.Behaviour.check_users_emoney/2.

create_bank_account(type, user_id, body)

Callback implementation for Mangoex.Behaviour.create_bank_account/3.

create_card(body)

Callback implementation for Mangoex.Behaviour.create_card/1.

create_kyc_document(user_id, body)

Callback implementation for Mangoex.Behaviour.create_kyc_document/2.

create_kyc_page(user_id, kyc_document_id, body)

Callback implementation for Mangoex.Behaviour.create_kyc_page/3.

create_payin(type, body)

Callback implementation for Mangoex.Behaviour.create_payin/2.

create_payout(body)

Callback implementation for Mangoex.Behaviour.create_payout/1.

create_refund(type, payin_id, body)

Callback implementation for Mangoex.Behaviour.create_refund/3.

create_transfer(body)

Callback implementation for Mangoex.Behaviour.create_transfer/1.

create_user(body)
create_user(type, body)

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}}

Callback implementation for Mangoex.Behaviour.create_user/2.

create_wallet(body)

Callback implementation for Mangoex.Behaviour.create_wallet/1.

get_payin(payin_id)

Callback implementation for Mangoex.Behaviour.get_payin/1.

get_payout(payout_id)

Callback implementation for Mangoex.Behaviour.get_payout/1.

get_transfer(transfer_id)

Callback implementation for Mangoex.Behaviour.get_transfer/1.

get_wallet(wallet_id)

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"]}

Callback implementation for Mangoex.Behaviour.get_wallet/1.

list_users()

Callback implementation for Mangoex.Behaviour.list_users/0.

start_link()
submit_kyc_document(user_id, kyc_document_id, body)

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"}}

Callback implementation for Mangoex.Behaviour.submit_kyc_document/3.

update_user(user_id, body)
update_user(type, user_id, body)

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}}

Callback implementation for Mangoex.Behaviour.update_user/3.