Connecting to NAV Web Services from …

I promised to write some posts about how to connect to NAV Web Services from various other programming languages/platforms and I guess it is about time I kept my promise.

I will create a couple of posts on how to connect to NAV Web Services from:

  • PHP
  • Java
  • C# using Web Reference
  • C# using Service Reference
  • Javascript
  • Visual Basic using Web Reference
  • Visual Basic using Service Reference
  • Windows Mobile
  • Microsoft Dynamics NAV 2009SP1
  • and more…


For all these I will create some code that:

  • Connects to NAV Web Services System Service and enumerates the companies in the database
  • Constructs a URL to the Customer Page (based on the first company in the list)
  • Get the name of Customer number 10000
  • Get the Customers in GB that have Location Code set to RED or BLUE.

Here is an example of the output of the PHP web site:


Note, that the code is not necessarily perfect PHP or Java code and the intention is not to teach people how to code in these languages (I would be a bad teacher) but more to overcome some of the obstacles when trying to work with NAV.


The very first obstacle is authentication. As you probably know, NAV 2009 only supported SPNEGO (Negotiate) authentication and both PHP and Java doesn’t currently have any support natively for that.

In NAV 2009 SP1 we added a key in the Service Tier configuration file called WebServicesUseNTLMAuthentication. If you set this key to true the Web Services listener will only use NTLM authentication and as such be easier accessible from other systems.

The config file you need to modify is placed in the directory where the Service Tier executable is and is called CustomSettings.config. The section you are looking for is:

  Turns on or off NTLM authentication protocol for Web Services
      false: Use SPNEGO (recommended)
      true: Use NTLM only
    <add key="WebServicesUseNTLMAuthentication" value="true"></add>

Note that .net works with both values of this settings.


Freddy Kristiansen
PM Architect
Microsoft Dynamics NAV

Comments (9)

  1. joepkoek says:

    Hi Freddy, thanks for sharing. I am trying to use the Dynamics web service from Javascript. I am looking forward to your solution.

  2. FreddyDK says:

    You will actually find several solutions using Javascript on my blog here – the virtual earth integration and the gadgets all use Javascript.

  3. says:

    Hi Freddy

    thanks a lot. In general web services are used in the it world, not only in the ms world 🙂

    Now I’m searching for a way to use the nav web services in the mac world. Any idea? Using Java or Objectiv-C ?

  4. FreddyDK says:

    Unfortunately I do not have a MAC så I cannot make anything happen there – but I would guess the Java sample I wrote should be able to help you.

  5. says:

    I don't suppose you have a Ruby example?

  6. charlyrodri says:

    Sorry for my english!!!.

    Do you know Ruby on Rails? I'm trying to connect to Navision from Ruby on Rails.

    Will you create a post "how to connect to NAV Web Services from … Ruby on Rails"?

    Good job Freddy.

  7. watrachos says:

    Hi Freddy,

    thanks for the information.

    Are the follow up posts (c#, javascript, VB…..) available already?

    Have a nice day.

  8. Luke says:

    Thanks Freddy,

    Great post,

    Trying to absorb the knowledge given here.

  9. Sasmit says:

    Hi Freddy,

    Do you have any updates for NAV 2016 Web Service Consumption over Ruby On Rails