WalletService
To get access to the wallet’s funds (to make a deposit, transfer or
withdraw) wallet should contain authenticated user’s or Management API
Client ID in the holderIds list.
For updating/deleting the wallet, wallet should contain access control
object’s ID in the accessControlIds list that contains ID of the
client in the write access section. (See examples for more info)
Wallets management
from trivoreid.models.wallet import Wallet
from trivoreid.utils.criteria import Filter
# get list of all accessible wallets
page = api.wallet_service.get_all()
# apply parameters and filter to wallets
f = Filter(Filter.LESS_THAN, 'balance', 50)
page = api.wallet_service.get_all(f, start_index=1, count=5, sortBy='name')
# create new wallet
wallet.ownerId = 'userId'
wallet.holderIds.append('holderId')
wallet.accessControlIds.append('accessControlId')
wallet = api.wallet_service.create(wallet)
# update wallet
wallet.name = 'name'
api.wallet_service.update(wallet)
# get wallet
wallet = api.wallet_service.get(wallet.id)
# delete wallet
api.wallet_service.delete(wallet.id)
Transactions
from trivoreid.models.wallet import Transaction
wallet1 = api.wallet_service.get('walletID1')
wallet2 = api.wallet_service.get('walletID2')
# deposit funds
transaction = Transaction()
transaction.amount = 5
transaction.currency = 'EUR'
api.wallet_service.deposit(wallet1.id, transaction)
# transfer funds from wallet1 to wallet2
transaction.amount = 3
transaction.transferTo = wallet2.id
api.wallet_service.transfer(wallet1.id, transaction)
# withdraw funds from the wallet
transaction.amount = 2
api.wallet_service.withdraw(wallet1.id, transaction)
Examples
Grant access to modify/delete wallet to Management API Client
from trivoreid.client import TrivoreID
from trivoreid.models.wallet import Wallet
from trivoreid.models.accesscontrol import AccessControl
# using Management API client
api = TrivoreID()
ac = AccessControl()
ac.title = 'Example'
# adding ID of the targer Management API client
ac.apiClientIdRead.append(api.client_id)
ac.apiClientIdWrite.append(api.client_id)
ac = api.accesscontrol_service.create(ac)
# getting the owner
user = api.user_service.get('userId')
wallet = Wallet()
wallet.ownerId = user.id # required field
wallet.accessControlIds.append(ac.id)
wallet.holderIds.append(api.client_id)
wallet.name = 'Example Name'
wallet.currency = 'EUR' # required field
wallet = api.wallet_service.create(wallet)
# now this Management API has access to modify/delete the wallet
wallet = api.wallet_service.update(wallet)
api.wallet_service.delete(wallet.id)