Forum Discussion

Stuart_W's avatar
Stuart_W
MYOB Staff
23 days ago

Reminder: Update your MYOB Business API integrations by 1 September 2026

Hi Everybody,

 

MYOB is strengthening its app ecosystem by upgrading integration endpoints to enhance data privacy and security. 

 

From 1 September 2026, all developers using the MYOB Business API will need to:

  • Update their integrations 
  • Adopt granular data scopes 
  • Ensure end users consent via the new flow 

Moving to granular scopes give developers more control over the data they request, making it easier to build integrations that deliver the best customer experience and take advantage of new features as they become available. 

What’s changing on 1 September 2026 

From 1 September 2026, the CompanyFile scope will be removed from the MYOB Business API scope list. Any new consent or authorisation request that still uses CompanyFile will fail. Developers will need to update their integrations to use the new granular data scopes.

 

To keep services running for customers, developers must ensure their applications request the appropriate granular scopes and that customers complete the updated consent flow. If these changes are not made by the deadline, affected integrations will be disrupted.

 

To avoid disruption to customer integrations or any impact on your developer program status, you must complete these updates by 1 September 2026.

 

More information about granular data scopes and the required changes is available below.

 

MYOB Business API Overview: Granular Data Scopes

 

If you have concerns about these timelines or need support to meet them, please submit a support request. If you’d prefer to speak to us directly, click here to book a time that suits you.

 

Thank you for partnering with us to improve data security, transparency, and customer trust across the MYOB app ecosystem. Kind regards, The MYOB Team

19 Replies

  • MarshallArts's avatar
    MarshallArts
    Experienced User
    4 days ago

    Thanks, but it's not the authorisation phase that is the problem.  I think I have that working now.  It's requesting data once I am connected.  In the .NET SDK there are Service objects which basically wrap the various endpoints with a .NET object.  I make calls on those Service objects to request data.

     

    The SDK basically consists of .NET objects which wrap the endpoints.  Only during the authentication phase does the developer need to work directly with URLs - after that it is just calls to methods on the many objects in the SDK.  The calls which request data all have as their first parameter a CompanyFile object, which is derived from the CompanyFile endpoint.  There is also a CompanyFileCredentials object passed to each call.  If the CompanyFile endpoint is about to disappear, then it seems to me that the SDK needs a complete rework in order to make it usable with the new granular scopes.  It will need to be able to work somehow via the businessID instead, but I see no sign that any such rework is in progress.  If I can't use the SDK it will be a large task to rework my integrations using a completely different approach.

  • eJulia's avatar
    eJulia
    Trusted User
    1 day ago

    I have been getting that message for months. It was suggested that I might have not set up the redirect URL as https: but I picked that up and fixed it only a few days after the change was made.

    I may say the change was made without warning and the documentation about it only went up on hte website a few days later.

    I have test files that I am an admin user for so that is not a problem for testing but it still does not work.

    I have had things work OK and then later, without changing any code I started to get that message. I suspect it may be because I have 4 versions which are slightly different and share a key/secret combination. I set up more but only one new one ever worked and I did not want to mess with the existing ones in case it broke things for existing users. 

  • eJulia's avatar
    eJulia
    Trusted User
    1 day ago

    I puzzled over this at first but the way it works is that you select a file, as an admin user and get a  code which enables you to get a token & refreshtoken specific to your file. Then you can do a GET specific to your file which gets you the CompanyFile end point record for just that file, with all the same fields but only one record.

  • eJulia's avatar
    eJulia
    Trusted User
    1 day ago

    I had it working a couple of weeks ago having changed to https//desktop (my apps are desktop not online)and added all the scope stuff and it all worked  for a while. FOr some of my test files it still works but I get the “unable to connect, something went wrong” for one of my files. My end users have their own files which are one of my business so the app hass to show them an authentication form and let them log in and pick their own file.

     

    The problem is that things are being changed continuously with warning. For example the process now involves opening a browser page on the way through, both for access AR itself and for authorisation. That appeared without warning or explanation a few eeks ago and makes it hard to trust the whole process. if something else changed is that what broke it?

     

    There should be no such changes without adequate warnings to both users and developers.

     

    I am left with the impression of some developers coding on the fly on the live system rather that developing a final working version on a parallel platform, then advising everyone how it is going to work in advance of implementation, well in advance for developers to have time to catch up.

     

  • eJulia's avatar
    eJulia
    Trusted User
    1 day ago

    I started out many years ago with SDK code supplied by MYOB. In its CompanyFIle service the GetRange option no longer works but Get.CompanyFileWithResources using the id passed back with the BusinessId passed back with the authentication worked for me. once I had that timing sorted (await the authentication) then get the tokens using the code that comes back (wait for it) and then ensure that a token refresh occurs before asking for that record it all seemed to work well for a while.

  • MarshallArts's avatar
    MarshallArts
    Experienced User
    1 day ago

    eJulia, thanks for posting this.  I also started with the SDK many years ago.  It would be great if you could post some code for getting the CompanyFile object from the businessID string, it's still not very clear to me how to do that.  You say that worked well "for a while", does that mean it stopped working?

  • eJulia's avatar
    eJulia
    Trusted User
    1 day ago

    Its not the getting the companyFile record thats stopped working it is getting the authentication in the first place, only for the file that has my baseline test data in,  and I had that working months ago. I wonder if the fact that I restore from backup regularly to start a new test has an influence on it, though I have now made sure it is a recent backup.

     

    it is hard to provide code because in my app it has lots of wrapper code that does error checking and logging but essentially you need to do much what you do to get detailed data but it is just

    GET /accountright/? without further details where ? represents the businessId i.e. the guid returned by authentication and otherwise using the same credentials as for any other request such as the token and your api key.

    If you have the original SDK, in Services/Version2/CompanyFileService you should find CompanyFileWithResources Get(Uri uri, ICompanyFileCredentials credentials) which may come in handy. 

     

     

  • MarshallArts's avatar
    MarshallArts
    Experienced User
    16 hours ago

    Thanks.  I have the latest version of the SDK, and there is no namespace that ends with ...Services.Version2.  There is only ...Services.  And on the CompanyFileService I see no Get call that accepts a Uri and a credentials object as parameters.  I'm clearly missing something here.

  • MarshallArts's avatar
    MarshallArts
    Experienced User
    3 hours ago

    So my question remains:  using the .NET SDK and the Service objects within it, once I am authenticated and have the businessId value, how do I request data via the Service objects?  All the Get and GetRange calls on these objects require a CompanyFile object as their first parameter.  So how can I obtain or create a CompanyFile object corresponding to the businessId?  I can see no way to do this.  I am using the latest version of the SDK, version 2025.5.658.