Infobip Platform API

Modular tools to scale and automate your business.

Operations 194

GET /2fa/2/applications Get all 2FA applications #
POST /2fa/2/applications Create 2FA application #
GET /2fa/2/applications/{appId} Get 2FA application #
PUT /2fa/2/applications/{appId} Update 2FA application #
GET /2fa/2/applications/{appId}/messages Get all 2FA message templates #
POST /2fa/2/applications/{appId}/messages Create 2FA SMS or Voice message template #
GET /2fa/2/applications/{appId}/messages/{msgId} Get 2FA message template #
PUT /2fa/2/applications/{appId}/messages/{msgId} Update 2FA SMS or Voice message template #
POST /2fa/2/applications/{appId}/email/messages Create 2FA Email message template #
PUT /2fa/2/applications/{appId}/email/messages/{msgId} Update 2FA Email message template #
POST /2fa/2/pin Send 2FA PIN code over SMS #
POST /2fa/2/pin/{pinId}/resend Resend 2FA PIN code over SMS #
POST /2fa/2/pin/voice Send 2FA PIN code over Voice #
POST /2fa/2/pin/{pinId}/resend/voice Resend 2FA PIN code over Voice #
POST /2fa/2/pin/email Send 2FA PIN code over Email #
POST /2fa/2/pin/{pinId}/resend/email Resend 2FA PIN code over Email #
POST /2fa/2/pin/{pinId}/verify Verify a PIN #
GET /2fa/2/applications/{appId}/verifications Get 2FA verification status #
GET /account/1/balance Get current account balance #
GET /account/1/free-messages Get remaining free messages #
GET /account/1/total-balance Get account balance with free messages #
GET /settings/1/accounts Get all sub accounts with filter #
PUT /settings/1/accounts/{accountKey} Update account #
GET /settings/1/accounts/{accountKey}/api-keys Get API keys by filter #
POST /settings/1/accounts/{accountKey}/api-keys Create API key #
GET /settings/1/accounts/{accountKey}/api-keys/{key} Get API key #
PUT /settings/1/accounts/{accountKey}/api-keys/{key} Update API key #
GET /settings/2/api-keys Get API keys by filter #
POST /settings/2/api-keys Create API key #
GET /settings/2/api-keys/{apiKeyId} Get API key #
PUT /settings/2/api-keys/{apiKeyId} Update API key #
POST /auth/1/session Create session token #
DELETE /auth/1/session Destroy session token #
POST /auth/1/oauth2/token Create OAuth2 token #
GET /audit/1/logs/export Export Audit Logs #
GET /audit/1/logs Search Audit Logs #
GET /provisioning/1/applications Get applications #
POST /provisioning/1/applications Create application #
GET /provisioning/1/applications/{applicationId} Get application #
PUT /provisioning/1/applications/{applicationId} Modify application #
DELETE /provisioning/1/applications/{applicationId} Delete application #
GET /provisioning/1/entities Get entities #
POST /provisioning/1/entities Create entity #
GET /provisioning/1/entities/{entityId} Get entity #
PUT /provisioning/1/entities/{entityId} Modify entity #
DELETE /provisioning/1/entities/{entityId} Delete entity #
GET /provisioning/1/associations Get resource associations #
POST /provisioning/1/associations Create resource association #
DELETE /provisioning/1/associations Delete resource association #
GET /provisioning/1/associations/single Get resource association #
GET /numbers/1/numbers/available Get available numbers #
GET /numbers/1/numbers List owned numbers #
POST /numbers/1/numbers Purchase number #
GET /numbers/1/numbers/{numberKey} Get single owned number #
PUT /numbers/1/numbers/{numberKey} Update owned number #
DELETE /numbers/1/numbers/{numberKey} Cancel number #
GET /numbers/2/numbers/{numberKey}/sms Get all number configurations #
PUT /numbers/2/numbers/{numberKey}/sms Update number configuration #
POST /numbers/2/numbers/{numberKey}/sms Create number configuration #
GET /numbers/2/numbers/{numberKey}/sms/{configurationKey} Get single number configuration #
DELETE /numbers/2/numbers/{numberKey}/sms/{configurationKey} Delete number configuration #
GET /numbers/2/numbers/{numberKey}/mms Get all number MMS configurations #
POST /numbers/2/numbers/{numberKey}/mms Create number MMS configuration #
GET /numbers/2/numbers/{numberKey}/mms/{configurationKey} Get number MMS configuration #
PUT /numbers/2/numbers/{numberKey}/mms/{configurationKey} Update number MMS configuration #
DELETE /numbers/2/numbers/{numberKey}/mms/{configurationKey} Delete number MMS configuration #
GET /numbers/2/numbers/{numberKey}/voice Get voice setup on number #
PUT /numbers/2/numbers/{numberKey}/voice Update voice setup on number #
POST /numbers/2/numbers/{numberKey}/voice Create voice setup on number #
DELETE /numbers/2/numbers/{numberKey}/voice Delete voice setup on number #
GET /numbers/2/numbers/{numberKey}/voice/cnam Get CNAM #
PUT /numbers/2/numbers/{numberKey}/voice/cnam Update CNAM #
POST /numbers/2/numbers/{numberKey}/voice/cnam Create CNAM #
DELETE /numbers/2/numbers/{numberKey}/voice/cnam Delete CNAM #
GET /numbers/2/numbers/{numberKey}/voice/cnam/status Get CNAM status #
POST /numbers/2/numbers/{numberKey}/voice/emergency-service/validate-address Validate Emergency Service Address #
GET /numbers/2/numbers/{numberKey}/voice/emergency-service Get Emergency Service Address #
PUT /numbers/2/numbers/{numberKey}/voice/emergency-service Update Emergency Service Address #
POST /numbers/2/numbers/{numberKey}/voice/emergency-service Create Emergency Service Address #
DELETE /numbers/2/numbers/{numberKey}/voice/emergency-service Delete Emergency Service Address #
GET /numbers/2/numbers/{numberKey}/voice/emergency-service/status Get Emergency Service Address status #
GET /number-registration/1/brands Get Brands #
POST /number-registration/1/brands Create Brand #
GET /number-registration/1/brands/{brandId} Get Brand #
PUT /number-registration/1/brands/{brandId} Update Brand #
DELETE /number-registration/1/brands/{brandId} Delete Brand #
POST /number-registration/1/brands/{brandId}/register Register Brand #
GET /number-registration/1/brands/{brandId}/registrar-statuses Get Brand Registrar Statuses #
POST /number-registration/1/brands/{brandId}/brand-auth-verification Request Brand Authentication+ Verification #
POST /number-registration/1/brands/{brandId}/resend2fa Resend 2FA Email For Brand Authentication #
POST /number-registration/1/brands/{brandId}/appeal Submit Brand Identity Appeal #
GET /number-registration/1/brands/{brandId}/appeals Get Brand Appeals #
GET /number-registration/1/brands/{brandId}/vets Get Brand Vets #
POST /number-registration/1/brands/{brandId}/vets Vet Brand #
GET /number-registration/1/brands/{brandId}/vets/{vetId} Get Brand Vet #
PUT /number-registration/1/brands/{brandId}/vets/{vetId} Update Brand Vet #
PUT /number-registration/1/brands/{brandId}/vets/import Import Existing Brand Vet #
GET /number-registration/1/brands/{brandId}/vets/{vetId}/report Get Brand Enhanced Vet Report #
GET /number-registration/1/campaigns Get Campaigns #
POST /number-registration/1/campaigns Create Campaign #
POST /number-registration/1/campaigns/toll-free Create Toll Free Campaign #
GET /number-registration/1/campaigns/{campaignId} Get Campaign #
PUT /number-registration/1/campaigns/{campaignId} Update Campaign #
DELETE /number-registration/1/campaigns/{campaignId} Delete Campaign #
POST /number-registration/1/campaigns/{campaignId}/register Submit Campaign #
GET /number-registration/1/campaigns/{campaignId}/network-statuses Get Campaign Network Statuses #
POST /number-registration/1/campaigns/{campaignId}/deregister Deregister Campaign #
POST /number-registration/1/campaigns/{campaignId}/update-registration Update Registered Campaign #
POST /number-registration/1/campaigns/{campaignId}/add-numbers Add Numbers to Registered Campaign #
POST /number-registration/1/campaigns/{campaignId}/remove-numbers Remove Numbers from Registered Campaign #
GET /number-registration/1/campaigns/{campaignId}/numbers Get Campaign numbers #
POST /number-registration/1/campaigns/{campaignId}/appeal Appeal Campaign #
GET /number-registration/1/campaigns/priorities Get Campaign Priorities #
POST /number-registration/1/campaigns/{campaignId}/number-pool/attach Attach Number Pool to Campaign #
POST /number-registration/1/campaigns/{campaignId}/number-pool/detach Detach Number Pool from Campaign #
GET /number-registration/1/number-pools Get Owned Number Pools #
POST /number-registration/1/documents Upload Document #
GET /number-registration/1/documents/{documentId} Download Document #
POST /number-registration/1/automatic-review/campaigns/{campaignUuid} Submit Existing Campaign for AI Review #
POST /number-registration/1/automatic-review Submit Campaign Info for AI Review #
GET /number-registration/1/automatic-review/{requestUuid} Get AI Review Results #
POST /number-registration/1/campaign-builder Start Campaign Builder #
GET /number-registration/1/campaign-builder/{requestUuid} Get Campaign Builder Results #
GET /subscriptions/1/subscription/{channel} Get subscriptions #
POST /subscriptions/1/subscription/{channel} Create subscription #
GET /subscriptions/1/subscription/{channel}/{subscriptionId} Get single subscription #
PUT /subscriptions/1/subscription/{channel}/{subscriptionId} Update subscription #
DELETE /subscriptions/1/subscription/{channel}/{subscriptionId} Delete subscription #
GET /subscriptions/1/profiles Get notification profiles #
POST /subscriptions/1/profiles Create notification profile #
GET /subscriptions/1/profiles/{profileId} Get single notification profile #
PUT /subscriptions/1/profiles/{profileId} Update notification profile #
DELETE /subscriptions/1/profiles/{profileId} Delete notification profile #
GET /subscriptions/1/security Get security settings #
POST /subscriptions/1/security Create security settings #
GET /subscriptions/1/security/{authId} Get single security settings #
PUT /subscriptions/1/security/{authId} Update security settings #
DELETE /subscriptions/1/security/{authId} Delete security settings #
GET /subscriptions/1/certificates Get filtered certificate details page #
POST /subscriptions/1/certificates Upload certificate #
GET /subscriptions/1/certificates/{certificateId} Get certificate details by identifier #
DELETE /subscriptions/1/certificates/{certificateId} Delete certificate #
GET /subscriptions/1/certificates/status Get filtered certificates statuses page #
GET /subscriptions/1/certificates/status/{certificateId} Get certificate status by identifier #
POST /subscriptions/1/certificates/test/webhook Test connection to a webhook #
POST /metrics/1/query-aggregate-data Query aggregated traffic data #
GET /metrics/1/requests/{requestId} Get status of query aggregate data request #
POST /billing/1/usage/query Query billing usage data #
GET /provisioning/2/sending-strategies Get sending strategies #
POST /provisioning/2/sending-strategies Create sending strategy #
DELETE /provisioning/2/sending-strategies/{sendingStrategyId} Delete sending strategy by sending strategy id #
GET /platform/1/blocklists Get all blocklists #
POST /platform/1/blocklists Create blocklists #
DELETE /platform/1/blocklists Delete blocklists #
GET /catalogs/1/catalogs Get catalogs #
POST /catalogs/1/catalogs Create catalog #
GET /catalogs/1/catalogs/{id} Get catalog #
DELETE /catalogs/1/catalogs/{id} Delete catalog #
PATCH /catalogs/1/catalogs/{id} Update catalog #
GET /catalogs/1/catalogs/{catalogId}/fields Get fields #
POST /catalogs/1/catalogs/{catalogId}/fields Create fields #
GET /catalogs/1/catalogs/{catalogId}/fields/{fieldId} Get field #
DELETE /catalogs/1/catalogs/{catalogId}/fields/{fieldId} Delete field #
PATCH /catalogs/1/catalogs/{catalogId}/fields/{fieldId} Update field #
GET /catalogs/1/catalogs/{catalogId}/items Get items #
POST /catalogs/1/catalogs/{catalogId}/items Add items #
DELETE /catalogs/1/catalogs/{catalogId}/items Delete items #
PATCH /catalogs/1/catalogs/{catalogId}/items Update items #
GET /catalogs/1/catalogs/{catalogId}/items/{itemId} Get item #
DELETE /catalogs/1/catalogs/{catalogId}/items/{itemId} Delete item #
PATCH /catalogs/1/catalogs/{catalogId}/items/{itemId} Update item #
GET /catalogs/1/catalogs/{catalogId}/items/count Get item count #
POST /messages-api/1/messages Send a Messages API message #
POST /messages-api/1/messages/validate Validate a Messages API message #
POST /messages-api/1/events Send a Messages API event #
GET /messages-api/1/reports Get delivery reports #
GET /messages-api/1/inbound Get inbound messages #
POST /signals/1/trusted-msisdns Add phone numbers to a list #
DELETE /signals/1/trusted-msisdns Remove phone numbers from a list #
GET /signals/1/trusted-msisdns/{msisdn}/check Check for phone numbers on a list #
GET /resource-management/1/inbound-message-configurations Get inbound configurations #
POST /resource-management/1/inbound-message-configurations Manage inbound configuration #
DELETE /resource-management/1/inbound-message-configurations/{configurationKey} Delete inbound configuration #
POST /resources/1/resources Search resources #
POST /resources/1/coverage-lookup Lookup coverage for a resource #
POST /resources/1/requirements-lookup Get resource requirements #
GET /resources/1/requests Get resource requests #
POST /resources/1/requests Submit resource request #
GET /resources/1/requests/{id} Get resource request #
PATCH /resources/1/requests/{id} Update resource request #
POST /resources/1/requests/{id}/cancel Cancel resource request #
POST /resources/1/documents Upload document #
GET /resources/1/documents/{documentId} Download document #
DELETE /resources/1/documents/{documentId} Delete document #

