Skip to main content

The Maplerad Python API Wrapper

The library follows an object-oriented approach

There are currently twelve (12) base categories namely:

  • Customer
  • Collections
  • Transfer
  • Bills
  • Wallets
  • Issuing
  • Identity
  • Transactions
  • Counterparty
  • Forex
  • Institutions
  • Misc

Learn more from the docs

Installation

 $  pip install maplerad-python

Authorization

A secret key is needed for authorization. It can be gotten from the Maplerad dashboard

Environments

Maplerad provides two environments to ensure a smooth and easy experience.

  • sandbox: for development
  • live: for production

Sandbox

Sandbox is your playground. You can credit your test wallets and use that to test your integrations, no real money will be debited or credited. Ensure to switch to Live when you are ready to launch.

Live

All method calls under Live will be charged and real money will be debited or credited. You are advised to use this when you have fully tested your integrations and are ready to launch your product.

Usage

# import the package
from maplerad_python.auth import Authentication


secret_key = os.getenv("MAPLERAD_SECRET_KEY")
environment = "DEVELOPMENT"

auth = Authenticate(secret_key,environment)

Customers

customer = auth.customers()

Create a Customer

payload = {
        "email": user.email,
        "first_name": user.first_name,
        "last_name": user.last_name,
        "country": country_type
        }

result = customer.create_customer(payload)

Upgrade Customer tier 1

payload = {
                    "customer_id": customer_id,
                    "phone": {
                        "phone_number": phone_number,
                        "phone_short_code": phone_short_code
                    },
                    "address": {
                        "city": address.city,
                        "country": address.country,
                        "postal_code": address.postal_code,
                        "state": address.state,
                        "street": address.street,
                        "street2": address.street2
                    },
                    "dob": dob,
                    "identification_number": identification_number
                }

result = customer.upgrade_customer_tier1(payload)

Upgrade customer tier2

payload = {
                "customer_id": customer_id,
                "identity": {
                    "country": identity.country,
                    "image": identity.image,
                    "number": identity.number,
                    "type": identity.type
                }
            }

result = customer.upgrade_customer_tier2(payload)

Get a customer

result = customer.get_customer(customer_id)

Get all Customers

result = customer.get_all_customers()

Get customer cards

result = customer.get_customer_cards(customer_id)

Get customer transactions

result = customer.get_customer_transactions(customer_id)

Get customer virtual accounts

result = customer.get_customer_virtual_accounts(customer_id)

Customer Card enrollment

result = customer.customer_card_enrollment(customer_id, brand)

Update Customer

payload = {
                "customer_id": customer_id,
                "photo": photo,
                "phone": {
                    "phone_number": phone.phone_number,
                    "phone_country_code": phone.phone_country_code
                },
                "middle_name": middle_name,
                "identity": {
                    "country": identity.country,
                    "image": identity.image,
                    "number": identity.number,
                    "type": identity.type
                }
            }

result = customer.update_customer(payload)

Set customer Blacklist status

result = customer.set_customer_blacklist_active(customer_id, status)

Bills

bills = auth.bills()

Buy Airtime

payload = {
                "phone_number": phone_number,
                "identifier": identifier,
                "amount": amount
            }
result = bills.buy_airtime(payload)

Get airtime billers

result = bills.get_airtime_billers(country)

Get airtime history

result = bills.get_airtime_history()

Collections

collections = auth.collections()

Create Virtual account

payload = {
                "customer_id": customer_id,
                "currency": currency_type,
                "preferred_bank": preferred_bank,
                "deposit_account_id": deposit_account_id,
                "meta": {
                    "occupation": occupation,
                    "utility_bill": utility_bill_url_or_file,
                    "bank_statement": bank_statement_url_or_file,
                    "identity_type": identity_type,
                    "identity_image": identity_image_url_or_file,
                    "identity_number": identity_number,
                    "identity_issued_date": identity_issued_date,
                    "identity_expiration": identity_expiration
                }
            }

result = collections.create_virtual_account(payload)

Counterparty

counterparty = auth.counterparty()

Blacklist a counterparty

result = counterparty.blacklist(counterpartyID, status)

Get counterparty

result = counterparty.get_counterparty(counterpartyID)

Get all counterparties

result = counterparty.get_all_counterparties()

FX

fx = auth.fx()

Generate quote

payload = {
    "source_currency": "NGN",
    "target_currency": "USD",
    "amount": "500",
}
result = fx.generate_quote(payload)

Exchange currency

result = fx.exchange_currency(quote_reference)

Get FX history

result = fx.get_fx_history()

IDentity

identity = auth.identity()

Verify Identity

result = identity.verify_identity(bvn)

Institution

institution = auth.institution()

Get all institutions

params = {
                "page": "1",
                "pageSize": "10",
                "type": "bank",
                "country": "US"
            }
result = institution.get_all_institutions(params)

Resolve institution

payload = {
                "account_number": "1234567890",
                "bank_code": "ABC123"
            }
result = institution.resolve_institution(payload)

Issuing

issuing = auth.issuing()

Create a Card

