Package: python-jengaapi
JengaAPIPythonWrapperA simple python wrapper around the JengaAPI from Equity BankSetupInstallationpip install python-jengaapiA sample of the.envvariables required include:MERCHANT_CODE=1234567
CONSUMER_SECRET=XXXXXXXXXXXXX
API_KEY=123XXX222
ACCOUNT_NAME=John Doe
ACCOUNT_NUMBER=12345678
CURRENCY_CODE=KES
COUNTRY_CODE=KE
FOREIGN_CURRENCY_CODE=USD
PRIVATE_KEY_PATH=path_to_privatekey.pemAuthorization ServiceFetch Authorization token# script.pyfrom jengaapi.configs.config import app_configfrom jengaapi.services.authorization_service import AuthorizationServiceuat_config = app_config.get('uat')# Get the environment variablesMERCHANT_CODE = uat_config.MERCHANT_CODECONSUMER_SECRET = uat_config.CONSUMER_SECRETCOUNTRY_CODE = os.getenv('COUNTRY_CODE')ACCOUNT_NUMBER = os.getenv('ACCOUNT_NUMBER')auth = AuthorizationService(config=uat_config)auth_token = auth.auth_tokenprint(auth_token)$pythonscript.py
Bearereexxxxx.xx.xxxxxxAccount ServiceFetch Account Balanceaccount_service = AccountServices(config=uat_config)# Get account balancesignature = auth.signature((COUNTRY_CODE, ACCOUNT_NO))account_balance = account_service.account_balance(signature, auth_token, COUNTRY_CODE, ACCOUNT_NO)print(account_balance)$pythonscript.py{"status":true,"code":0,"message":"success","data":{"balances":[{"amount":"485115080.54","type":"Available"},{"amount":"485115080.54","type":"Current"}],"currency":"KES"}}Fetch Account Mini Statementaccount_service = AccountServices(config=uat_config)signature = auth.signature((COUNTRY_CODE, ACCOUNT_NO))account_mini_statement = account_service.account_mini_statement(signature, auth_token, COUNTRY_CODE, ACCOUNT_NO)print(account_mini_statement){"status":true,"code":0,"message":"success","data":{"balance":484837600.0,"currency":"KES","accountNumber":"1450160649886","transactions":[{"date":"2023-01-12T00:00:00.000","amount":"1","description":"JENGA CHARGE CREDIT 673579628084879","chequeNumber":"None","type":"Credit"},{"date":"2023-01-12T00:00:00.000","amount":"1","description":"JENGA CHARGE DEBIT 673579628084879","chequeNumber":"None","type":"Debit"},{"date":"2023-01-12T00:00:00.000","amount":"1","description":"JENGA CHARGE CREDIT 673579623845546","chequeNumber":"None","type":"Credit"},{"date":"2023-01-12T00:00:00.000","amount":"1","description":"REV-(673540528125447)JENGA CHARGE DEBIT 6735405275","chequeNumber":"None","type":"Debit"}]}}Fetch Account Opening and Closing Balanceep_signature = auth.signature((ACCOUNT_NO, COUNTRY_CODE, "2023-01-01"))payload = dict(countryCode=COUNTRY_CODE,accountId=ACCOUNT_NO,date="2023-01-01",)opening_closing = account_service.opening_closing_account_balance(ep_signature, auth_token, **payload)print(opening_closing){"status":true,"code":0,"message":"success","data":{"balances":[{"amount":"0","type":"Closing Balance"},{"amount":"0","type":"Opening Balance"}]}}Send Money ServiceSend within Equitysend_money_service = SendMoneyService(config=uat_config)payload = {"source": {"countryCode": COUNTRY_CODE,"name": "CATHERINE MURANDITSI MUKABWA","accountNumber": ACCOUNT_NO},"destination": {"type": "bank","countryCode": "KE","name": "Tom Doe","accountNumber": "0250163591202"},"transfer": {"type": "InternalFundsTransfer","amount": "1000.00","currencyCode": "KES","reference": "692494625798","date": "2023-08-18","description": "some remarks here"}}ep_signature = auth.signature((ACCOUNT_NO,"1000.00", "KES", "692494625798"))send_money_within_equity = send_money_service.send_within_equity(ep_signature, auth_token, **payload)print(send_money_within_equity){"status":true,"code":0,"message":"success","data":{"transactionId":"54154","status":"SUCCESS"}}Send to mobile walletspayload = {"source": {"countryCode": "KE","name": "CATHERINE MURANDITSI MUKABWA","accountNumber": ACCOUNT_NO},"destination": {"type": "mobile","countryCode": "KE","name": "A N.Other","mobileNumber": "0722123456","walletName": "Mpesa"},"transfer": {"type": "MobileWallet","amount": "1000","currencyCode": "KES","date": "2023-01-13","description": "some remarks here"}}ep_signature = auth.signature(("1000", "KES", "692494625799", ACCOUNT_NO))send_money_within_equity = send_money_service.send_to_mobile_wallets(ep_signature, auth_token, **payload)print(send_money_within_equity){"status":true,"code":0,"message":"success","data":{"transactionId":"","status":"SUCCESS"}}Jenga API docsFor official documentatio the Equity bank api referhere