コード例 #1
0
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)
コード例 #2
0
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("****************************************")
コード例 #3
0
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)
コード例 #4
0
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("****************************************");
コード例 #5
0
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!")
コード例 #6
0
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)
コード例 #7
0
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("****************************************")
コード例 #8
0
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!")
コード例 #9
0
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!")
コード例 #10
0
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."
        )