Setup
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.
Open My Hub in right top corner of the page and click on App Dashboard or Workspaces
If you clicked Workspaces, then create a new one.
Then add info about your company:
then contact info:
Then Create an app (“+” button) and give a name for the app.
on the next page 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:
In the Add your app's end-user license agreement and privacy policy menu item set this URL’s:
End User License Agreement Url: https://www.smartadvocate.com/terms-of-service/
Privacy Policy Url: https://www.smartadvocate.com/privacy-policy/
Add the App URLs on the next step.
Host Domain: app.smartadvocate.com
Launch URL: https://app.smartadvocate.com/SA
select your app's main use cases in the Categorize your app.
Specify the industries in which the application is used in Tell us about regulated industries that use your app section.
Select where the app is hosted.
Complete the app assessment questionnaire on the Compliance tab.
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, I confirm that my app will comply with the Supplier Code of Conduct found above.
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 jurisdictions subject to comprehensive embargoes or comprehensive sanctions, as relevant under applicable law, including Cuba, Iran, North Korea, Syria and the regions of Crimea, Zaporizhzhia and Kherson, the Donetsk People’s Republic (“DNR”) and Luhansk People’s republic (“LNR”), in Ukraine, and Russia?
o No
Does your application involve any generative AI functionality, including but not limited to ChatGPT, GPT-3 or 4, Google’s Gemini, conversational chatbots, etc.?
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 (skip it you you don’t see this question)
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
Why do you use the CDC operation?
Using webhooks doesn't give me the information I need
How often do you poll the CDC service?
More than once an hour
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
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:
17. After app approval you can see Client ID and Client Secret from production settings. Please provide it to SmartAdvocate team.
Add this URL to RedirectURL’s tab:
https://app.smartadvocate.com/SA/AccountingIntegration.aspx
Also please check if United States is selected in Accepted Connections
Visit smartadvocate.com/support for other help options including how to access our Support Tracker and Daily Office Hours sessions.