> ## Documentation Index
> Fetch the complete documentation index at: https://docs.authsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create SMS OTP authenticator configuration

> Create the tenant's SMS OTP authenticator configuration.



## OpenAPI

````yaml management-api POST /authenticator-configurations/sms
openapi: 3.1.0
info:
  description: Authsignal's Management API
  version: 1.0.0
  title: Management Api
  termsOfService: https://www.authsignal.com/legal/terms-of-service
  contact:
    email: hello@authsignal.com
servers:
  - url: https://api.authsignal.com/v1/management
    description: Authsignal's US (Oregon) Management API
  - url: https://au.api.authsignal.com/v1/management
    description: Authsignal's AU (Sydney) Management API
  - url: https://eu.api.authsignal.com/v1/management
    description: Authsignal's EU (Ireland) Management API
  - url: https://ca.api.authsignal.com/v1/management
    description: Authsignal's CA (Montreal) Management API
security:
  - basicAuth: []
tags:
  - name: Tenant
    description: Endpoints related to the configuration of a tenant.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: Action Configurations
    description: Endpoints related to the configuration of action configurations.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: SMS OTP configuration
    description: Endpoints for managing the tenant's SMS OTP configuration.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: email OTP configuration
    description: Endpoints for managing the tenant's email OTP configuration.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: passkey configuration
    description: Endpoints for managing the tenant's passkey configuration.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: push configuration
    description: Endpoints for managing the tenant's push configuration.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: Rules
    description: Endpoints related to the configuration of rules.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: Theme
    description: Endpoints related to the configuration of a Tenant's theme.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
  - name: Message Overrides
    description: >-
      Endpoints related to the configuration of a Tenant's pre-built UI message
      overrides.
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
externalDocs:
  description: Find out more about Authsignal
  url: https://docs.authsignal.com