payload = {
    "customer_id": "123456789",
    "type": "VIRTUAL",
    "currency": "USD",
    "auto_approve": True,
    "brand": "VISA",
    "amount": 1000,
    "card_pin": 1234
    }
result = issuing.create_card(payload)

Create business card

payload = {
                "customer_id": "123456789",
                "type": CardType.PHYSICAL.value,
                "currency": "USD",
                "auto_approve": True,
                "brand": "MASTERCARD",
                "amount": 2000,
                "card_pin": 5678,
                "name": "Business Card"
            }
result = issuing.create_business_card(payload)

Set Card pin

result = issuing.set_card_pin(cardID, pin)

Get Card

result = issuing.get_card(cardID)

Get all Cards

result = issuing.get_all_cards()

Get card transactions

params = {
                "page": "1",
                "pageSize": "10",
                "type": "purchase",
                "status": "success"
            }
result = issuing.get_card_transactions(cardID, params)

Fund Card

amount = 1000
result = issuing.fund_card(cardID, amount)

Withdraw from card

result = issuing.withdraw_from_card(cardID, amount)

Freeze card

result = issuing.freeze_card(cardID)

Unfreeze card

result = issuing.unfreeze_card(cardID)

Misc

misc = auth.misc()

Get currencies

result = misc.get_currencies()

Get countries

result = misc.get_countries()

Credit test wallet

payload = {
                "amount": "100",
                "currency": "USD"
            }
result = misc.credit_test_wallet(payload)

Transactions

transactions = auth.transactions()

Get all transactions

result = transactions.get_all_transactions()

Get a transaction

result = transactions.get_transaction("transaction_id")

Verify a collection transaction

result = transactions.verify_collection_transaction("transaction_id")

Transfers

transfers = auth.transfer()

Naira transfer

payload = {
    "account_number": "string",
    "amount": 45454545,
    "bank_code": "string",
    "currency": "NGN",
}
result = transfers.naira_transfer(payload)

DOM transfer

payload= {
    "account_number": "1234567890",
    "amount": 1000.0,
    "bank_code": "ABC",
    "currency": "USD",
    "meta": {
        "scheme": "DOM",
        "sender": {
            "first_name": "John",
            "last_name": "Doe",
            "phone_number": "1234567890",
            "address": "123 Main Street",
            "country": "USA"
        },
        "counterparty": {
            "first_name": "Jane",
            "last_name": "Smith",
            "phone_number": "9876543210",
            "address": "456 Elm Street",
            "country": "Canada",
            "identity": "12345"
        }
    },
    "reason": "Payment",
    "reference": "ABC123"
}
result = transfers.dom_transfer(payload)

Cash Pickup

payload = {
    "account_number": "1234567890",
    "amount": 1000.0,
    "bank_code": "ABC",
    "currency": "USD",
    "meta": {
        "scheme": "CASHPICKUP",
        "sender": {
            "first_name": "John",
            "last_name": "Doe",
            "phone_number": "1234567890",
            "address": "123 Main Street",
            "country": "USA"
        },
        "counterparty": {
            "first_name": "Jane",
            "last_name": "Smith",
            "phone_number": "9876543210",
            "address": "456 Elm Street",
            "country": "Canada",
            "identity": "12345"
        }
    },
    "reason": "Payment",
    "reference": "ABC123"
}
result = transfers.cash_pickup_transfer(payload)

Get a transfer

result = transfers.get_transfer("transfer_id")

Get all transfers

result = transfers.get_all_transfers()

Wallet

wallets = auth.wallet()

Get wallets

result = wallets.get_wallets()

Get wallet history

result = wallets.get_wallets_history()

Get wallet history by currency

result = wallets.get_wallets_history_by_currency("USD")

Contact Developer

Twitter: 1madvirus

LinkedIN: Edwin Beshel Ayabie

Email: edwinayabie1@gmail.com

Metadata

Release files for maplerad-python 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for maplerad-python 0.0.3
File Size Uploaded
maplerad-python-0.0.3.tar.gz 14.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for maplerad-python 0.0.3
File Interpreter ABI Platform
maplerad_python-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 40.9 kB

Release files / maplerad-python-0.0.3.tar.gz

Download URL maplerad-python-0.0.3.tar.gz
Size 14.6 kB
Tags Source
SHA-256 checksum
How to use checksums
7d1903fc6df361dc547a6a47500c54ae1fa5782f645a8d4e6a17673bbf073e36
BLAKE2b-256 checksum
How to use checksums
b7a635240d70e5feae4a8dd3a654bf743db42dd0bc7df85a3ba9057c6b9b6b6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.10.6 Linux/5.19.0-45-generic

Release files / maplerad_python-0.0.3-py3-none-any.whl

Download URL maplerad_python-0.0.3-py3-none-any.whl
Size 26.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0749d541bf2fc75458f0aa16c0e832bf825f63b104e924801b04f36e3e0bdec6
BLAKE2b-256 checksum
How to use checksums
7ecb22f63bc0b939d0eba6ca6fc30fce70cd3a8a808e6ec716569563b5327906
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.10.6 Linux/5.19.0-45-generic

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page