Skip to main content

Investec Programmable Banking (OpenAPI) wrapper

Project description

ipb-python-wrapper

Python wrapper for Investec Programmable Banking

Investec Open API

This package is a wrapper for the Investec OpenAPI. More information on the API is available here.

Prerequisites

  • Python 3.7 or later

Installation

Requires python 3.7 or above. Available via pypi package manager

pip install investec-openapi-wrapper

Usage

Authorization

The Account Information and Programmable Card API endpoints are protected by the OAuth 2.0 Authorization Framework. More information is available here

from personal_banking_client import PersonalBankingClient
client = PersonalBankingClient(credentials_path=file_path)

where the credentials file looks as follows:

{
    "client_id": "test", 
    "secret": "test"
}

Personal Banking Client

The Account Information API allows Investec SA Private Banking clients to access their account and transactional information (read-only) via an API. More information is available here

get_accounts

Lists all the users accounts.

accounts = client.get_accounts()

Example Response

{"accounts": 
    [{
        "accountId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
        "accountNumber": "xxxxxxxxxxx", 
        "accountName": "Mrs J Smith", 
        "referenceName": "Investec (Main)", 
        "productName": "Private Bank Account", 
        "kycCompliant": True, 
        "profileId": "xxxxxxxxxxxxxx"
    }]
}

get_account_balance

Get the current balance for the specified account

balance = client.get_account_balance('account_id')

Example Response

{
    "accountId": "xxxxxxxxxxxxxxxxxxxxxxxxx", 
    "currentBalance": 1000.00, 
    "availableBalance": 11000.00, 
    "currency": "ZAR"
}

get_account_transactions

Lists all transactions for a specified account. Optional additional fields allow the user to specify a date range to filter transactions for.

transactions = client.get_account_transactions('account_id')

start_date = datetime.today()-timedelta(days=1)
end_date = datetime.today()
transactions = client.get_account_transactions('account_id', from_date = start_date)
transactions = client.get_account_transactions('account_id', to_date = end_date)
transactions = client.get_account_transactions('account_id', from_date = start_date, to_date=end_date)

Example Response

{"transactions": 
    [
        {
            "accountId": "xxxxxxxxxxxxxxxxxxxxxxxxxx", 
            "type": "CREDIT", 
            "transactionType": None, 
            "status": "POSTED", 
            "description": "Interest Value Date 01Jan23", 
            "cardNumber": "", 
            "postedOrder": 0, 
            "postingDate": "2023-01-03", 
            "valueDate": None, 
            "actionDate": "2023-01-01", 
            "transactionDate": "2023-01-01", 
            "amount": 100.00, 
            "runningBalance": 11000.00
        }  
    ]
}

transfer_multiple

Transfer funds between two internal accounts. The account IDs can be retrieved using the get_accounts function.

transfer_details = [{
        "beneficiaryAccountId": "destination account ID",
        "amount": "1.01", # in Rand
        "myReference": "Reference for source account",
        "theirReference": "Reference for destination account"
}]
response = client.transfer_multiple('account_id', transfer_details)

pay_multiple

Pay multiple benificiaries. Benificiary details can be retrieved using the get_beneficiaries function.

payments_details = [{
        "beneficiaryId": "Beneficiary ID",
        "amount": "1.01", # in Rand
        "myReference": "Reference for source account",
        "theirReference": "Reference for beneficiary"
}]
response = client.pay_multiple()

get_beneficiaries

Get a list of beneficiaries.

beneficiaries = client.get_beneficiaries()

Example result:

[{
    "beneficiaryId": "xxxxxxxxxxxxxxxxxxx", 
    "accountNumber": "xxxxxxxxxx", 
    "code": "xxxxxx", 
    "bank": "Some bank", 
    "beneficiaryName": "Some beneficiary", 
    "lastPaymentAmount": "500.00", 
    "lastPaymentDate": "21/03/2023", 
    "cellNo": 00000000000, 
    "emailAddress": "test@email.com", 
    "name": "Some beneficiary", 
    "referenceAccountNumber": "Their reference", 
    "referenceName": "My reference", 
    "categoryId": "xxxxxxxxxxxxxx", 
    "profileId": "xxxxxxxxxxxxxx"
}]

get_beneficiary_categories

Get a list of configured beneficiary categories.

beneficiary_categories = client.get_beneficiary_categories()

Example Result

[{
    "id": "xxxxxxxxxxxxxx", 
    "isDefault": "true", 
    "name": "Not Categorised"    
}]

Build pypi package

python -m build
python -m twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

investec-openapi-wrapper-0.0.2.tar.gz (5.4 kB view hashes)

Uploaded Source

Built Distribution

investec_openapi_wrapper-0.0.2-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page