Question

I am trying to connect to QuickBooks desktop from QuickBooks anywhere, however, I fail to see my QuickBooks Desktop instance, Joe's Test Company. I see my QuickBooks Online instance only.

I believe the issue is my URL:

https://qbo.intuit.com/qbo1/rest/user/v2/

What is the base URL for QuickBooks Desktop?

Here is my code:

        public void GetAccessTokenAndSecret()
    {
        string oauth_callback_url = HttpContext.Current.Request.RawUrl;
        oauth_callback_url = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + oauth_callback_url;
        string consumerKey = _qboSettings.ConsumerKey;
        string consumerSecret = _qboSettings.ConsumerKeySecret;
        var oauthLink = Constants.OauthEndPoints.IdFedOAuthBaseUrl;
        IToken token = (IToken)HttpContext.Current.Session["requestToken"];
        IOAuthSession session = CreateSession();
        IToken requestToken = session.GetRequestToken();
        HttpContext.Current.Session["requestToken"] = requestToken;
        string RequestToken = requestToken.Token;
        string TokenSecret = requestToken.TokenSecret;
        oauthLink = Constants.OauthEndPoints.AuthorizeUrl + "?oauth_token=" + RequestToken + "&oauth_callback=" + UriUtility.UrlEncode(oauth_callback_url);
        HttpContext.Current.Response.Redirect(oauthLink);

    }

    /// <summary>
    /// Creates Session
    /// </summary>
    /// <returns>Returns OAuth Session</returns>
    protected IOAuthSession CreateSession()
    {
        OAuthConsumerContext consumerContext = new OAuthConsumerContext
        {
            ConsumerKey = _qboSettings.ConsumerKey,
            ConsumerSecret = _qboSettings.ConsumerKeySecret,
            SignatureMethod = SignatureMethod.HmacSha1
        };
        return new OAuthSession(consumerContext,
                                        Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlRequestToken,
                                        Constants.OauthEndPoints.IdFedOAuthBaseUrl,
                                        Constants.OauthEndPoints.IdFedOAuthBaseUrl + Constants.OauthEndPoints.UrlAccessToken);
    }

Here are my constants:

using System.Globalization;

namespace HelloIntuitAnywhere.Utilities
{
using System.Configuration;
using System.Web;

/// <summary>
/// Contains Constants.
/// </summary>
internal class Constants
{

    static string Url_Request_Token = "/get_request_token";
    static string Url_Access_Token = "/get_access_token";
    static string Intuit_OAuth_BaseUrl ="https://oauth.intuit.com/oauth/v1";
    static string Intuit_Workplace_AuthorizeUrl = "https://workplace.intuit.com/Connect/Begin";
    static string BlueDot_AppMenuUrl = "https://workplace.intuit.com/api/v1/Account/AppMenu";
    static string DisconnectUr = "https://appcenter.intuit.com/api/v1/Connection/Disconnect";
    static string oauth_callback_url = HttpContext.Current.Request.RawUrl.Replace("Configure", "OAuthHandler");
    static string menuProxy = "MenuProxy.aspx";
    static string grantUrl = "OauthGrant.aspx";
    static string qbo_base_url = "https://qbo.intuit.com/qbo1/rest/user/v2/";
    static string openid_identifier = "https://openid.intuit.com/Identity-YourAppName";


    /// <summary>
    /// OAuth EndPoints.
    /// </summary>
    internal class OauthEndPoints
    {
        /// <summary>
        /// Url Request Token
        /// </summary>
        internal static string UrlRequestToken = Url_Request_Token != null ?
            Url_Request_Token.ToString(CultureInfo.InvariantCulture) : "/get_request_token";

        /// <summary>
        /// Url Access Token
        /// </summary>
        internal static string UrlAccessToken = Url_Access_Token != null ?
            Url_Access_Token.ToString(CultureInfo.InvariantCulture) : "/get_access_token";

        /// <summary>
        /// Federation base url.
        /// </summary>
        internal static string IdFedOAuthBaseUrl = Intuit_OAuth_BaseUrl != null ?
            Intuit_OAuth_BaseUrl.ToString(CultureInfo.InvariantCulture) : "https://oauth.intuit.com/oauth/v1";

        /// <summary>
        /// Authorize url.
        /// </summary>
        internal static string AuthorizeUrl = Intuit_Workplace_AuthorizeUrl != null ?
            Intuit_Workplace_AuthorizeUrl.ToString(CultureInfo.InvariantCulture) : "https://workplace.intuit.com/Connect/Begin";
    }

    /// <summary>
    /// Intuit Anywhere Endpoints.
    /// </summary>
    internal class IaEndPoints
    {
        /// <summary>
        /// BlueDot Menu Url.
        /// </summary>
        internal static string BlueDotAppMenuUrl = BlueDot_AppMenuUrl != null ?
            BlueDot_AppMenuUrl.ToString(CultureInfo.InvariantCulture) : "https://workplace.intuit.com/api/v1/Account/AppMenu";

        /// <summary>
        /// Disconnect url.
        /// </summary>
        internal static string DisconnectUrl = DisconnectUrl != null ?
            DisconnectUrl.ToString(CultureInfo.InvariantCulture) : "https://appcenter.intuit.com/api/v1/Connection/Disconnect";
    }
}
}
Was it helpful?

Solution

What is the base URL for QuickBooks Desktop?

Per the documentation, the URLs for IDS for QuickBooks desktop follow the format:

https://services.intuit.com/sb/<objectName>/v2/<realmID>

However, the problem you're having:

I see my QuickBooks Online instance only.

Doesn't really sound base URL related. It sounds more like you haven't set up Sync Manager, or that your app settings don't have the QuickBooks desktop options ticked off to allow desktop versions of QuickBooks to connect to your app.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top