> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # MFA > Multi-factor authentication via SMS and voice. [restclient]: /docs/server-sdks/reference/typescript/rest/client [sms]: /docs/server-sdks/reference/typescript/rest/mfa/sms [call]: /docs/server-sdks/reference/typescript/rest/mfa/call [verify]: /docs/server-sdks/reference/typescript/rest/mfa/verify Send and verify multi-factor authentication (MFA) codes via SMS or voice call. The typical flow is: request a code with `sms()` or `call()`, then confirm it with `verify()`. Access via `client.mfa` on a [`RestClient`][restclient] instance. ```typescript {9} import { RestClient } from "@signalwire/sdk"; const client = new RestClient({ project: "your-project-id", token: "your-api-token", host: "your-space.signalwire.com" }); const request = await client.mfa.sms({ to: "+15551234567", from: "+15559876543" }); console.log(request.id); ``` ## **Methods** #### [sms](/docs/server-sdks/reference/typescript/rest/mfa/sms) Send an MFA verification code via SMS. #### [call](/docs/server-sdks/reference/typescript/rest/mfa/call) Send an MFA verification code via voice call. #### [verify](/docs/server-sdks/reference/typescript/rest/mfa/verify) Verify an MFA code submitted by the user. > Multi-factor authentication via SMS and voice. ## Docs - [call](https://signalwire.com/docs/server-sdks/reference/typescript/rest/mfa/call.md): Send an MFA verification code via voice call. - [sms](https://signalwire.com/docs/server-sdks/reference/typescript/rest/mfa/sms.md): Send an MFA verification code via SMS. - [verify](https://signalwire.com/docs/server-sdks/reference/typescript/rest/mfa/verify.md): Verify an MFA code submitted by the user.