Hey Ethan,
The SDK contains functionality to upload files to AWS S3 bucket temporarily, called "ArdentFS":
https://docs.q2developer.com/docs/guides/online_integration/file_uploads.html
You could retrieve the file from there.
Another idea would be to piggyback on your institution's FTP access to Q2 via https://sftp.q2ebanking.com. This is if you already have access in connection with Centrix, an extract, or a batch process. Otherwise there may be a cost to get FTP access set up. Ju...
The StatementImage property is how most Q2 Financial Institutions determine eligibility to download statements for a particular account. You can assume that by the time a user accesses your extension, those properties will be set correctly, if they are with an institution that is using the built in Q2 statement download feature.
From a Tecton extension you can use the following code to get a list of eligible accounts:
tecton.sources.requestPlatformData({
route: 'mobilews/account...
Hi Felix,
There is not currently a Caliper API function to change the user Login Name. There are two internal API's for doing this from a SDK extension:
https://docs.q2developer.com/docs/api_references/hq_api/q2_api/ChangeEndUserLogonName.html
https://docs.q2developer.com/docs/api_references/hq_api/wedge_online_banking/ChangeEndUserLogonName.html
We can add it to Caliper API. Could you please open a ticket requesting this, and we will keep you updated on progress as we target a futu...
Hi Paul,
Q2 online banking does not currently have a process for "events" of new transactions. We do produce "near real time" alerts via custom procedures that ping the core on a regular basis for updates and download new transactions in order to alert users based on their settings. We also do nightly transaction aggregation from the core, typically.
Therefore you will probably need to create a periodic entrypoint which can be scheduled daily and retrieve relevant transactions:
https:/...
Hi David,
It's fine to use the UserID anywhere, especially on the frontend, as the fronend already has the UserID via the /logonUser endpoint.
Mark
We had a previous answer to this question that is out of date, so I deleted it.
Currently our development environment is configured so you can dynamically place widgets on the page with query parameters in the URL. See here for more details:
https://docs.q2developer.com/docs/guides/frontend_development/widgets.html
For instance, if your extension was named and installed as MyWidget, and your stack name was mystack, the URL for placing the widget on the home page top would be:
...
You can use the boto3 python package within the SDK, including Ardent extensions. It's not async by default so you will want to wrap it in an asyncio subprocess.
The security practices are up to you. We have extensions moving files via sftp to outside file servers. You will need to request a whitelist via the Developer Portal in order to contact hosts outside of the datacenter. Part of the whitelist request is a description of what customer information will be transmitted and what protocol...
The account number setup varies depending on the customer.
Generally the acct_number_internal sent by HQ with the request will have the account in a format the FI is comfortable with displaying to the end user. It could be either masked or unmasked.
If you need the full account number there are acct_number_internal_unmasked and acct_number_external_unmasked.
A HADE with the name "AccountNumber" is rare.
When you load a Tecton widget, the tct-id changes. In this case you'll want to use:
IframedExtension_Main_widget.IframedExtension.Main
Yes, the Enhanced SSO is basically a redirect of the IFrame, and authentication is not specifically needed. Loading Tecton inside the external website is also helpful but not necessary.
Here's a code snippet for the redirect:
window.addEventListener('load', function() {
window.location = {{ url }};
})
Hi Chris,
It looks like you'll have to generate that document yourself. Here's a tool that could help:
https://www.samltool.com/sp_metadata.php
Best,
Mark Ostroth
That example extension unfortunately will not run out of the box. The stored procedure in question is basically used to get configurations for different product types. So you can implement a config via the self.wedge_address_configs property.
Feel free to submit a Support ticket on the developer portal and we can help you get up and running.
It is possible to update permissions for users and groups in Q2 Central. You can connect to your development environment in Central using the instructions here:
https://docs.q2developer.com/docs/support/central_quick_reference.html#central-quick-reference
Feel free to open a Support ticket for further assistance with this particular issue.
Hi Katie,
Can you provide an example of how this eConsent works in an existing implementation?
Thanks,
Mark
Hi Dan,
You can grab holidays using the Hours object, and I recommend passing in the hour_type of GeneratedTransaction, and choosing a transaction type that holidays is set for, like so:
holidays_hours = Hours(logger=self.context.logger)
holidays= await holidays_hours.get(hour_type=HourType.GeneratedTransaction, transaction_type=TransactionType('AchBatch'))
The resulting data dictionary should have all the holidays that you set in Q2Central.
Best,
Mark
This is because a multi-tenant extension needs credentials from the incoming request, in order to operate.
When initializing a DB object you probably forgot to pass in HQ credentials like so:
user_obj = User(self.logger, hq_credentials=self.hq_credentials)
If you only pass in the first parameter, you'll run into the above error when using the DB object.
If you want to programatically determine which environment your extension is running in, the following code will work:
import configuration.settings as settings
env = settings.DEPLOY_ENV #This will be "DEV", "STG", or "PROD"
For endpoints, you can set the URL and other endpoint details in Wedge Address Configs, and they will be available to the extension at runtime. Then during deployment you can request how you want the configurations to be set.
For certificates loade...
Post UUX 4.4.0.94
tecton.actions.navigateTo('ssoDirect.ssoAccount', [{vendorId}, {hostAccountId}]);
Pre UUX 4.4.0.94
tecton.actions.openURL('mobilews/sso/generic/{vendorId}/{hostAccountId}', { requiresToken: true });
Pre UUX 4.4.0.81
tecton.actions.openURL('mobilews/sso/generic/{vendorId}/{hostAccountId}?q2token={q2Token}');
q2Token is the HQ Session ID, which can be retrieved with self.online_session.session_id
In UUX version 4.4.0.62 and later, you can add the following property to your configuration object in goes inside the module's config object next to "url"
configuration/ExtensionName.py:
"loadingOptions": {
"loaders": []
}
This will prevent a spinner from showing at all for that Tecton extension.
If you are not on a new enough version of UUX to support the above feature, you will have to enable the widget for all groups and create a custom User Property that ca...
Run the following from the command line:
q2 setup_db
The SDK does not run raw SQL against the database, instead relying on stored procedures installed at setup time. If the Stored Procedures have been removed or updated (perhaps you took an SDK upgrade or the SDK team has rebuilt your stack recently) they need to be reinstalled. The one liner above will take care of that for you.