Documentation

📖
Documentation
https://www.infobip.com/docs/api/platform/2fa
📖
APIReference
https://www.infobip.com/docs/api/platform/2fa
📖
Documentation
https://www.infobip.com/docs/api/platform/account-management
📖
APIReference
https://www.infobip.com/docs/api/platform/account-management
📖
Documentation
https://www.infobip.com/docs/api/ai-hub/ai-assistants
📖
APIReference
https://www.infobip.com/docs/api/ai-hub/ai-assistants
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/answers
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/answers
📖
Documentation
https://www.infobip.com/docs/api/channels/apple-mfb
📖
APIReference
https://www.infobip.com/docs/api/channels/apple-mfb
📖
Documentation
https://www.infobip.com/docs/api/platform/application-entity
📖
APIReference
https://www.infobip.com/docs/api/platform/application-entity
📖
Documentation
https://www.infobip.com/docs/api/platform/billing-usage-api
📖
APIReference
https://www.infobip.com/docs/api/platform/billing-usage-api
📖
Documentation
https://www.infobip.com/docs/api/connectivity/biometrics
📖
APIReference
https://www.infobip.com/docs/api/connectivity/biometrics
📖
Documentation
https://www.infobip.com/docs/api/platform/blocklist
📖
APIReference
https://www.infobip.com/docs/api/platform/blocklist
📖
Documentation
https://www.infobip.com/docs/api/connectivity/camara
📖
APIReference
https://www.infobip.com/docs/api/connectivity/camara
📖
Documentation
https://www.infobip.com/docs/api/platform/catalogs-api
📖
APIReference
https://www.infobip.com/docs/api/platform/catalogs-api
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/common-assets
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/common-assets
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/conversations
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/conversations
📖
Documentation
https://www.infobip.com/docs/api/channels/email
📖
APIReference
https://www.infobip.com/docs/api/channels/email
📖
Documentation
https://www.infobip.com/docs/api/channels/instagram
📖
APIReference
https://www.infobip.com/docs/api/channels/instagram
📖
Documentation
https://www.infobip.com/docs/api/channels/kakao
📖
APIReference
https://www.infobip.com/docs/api/channels/kakao
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/knowledge-base
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/knowledge-base
📖
Documentation
https://www.infobip.com/docs/api/channels/line
📖
APIReference
https://www.infobip.com/docs/api/channels/line
📖
Documentation
https://www.infobip.com/docs/api/channels/live-chat
📖
APIReference
https://www.infobip.com/docs/api/channels/live-chat
📖
Documentation
https://www.infobip.com/docs/api/platform/messages-api
📖
APIReference
https://www.infobip.com/docs/api/platform/messages-api
📖
Documentation
https://www.infobip.com/docs/api/channels/messenger
📖
APIReference
https://www.infobip.com/docs/api/channels/messenger
📖
Documentation
https://www.infobip.com/docs/api/platform/metrics-api
📖
APIReference
https://www.infobip.com/docs/api/platform/metrics-api
📖
Documentation
https://www.infobip.com/docs/api/channels/mms
📖
APIReference
https://www.infobip.com/docs/api/channels/mms
📖
Documentation
https://www.infobip.com/docs/api/channels/mobile-app-messaging
📖
APIReference
https://www.infobip.com/docs/api/channels/mobile-app-messaging
📖
Documentation
https://www.infobip.com/docs/api/connectivity/mobile-identity
📖
APIReference
https://www.infobip.com/docs/api/connectivity/mobile-identity
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/moments
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/moments
📖
Documentation
https://www.infobip.com/docs/api/connectivity/number-activation-state
📖
APIReference
https://www.infobip.com/docs/api/connectivity/number-activation-state
📖
Documentation
https://www.infobip.com/docs/api/connectivity/number-lookup
📖
APIReference
https://www.infobip.com/docs/api/connectivity/number-lookup
📖
Documentation
https://www.infobip.com/docs/api/platform/numbers
📖
APIReference
https://www.infobip.com/docs/api/platform/numbers
📖
Documentation
https://www.infobip.com/docs/api/channels/omni-failover
📖
APIReference
https://www.infobip.com/docs/api/channels/omni-failover
📖
Documentation
https://www.infobip.com/docs/api/channels/open-channel
📖
APIReference
https://www.infobip.com/docs/api/channels/open-channel
📖
Documentation
https://www.infobip.com/docs/api/tools/openapi
📖
APIReference
https://www.infobip.com/docs/api/tools/openapi
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/people
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/people
📖
Documentation
https://www.infobip.com/docs/api/channels/rcs
📖
APIReference
https://www.infobip.com/docs/api/channels/rcs
📖
Documentation
https://www.infobip.com/docs/api/platform/resources
📖
APIReference
https://www.infobip.com/docs/api/platform/resources
📖
Documentation
https://www.infobip.com/docs/api/platform/sending-strategy
📖
APIReference
https://www.infobip.com/docs/api/platform/sending-strategy
📖
Documentation
https://www.infobip.com/docs/api/platform/signals
📖
APIReference
https://www.infobip.com/docs/api/platform/signals
📖
Documentation
https://www.infobip.com/docs/api/channels/sms
📖
APIReference
https://www.infobip.com/docs/api/channels/sms
📖
Documentation
https://www.infobip.com/docs/api/platform/subscriptions-api
📖
APIReference
https://www.infobip.com/docs/api/platform/subscriptions-api
📖
Documentation
https://www.infobip.com/docs/api/channels/tiktok
📖
APIReference
https://www.infobip.com/docs/api/channels/tiktok
📖
Documentation
https://www.infobip.com/docs/api/channels/viber
📖
APIReference
https://www.infobip.com/docs/api/channels/viber
📖
Documentation
https://www.infobip.com/docs/api/customer-engagement/vocalize
📖
APIReference
https://www.infobip.com/docs/api/customer-engagement/vocalize
📖
Documentation
https://www.infobip.com/docs/api/channels/voice
📖
APIReference
https://www.infobip.com/docs/api/channels/voice
📖
Documentation
https://www.infobip.com/docs/api/channels/webrtc-calls
📖
APIReference
https://www.infobip.com/docs/api/channels/webrtc-calls
📖
Documentation
https://www.infobip.com/docs/api/channels/whatsapp
📖
APIReference
https://www.infobip.com/docs/api/channels/whatsapp
📖
Documentation
https://www.infobip.com/docs/api/channels/zalo
📖
APIReference
https://www.infobip.com/docs/api/channels/zalo

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/infobip-platform-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

