openapi: 3.0.1
info:
  title: Communication
  description: >
    <p> This is Swagger generated for the Communication
    Management specification.The Communication API will provide a uniform and
    standardized way of communication management such as creation, update,
    lookup and deletion and notification of system communication events. It
    includes the model definition as well as the covered operation.</p> <p> A
    communication message in a TM Forum format is described as  a message
    format  which can be sent to a specific subscriber or partner through
    different channels including</p> <ul> <li>SMS</li> <li>Two-way SMS</li>  <li>USSD</li> </ul>
  termsOfService: 'http://swagger.io/terms/'
  contact:
    email: apiteam@vodacom.co.za
  license:
    name: Apache 2.0
    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
  version: 2.0.1
servers:
  - url: 'https://apix.vodacom.co.za/v2'
tags:
  - name: sms

    externalDocs:
      description: Find out more
      url: 'http://swagger.io'

security:
  - OAuth2: []

paths:
  '/communicationsandbox/{opco}/send/sms':
    post:
      tags:
        - sms
      summary: To send text message
      description: >-
        Operation to send a new communication message from the sender to the
        receiver.
      operationId: sendsms
      parameters:
        - name: opco
          in: path
          description: value for the respective opcos
          required: true
          schema:
            type: string
            enum:
              - ls
              - tz
              - za
              - mz
            minLength: 2
            maxLength: 2

      requestBody:
        description: Send sms request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Request'
        required: true
      callbacks:
        TwowaySMSCallback:
          '{$request.body#/CallbackNotifyUrl}':
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/TwoWaySMSCallback'
              responses:
                '200':
                  description: Status Notification Received
      responses:
        '200':
          description: SMS Sent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpikeArrestError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
  '/communication/{opco}/2waysms/sandbox/send':
    post:
      tags:
        - 2waysms
      summary:  Bi directional sms.
      description:
       Allows partner to communicate with customers via bi directional sms
      operationId: twowaysms
      parameters:
        - name: opco
          in: path
          description: value for the respective opcos
          required: true
          schema:
            type: string
            enum:
              - ls
              - tz
              - za
              - mz
            minLength: 2
            maxLength: 2

      requestBody:
        description: Send sms request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/2waysmsrequest'
        required: true
      callbacks:
        TwowaySMSCallback:
          '{$request.body#/CallbackNotifyUrl}':
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/TwoWaySMSCallback'
              responses:
                '200':
                  description: Status Notification Received
      responses:
        '200':
          description: 2waySMS Sent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/2waysmsresponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpikeArrestError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
  '/communication/{opco}/ussd/sandbox/send':
    post:
      tags:
        - ussd
      summary: To initiate USSD session.
      description: >-
        USSD allows partners to initiate a usssd session with their customers.
      operationId: ussd
      parameters:
        - name: opco
          in: path
          description: value for the respective opcos
          required: true
          schema:
            type: string
            enum:
              - ls
              - tz
              - za
              - mz
            minLength: 2
            maxLength: 2

      requestBody:
        description: Send sms request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ussdrequest'
        required: true
      callbacks:
        TwowaySMSCallback:
          '{$request.body#/CallbackNotifyUrl}':
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/UssdCallback'
              responses:
                '200':
                  description: Status Notification Received
      responses:
        '200':
          description: USSD sent successfull.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ussdresponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpikeArrestError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