paths:
  /authenticator-configurations/sms:
    post:
      tags:
        - SMS OTP configuration
      summary: Create an SMS OTP configuration
      description: >-
        Creates the tenant's SMS OTP configuration. Include the credentials
        required by the selected provider.
      operationId: createSmsAuthenticatorConfiguration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSmsAuthenticatorConfigurationBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmsAuthenticatorConfiguration'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CreateSmsAuthenticatorConfigurationBody:
      type: object
      description: SMS OTP configuration to create.
      properties:
        isActive:
          type: boolean
          description: Whether the authentication method is active. Defaults to `true`.
        smsProvider:
          $ref: '#/components/schemas/SmsOtpProvider'
        smsCountryCodes:
          $ref: '#/components/schemas/SmsCountryCodes'
        defaultCountryCode:
          $ref: '#/components/schemas/SmsCountryCode'
          description: When `smsCountryCodes` is present, it must include this value.
        submissionRateLimitConfiguration:
          $ref: '#/components/schemas/RateLimitConfiguration'
          description: The verification-code submission limit for SMS OTP.
        sendingRateLimitConfigurations:
          $ref: '#/components/schemas/SendingRateLimitConfigurations'
        prefixRateLimitConfigurations:
          $ref: '#/components/schemas/PrefixRateLimitConfigurations'
          description: Phone-prefix delivery limits for `SMS`.
        allowedCustomSmsVariables:
          $ref: '#/components/schemas/CustomMessageVariables'
          description: Custom template variable names for `SMS`.
        twilioCredentials:
          $ref: '#/components/schemas/TwilioCredentialsCreate'
          description: Use with the `TWILIO` SMS provider.
        birdSmsCredentials:
          $ref: '#/components/schemas/BirdSmsCredentialsCreate'
          description: Use with the `BIRD` SMS provider.
        messageMediaCredentials:
          $ref: '#/components/schemas/MessageMediaCredentialsCreate'
          description: Use with the `MESSAGE_MEDIA` SMS provider.
        modicaGroupCredentials:
          $ref: '#/components/schemas/ModicaGroupCredentialsCreate'
          description: Use with the `MODICA_GROUP` SMS provider.
        tnzCredentials:
          $ref: '#/components/schemas/TnzCredentialsCreate'
          description: Use with the `TNZ` SMS provider.
      required:
        - smsProvider
      allOf:
        - if:
            properties:
              smsProvider:
                const: BIRD
            required:
              - smsProvider
          then:
            required:
              - birdSmsCredentials
        - if:
            properties:
              smsProvider:
                const: TWILIO
            required:
              - smsProvider
          then:
            required:
              - twilioCredentials
        - if:
            properties:
              smsProvider:
                const: MESSAGE_MEDIA
            required:
              - smsProvider
          then:
            required:
              - messageMediaCredentials
        - if:
            properties:
              smsProvider:
                const: MODICA_GROUP
            required:
              - smsProvider
          then:
            required:
              - modicaGroupCredentials
        - if:
            properties:
              smsProvider:
                const: TNZ
            required:
              - smsProvider
          then:
            required:
              - tnzCredentials
      dependentSchemas:
        birdSmsCredentials:
          properties:
            smsProvider:
              const: BIRD
        twilioCredentials:
          properties:
            smsProvider:
              const: TWILIO
        messageMediaCredentials:
          properties:
            smsProvider:
              const: MESSAGE_MEDIA
        modicaGroupCredentials:
          properties:
            smsProvider:
              const: MODICA_GROUP
        tnzCredentials:
          properties:
            smsProvider:
              const: TNZ
      additionalProperties: false
      example:
        smsProvider: TWILIO
        twilioCredentials:
          authToken: your-auth-token
          messagingServiceSid: MG00000000000000000000000000000000
          accountSid: AC00000000000000000000000000000000
        smsCountryCodes:
          - AU
          - NZ
        defaultCountryCode: NZ
        sendingRateLimitConfigurations:
          - rateLimit: 2
            windowInMinutes: 1
          - rateLimit: 10
            windowInMinutes: 60
    SmsAuthenticatorConfiguration:
      type: object
      properties:
        authenticatorId:
          type: string
          description: The immutable identifier for this configuration.
          readOnly: true
        isActive:
          type: boolean
        verificationMethod:
          type: string
          const: SMS
          readOnly: true
          description: The verification method produced by this configuration.
        smsProvider:
          $ref: '#/components/schemas/SmsOtpProvider'
        smsCountryCodes:
          $ref: '#/components/schemas/SmsCountryCodes'
          description: Allowed destination countries for SMS OTP.
        defaultCountryCode:
          $ref: '#/components/schemas/SmsCountryCode'
        submissionRateLimitConfiguration:
          $ref: '#/components/schemas/RateLimitConfiguration'
        sendingRateLimitConfigurations:
          $ref: '#/components/schemas/SendingRateLimitConfigurations'
        prefixRateLimitConfigurations:
          $ref: '#/components/schemas/PrefixRateLimitConfigurations'
        allowedCustomSmsVariables:
          $ref: '#/components/schemas/CustomMessageVariables'
        twilioCredentials:
          $ref: '#/components/schemas/TwilioCredentialsResponse'
          description: Use with the `TWILIO` SMS provider.
        messageMediaCredentials:
          $ref: '#/components/schemas/MessageMediaCredentialsResponse'
          description: Use with the `MESSAGE_MEDIA` SMS provider.
        modicaGroupCredentials:
          $ref: '#/components/schemas/ModicaGroupCredentialsResponse'
          description: Use with the `MODICA_GROUP` SMS provider.
        tnzCredentials:
          $ref: '#/components/schemas/TnzCredentialsResponse'
          description: Use with the `TNZ` SMS provider.
        birdSmsCredentials:
          $ref: '#/components/schemas/BirdSmsCredentialsResponse'
          description: Use with the `BIRD` SMS provider.
      required:
        - authenticatorId
        - verificationMethod
        - isActive
      additionalProperties: true
      example:
        authenticatorId: 6b736c64-ff30-4b85-8706-0c78c34c0ca9
        verificationMethod: SMS
        isActive: true
        smsProvider: BIRD
        smsCountryCodes:
          - AU
          - NZ
        defaultCountryCode: NZ
        sendingRateLimitConfigurations:
          - rateLimit: 2
            windowInMinutes: 1
          - rateLimit: 10
            windowInMinutes: 60
        birdSmsCredentials:
          workspaceId: workspace-id
          channelId: channel-id
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        errorDescription:
          type: string
    SmsOtpProvider:
      type: string
      description: >-
        The SMS provider. Supply the matching credential object for `BIRD`,
        `TWILIO`, `MESSAGE_MEDIA`, `MODICA_GROUP`, or `TNZ`.
      enum:
        - BIRD
        - TWILIO
        - MESSAGE_MEDIA
        - MODICA_GROUP
        - TNZ
    SmsCountryCodes:
      type: array
      items:
        $ref: '#/components/schemas/SmsCountryCode'
    SmsCountryCode:
      type: string
      description: A supported two-letter country code.
      enum:
        - AD
        - AE
        - AF
        - AG
        - AI
        - AL
        - AM
        - AO
        - AR
        - AS
        - AT
        - AU
        - AW
        - AX
        - AZ
        - BA
        - BB
        - BD
        - BE
        - BF
        - BG
        - BH
        - BI
        - BJ
        - BL
        - BM
        - BN
        - BO
        - BR
        - BS
        - BT
        - BW
        - BY
        - BZ
        - CA
        - CC
        - CD
        - CF
        - CG
        - CH
        - CI
        - CK
        - CL
        - CM
        - CN
        - CO
        - CR
        - CU
        - CV
        - CX
        - CY
        - CZ
        - DE
        - DJ
        - DK
        - DM
        - DO
        - DZ
        - EC
        - EE
        - EG
        - ER
        - ES
        - ET
        - FI
        - FJ
        - FK
        - FM
        - FO
        - FR
        - GA
        - GB
        - GD
        - GE
        - GF
        - GG
        - GH
        - GI
        - GL
        - GM
        - GN
        - GP
        - GQ
        - GR
        - GT
        - GU
        - GW
        - GY
        - HK
        - HN
        - HR
        - HT
        - HU
        - ID
        - IE
        - IL
        - IM
        - IN
        - IO
        - IQ
        - IR
        - IS
        - IT
        - JE
        - JM
        - JO
        - JP
        - KE
        - KG
        - KH
        - KI
        - KM
        - KN
        - KP
        - KR
        - KW
        - KY
        - KZ
        - LA
        - LB
        - LC
        - LI
        - LK
        - LR
        - LS
        - LT
        - LU
        - LV
        - LY
        - MA
        - MC
        - MD
        - ME
        - MF
        - MG
        - MH
        - MK
        - ML
        - MM
        - MN
        - MO
        - MP
        - MQ
        - MR
        - MS
        - MT
        - MU
        - MV
        - MW
        - MX
        - MY
        - MZ
        - NA
        - NC
        - NE
        - NF
        - NG
        - NI
        - NL
        - 'NO'
        - NP
        - NR
        - NU
        - NZ
        - OM
        - PA
        - PE
        - PF
        - PG
        - PH
        - PK
        - PL
        - PM
        - PR
        - PS
        - PT
        - PW
        - PY
        - QA
        - RE
        - RO
        - RS
        - RU
        - RW
        - SA
        - SB
        - SC
        - SD
        - SE
        - SG
        - SH
        - SI
        - SJ
        - SK
        - SL
        - SM
        - SN
        - SO
        - SR
        - SS
        - ST
        - SV
        - SY
        - SZ
        - TC
        - TD
        - TG
        - TH
        - TJ
        - TK
        - TL
        - TM
        - TN
        - TO
        - TR
        - TT
        - TV
        - TW
        - TZ
        - UA
        - UG
        - US
        - UY
        - UZ
        - VA
        - VC
        - VE
        - VG
        - VI
        - VN
        - VU
        - WF
        - WS
        - XK
        - YE
        - YT
        - ZA
        - ZM
        - ZW
    RateLimitConfiguration:
      type: object
      properties:
        rateLimit:
          type: integer
          minimum: 1
          maximum: 100
        windowInMinutes:
          type: number
          minimum: 1
          maximum: 1440
      required:
        - rateLimit
        - windowInMinutes
      additionalProperties: false
    SendingRateLimitConfigurations:
      type: array
      description: Message delivery limits. Every configured limit applies.
      items:
        $ref: '#/components/schemas/RateLimitConfiguration'
      minItems: 1
      maxItems: 6
    PrefixRateLimitConfigurations:
      type: array
      items:
        $ref: '#/components/schemas/PrefixRateLimitConfiguration'
      maxItems: 5
    CustomMessageVariables:
      type: array
      items:
        type: string
    TwilioCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/TwilioCredentials'
        - required:
            - authToken
            - messagingServiceSid
            - accountSid
    BirdSmsCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/BirdSmsCredentials'
        - required:
            - accessKey
            - workspaceId
    MessageMediaCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/MessageMediaCredentials'
        - required:
            - apiKey
            - apiSecret
    ModicaGroupCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/ModicaGroupCredentials'
        - required:
            - username
            - password
    TnzCredentialsCreate:
      allOf:
        - $ref: '#/components/schemas/TnzCredentials'
        - required:
            - apiKey
    TwilioCredentialsResponse:
      type: object
      properties:
        messagingServiceSid:
          type: string
        accountSid:
          type: string
      additionalProperties: false
    MessageMediaCredentialsResponse:
      type: object
      properties:
        sourceNumber:
          type: string
      additionalProperties: false
    ModicaGroupCredentialsResponse:
      type: object
      properties:
        username:
          type: string
      additionalProperties: false
    TnzCredentialsResponse:
      type: object
      additionalProperties: false
    BirdSmsCredentialsResponse:
      type: object
      properties:
        workspaceId:
          type: string
        channelId:
          type: string
        navigatorId:
          type: string
        projectId:
          type: string
        locale:
          type: string
        enableMessageTemplates:
          type: boolean
      additionalProperties: false
    PrefixRateLimitConfiguration:
      type: object
      properties:
        enabled:
          type: boolean
        blockSize:
          oneOf:
            - type: integer
              exclusiveMinimum: 0
            - type: string
              const: country
        rateLimit:
          type: integer
          exclusiveMinimum: 0
          maximum: 1000
        windowInMinutes:
          type: number
          exclusiveMinimum: 0
          maximum: 1440
        countryCodes:
          $ref: '#/components/schemas/SmsCountryCodes'
      additionalProperties: false
    TwilioCredentials:
      type: object
      properties:
        authToken:
          type: string
          writeOnly: true
        messagingServiceSid:
          type: string
        accountSid:
          type: string
      additionalProperties: false
    BirdSmsCredentials:
      type: object
      properties:
        accessKey:
          type: string
          writeOnly: true
        workspaceId:
          type: string
        channelId:
          type: string
        navigatorId:
          type: string
        projectId:
          type: string
        locale:
          type: string
        enableMessageTemplates:
          type: boolean
      additionalProperties: false
    MessageMediaCredentials:
      type: object
      properties:
        apiKey:
          type: string
          writeOnly: true
        apiSecret:
          type: string
          writeOnly: true
        sourceNumber:
          type: string
      additionalProperties: false
    ModicaGroupCredentials:
      type: object
      properties:
        username:
          type: string
        password:
          type: string
          writeOnly: true
      additionalProperties: false
    TnzCredentials:
      type: object
      properties:
        apiKey:
          type: string
          writeOnly: true
      additionalProperties: false
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Use your Authsignal Management API secret key as the username and leave
        the password empty. This key is different from the Server API key and
        can be found in the API Keys section of the Authsignal Portal settings
        page.

````