In the Smart Advocate top menu hover over the Admin button and then click on the Accounting Integration menu item. The Accounting Integration Settings page opens..
If the message No integration mode selected appears in the Integration settings section, select the integration:
Click the Select Accounting Integration button to select current integration.
In the modal dialog, select QuickBooks Online Integration, and then click the Save button.
On the settings page, in the QuickBooks Online Authentication section, click the Authentication button to start the process. Before this status was Inactive.
The page will be redirected to the Intuit QuickBooks Sign In page where need to log in.
Select a company that uses the integration, if applicable. Then click the next button.
After logging in, the page will be redirected to the integration settings page and the authentication status will change to Active. Make sure the integration enable toggle is on at the Common settings section. At the QuickBooks Online Integration section check the name of the company with enabled integration.
...
Configure integration
In Common settings section on the Accounting integration settings page now can now configure the following integration settings:
Local Expense Account Unmatch Mode with three modes:
Create New mode enables the logic of creating a new expense account in SmartAdvocate if a QBO expense account with the same name and type does not exist in SmartAdvocate.
Do Not Fill mode is not creating a new expense account if an expense account with the same name and type does not exist in SmartAdvocate and if this account is required in a parent obligation, obligation will not be created with error.
Use Default mode allows to use selected as default expense account if not present in SmartAdvocate. When the Use Default mode is selected, an additional selection box appears to select the default expense account.
Local Bank Account Unmatch Mode with three modes:
Create New mode enables the logic of creating a new bank account in SmartAdvocate if a QBO account with the same name and bank account type does not exist in SmartAdvocate.
Do Not Fill mode is not creating a new bank account if a bank account with the same name and bank account type does not exist in SmartAdvocate and if this account is required in a parent obligation, obligation will not be created with error.
Use Default mode allows to use selected as default bank account if not present in SmartAdvocate. When the Use Default mode is selected, an additional selection box appears to select the default bank account.
QBO Expense Account Unmatch Mode with three modes:
Create New mode enables the logic of creating a new expense account in QBO if a SmartAdvocate expense account with the same name and type does not exist in QBO.
Do Not Fill mode is not creating a new expense account if an expense account with the same name and type does not exist in QBO and if this account is required in a parent obligation, obligation will not be created with error.
Use Default mode allows to use selected as default expense account if not present in QBO. When the Use Default mode is selected, an additional selection box appears to select the default expense account.
QBO Bank Account Unmatch Mode with three modes:
Create New mode enables the logic of creating a new bank account in QBO if a SmartAdvocate account with the same name and bank account type does not exist in QBO.
Do Not Fill mode is not creating a new bank account if a bank account with the same name and bank account type does not exist in QBO and if this account is required in a parent obligation, obligation will not be created with error.
Use Default mode allows to use selected as default bank account if not present in QBO. When the Use Default mode is selected, an additional selection box appears to select the default bank account.
DB Timer Interval allows to set the interval between SmartAdvocate - QBO synchronizations:
Real Time mode allows the integration to synchronize every second.
Every Minute and other modes set the synchronization interval for integration.
Set Manually mode allows to set interval of synchronize more flexible.
Sync Time From allows setting date and time and only documents, accounts, contacts etc that have a creation or modification date greater than that specified in this parameter will be synchronized.
...
Click the Save Changes button at the bottom of the page to apply selected changes.Make sure the QBO plan is a Plus or Advanced. These plans support applications for integration.
...
To setup Smart Advocate Accounting Integration with QuickBooks Online needs to provide ClientID, ClientSecret and WebHook Verifier Token. This information must be obtained on the Intuit Developer page: https://developer.intuit.com/
Sign in at https://developer.intuit.com as a client.
Agree with Intuit Terms of Service:
Fill in the welcome questions window, for example, as in the screenshot:
At the top menu click on Dashboard link:
On the Dashboard page click Create an app button.
Select QuickBooks Online and Payments platform for create an integration app:
Specify a name and select a accounting scope for the application you are creating:
In the Production Settings section, in Keys & credentials menu item, the list of requirements of the conditions that must be complete:
...
i. In the Production Settings menu item, specify the App Info, select an icon.
...
j. In the Production Settings menu item, specify the Terms of service links.
End User License Agreement Url: https://www.smartadvocate.com/terms-of-service/
Privacy Policy Url: https://www.smartadvocate.com/privacy-policy/
...
k. In the Production Settings menu item, specify the App URLs.
Host Domain: app.smartadvocate.com
Launch URL: https://app.smartadvocate.com/SA
Disconnect URL: https://app.smartadvocate.com/SA/login.aspx?waul=0
...
l. In the Production Settings menu item, select your app's main use cases in the Categorize your app.
...
m. In the Production Settings menu item specify the industries in which the application is used in Tell us about regulated industries that use your app section.
...
n. In the Production Settings menu item, select where the app is hosted.
...
o. In the Production Settings menu item, select countries you accept connections from.
...
p. Complete the app assessment questionnaire below. Answers in this document after required information section:
...
q. After review by the QuickBooks Online team (about a few hours) in the Production Settings section, in App assessment questionnaire menu item, the status of the submission will change:
...
r. Please provide ClientId and ClientSecret keys to the Smart Advocate team. Values is a Client ID and Client Secret from Keys & credentials page.
...
s. In the Production Settings section, in the Keys and Credentials menu item, enter a redirect URI value. Specify the URL of the accounting integration auth page of the app. https://app.smartadvocate.com/qboapi/Auth.aspx
After entering, click the Save button.
...
Q&A of app assessment questionnaire
General Questions
Has your company ever received any complaints, lawsuits, or investigative requests from regulatory authorities or government agencies?
No
Have you worked with legal counsel to understand any regulatory requirements or other considerations related to your business activities and use of user data?
Yes
Have you reviewed and confirmed that you will comply with the security policies found here?
Yes, I confirm that my app will comply with the security policies found above.
Have you reviewed and confirmed that you will comply with the Supplier Code of Conduct found here?
Yes
Apps that use Intuit APIs (whether public or private) need to be relevant and clearly related to QuickBooks, accounting, payments, workflows, finance, and other acceptable uses. Is your app designed for either of the following:· To enhance, streamline, or improve yours or others’ QuickBooks experience· To facilitate a business process (e.g. syncing QBO data to another service)
Yes
Are you or any of your representatives (including owners, affiliated parties, associated parties or any beneficiaries):
· (i) on any sanctions lists in the countries available in the app store or
· (ii) located or doing business in Russia, and/or any of the US embargoed countries (which includes the Crimea region, Donetsk People's Republic (DNR), Luhansk People's Republic (LNR) of Ukraine, North Korea, Iran, Cuba, and the Syrian Arab Republic)?
o No
App Information
Which of the following is true about your app (at least one option must be checked):
You built your app from scratch and wrote the code that lets it interact with Intuit APIs and data
What platform(s) does your app utilize and make API calls from? (Select all that apply)
Web/SaaS
Web/Browser
How does your app interact with Intuit product data? (Select all that apply)
it reads data from Intuit product(s)
It writes data to Intuit product(s) (including Charge/ECheck transactions for payment processing)
Are you building a private app for your team or business? Or, do you plan to make it publicly available?
Select a private app.
Which types of QuickBooks Online users can use your app?
Any user of the QuickBooks Online company
Does your app integrate with platforms other than Intuit?
No
Authorization and Authentication
Have you tested connecting, disconnecting, and reconnecting your app with a sandbox or non-production company?
Yes
How often does your app refresh access tokens?
Only when access tokens expire
Does your app retry authorization and authentication requests that have failed?
Yes
If your app encounters an authorization and authentication error, do you ask customers to reconnect to your app?
No
Did you use the Intuit discovery document to get the latest endpoints required in the OAuth2.0 flow?
Yes
Can your app handle the following scenarios (yes/no):
Errors due to expired access tokens
Yes
Errors due to expired refresh tokens
Yes
Invalid grant errors
Yes
CSRF errors
Yes
Does your app rely on the OAuth playground or other offline tools to get access or refresh tokens tokens?
Yes
API Usage
Which of the broad API categories does your app use? (multiple choice)
Accounting API
How often does your app call our APIs for each customer? (multiple choice)
Daily
Accounting API
Which customer-facing version of QuickBooks Online is your app designed for? (Select all that apply)
Plus
Advanced
Users often change versions of QuickBooks Online. This means they may get access to new features, or lose certain features, at any time. Can your app handle situations where users gain or lose access to version-specific features?
No
Does your app utilize any of the following features ? (Select all that you've verified and thoroughly tested)
None of the above
Do you use webhooks for your app?
Yes
Is the endpoint URL active and functional?
Yes
Do you use the CDC operation for your app?
Yes
Error Handling
Have you tested if your app can handle API errors, including syntax and validation errors?
Yes
Does your app capture the value of the intuit_tid field from response headers?Tip: We recommend you capture this field. It will help our support team quickly identify issues when troubleshooting.
Yes
Does your app have a mechanism for storing all error information in logs that can be shared for troubleshooting purposes, if required?Tip: We recommend you maintain logs. It will help our support team quickly identify issues when troubleshooting.
Yes
Do you provide a way for customers to contact you for support from within your app?
Yes
How?
SmartAdvocate customer support web portal and phone call.
Security
Has your company ever had a security breach that required notification to customers or government agencies/authorities?
No
Do you have a security team that regularly assesses vulnerabilities and risks for your app?
Yes
Are the client ID and client secret for your app stored securely (i.e. not hardcoded within your app or displayed in browser console logs)?
Yes
Does your app use multi-factor authentication?
Yes
Does your app use Captcha for authentication?
No
Does your app use WebSocket?
No
Once a customer's Intuit data is in your system, do you allow it to be used by or shown to anyone other than that customer?
No, all Intuit customer data processed by our app is only used for the benefit of the original customer