components:
  schemas:
    Request:
      type: object
      properties:
        communication:
          required:
            - content
            - description
            - receiver
            - sendTime
            - sender
            - sourceTransactionId
            - type
          type: object
          properties:
            receiver:
              type: array
              items:
                type: object
                properties:
                  phoneNumber:
                    type: string
                    description: >-
                      If the communication type is SMS', Phone number of the
                      receiver to whom the SMS is intended to be sent . Required
                      for SMS Communication Type.The MSISDN format should be
                      "OpcoTelephoneCode"+"phoneNumber".
                    example: '27789078941'
                    minLength: 11
                    maxLength: 12
            sender:
              type: object
              properties:
                phoneNumber:
                  type: string
                  description: >-
                    If the communication type is SMS',

                    For SA and LSO, This number is mandatory if partner wants to
                    use their own bind. Otherwise, this number will be
                    maintained by the Vodacom API gateway team as per the SMPP
                    Bind specification. This will be same for all
                      the Send SMS request sent for an individual partner if partner uses API gateway bing.

                    For TZA,   This number is not required.
                  example: '27789078942'
                  minLength: 0
                  maxLength: 12
                name:
                  type: string
                  description: >-
                    IF Opco = "TZA", this field is mandatory for TZA opco. The
                    sender SMS will have this Alias name as the source of the
                    SMS. For other Opcos, this field is optional
                  example: VideoPlay
                  minLength: 1
            deliveryReceiptFlag:
              type: boolean
              description: >-
                It is used to decide whether a delivery receipt is expected to
                be sent to the source number. Currently, we only have that
                function for two-way sms
              example: false
              minLength: 0
            receiptCallbackUrl:
              type: string
              description: 'If the deliveryReceiptFlag is true , the receiptCallbackUrl is mandatory'
              example: 'http://host.com'
            callbackNotifyUrl:
              type: string
              description: 'The callbackNotifyUrl is mandatory'
              example: 'http://host.com'
            description:
              type: string
              description: >-
                The intention or the requirement to send this communication
                request
              example: This is communication message for promotion
              minLength: 1
            type:
              type: string
              description: 'Communication Type to be consumed. For example - sms,email,RCS'
              example: sms
              enum:
                - sms
                - EMAIL
                - RCS
                - MMS
                - USSD
                - PUSH
                - 2WAYSMS
              minLength: 3
              maxLength: 10
            sourceTransactionId:
              type: string
              description: >-
                Source Initiated Transaction ID uniquely identified for that
                transaction (UUID) UUID should be string with 36 characters (32
                hex digits + 4 dashes)
              example: 123e4567-e89b-42d3-a456-556642440000
              minLength: 36
              maxLength: 36
            content:
              type: string
              description: >-
                The  content of the communication message. As per the current
                backend network elements there is no restriction to the size of
                the message content for SMS Transmission.
              example: 'This is a Promotion Message '
              minLength: 1
            sendTime:
              type: string
              description: >-
                The timestamp of the transaction initiation from the source
                system. Format - yyyy-MM-dd'T'HH:mm:ss.SSSSSS
              format: time-date
              example: '2017-07-22T16:28:55.444000'
              minLength: 26
              maxLength: 26
            bindExists:
              type: boolean
              description: >-
                If Partner wants to use their existing Bind, Please populate
                true in this field and the sourceNumber field is mandatory in
                this case.
              format: boolean
              example: true

    2waysmsrequest:
      type: object
      properties:
        communication:
          required:
            - content
            - description
            - receiver
            - sendTime
            - sender
            - sourceTransactionId
            - type
          type: object
          properties:
            receiver:
              type: array
              items:
                type: object
                properties:
                  phoneNumber:
                    type: string
                    description: >-
                      If the communication type is TwowaySMS', Phone number of the
                      receiver to whom the SMS is intended to be sent . Required
                      for SMS Communication Type.The MSISDN format should be
                      "OpcoTelephoneCode"+"phoneNumber".
                    example: '27789078941'
                    minLength: 11
                    maxLength: 12
            sender:
              type: object
              properties:
                phoneNumber:
                  type: string
                  description: >-
                    If the communication type is TwowaySMS and bind is set to true then this is required.',

                    For SA and LSO, This number is mandatory if partner wants to
                    use their own bind. Otherwise, this number will be
                    maintained by the Vodacom API gateway team as per the SMPP
                    Bind specification. This will be same for all
                      the Send SMS request sent for an individual partner if partner uses API gateway bing.

                    For TZA,   This number is not required.
                  example: '27789078942'
                  minLength: 0
                  maxLength: 12
                name:
                  type: string
                  description: >-
                    IF Opco = "TZA", this field is mandatory for TZA opco. The
                    sender SMS will have this Alias name as the source of the
                    SMS. For other Opcos, this field is optional
                  example: VideoPlay
                  minLength: 1
            deliveryReceiptFlag:
              type: boolean
              description: >-
                It is used to decide whether a delivery receipt is expected to
                be sent to the source number. Currently, we only have that
                function for two-way sms
              example: false
              minLength: 0
            receiptCallbackUrl:
              type: string
              description: 'If the deliveryReceiptFlag is true , the receiptCallbackUrl is mandatory'
              example: 'http://host.com'
            callbackNotifyUrl:
              type: string
              description: 'The callbackNotifyUrl is mandatory'
              example: 'http://host.com'
            description:
              type: string
              description: >-
                The intention or the requirement to send this communication
                request
              example: This is communication message for promotion
              minLength: 1
            type:
              type: string
              description: 'Communication Type to be consumed. For example - sms,email,RCS'
              example: 2WAYSMS
              enum:
                - 2WAYSMS
              minLength: 3
              maxLength: 10
            sourceTransactionId:
              type: string
              description: >-
                Source Initiated Transaction ID uniquely identified for that
                transaction (UUID) UUID should be string with 36 characters (32
                hex digits + 4 dashes)
              example: 123e4567-e12b-42d3-a236-556642440000
              minLength: 36
              maxLength: 36
            content:
              type: string
              description: >-
                The  content of the communication message. As per the current
                backend network elements there is no restriction to the size of
                the message content for SMS Transmission.
              example: 'This is a Promotion Message '
              minLength: 1
            sendTime:
              type: string
              description: >-
                The timestamp of the transaction initiation from the source
                system. Format - yyyy-MM-dd'T'HH:mm:ss.SSSSSS
              format: time-date
              example: '2017-07-22T16:28:55.444000'
              minLength: 26
              maxLength: 26
            bindExists:
              type: boolean
              description: >-
                If Partner wants to use their existing Bind, Please populate
                true in this field and the sourceNumber field is mandatory in
                this case.
              format: boolean
              example: true
    Ussdrequest:
      type: object
      properties:
        communication:
          required:
            - content
            - description
            - receiver
            - sendTime
            - sender
            - sourceTransactionId
            - type
          type: object
          properties:
            receiver:
              type: array
              items:
                type: object
                properties:
                  phoneNumber:
                    type: string
                    description: >-
                      If the communication type is SMS', Phone number of the
                      receiver to whom the SMS is intended to be sent . Required
                      for SMS Communication Type.The MSISDN format should be
                      "OpcoTelephoneCode"+"phoneNumber".
                    example: '27789078941'
                    minLength: 11
                    maxLength: 12
            sender:
              type: object
              properties:
                name:
                  type: string
                  description: >-
                    IF Opco = "TZA", this field is mandatory for TZA opco. The
                    sender SMS will have this Alias name as the source of the
                    SMS. For other Opcos, this field is optional
                  example: VideoPlay
                  minLength: 1
            deliveryReceiptFlag:
              type: boolean
              description: >-
                It is used to decide whether a delivery receipt is expected to
                be sent to the source number. Currently, we only have that
                function for two-way sms
              example: false
              minLength: 0
            receiptCallbackUrl:
              type: string
              description: 'If the deliveryReceiptFlag is true , the receiptCallbackUrl is mandatory'
              example: 'http://host.com'
            callbackUrl:
              type: string
              description: 'The callbackNotifyUrl is mandatory'
              example: 'https://webhook.site/c008c50c-6503-4b6a-ae78-0189a7767269'
            description:
              type: string
              description: >-
                The intention or the requirement to send this communication
                request
              example: This is communication message for promotion
              minLength: 1
            type:
              type: string
              description: 'Communication Type to be consumed. For example - sms,email,RCS'
              example: USSD
              enum:
                - SMS
                - EMAIL
                - RCS
                - MMS
                - USSD
                - PUSH
                - 2WAYSMS
              minLength: 3
              maxLength: 10
            sourceTransactionId:
              type: string
              description: >-
                Source Initiated Transaction ID uniquely identified for that
                transaction (UUID) UUID should be string with 36 characters (32
                hex digits + 4 dashes)
              example: d9f3456c-45d7-4075-8ac1-acfeca2b7137
              minLength: 36
              maxLength: 36
            content:
              type: string
              description: >-
                The  content of the communication message. As per the current
                backend network elements there is no restriction to the size of
                the message content for SMS Transmission.
              example: 'This is a Promotion Message '
              minLength: 1
            sendTime:
              type: string
              description: >-
                The timestamp of the transaction initiation from the source
                system. Format - yyyy-MM-dd'T'HH:mm:ss.SSSSSS
              format: time-date
              example: '2017-07-22T16:28:55.444000'
              minLength: 26
              maxLength: 26
            acceptMessage:
              type: string
              description: >-
                The  content of the communication accept message. As per the current
                backend network elements there is no restriction to the size of
                the message content for SMS Transmission.
              example: 'We have received your request and you will receive an SMS shortly '

            rejectMessage:
              type: string
              description: >-
                The  content of the communication reject  message. As per the current
                backend network elements there is no restriction to the size of
                the message content for SMS Transmission.
              example: 'Thank you for using Vodacom services '

    TwoWaySMSCallback:
      type: object
      properties:
        communication:
          type: object
          properties:
            receiver:
              type: array
              items:
                type: object
                properties:
                  phoneNumber:
                    type: string
                    description: >-
                      If the communication type is SMS', Phone number of the
                      receiver to whom the SMS is intended to be sent . Required
                      for SMS Communication Type.The MSISDN format should be
                      "OpcoTelephoneCode"+"phoneNumber".
                    example: '27789078941'
                    minLength: 11
                    maxLength: 12
            type:
              type: string
              description: 'Communication Type to be consumed. For example - sms,email,RCS'
              example: 2waysms
              enum:
                - SMS
                - EMAIL
                - RCS
                - MMS
                - USSD
                - PUSH
                - 2waysms
            responseContent:
              type: string
              description: >-
                The  content of the communication message. As per the current
                backend network elements there is no restriction to the size of
                the message content for SMS Transmission.
              example: YES/NO
              minLength: 1
            sourceTransactionId:
              type: string
              description: >-
                Correlating back the same source transaction ID which was sent
                in the request object for this transaction. This will help us in
                tracking the overall request and response flow. UUID should be
                string with 36 characters (32 hex digits + 4 dashes)
              example: 123e4567-e89b-42d3-a456-556642440000
            apiGatewayTransactionId:
              type: string
              description: Gateway transaction ID is globally unique ID for the request
              example: dapg101zatcrh.vodacom.corp-21321-211848-1
            status:
              type: string
              description: >-
                HTTP Status of the SMS API triggered from API Gateway. It is
                just a fire and forget attempt and doesn't have control on the
                actual SMS transmission for SMPP server.
              example: SENT/DELIVRD/REPLIED/FAILED
    UssdCallback:
      type: object
      properties:
        communication:
          type: object
          properties:
            receiver:
              type: array
              items:
                type: object
                properties:
                  phoneNumber:
                    type: string
                    description: >-
                      If the communication type is SMS', Phone number of the
                      receiver to whom the SMS is intended to be sent . Required
                      for SMS Communication Type.The MSISDN format should be
                      "OpcoTelephoneCode"+"phoneNumber".
                    example: '27789078941'
                    minLength: 11
                    maxLength: 12
            type:
              type: string
              description: 'Communication Type to be consumed. For example - sms,email,RCS'
              example: ussd
              enum:
                - SMS
                - EMAIL
                - RCS
                - MMS
                - USSD
                - PUSH
                - 2waysms
            responseContent:
              type: string
              description: >-
                The  content of the communication message. As per the current
                backend network elements there is no restriction to the size of
                the message content for SMS Transmission.
              example: YES/NO
              minLength: 1
            sourceTransactionId:
              type: string
              description: >-
                Correlating back the same source transaction ID which was sent
                in the request object for this transaction. This will help us in
                tracking the overall request and response flow. UUID should be
                string with 36 characters (32 hex digits + 4 dashes)
              example: 123e4567-e89b-42d3-a456-556642440000
            apiGatewayTransactionId:
              type: string
              description: Gateway transaction ID is globally unique ID for the request
              example: dapg101zatcrh.vodacom.corp-21321-211848-1
    NotFoundError:
      type: object
      properties:
        sourceTransactionId:
          type: string
          description: >-
            Correlating back the same source transaction ID which was sent in
            the request object for this transaction. This will help us in
            tracking the overall request and response flow. UUID should be
            string with 36 characters (32 hex digits + 4 dashes)ashes)
          example: 123e4567-e89b-42d3-a456-556642440000
        apiGatewayTransactionId:
          type: string
          description: Gateway transaction ID is globally unique ID for the request
          example: dapg101zatcrh.vodacom.corp-21321-211848-1
        errorCode:
          type: string
          example: '404'
        errorType:
          type: string
          example: Business Exception
        details:
          type: object
          properties:
            description:
              type: string
              example: Resource Requested Not Found
            message:
              type: string
              example: InvalidResource
      description: Resource Not Found
    Response:
      type: object
      properties:
        communication:
          type: object
          properties:
            messageid:
              type: string
              description: >-
                Unique messge ID from the SMPP for the messge
                triggered.Mandatory for South Africa.
              example: '123434'
            type:
              type: string
              description: 'Communication Type to be consumed. For example - sms,email,RCS'
              enum:
                - SMS
                - EMAIL
                - RCS
                - MMS
                - USSD
                - PUSH
            sourceTransactionId:
              type: string
              description: >-
                Correlating back the same source transaction ID which was sent
                in the request object for this transaction. This will help us in
                tracking the overall request and response flow. UUID should be
                string with 36 characters (32 hex digits + 4 dashes)
              example: 123e4567-e89b-42d3-a456-556642440000
            apiGatewayTransactionId:
              type: string
              description: Gateway transaction ID is globally unique ID for the request
              example: dapg101zatcrh.vodacom.corp-21321-211848-1
            status:
              type: string
              description: >-
                HTTP Status of the SMS API triggered from API Gateway. It is
                just a fire and forget attempt and doesn't have control on the
                actual SMS transmission for SMPP server.
              example: success
    2waysmsresponse:
      type: object
      properties:
        communication:
          type: object
          properties:
            type:
              type: string
              description: 'Communication Type to be consumed. For example - sms,email,RCS'
              enum:
                - 2waysms
            sourceTransactionId:
              type: string
              description: >-
                Correlating back the same source transaction ID which was sent
                in the request object for this transaction. This will help us in
                tracking the overall request and response flow. UUID should be
                string with 36 characters (32 hex digits + 4 dashes)
              example: 123e4567-e89b-42d3-a456-556642440000
            apiGatewayTransactionId:
              type: string
              description: Gateway transaction ID is globally unique ID for the request
              example: dapg101zatcrh.vodacom.corp-21321-211848-1
            status:
              type: string
              description: >-
                HTTP Status of the SMS API triggered from API Gateway. It is
                just a fire and forget attempt and doesn't have control on the
                actual SMS transmission for SMPP server.
              example: Sent



    Ussdresponse:
      type: object
      properties:
        communication:
          type: object
          properties:
            messageid:
              type: string
              description: >-
                Unique messge ID from the SMPP for the messge
                triggered.Mandatory for South Africa.
              example: '123434'
            type:
              type: string
              description: 'Communication Type to be consumed. For example - sms,email,RCS'
              enum:
                - ussd
            sourceTransactionId:
              type: string
              description: >-
                Correlating back the same source transaction ID which was sent
                in the request object for this transaction. This will help us in
                tracking the overall request and response flow. UUID should be
                string with 36 characters (32 hex digits + 4 dashes)
              example: 123e4567-e89b-42d3-a456-556642440000
            apiGatewayTransactionId:
              type: string
              description: Gateway transaction ID is globally unique ID for the request
              example: dapg101zatcrh.vodacom.corp-21321-211848-1
            status:
              type: string
              description: >-
                HTTP Status of the SMS API triggered from API Gateway. It is
                just a fire and forget attempt and doesn't have control on the
                actual SMS transmission for SMPP server.
              example: success
    BadRequestError:
      type: object
      properties:
        sourceTransactionId:
          type: string
          description: >-
            Correlating back the same source transaction ID which was sent in
            the request object for this transaction. This will help us in
            tracking the overall request and response flow. UUID should be
            string with 36 characters (32 hex digits + 4 dashes)
          example: 123e4567-e89b-42d3-a456-556642440000
        apiGatewayTransactionId:
          type: string
          description: Gateway transaction ID is globally unique ID for the request
          example: dapg101zatcrh.vodacom.corp-21321-211848-1
        errorCode:
          type: string
          example: '400'
        errorType:
          type: string
          example: System Exception
        details:
          type: object
          properties:
            description:
              type: string
              example: Missing Required Parameters
            message:
              type: string
              example: Bad request
      description: Error Message for Missing Mandatory Field in JSON Payload
    SpikeArrestError:
      type: object
      properties:
        sourceTransactionId:
          type: string
          description: >-
            Correlating back the same source transaction ID which was sent in
            the request object for this transaction. This will help us in
            tracking the overall request and response flow. UUID should be
            string with 36 characters (32 hex digits + 4 dashes)
          example: 123e4567-e89b-42d3-a456-556642440000
        apiGatewayTransactionId:
          type: string
          description: Gateway transaction ID is globally unique ID for the request
          example: dapg101zatcrh.vodacom.corp-21321-211848-1
        errorCode:
          type: string
          example: '429'
        errorType:
          type: string
          example: System Exception
        details:
          type: object
          properties:
            description:
              type: string
              example: Rate limit has been exhausted
            message:
              type: string
              example: Too Many Requests. Rate limit has been exhausted
      description: Error Message for the Spike Arrest Policy
    InternalServerError:
      type: object
      properties:
        sourceTransactionId:
          type: string
          description: >-
            Source Initiated Transaction ID uniquely identified for that
            transaction (UUID)
          example: 123e4567-e89b-42d3-a456-556642440000
        apiGatewayTransactionId:
          type: string
          description: Gateway transaction ID is globally unique ID for the request
          example: dapg101zatcrh.vodacom.corp-21321-211848-1
        errorCode:
          type: string
          example: '500'
        errorType:
          type: string
          example: Business Exception
        details:
          type: object
          properties:
            description:
              type: string
              example: >-
                The server encounted an an unexpected condition which prevented
                it from fulffiling the request
            message:
              type: string
              example: InternalError
      description: Backend Error
    UnauthorizedError:
      type: object
      properties:
        sourceTransactionId:
          type: string
          description: >-
            Correlating back the same source transaction ID which was sent in
            the request object for this transaction. This will help us in
            tracking the overall request and response flow. UUID should be
            string with 36 characters (32 hex digits + 4 dashes)
          example: 123e4567-e89b-42d3-a456-556642440000
        apiGatewayTransactionId:
          type: string
          description: Gateway transaction ID is globally unique ID for the request
          example: dapg101zatcrh.vodacom.corp-21321-211848-1
        errorCode:
          type: string
          example: '401'
        errorType:
          type: string
          example: System Exception
        details:
          type: object
          properties:
            description:
              type: string
              example: Invalid or Expired Access Token
            message:
              type: string
              example: Unauthorized Access
      description: Error Message for the unauthorized OAuth token

  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: "https://apix.vodacom.co.za/oauth-framework/generateaccesstoken"
