diff --git a/docs/en/observability/synthetics-mfa.asciidoc b/docs/en/observability/synthetics-mfa.asciidoc
index 476c3ce04a..d49fe6fb63 100644
--- a/docs/en/observability/synthetics-mfa.asciidoc
+++ b/docs/en/observability/synthetics-mfa.asciidoc
@@ -41,7 +41,7 @@ import { journey, step, mfa} from '@elastic/synthetics';
journey('MFA Test', ({ page, params }) => {
step('Login using TOTP token', async () => {
// login using username and pass and go to 2FA in next page
- const token = mfa.token(params.MFA_GH_SECRET);
+ const token = mfa.totp(params.MFA_SECRET);
await page.getByPlaceholder("token-input").fill(token)
});
});
@@ -51,12 +51,12 @@ For monitors created in the Synthetics UI using the Script editor, the `mfa` obj
```ts
step('Login using 2FA', async () => {
- const token = mfa.token(params.MFA_GH_SECRET);
+ const token = mfa.totp(params.MFA_SECRET);
await page.getByPlaceholder("token-input").fill(token)
});
```
[NOTE]
====
-`params.MFA_GH_SECRET` would be the encoded secret that was used for registering the Synthetics Authentication in your web application.
+`params.MFA_SECRET` would be the encoded secret that was used for registering the Synthetics Authentication in your web application.
====
\ No newline at end of file
diff --git a/docs/en/serverless/synthetics/synthetics-mfa.asciidoc b/docs/en/serverless/synthetics/synthetics-mfa.asciidoc
new file mode 100644
index 0000000000..7565b7d5e4
--- /dev/null
+++ b/docs/en/serverless/synthetics/synthetics-mfa.asciidoc
@@ -0,0 +1,66 @@
+[[observability-synthetics-mfa]]
+= Multi-factor Authentication (MFA) for browser monitors
+
+++++
+Multifactor Authentication for browser monitors
+++++
+
+Multi-factor Authentication (MFA) adds an essential layer of security to
+applications login processes, protecting against unauthorized access. A very
+common use case in Synthetics is testing user journeys involving websites
+protected by MFA.
+
+Synthetics supports testing websites secured by Time-based One-Time Password
+(TOTP), a common MFA method that provides short-lived one-time tokens to
+enhance security.
+
+[discrete]
+[[observability-synthetics-mfa-configuring-totp-for-mfa]]
+== Configuring TOTP for MFA
+
+To test a browser journey that uses TOTP for MFA, first configure the
+Synthetics authenticator token in the target application. To do this, generate a One-Time
+Password (OTP) using the Synthetics CLI; refer to <`>>.
+
+[source,sh]
+----
+npx @elastic/synthetics totp
+
+// prints
+OTP Token: 123456
+----
+
+[discrete]
+[[observability-synthetics-mfa-applying-the-totp-token-in-browser-journeys]]
+== Applying the TOTP Token in Browser Journeys
+
+Once the Synthetics TOTP Authentication is configured in your application, you can now use the OTP token in the synthetics browser
+journeys using the `mfa` object imported from `@elastic/synthetics`.
+
+[source,ts]
+----
+import { journey, step, mfa } from "@elastic/synthetics";
+
+journey("MFA Test", ({ page, params }) => {
+ step("Login using TOTP token", async () => {
+ // login using username and pass and go to 2FA in next page
+ const token = mfa.totp(params.MFA_SECRET);
+ await page.getByPlaceholder("token-input").fill(token);
+ });
+});
+----
+
+For monitors created in the Synthetics UI using the Script editor, the `mfa` object can be accessed as shown below:
+
+[source,ts]
+----
+step("Login using 2FA", async () => {
+ const token = mfa.totp(params.MFA_SECRET);
+ await page.getByPlaceholder("token-input").fill(token);
+});
+----
+
+[NOTE]
+====
+`params.MFA_SECRET` would be the encoded secret that was used for registering the Synthetics Authentication in your web application.
+====