A system for providing secure machine to machine, M2M, communications comprising: a device management, DM, server comprising: a first communications interface; a second communications interface; and the DM server further comprising logic configured to: receive over the first communications interface an application programming interface, API, request from a virtual private network, VPN, server, wherein the API request includes credentials of a VPN for setting up the VPN between the VPN server and one or more M2M devices, provision over the second communications interface one or more M2M devices with the received credentials of the VPN, and in response to the API request provide an API response, wherein the API response includes credentials of the one or more M2M devices successfully provisioned with the credentials of the VPN; a computer-readable medium having stored thereon logic in the form of stored instructions comprising an application programming interface, API, when the instructions are executed by a processor, the processor is configured to: issue the API request from the VPN server to the DM server, and send the API response to the VPN server from the DM server; and a VPN server comprising: a first communications interface configured to communicate the API requests and API responses with the API; a second communications interface configured to provide the VPN for the one or more M2M devices; and the VPN server further comprising logic configured to: issue the API request, receive the API response from the DM server, and based on the API response initiate a VPN over the second interface between the one or more M2M devices and the VPN server. a device management, DM, server comprising: a first communications interface; a second communications interface; and the DM server further comprising logic configured to: receive over the first communications interface an application programming interface, API, request from a virtual private network, VPN, server, wherein the API request includes credentials of a VPN for setting up the VPN between the VPN server and one or more M2M devices, provision over the second communications interface one or more M2M devices with the received credentials of the VPN, and in response to the API request provide an API response, wherein the API response includes credentials of the one or more M2M devices successfully provisioned with the credentials of the VPN; a first communications interface; a second communications interface; and the DM server further comprising logic configured to: receive over the first communications interface an application programming interface, API, request from a virtual private network, VPN, server, wherein the API request includes credentials of a VPN for setting up the VPN between the VPN server and one or more M2M devices, provision over the second communications interface one or more M2M devices with the received credentials of the VPN, and in response to the API request provide an API response, wherein the API response includes credentials of the one or more M2M devices successfully provisioned with the credentials of the VPN; receive over the first communications interface an application programming interface, API, request from a virtual private network, VPN, server, wherein the API request includes credentials of a VPN for setting up the VPN between the VPN server and one or more M2M devices, provision over the second communications interface one or more M2M devices with the received credentials of the VPN, and in response to the API request provide an API response, wherein the API response includes credentials of the one or more M2M devices successfully provisioned with the credentials of the VPN; a computer-readable medium having stored thereon logic in the form of stored instructions comprising an application programming interface, API, when the instructions are executed by a processor, the processor is configured to: issue the API request from the VPN server to the DM server, and send the API response to the VPN server from the DM server; and issue the API request from the VPN server to the DM server, and send the API response to the VPN server from the DM server; and a VPN server comprising: a first communications interface configured to communicate the API requests and API responses with the API; a second communications interface configured to provide the VPN for the one or more M2M devices; and the VPN server further comprising logic configured to: issue the API request, receive the API response from the DM server, and based on the API response initiate a VPN over the second interface between the one or more M2M devices and the VPN server. a first communications interface configured to communicate the API requests and API responses with the API; a second communications interface configured to provide the VPN for the one or more M2M devices; and the VPN server further comprising logic configured to: issue the API request, receive the API response from the DM server, and based on the API response initiate a VPN over the second interface between the one or more M2M devices and the VPN server. issue the API request, receive the API response from the DM server, and based on the API response initiate a VPN over the second interface between the one or more M2M devices and the VPN server.