infobip-platform-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Infobip OpenAPI Specification Platform API
  description: OpenAPI Specification that contains all public endpoints and webhooks.
  contact:
    name: Infobip support
    email: support@infobip.com
  version: 3.210.0
  x-generatedAt: '2026-07-23T15:23:37.825639538Z'
tags:
- name: platform
  description: 'Modular tools to scale and automate your business.

    '
  x-type: category
  x-displayName: Platform
paths:
  /2fa/2/applications:
    get:
      tags:
      - platform
      summary: Get all 2FA applications
      description: An application is a container for 2FA message templates. Use this method to list your applications.
      externalDocs:
        description: Learn more about the workflow and setup
        url: https://www.infobip.com/docs/2fa-service/general-2fa-otp-setup
      operationId: get-2fa-applications
      responses:
        '200':
          description: successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationResponse'
              examples:
                Multiple applications response:
                  summary: Multiple applications response
                  value:
                  - applicationId: 0933F3BC087D2A617AC6DCB2EF5B8A61
                    name: Test application BASIC 1
                    configuration:
                      pinAttempts: 10
                      allowMultiplePinVerifications: true
                      pinTimeToLive: 2h
                      verifyPinLimit: 1/3s
                      sendPinPerApplicationLimit: 10000/1d
                      sendPinPerPhoneNumberLimit: 3/1d
                    enabled: true
                  - applicationId: 5F04FACFAA4978F62FCAEBA97B37E90F
                    name: Test application BASIC 2
                    configuration:
                      pinAttempts: 12
                      allowMultiplePinVerifications: true
                      pinTimeToLive: 10m
                      verifyPinLimit: 2/1s
                      sendPinPerApplicationLimit: 10000/1d
                      sendPinPerPhoneNumberLimit: 5/1h
                    enabled: true
                  - applicationId: B450F966A8EF017180F148AF22C42642
                    name: Test application BASIC 3
                    configuration:
                      pinAttempts: 15
                      allowMultiplePinVerifications: true
                      pinTimeToLive: 1h
                      verifyPinLimit: 30/10s
                      sendPinPerApplicationLimit: 10000/3d
                      sendPinPerPhoneNumberLimit: 10/20m
                    enabled: true
            application/xml:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationResponse'
              examples:
                Multiple applications response:
                  summary: Multiple applications response
                  value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ApplicationResponses>\n  <item>\n    <applicationId>0933F3BC087D2A617AC6DCB2EF5B8A61</applicationId>\n    <name>Test application BASIC 1</name>\n    <configuration>\n      <pinAttempts>10</pinAttempts>\n      <allowMultiplePinVerifications>true</allowMultiplePinVerifications>\n      <pinTimeToLive>2h</pinTimeToLive>\n      <verifyPinLimit>1/3s</verifyPinLimit>\n      <sendPinPerApplicationLimit>10000/1d</sendPinPerApplicationLimit>\n      <sendPinPerPhoneNumberLimit>3/1d</sendPinPerPhoneNumberLimit>\n    </configuration>\n    <enabled>true</enabled>\n  </item>\n  <item>\n    <applicationId>5F04FACFAA4978F62FCAEBA97B37E90F</applicationId>\n    <name>Test application BASIC 2</name>\n    <configuration>\n      <pinAttempts>12</pinAttempts>\n      <allowMultiplePinVerifications>true</allowMultiplePinVerifications>\n      <pinTimeToLive>10m</pinTimeToLive>\n      <verifyPinLimit>2/1s</verifyPinLimit>\n      <sendPinPerApplicationLimit>10000/1d</sendPinPerApplicationLimit>\n      <sendPinPerPhoneNumberLimit>5/1h</sendPinPerPhoneNumberLimit>\n    </configuration>\n    <enabled>true</enabled>\n  </item>\n  <item>\n    <applicationId>B450F966A8EF017180F148AF22C42642</applicationId>\n    <name>Test application BASIC 3</name>\n    <configuration>\n      <pinAttempts>15</pinAttempts>\n      <allowMultiplePinVerifications>true</allowMultiplePinVerifications>\n      <pinTimeToLive>1h</pinTimeToLive>\n      <verifyPinLimit>30/10s</verifyPinLimit>\n      <sendPinPerApplicationLimit>10000/3d</sendPinPerApplicationLimit>\n      <sendPinPerPhoneNumberLimit>10/20m</sendPinPerPhoneNumberLimit>\n    </configuration>\n    <enabled>true</enabled>\n  </item>\n</ApplicationResponses>\n"
        '401':
          $ref: '#/components/responses/ApiException401'
        '403':
          $ref: '#/components/responses/ApiException403'
        '429':
          $ref: '#/components/responses/ApiException429'
        4XX:
          description: Error responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
            application/xml:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
        '500':
          $ref: '#/components/responses/ApiException500'
        5XX:
          description: Error responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
            application/xml:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
      security:
      - Basic: []
      - APIKeyHeader: []
      - IBSSOTokenHeader: []
      - OAuth2: []
      x-scopes:
      - 2fa:manage
      x-throttling-info:
      - type: time
        numberOfRequests: 50
        numberOfTimeUnits: 10
        timeUnit: m
    post:
      tags:
      - platform
      summary: Create 2FA application
      description: Create and configure a new 2FA application.
      externalDocs:
        description: Learn more about the workflow and setup
        url: https://www.infobip.com/docs/2fa-service/general-2fa-otp-setup
      operationId: create-2fa-application
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationRequest'
            examples:
              Application request:
                summary: Application request
                value:
                  name: 2fa application name
                  enabled: true
                  configuration:
                    pinAttempts: 5
                    allowMultiplePinVerifications: true
                    pinTimeToLive: 10m
                    verifyPinLimit: 2/4s
                    sendPinPerApplicationLimit: 5000/12h
                    sendPinPerPhoneNumberLimit: 2/1d
          application/xml:
            schema:
              allOf:
              - $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationRequest'
            examples:
              Application request:
                summary: Application request
                value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ApplicationRequest>\n  <name>2fa application name</name>\n  <enabled>true</enabled>\n  <configuration>\n    <pinAttempts>5</pinAttempts>\n    <allowMultiplePinVerifications>true</allowMultiplePinVerifications>\n    <pinTimeToLive>10m</pinTimeToLive>\n    <verifyPinLimit>2/4s</verifyPinLimit>\n    <sendPinPerApplicationLimit>5000/12h</sendPinPerApplicationLimit>\n    <sendPinPerPhoneNumberLimit>2/1d</sendPinPerPhoneNumberLimit>\n  </configuration>\n</ApplicationRequest>\n"
      responses:
        '201':
          description: successful response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationResponse'
              examples:
                Creating new application response:
                  summary: Creating new application response
                  value:
                    applicationId: '1234567'
                    name: Application name
                    configuration:
                      pinAttempts: 5
                      allowMultiplePinVerifications: true
                      pinTimeToLive: 10m
                      verifyPinLimit: 2/4s
                      sendPinPerApplicationLimit: 5000/12h
                      sendPinPerPhoneNumberLimit: 2/1d
                    enabled: true
            application/xml:
              schema:
                allOf:
                - $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationResponse'
              examples:
                Creating new application response:
                  summary: Creating new application response
                  value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ApplicationResponse>\n  <applicationId>1234567</applicationId>\n  <name>Application name</name>\n  <configuration>\n    <pinAttempts>5</pinAttempts>\n    <allowMultiplePinVerifications>true</allowMultiplePinVerifications>\n    <pinTimeToLive>10m</pinTimeToLive>\n    <verifyPinLimit>2/4s</verifyPinLimit>\n    <sendPinPerApplicationLimit>5000/12h</sendPinPerApplicationLimit>\n    <sendPinPerPhoneNumberLimit>2/1d</sendPinPerPhoneNumberLimit>\n  </configuration>\n  <enabled>true</enabled>\n</ApplicationResponse>\n"
        '400':
          $ref: '#/components/responses/ApiException400'
        '401':
          $ref: '#/components/responses/ApiException401'
        '403':
          $ref: '#/components/responses/ApiException403'
        '429':
          $ref: '#/components/responses/ApiException429'
        4XX:
          description: Error responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
            application/xml:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
        '500':
          $ref: '#/components/responses/ApiException500'
        5XX:
          description: Error responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
            application/xml:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
      security:
      - Basic: []
      - APIKeyHeader: []
      - IBSSOTokenHeader: []
      - OAuth2: []
      x-scopes:
      - 2fa:manage
      x-throttling-info:
      - type: time
        numberOfRequests: 20
        numberOfTimeUnits: 10
        timeUnit: m
  /2fa/2/applications/{appId}:
    get:
      tags:
      - platform
      summary: Get 2FA application
      description: Get a single 2FA application to see its configuration details.
      externalDocs:
        description: Learn more about the workflow and setup
        url: https://www.infobip.com/docs/2fa-service/general-2fa-otp-setup
      operationId: get-2fa-application
      parameters:
      - name: appId
        in: path
        description: ID of application for which configuration view was requested.
        required: true
        style: simple
        explode: false
        schema:
          type: string
        example: 0933F3BC087D2A617AC6DCB2EF5B8A61
      responses:
        '200':
          description: successful response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationResponse'
              examples:
                Single application response:
                  summary: Single application response
                  value:
                    applicationId: '1234567'
                    name: Application name
                    configuration:
                      pinAttempts: 5
                      allowMultiplePinVerifications: true
                      pinTimeToLive: 10m
                      verifyPinLimit: 2/4s
                      sendPinPerApplicationLimit: 5000/12h
                      sendPinPerPhoneNumberLimit: 2/1d
                    enabled: true
            application/xml:
              schema:
                allOf:
                - $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationResponse'
              examples:
                Single application response:
                  summary: Single application response
                  value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ApplicationResponse>\n  <applicationId>1234567</applicationId>\n  <name>Application name</name>\n  <configuration>\n    <pinAttempts>5</pinAttempts>\n    <allowMultiplePinVerifications>true</allowMultiplePinVerifications>\n    <pinTimeToLive>10m</pinTimeToLive>\n    <verifyPinLimit>2/4s</verifyPinLimit>\n    <sendPinPerApplicationLimit>5000/12h</sendPinPerApplicationLimit>\n    <sendPinPerPhoneNumberLimit>2/1d</sendPinPerPhoneNumberLimit>\n  </configuration>\n  <enabled>true</enabled>\n</ApplicationResponse>\n"
        '401':
          $ref: '#/components/responses/ApiException401'
        '403':
          $ref: '#/components/responses/ApiException403'
        '404':
          $ref: '#/components/responses/ApiException404'
        '429':
          $ref: '#/components/responses/ApiException429'
        4XX:
          description: Error responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
            application/xml:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
        '500':
          $ref: '#/components/responses/ApiException500'
        5XX:
          description: Error responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
            application/xml:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
      security:
      - Basic: []
      - APIKeyHeader: []
      - IBSSOTokenHeader: []
      - OAuth2: []
      x-scopes:
      - 2fa:manage
      x-throttling-info:
      - type: time
        numberOfRequests: 100
        numberOfTimeUnits: 10
        timeUnit: m
    put:
      tags:
      - platform
      summary: Update 2FA application
      description: Change configuration options for your existing 2FA application.
      externalDocs:
        description: Learn more about the workflow and setup
        url: https://www.infobip.com/docs/2fa-service/general-2fa-otp-setup
      operationId: update-2fa-application
      parameters:
      - name: appId
        in: path
        description: ID of application that should be updated.
        required: true
        style: simple
        explode: false
        schema:
          type: string
        example: 0933F3BC087D2A617AC6DCB2EF5B8A61
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationRequest'
            examples:
              Application request:
                summary: Application request
                value:
                  name: 2fa application name
                  enabled: true
                  configuration:
                    pinAttempts: 5
                    allowMultiplePinVerifications: true
                    pinTimeToLive: 10m
                    verifyPinLimit: 2/4s
                    sendPinPerApplicationLimit: 5000/12h
                    sendPinPerPhoneNumberLimit: 2/1d
          application/xml:
            schema:
              allOf:
              - $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationRequest'
            examples:
              Application request:
                summary: Application request
                value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ApplicationRequest>\n  <name>2fa application name</name>\n  <enabled>true</enabled>\n  <configuration>\n    <pinAttempts>5</pinAttempts>\n    <allowMultiplePinVerifications>true</allowMultiplePinVerifications>\n    <pinTimeToLive>10m</pinTimeToLive>\n    <verifyPinLimit>2/4s</verifyPinLimit>\n    <sendPinPerApplicationLimit>5000/12h</sendPinPerApplicationLimit>\n    <sendPinPerPhoneNumberLimit>2/1d</sendPinPerPhoneNumberLimit>\n  </configuration>\n</ApplicationRequest>\n"
      responses:
        '200':
          description: successful response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationResponse'
              examples:
                Updating application response:
                  summary: Updating application response
                  value:
                    applicationId: '1234567'
                    name: Application name
                    configuration:
                      pinAttempts: 5
                      allowMultiplePinVerifications: true
                      pinTimeToLive: 10m
                      verifyPinLimit: 2/4s
                      sendPinPerApplicationLimit: 5000/12h
                      sendPinPerPhoneNumberLimit: 2/1d
                    enabled: true
            application/xml:
              schema:
                allOf:
                - $ref: '#/components/schemas/17363474057d152577564d8587b079aa7bdd070a3f49746aea3319eb57a5830c.ApplicationResponse'
              examples:
                Updating application response:
                  summary: Updating application response
                  value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ApplicationResponse>\n  <applicationId>1234567</applicationId>\n  <name>Application name</name>\n  <configuration>\n    <pinAttempts>5</pinAttempts>\n    <allowMultiplePinVerifications>true</allowMultiplePinVerifications>\n    <pinTimeToLive>10m</pinTimeToLive>\n    <verifyPinLimit>2/4s</verifyPinLimit>\n    <sendPinPerApplicationLimit>5000/12h</sendPinPerApplicationLimit>\n    <sendPinPerPhoneNumberLimit>2/1d</sendPinPerPhoneNumberLimit>\n  </configuration>\n  <enabled>true</enabled>\n</ApplicationResponse>\n"
        '400':
          $ref: '#/components/responses/ApiException400'
        '401':
          $ref: '#/components/responses/ApiException401'
        '403':
          $ref: '#/components/responses/ApiException403'
        '404':
          $ref: '#/components/responses/ApiException404'
        '429':
          $ref: '#/components/responses/ApiException429'
        4XX:
          description: Error responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
            application/xml:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
        '500':
          $ref: '#/components/responses/ApiException500'
        5XX:
          description: Error responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
            application/xml:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
      security:
      - Basic: []
      - APIKeyHeader: []
      - IBSSOTokenHeader: []
      - OAuth2: []
      x-scopes:
      - 2fa:manage
      x-throttling-info:
      - type: time
        numberOfRequests: 40
        numberOfTimeUnits: 10
        timeUnit: m
  /2fa/2/applications/{appId}/messages:
    get:
      tags:
      - platform
      summary: Get all 2FA message templates
      description: List all message templates in a 2FA application.
      externalDocs:
        description: Learn more about the workflow and setup
        url: https://www.infobip.com/docs/2fa-service/general-2fa-otp-setup
      operationId: get-2fa-message-templates
      parameters:
      - name: appId
        in: path
        description: ID of application for which requested message was created.
        required: true
        style: simple
        explode: false
        schema:
          type: string
        example: 0933F3BC087D2A617AC6DCB2EF5B8A61
      responses:
        '200':
          description: successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/c3b21d2ffef2552e10577daa67c904ac80618665b001ef386a4faefc515e78f3.Message'
              examples:
                Multiple message template response:
                  summary: Multiple message template response
                  value:
                  - messageId: A89CE542F3F12
                    applicationId: 32G5F37A635KJ8BHJ675435E3A6EA434
                    messageText: Your pin is {{pin}}
                    pinLength: 4
                    pinType: ALPHANUMERIC
                    senderId: Infobip 2FA
                  - messageId: AF33289C815F8
                    applicationId: A635KJ8BHJ6754432G5F3735E3A6EA43
                    messageText: Your pin is {{pin}}
                    pinLength: 4
                    pinType: ALPHANUMERIC
                    language: en
                    voiceName: Joanna
                    senderId: Infobip 2FA
                    repeatDTMF: 1#
                    speechRate: 1.0
                  - messageId: 9C815F8AF3328
                    applicationId: HJ675435E3A6EA43432G5F37A635KJ8B
                    pinLength: 4
                    pinType: ALPHANUMERIC
                    from: company@example.com
                    emailTemplateId: 1234
                    landingPageId: '1_23456'
            application/xml:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/c3b21d2ffef2552e10577daa67c904ac80618665b001ef386a4faefc515e78f3.Message'
              examples:
                Multiple message template response:
                  summary: Multiple message template response
                  value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Messages>\n  <item>\n    <messageId>A89CE542F3F12</messageId>\n    <applicationId>32G5F37A635KJ8BHJ675435E3A6EA434</applicationId>\n    <messageText>Your pin is {{pin}}</messageText>\n    <pinLength>4</pinLength>\n    <pinType>ALPHANUMERIC</pinType>\n    <senderId>Infobip 2FA</senderId>\n  </item>\n  <item>\n    <messageId>AF33289C815F8</messageId>\n    <applicationId>A635KJ8BHJ6754432G5F3735E3A6EA43</applicationId>\n    <messageText>Your pin is {{pin}}</messageText>\n    <pinLength>4</pinLength>\n    <pinType>ALPHANUMERIC</pinType>\n    <language>en</language>\n    <voiceName>Joanna</voiceName>\n    <senderId>Infobip 2FA</senderId>\n    <repeatDTMF>1#</repeatDTMF>\n    <speechRate>1.0</speechRate>\n  </item>\n  <item>\n    <messageId>9C815F8AF3328</messageId>\n    <applicationId>HJ675435E3A6EA43432G5F37A635KJ8B</applicationId>\n    <pinLength>4</pinLength>\n    <pinType>ALPHANUMERIC</pinType>\n    <from>company@example.com</from>\n    <emailTemplateId>1234</emailTemplateId>\n    <landingPageId>1_23456</landingPageId>\n  </item>\n</Messages>\n"
        '401':
          $ref: '#/components/responses/ApiException401'
        '403':
          $ref: '#/components/responses/ApiException403'
        '404':
          $ref: '#/components/responses/ApiException404'
        4XX:
          description: Error responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
            application/xml:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
        '500':
          $ref: '#/components/responses/ApiException500'
        5XX:
          description: Error responses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
            application/xml:
              schema:
                $ref: '#/components/schemas/96ea7b6cea267e43daadde063d93b8799cdb795baa0e9344573e0f63283595e0.ApiException'
      security:
      - Basic: []
      - APIKeyHeader: []
      - IBSSOTokenHeader: []
      - OAuth2: []
      x-scopes:
      - 2fa:manage
    post:
      tags:
      - platform
      summary: Create 2FA SMS or Voice message template
      description: Once you have your [2FA application](#channels/sms/2fa/2fa-configuration/create-2fa-application), create one or more [message templates](#channels/sms/2fa/2fa-configuration/create-2fa-message-template) where your PIN will be dynamically included when you send the PIN message over SMS or Voice.
      externalDocs:
        description: Learn more about the workflow and setup
        url: https://www.infobip.com/docs/2fa-service/general-2fa-otp-setup
      operationId: create-2fa-message-template
      parameters:
      - name: appId
        in: path
        description: ID of application for which requested message was created.
        required: true
        style: simple
        explode: false
        schema:
          type: string
        example: 0933F3BC087D2A617AC6DCB2EF5B8A61
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/c3b21d2ffef2552e10577daa67c904ac80618665b001ef386a4faefc515e78f3.CreateSmsOrVoiceMessageRequest'
            examples:
              Create message template:
                summary: Create message template
                value:
                  pinType: NUMERIC
                  messageText: Your pin is {{pin}}
                  pinLength: 4
                  language: en
                  voiceName: Joanna
                  senderId: Infobip 2FA
                  repeatDTMF: 1#
                  speechRate: 1.0
              Create message template with placeholders:
                summary: Create message template with placeholders
                description: Create a message template with placeholders that can later be filled with different values for each PIN message
                value:
                  pinType: NUMERIC
                  messageText: Hello {{firstName}} your pin is {{pin}}
                  pinLength: 4
                  language: en
                  voiceName: Joanna
                  senderId: Infobip 2FA
                  repeatDTMF: 1#
                  speechRate: 1.0
              Create message template with DLT parameters:
                summary: Create message template with DLT parameters
                description: Create a message template with Distributed Ledger Technology (DLT) parameters required for sending SMS to India region
                value:
                  pinType: NUMERIC
                  messageText: Your pin is {{pin}}
                  pinLength: 4
                  language: en
                  voiceName: Joanna
                  senderId: Infobip 2FA
                  repeatDTMF: 1#
                  speechRate: 1.0
                  regional:
                    indiaDlt:
                      contentTemplateId: your-template-id
                      principalEntityId: your-entity-id
                      teleMarketerId: your-tele-marketer-id
          application/xml:
            schema:
              allOf:
              - $ref: '#/components/schemas/c3b21d2ffef2552e10577daa67c904ac80618665b001ef386a4faefc515e78f3.CreateSmsOrVoiceMessageRequest'
            examples:
              Create message template:
                summary: Create message template
                value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><CreateSmsOrVoiceMessageRequest>\n  <pinType>NUMERIC</pinType>\n  <messageText>Your pin is {{pin}}</messageText>\n  <pinLength>4</pinLength>\n  <language>en</language>\n  <voiceName>Joanna</voiceName>\n  <senderId>Infobip 2FA</senderId>\n  <repeatDTMF>1#</repeatDTMF>\n  <speechRate>1.0</speechRate>\n</CreateSmsOrVoiceMessageRequest>\n"
              Create message template with placeholders:
                summary: Create message template with placeholders
                description: Create a message template with placeholders that can later be filled with different values for each PIN message
                value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><CreateSmsOrVoiceMessageRequest>\n  <pinType>NUMERIC</pinType>\n  <messageText>Hello {{firstName}} your pin is {{pin}}</messageText>\n  <pinLength>4</pinLength>\n  <language>en</language>\n  <voiceName>Joanna</voiceName>\n  <senderId>Infobip 2FA</senderId>\n  <repeatDTMF>1#</repeatDTMF>\n  <speechRate>1.0</speechRate>\n</CreateSmsOrVoiceMessageRequest>\n"
              Create message template with DLT parameters:
                summary: Create message template with DLT parameters
                description: Create a message template with Distributed Ledger Technology (DLT) parameters required for sending SMS to India region
                value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><CreateSmsOrVoiceMessageRequest>\n  <pinType>NUMERIC</pinType>\n  <messageText>Your pin is {{pin}}</messageText>\n  <pinLength>4</pinLength>\n  <language>en</language>\n  <voiceName>Joanna</voiceName>\n  <senderId>Infobip 2FA</senderId>\n  <repeatDTMF>1#</repeatDTMF>\n  <speechRate>1.0</speechRate>\n  <regional>\n    <indiaDlt>\n      <contentTemplateId>your-template-id</contentTemplateId>\n      <principalEntityId>your-entity-id</principalEntityId>\n      <teleMarketerId>your-tele-marketer-id</teleMarketerId>\n    </indiaDlt>\n  </regional>\n</CreateSmsOrVoiceMessageRequest>\n"
      responses:
        '200':
          description: successful response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/c3b21d2ffef2552e10577daa67c904ac80618665b001ef386a4faefc515e78f3.SmsOrVoiceMessage'
              examples:
                Message template response:
                  summary: Message template response
                  value:
                    messageId: B628A31410306DDB2BFB0D9CF1F3A3FF
                    applicationId: 19F2491982980DBC2C40E1597FD175AB
                    pinPlaceholder: '{{pin}}'
                    messageText: Your pin is {{pin}}
                    pinLength: 4
                    pinType: ALPHANUMERIC
                    language: en
                    voiceName: Joanna
                    senderId: Infobip 2FA
                    repeatDTMF: 1#
                    speechRate: 1.0
            application/xml:
              schema:
                allOf:
                - $ref: '#/components/schemas/c3b21d2ffef2552e10577daa67c904ac80618665b001ef386a4faefc515e78f3.SmsOrVoiceMessage'
              examples:
                Message template response:
                  summary: Message template response
                  value: "<?xml version=\"1.0\" encoding=\"UTF-8\"?><SmsOrVoiceMessage>\n  <messageId>B628A31410306DDB2BFB0D9CF

# --- truncated at 32 KB (1675 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/infobip/refs/heads/main/openapi/infobip-platform-api-openapi.yml