diff --git a/lib/build.js b/lib/build.js
index 00a0fba..9195285 100644
--- a/lib/build.js
+++ b/lib/build.js
@@ -29,6 +29,10 @@
     win: 'win32'
 };
 
+const TARGET_TOP_LEVEL_KEY_MAPPING = {
+    'nsis-web': 'nsisWeb'
+};
+
 class ElectronBuilder {
     constructor (buildOptions, api) {
         this.api = api;
@@ -120,7 +124,9 @@
 
                 if (typeof target === 'object' && Object.keys(target).length !== 0) {
                     const targetKey = Object.keys(target)[0];
-                    userBuildSettings.config[targetKey] = target[targetKey];
+                    const rootKey = TARGET_TOP_LEVEL_KEY_MAPPING[targetKey] || targetKey;
+
+                    userBuildSettings.config[rootKey] = target[targetKey];
                     target = targetKey;
                 }
 
diff --git a/tests/spec/unit/lib/build.spec.js b/tests/spec/unit/lib/build.spec.js
index 372d18d..a07d14a 100644
--- a/tests/spec/unit/lib/build.spec.js
+++ b/tests/spec/unit/lib/build.spec.js
@@ -1261,6 +1261,33 @@
             expect(buildOptions.buildConfig.electron.mac.signing.store.requirements).toBe(undefined);
         });
 
+        it('should format nsis-web taget with nsisWeb top-level configs in __formatAppendUserSettings.', () => {
+            // Sample target configuration option
+            const appPackageUrl = 'https://foo.bar/apps/win/web';
+            // The settings which will be populated by `__formatAppendUserSettings`
+            const userBuildSettings = {};
+            // platform config partial from `build.json`
+            const platformConfig = {
+                package: [
+                    { 'nsis-web': { appPackageUrl } }
+                ]
+            };
+            // the mock `build.json`
+            const buildConfig = { electron: { windows: platformConfig } };
+            // the build options which is passed from CLI/Lib to Platform Build
+            const buildOptions = { argv: [], buildConfig };
+
+            // // create spies
+            existsSyncSpy = jasmine.createSpy('existsSync').and.returnValue(false);
+            build.__set__('fs', { existsSync: existsSyncSpy });
+
+            electronBuilder = new ElectronBuilder(buildOptions, api)
+                .__formatAppendUserSettings('win', platformConfig, userBuildSettings);
+
+            expect(existsSyncSpy).toHaveBeenCalled();
+            expect(userBuildSettings.config.nsisWeb.appPackageUrl).toBe(appPackageUrl);
+        });
+
         it('should append user singing for windows', () => {
             // mock platformConfig, buildConfig and buildOptions Objects
             const platformConfig = {
