def main(): configuration = Configuration() configuration.username = constants.APPLICATION_ID configuration.password = constants.APPLICATION_SECRET apiClient = ApiClient(configuration) user_api = ApplicationUsersApi(apiClient) app_user_id = "A" print("\nCreated User with application user Id '" + app_user_id + "':") user = user_api.add_user_using_post(new_application_user(app_user_id)) print(user) print("\nGetting all users with the application user id: '" + app_user_id + "':") application_users = user_api.get_users_using_get( filter_application_user_id=[app_user_id]) print(application_users) print("\nDeleting the user with application user id '" + app_user_id + "'") user_api.delete_user_using_delete(user._uuid) for user in user_api.get_users_using_get( filter_application_user_id=[app_user_id]): print(user._uuid)
def main(): configuration = Configuration() configuration.username = constants.APPLICATION_ID configuration.password = constants.APPLICATION_SECRET apiClient = ApiClient(configuration) user_api = ApplicationUsersApi(apiClient) application_user = ApplicationUser() application_user._reference_id = str(uuid.uuid4()) created_user = user_api.add_user_using_post_with_http_info( application_user)[0] print("Created user", created_user._uuid) institution_id = "bbva-sandbox" app_user_uuid = created_user._uuid redirect_url = auth_direct_url( constants.APPLICATION_ID, app_user_uuid, institution_id, create_callback_with_user_uuid(created_user._uuid), "account") webbrowser.open(redirect_url) input("Press enter to continue") consent = ConsentsApi(apiClient).get_user_consents_using_get( app_user_uuid)[0] print("Consent: " + consent.consent_token) identity_api = IdentityApi(ApiClient(configuration)) identity = identity_api.get_identity_using_get(consent.consent_token) print("**************IDENTITY******************") print(identity) print("****************************************") accounts = AccountsApi(ApiClient(configuration)).get_accounts_using_get( consent.consent_token) print("**************ACCOUNTS******************") print(accounts) print("****************************************") transactionsApi = TransactionsApi(ApiClient(configuration)) transactions = transactionsApi.get_transactions_using_get( consent.consent_token, accounts.data[0]._id) print("**************TRANSACTIONS**************") print(transactions) print("****************************************")
def main(): configuration = Configuration() configuration.username = constants.APPLICATION_ID configuration.password = constants.APPLICATION_SECRET apiClient = ApiClient(configuration) user_api = ApplicationUsersApi(apiClient) user_api.add_user_using_post(new_application_user()) print("Created User") application_users = user_api.get_users_using_get() print(application_users) user_api.delete_user_using_delete(application_users[-1]._uuid) for user in user_api.get_users_using_get(): print(user._uuid)
def main(): configuration = Configuration() configuration.username = constants.APPLICATION_ID configuration.password = constants.APPLICATION_SECRET apiClient = ApiClient(configuration) user_api = ApplicationUsersApi(apiClient) application_user = ApplicationUser() application_user._reference_id = str(uuid.uuid4()) created_user = user_api.add_user_using_post_with_http_info(application_user)[0] print("Created user",created_user._uuid) institution_id = "monzo"; app_user_uuid = created_user._uuid redirect_url = auth_direct_url(constants.APPLICATION_ID,app_user_uuid,institution_id,create_callback_with_user_uuid(created_user._uuid),"account") webbrowser.open(redirect_url) input("Press enter to continue") consent = ConsentsApi(apiClient).get_user_consents_using_get(app_user_uuid)[0] consent_token = consent.consent_token print("Consent: " + consent_token); accounts = AccountsApi(ApiClient(configuration)).get_accounts_using_get(consent_token) print("**************ACCOUNTS******************") print(accounts) print("****************************************") transactions_api = TransactionsApi(ApiClient(configuration)) transactions = transactions_api.get_transactions_using_get(consent_token, accounts.data[0]._id) print("**************TRANSACTIONS**************"); print(transactions); print("****************************************"); transfers_api = TransfersApi(ApiClient(configuration)) path_params = {"accountId": "{{account-id}}"} header_params = { "consent": consent_token, "Accept": 'application/json;charset=utf-8', 'Content-Type': 'application/json;charset=utf-8'} body = { "accountId": "{{destination-account-id}}", "amount": 0.50, "currency": "GBP", "reference": "Your transaction with yapily", "transferReferenceId": str(uuid.uuid4()) } transfer_response = transfers_api.api_client.call_api( "/accounts/{accountId}/transfer", "PUT", path_params, query_params=[], header_params=header_params, body=body, post_params=[], files={}, response_type="ApiResponseOfTransferResponse", # noqa: E501 auth_settings=["basicAuth"], asyncRequest=None, _return_http_data_only=True, _preload_content=True, _request_timeout=None, collection_formats={}) print("**************TRANSFERS**************"); print(transfer_response); print("****************************************");
def main(): configuration = Configuration() configuration.username = constants.APPLICATION_ID configuration.password = constants.APPLICATION_SECRET apiClient = ApiClient(configuration) payments_api = PaymentsApi(apiClient) print("\nUsing user:"******"\nPress enter to continue AFTER completing the authorisation!") ## Check the status of the consent object that was created using the consent id consent = ConsentsApi(apiClient).get_consent_by_id_using_get( consent_id=consent_id) if (consent.data.status == 'AUTHORIZED'): consent_token = consent.data.consent_token print("\nRetrieved the payment consent token: ", consent_token) print("\nExecuting the payment: ") ## Execute the payment using the payment request object and consent token issued by the user payment = payments_api.create_payment_using_post( consent=consent_token, payment_request=payment_request) print("\nResponse", payment) status = payment.data.status if (status == 'PENDING'): print("\nChecking the payment status...") for x in range(3): ## Check the status of the payment if the status is still PENDING status = payments_api.get_payment_status_using_get( payment_id=payment.data.id, consent=consent_token).data.status if (status != 'PENDING'): break else: print("\nThe payment is still pending, check again later") time.sleep(2) if (status == 'COMPLETED'): print("\nThe payment is completed!") if (status == 'FAILED'): print("\nThe payment failed, please contact your bank") else: print("\nThe user did not authorise the payment!")
import constants from yapily import InstitutionsApi from yapily import ApiClient from yapily import Configuration if __name__ == '__main__': configuration = Configuration() configuration.username = constants.APPLICATION_ID configuration.password = constants.APPLICATION_SECRET apiClient = ApiClient(configuration) institutionsApi = InstitutionsApi(apiClient) institutions = institutionsApi.get_institutions_using_get() for institution in institutions.data: print(institution._id) institution = institutionsApi.get_institution_using_get( institutions.data[0]._id) print(institution._id)
def main(): configuration = Configuration() configuration.username = constants.APPLICATION_ID configuration.password = constants.APPLICATION_SECRET apiClient = ApiClient(configuration) user_api = ApplicationUsersApi(apiClient) users_exists = user_api.get_users_using_get( filter_application_user_id=[constants.APPLICATION_USER_ID]) if not users_exists: application_user = ApplicationUser() application_user._application_user_id = constants.APPLICATION_USER_ID sdk_user = user_api.add_user_using_post_with_http_info( application_user)[0] print("Created new sdk user:"******"Using existing sdk user:"******"\nPress enter to continue") def filterByStatus(consent): if (consent.status == "AUTHORIZED"): return True else: return False consents = ConsentsApi(apiClient).get_consents_using_get( filter_application_user_id=[constants.APPLICATION_USER_ID], filter_institution=[constants.INSTITUTION_ID]).data authorised_consents = list(filter(filterByStatus, consents)) consent = authorised_consents[0] consent_token = consent.consent_token print("Consent: " + consent_token) institutions_api = InstitutionsApi(apiClient) features = institutions_api.get_institution_using_get( constants.INSTITUTION_ID).features if ("IDENTITY" in features): print("\nGetting identity data: ") identity_api = IdentityApi(apiClient) identity = identity_api.get_identity_using_get(consent_token) print("**************IDENTITY******************") print(identity) print("****************************************") else: print("\nCan not get identity information for institution '" + constants.INSTITUTION_ID + "' as it does not have the required feature: 'IDENTITY'") print("\nGetting accounts: ") accounts = AccountsApi(apiClient).get_accounts_using_get(consent_token) print("**************ACCOUNTS******************") print(accounts) print("****************************************") print("\nGetting transactions for account ", accounts.data[0].id + ": ") transactionsApi = TransactionsApi(apiClient) transactions = transactionsApi.get_transactions_using_get( consent_token, accounts.data[0]._id) print("**************TRANSACTIONS**************") print(transactions) print("****************************************")
def main(): configuration = Configuration() configuration.username = constants.APPLICATION_ID configuration.password = constants.APPLICATION_SECRET apiClient = ApiClient(configuration) print("\nUsing user:"******"\nTo demo transfers, make sure you authorise two accounts at the bank!" ) input("\nPress enter to continue") # Check the status of the consent object that was created using the consent id consent = ConsentsApi(apiClient).get_consent_by_id_using_get( consent_id=consent_id) if (consent.data.status == 'AUTHORIZED'): consent_token = consent.data.consent_token print("\nRetrieved the account consent token: ", consent_token) ## Retrieve the account information print("\nGetting accounts: ") accounts = AccountsApi(apiClient).get_accounts_using_get(consent_token) print("**************ACCOUNTS******************") print(accounts) print("****************************************") if (len(accounts.data) > 1): institutions_api = InstitutionsApi(apiClient) features = institutions_api.get_institution_using_get( constants.INSTITUTION_ID).features if ("TRANSFER" in features): account_id_1 = accounts.data[0].id account_id_2 = accounts.data[1].id print("\nExecuting a transfer from accout 1 [" + account_id_1 + "] to account 2 [" + account_id_2 + "]:") transfers_api = TransfersApi(apiClient) ## If more than 2 accounts were authorised and the bank supports transfers, execute a transfer between the first two accounts transfer = transfers_api.transfer_using_put( consent=consent_token, account_id=account_id_1, transfer_request=TransferRequest( account_id=account_id_2, amount=15.00, currency='GBP', reference='Monthly savings', transfer_reference_id='123456')) print("**************TRANSFERS**************") print(transfer) print("****************************************") else: print("\nCan not execute transfer for institution '" + constants.INSTITUTION_ID + "' as it does not have the required feature: 'TRANSFER'") else: print( "\nYou need to have authorisation to 2 accounts but this Consent only has authorisation for 1. Not executing transfer." ) else: print("\nThe user did not authorise sharing their financial data!")
def main(): configuration = Configuration() configuration.username = constants.APPLICATION_ID configuration.password = constants.APPLICATION_SECRET apiClient = ApiClient(configuration) print("\nUsing user:"******"\nPress enter to continue AFTER completing the authorisation!") ## Check the status of the consent object that was created using the consent id consent = ConsentsApi(apiClient).get_consent_by_id_using_get( consent_id=consent_id) if (consent.data.status == 'AUTHORIZED'): consent_token = consent.data.consent_token print("\nRetrieved the account consent token: ", consent_token) institutions_api = InstitutionsApi(apiClient) ## If the bank supports identity data, retrieve the identity information features = institutions_api.get_institution_using_get( constants.INSTITUTION_ID).features if ("IDENTITY" in features): print("\nGetting identity data: ") identity_api = IdentityApi(apiClient) identity = identity_api.get_identity_using_get(consent_token) print("**************IDENTITY******************") print(identity) print("****************************************") else: print("\nCan not get identity information for institution '" + constants.INSTITUTION_ID + "' as it does not have the required feature: 'IDENTITY'") ## Retrieve the account information print("\nGetting accounts: ") accounts = AccountsApi(apiClient).get_accounts_using_get(consent_token) print("**************ACCOUNTS******************") print(accounts) print("****************************************") ## Retrieve the transactions for the first account print("\nGetting transactions for account ", accounts.data[0].id + ": ") transactionsApi = TransactionsApi(apiClient) transactions = transactionsApi.get_transactions_using_get( consent_token, accounts.data[0]._id) print("**************TRANSACTIONS**************") print(transactions) print("****************************************") else: print("\nThe user did not authorise sharing their financial data!")
def main(): configuration = Configuration() configuration.username = constants.APPLICATION_ID configuration.password = constants.APPLICATION_SECRET apiClient = ApiClient(configuration) user_api = ApplicationUsersApi(apiClient) users_exists = user_api.get_users_using_get( filter_application_user_id=[constants.APPLICATION_USER_ID]) if not users_exists: application_user = ApplicationUser() application_user._application_user_id = constants.APPLICATION_USER_ID sdk_user = user_api.add_user_using_post_with_http_info( application_user)[0] print("Created new sdk user:"******"Using existing sdk user:"******"\nPress enter to continue") def filterByStatus(consent): if (consent.status == "AUTHORIZED"): return True else: return False consents = ConsentsApi(apiClient).get_consents_using_get( filter_application_user_id=[constants.APPLICATION_USER_ID], filter_institution=[constants.INSTITUTION_ID]).data authorised_consents = list(filter(filterByStatus, consents)) consent = authorised_consents[0] consent_token = consent.consent_token print("Consent: " + consent_token) accounts = AccountsApi( ApiClient(configuration)).get_accounts_using_get(consent_token) print("\nGetting accounts: ") accounts = AccountsApi(apiClient).get_accounts_using_get(consent_token) print("**************ACCOUNTS******************") print(accounts) print("****************************************") if (len(accounts.data) > 1): institutions_api = InstitutionsApi(apiClient) features = institutions_api.get_institution_using_get( constants.INSTITUTION_ID).features if ("TRANSFER" in features): account_id_1 = accounts.data[0].id account_id_2 = accounts.data[1].id print("\nExecuting a transfer from accout 1 [" + account_id_1 + "] to account 2 [" + account_id_2 + "]:") transfers_api = TransfersApi(apiClient) transfer = transfers_api.transfer_using_put( consent=consent_token, account_id=account_id_1, transfer_request=TransferRequest( account_id=account_id_2, amount=15.00, currency='GBP', reference='Monthly savings', transfer_reference_id='123456')) print("**************TRANSFERS**************") print(transfer) print("****************************************") else: print("\nCan not execute transfer for institution '" + constants.INSTITUTION_ID + "' as it does not have the required feature: 'TRANSFER'") else: print( "\nYou need to have authorisation to 2 accounts but this Consent only has authorisation for 1. Not executing transfer." )