Basiq Rapid Documentation¶
About¶
Basiq Rapid is a Python wrapper for the basiq.io API.
Perfect for the developer and analyst:
✅: | API Filters |
---|---|
✅: | Quick Integration with Pandas 🐼 |
✅: | Object-oriented wrapper allows for simultaneous users and operations |
Refer to basiq API for API (and thus Basiq Rapid) capabilities.
Basiq Rapid is not affiliated with basiq.io. See disclaimer.
Contents¶
Quickstart Guide¶
Import Basiq Rapid into Python:
import basiqrapid as bq
Create a session:
API_KEY = ""
session = bq.Session(API_KEY)
Get institutions:
institution_dict = session.getInstitutions()
wbc_code = institution_dict['Westpac Banking Corporation']
Create a User:
usr = session.createUser(email="gavin@hooli.com", mobile="+61888000888")
Create a connection:
job = usr.createConnection(loginID="gavinBelson", password="hooli2016", institutionID="AU00000")
print(job.getStatus())
Some User Capabilities:
transactions = usr.getTransactions() # Returns list of Transaction objects
connections = usr.getConnections() # Returns list of Connection objects
income = usr.getIncome()
income_year = income.regularIncomeYear
Some Connection Capabilities:
first_connection = connections[0]
first_connection.institution_id # Returns institution ID
accounts = first_connection.getAccounts()
Some Account Capabilities:
first_account = accounts[0]
transactions = first_account.getTransactions()
Some Transaction Capabilities:
first_transaction = transactions[0]
print(transaction.balance)
print(transaction.description)
Convert to pandas DataFrame:
import pandas as pd
transactions = usr.getTransactions()
trans_df = bq.to_df(transactions)
accounts = usr.getAccounts()
acc_df = bq.to_df(accounts)
Filters:
f = bq.newFilter()
f.gt("transaction.postDate","2018-01-28")
transactions = usr.getTransactions(f)
Sessions¶
Creating a session¶
Creating a basiq.io Session:
import basiqrapid as bq
API_KEY = "YOUR_API_KEY"
session = bq.Session(API_KEY)
Capabilities¶
Detailed object methods and subroutines available here.
Get dict of institutions¶
Example Usage:
inst_dict = session.getInstitutions()
wbc_ID = inst_dict["Westpac Banking Corporation"]
Search for an institution code¶
Example Usage:
results = session.searchInstitutions("Westpac")
for result in results:
print(result)
Users¶
Creating a user¶
Creating a user:
usr = session.createUser(email="gavinBelson",mobile="+61888000888")
Or:
user_id = "88888888"
usr = session.getUser(user_id)
Capabilities¶
Detailed object methods and subroutines available here.
Update user details¶
Example Usage:
usr.update(email="new@email.com", mobile="+61409838099")
# Returns True if success
Get transactions¶
Returns a list of Transaction objects.
Example Usage:
transactions = usr.getTransactions()
Get transaction¶
Returns a Transaction object.
Example Usage:
transaction = usr.getTransaction("transaction-id823904")
Get income¶
Returns an Income object.
Example Usage:
income = usr.getIncome()
print(income.regularIncomeYear)
Get Expenses¶
Returns an Expense object.
Example Usage:
expense = usr.getExpenses()
print(expense.totalMonthly)
Add Connection¶
Returns a Job object
Example Usage:
job = usr.addConnection(loginID="gavinBelson", password="hooli2016", institutionID="AU00000")
Get Connections¶
Returns list of Connection objects.
Example Usage:
connections = usr.getConnections()
Get Connection¶
Returns connection object.
Example Usage:
connection = usr.getConnection("conn-id2138967192837")
Connections¶
Creating a connection¶
Example:
job = usr.addConnection(loginID="gavinBelson", password="hooli2016", institutionID="AU00000")
if job.isComplete():
connections = usr.getConnections()
conn = connections[0] # Choose connection from list
Capabilities¶
Detailed object methods and subroutines available here.
Basics¶
Example usage:
# Return ID
conn.id
# Return institution ID
conn.institution_id
# Return when last used
conn.lastUsed
# Return status (whether pending a job)
conn.status
Refresh connection¶
Refresh connection to get latest transactions.
Example Usage:
job = conn.refresh()
Get accounts¶
Returns a list of Account objects linked with connection.
Example Usage:
accounts = conn.getAccounts()
Get transactions¶
Returns a list of Transaction objects linked with connection.
Example Usage:
transactions = conn.getTransactions()
Transactions¶
Creating a transaction¶
Use .getTransaction() method on User, Connection, or Account objects.
Example:
accounts = usr.getAccounts()
acc = accounts[1]
Capabilities¶
Detailed object methods and subroutines available here.
Basics¶
Example usage:
# Return ANZSIC code
trans.ANZSIC_code
# Return ANZSIC title
trans.ANZSIC_title
# Return parent account ID
trans.account
# Return transaction amount
trans.amount
# Return balance after transaction
trans.balance
# Return parent connection ID
trans.connection
# Return transaction description
trans.description
# Return direction of transaction (eg. credit)
trans.direction
# Return transaction ID
trans.id
# Return parent institution ID
trans.institution
# Return transaction post date
trans.postDate
# Return transaction status (eg. posted)
trans.status
# Return transaction date (empty if not complete)
trans.transactionDate
Filters¶
Options¶
Filters are used in accordance with the Basiq API’s capabilities.
Filter objects can have any amount of conditionals: - equal to (eq) - between (bt) - greater than (gt) - greater than or equal to (gteq) - less than (lt) - less than or equal to (lteq)
Usage¶
Add to any get methods.
Example usage:
# Passed as parameter to getAccounts method
accounts = usr.getAccounts(f)
Utilities¶
To Pandas Dataframe¶
to_df method
- Example usage::
accounts = usr.getAccounts() accounts_df = bq.to_df(accounts)
transactions = usr.getTransactions() trans_df = bq.to_df(transactions)
Class Object Details¶
-
class
main.
Session
(API_KEY)¶ -
createUser
(email='', mobile='')¶ Creates User.
Creates user and returns User object.
Parameters: Returns: Returns the created User class object.
Return type: User (obj)
-
deleteUser
(userID)¶ Delete user.
Parameters: userID (str) – User’s ID. Returns: Indicates success Return type: True
-
getInstitutions
()¶ Fetches institutions
Fetches user and returns dict of institutions.
Parameters: None – Returns: Returns dict of institutions. Return type: dict
-
getInstitutionsJSON
()¶ Fetches institutions JSON
Fetches user and returns raw json of institutions.
Parameters: None – Returns: Returns raw json of institutions. Return type: json
-
-
class
main.
User
(user_json, header)¶ -
addConnection
(loginID='', password='', institutionID='')¶ Add’s bank account connection to user.
Returns a job object that monitor’s API progress.
Parameters: Returns: Returns Job object that monitor’s connection progress
Return type: Job (obj)
-
getAccounts
(input_filter=None)¶ Fetches all user accounts
Parameters: None – Returns: Returns list of Account objects linked with user. Return type: list
-
getConnections
(input_filter=None)¶ Fetches list of user’s connections.
Parameters: None – Returns: Returns list of Connection objects Return type: list
-
getExpenses
()¶ Fetches user’s expenses summary.
Fetches user’s expenses summary and returns an Expense object.
Parameters: None – Returns: Returns the user’s expenses in form of Expense class object. Return type: Expense (obj)
-
getIncome
()¶ Fetches user’s income summary.
Fetches user’s income summary and returns an Income object.
Parameters: None – Returns: Returns the user’s income in form of Income class object. Return type: Income (obj)
-
getTransaction
(transactionID)¶ Fetches transaction.
Fetches transactions and returns list of Transaction objects.
Parameters: transactionID – transactionID string Returns: Returns list of Transaction objects. (max: 500) Return type: list
-
getTransactions
(input_filter=None)¶ Fetches transactions.
Fetches transactions and returns list of Transaction objects.
Parameters: None – Returns: Returns list of Transaction objects. (max: 500) Return type: list
-
refreshAllConnections
()¶ Refreshes all of user’s connections.
Ensure’s most up-to-date information.
Parameters: None – Returns: returns list of Job objects that monitor connections’ update Return type: list
-
refreshConnection
(connectionID)¶ Refreshes specific connection, ensuring most up-to-date information.
Parameters: connectionID (str) – ID of connection to be refreshed. Returns: Returns Job object to monitor progress Return type: Job (obj)
-
-
class
main.
Connection
(connect_json, header)¶ -
getAccounts
(input_filter=None)¶ Fetches accounts linked with connection.
Returns a list of Account objects.
Parameters: None – Returns: Returns a list of Account objects linked with the connection. Return type: list
-
getTransactions
(input_filter=None)¶ Fetches all transactions linked with connection.
Parameters: None – Returns: Returns a list of Transaction objects linked with connection. Return type: list
-
-
class
main.
Account
(account_json, header)¶
-
class
main.
Transaction
(transact_json, header)¶
-
class
Job.
Job
(job_json, header)¶ -
getStatus
()¶ Gets status of job
Parameters: None – Returns: Returns dict of job status Return type: dict
-
isComplete
()¶ Checks if job is fully complete.
Parameters: None – Returns: Returns if job is complete. Return type: bool
-
refresh
()¶ Refreshes job status
Parameters: None – Returns: Indicate success. Return type: True
-
-
class
Income.
Income
(income_json, header)¶
-
class
Expense.
Expense
(expense_json, header)¶
\ Sort by:\ best rated\ newest\ oldest\
\\
Add a comment\ (markup):
\``code``
, \ code blocks:::
and an indented block after blank line