MTN TMF Party Interaction - TMF683

**TMF API Reference : TMF - 683 Party Interaction** **Release : 19.5 - Oct 2019** The Party Interaction Management API provides a mechanism to manage party interactions. Creation, update and retrieval. Including creation, update, retrieval, deletion and notification of event. A Party Interaction captures information about past...

OpenAPI Specification

mtn-group-tmf-party-interaction-tmf683.yml Raw ↑
swagger: '2.0'
info:
  title: Party Interaction
  description: |+
    **TMF API Reference : TMF - 683 Party Interaction**

    **Release : 19.5 - Oct 2019**

    The Party Interaction Management API provides a mechanism to manage party interactions. Creation, update and retrieval. Including creation, update, retrieval, deletion and notification of event. 
    A Party Interaction captures information about past interactions in order to re-use it in future ones. 
    his allows agents to serve users better by knowing the steps they went through. 
    It also allows customers to see better the actions they have performed and how they interacted with the service provider.


    Copyright © TM Forum 2019. All Rights Reserved


  version: 1.0.0
host: api.mtn.com
basePath: /partyInteraction/v1
schemes:
  - https
consumes:
  - application/json;charset=utf-8
produces:
  - application/json;charset=utf-8
tags:
  - name: partyInteraction

securityDefinitions:
  ApiKeyAuth:
    type: apiKey
    name: X-API-Key
    in: header
  OAuth2:
    type: oauth2
    flow: application
    tokenUrl: 'https://api.mtn.com/v1/oauth/access_token'
security:
  - ApiKeyAuth: []
  - OAuth2: []

paths:
  /partyInteraction:
    post:
      operationId: createPartyInteraction
      summary: Creates a PartyInteraction
      description: This operation creates a PartyInteraction entity.
      tags:
        - partyInteraction
      parameters:
        - name: partyInteraction
          description: The PartyInteraction to be created
          required: true
          schema:
            $ref: '#/definitions/PartyInteraction_Create'
          in: body
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/PartyInteraction'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '405':
          description: Method Not allowed
          schema:
            $ref: '#/definitions/Error'
        '409':
          description: Conflict
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Internal Server Error
          schema:
            $ref: '#/definitions/Error'

definitions:
  Attachment:
    type: object
    description: Complements the description of an element (for instance a product) through video, pictures...
    properties:
      id:
        type: string
        description: Unique identifier for this particular attachment
      href:
        type: string
        description: URI for this Attachment
      attachmentType:
        type: string
        description: Attachment type such as video, picture
      content:
        type: string
        description: The actual contents of the attachment object, if embedded, encoded as base64
      description:
        type: string
        description: A narrative text describing the content of the attachment
      mimeType:
        type: string
        description: Attachment mime type such as extension file for video, picture and document
      name:
        type: string
        description: The name of the attachment
      url:
        type: string
        description: Uniform Resource Locator, is a web page address (a subset of URI)
      size:
        $ref: '#/definitions/Quantity'
        description: The size of the attachment.
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period of time for which the attachment is valid
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  AttachmentRef:
    type: object
    description: Attachment reference. An attachment complements the description of an element (for instance a product) through video, pictures
    properties:
      id:
        type: string
        description: Unique-Identifier for this attachment
      href:
        type: string
        description: URL serving as reference for the attachment resource
      description:
        type: string
        description: A narrative text describing the content of the attachment
      name:
        type: string
        description: Name of the related entity.
      url:
        type: string
        description: Link to the attachment media/content
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
    required:
      - id
  AttachmentRefOrValue:
    type: object
    description: An attachment by value or by reference. For AttachmentRefOrValue, the attribute type,schemaLocation and referredType are related to the contained entity and not to AttchmentRefOrValue itself
    properties:
      id:
        type: string
        description: Unique identifier for this particular attachment
      href:
        type: string
        description: URI for this Attachment
      attachmentType:
        type: string
        description: Attachment type such as video, picture
      content:
        type: string
        description: The actual contents of the attachment object, if embedded, encoded as base64
      description:
        type: string
        description: A narrative text describing the content of the attachment
      mimeType:
        type: string
        description: Attachment mime type such as extension file for video, picture and document
      name:
        type: string
        description: The name of the attachment
      url:
        type: string
        description: Uniform Resource Locator, is a web page address (a subset of URI)
      size:
        $ref: '#/definitions/Quantity'
        description: The size of the attachment.
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period of time for which the attachment is valid
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.

  InteractionItem:
    type: object
    properties:
      id:
        type: string
        description: Unique identifier of the interaction item
      creationDate:
        type: string
        format: date-time
        description: Date when the interaction item is created in the system
      reason:
        type: string
        description: Reason why this item is referred
      reasonCode:
        type: string
        description: Corresponding code to the reason tagged
      resolution:
        type: string
        description: Resolution of the interaction item
      prefLang:
        type: string
        description: Preffered language of the customer. It can be 'en or fr'
      csrUserName:
        type: string
        description: User name of the customer service agent
      csrUserId:
        type: string
        description: User Id of the customer service agent
      location:
        type: string
        description: this respresents the location of the customer/agent
      actionDate:
        type: string
        description: this respresents the date when the action will take place
      attachment:
        type: array
        items:
          $ref: '#/definitions/AttachmentRefOrValue'
      channel:
        type: array
        items:
          $ref: '#/definitions/RelatedChannel'
        description: 'Where the interaction took place (e.g.: web, mobile app, store, kiosk, etc.)'
      item:
        $ref: '#/definitions/RelatedEntityRefOrValue'
        description: RelatedEntity defines a reference to any entity. It uses polymorphism in order to let the API client know how to treat the element, as the entity type is not known beforehand.
      itemDate:
        $ref: '#/definitions/TimePeriod'
        description: Moment this item is referred
      note:
        type: array
        items:
          $ref: '#/definitions/Note'
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  InteractionRelationship:
    type: object
    properties:
      id:
        type: string
        description: Unique identifier of the referenced party interaction
      href:
        type: string
        description: Hyperlink to access the referenced party interaction
      relationshipType:
        type: string
        description: Type of the interaction relationship
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  Note:
    type: object
    description: Extra information about a given entity
    properties:
      id:
        type: string
        description: Identifier of the note within its containing entity (may or may not be globally unique, depending on provider implementation)
      author:
        type: string
        description: Author of the note
      date:
        type: string
        format: date-time
        description: Date of the note
      text:
        type: string
        description: Text of the note
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  PartyInteraction:
    type: object
    properties:
      resultCode:
        type: string
        description: Result code. Example- '0000'
      resultDescription:
        type: string
        description: Result message. Example- 'Successfully processed'
      customerId:
        type: string
        description: MSISDN of the customer.
      id:
        type: string
        description: Unique identifier of the party interaction
      href:
        type: string
        description: Hyperlink to access the party interaction
      creationDate:
        type: string
        format: date-time
        description: Date when the interaction is created in the system
      description:
        type: string
        description: Description of the interaction
      direction:
        type: string
        description: Specifies who started the interaction. It might be the party or the enterprise exposing this API. Possible values are “inbound” and “outbound”
      reason:
        type: string
        description: Reason why the interaction happened
      status:
        type: string
        description: Status of the interaction (opened, inProgress, completed)
      statusChangeDate:
        type: string
        format: date-time
        description: Last time the status changed
      attachment:
        type: array
        items:
          $ref: '#/definitions/AttachmentRefOrValue'
      channel:
        type: array
        items:
          $ref: '#/definitions/RelatedChannel'
        description: Where the interaction took place (e.g. web, mobile app, store, kiosk, etc.)
      interactionDate:
        $ref: '#/definitions/TimePeriod'
        description: The period during which the interaction took place. Start and end will be different in case of a call or a store visit. They will be the same (or only one will appear) in case of a message or other momentary interactions.
      interactionItem:
        type: array
        items:
          $ref: '#/definitions/InteractionItem'
      interactionRelationship:
        type: array
        items:
          $ref: '#/definitions/InteractionRelationship'
      note:
        type: array
        items:
          $ref: '#/definitions/Note'
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  PartyInteraction_Create:
    type: object
    description: |-

      Skipped properties: id,href
    required:
      - interactionDate
      - reason
      - status
      - direction
      - channel
    properties:
      creationDate:
        type: string
        format: date-time
        description: Date when the interaction is created in the system
      description:
        type: string
        description: Description of the interaction
      direction:
        type: string
        description: Specifies who started the interaction. It might be the party or the enterprise exposing this API. Possible values are “inbound” and “outbound”
      transactionId:
        type: string
        description: transactionId of the request initiated used for tracking purpose
      customerId:
        type: string
        description: MSISDN of the customer interacted with agent
      reason:
        type: string
        description: Reason why the interaction happened
      status:
        type: string
        description: Status of the interaction (opened, inProgress, completed)
      statusChangeDate:
        type: string
        format: date-time
        description: Last time the status changed
      attachment:
        type: array
        items:
          $ref: '#/definitions/AttachmentRefOrValue'
      channel:
        type: array
        items:
          $ref: '#/definitions/RelatedChannel'
        minItems: 1
        description: Where the interaction took place (e.g. web, mobile app, store, kiosk, etc.)
      interactionDate:
        $ref: '#/definitions/TimePeriod'
        description: The period during which the interaction took place. Start and end will be different in case of a call or a store visit. They will be the same (or only one will appear) in case of a message or other momentary interactions.
      interactionItem:
        type: array
        items:
          $ref: '#/definitions/InteractionItem'
      interactionRelationship:
        type: array
        items:
          $ref: '#/definitions/InteractionRelationship'
      note:
        type: array
        items:
          $ref: '#/definitions/Note'
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
  PartyInteractionStatusExampleType:
    type: string
    description: Possible values for the status of party interaction
    enum:
      - open
      - inProgress
      - completed
  Quantity:
    type: object
    description: An amount in a given unit
    properties:
      amount:
        default: 1
        type: number
        format: float
        description: Numeric value in a given unit
      units:
        type: string
        description: Unit
  RelatedChannel:
    type: object
    description: Related channel to another entity. May be online web, mobile app, social ,etc.
    required:
      - id
      - href
    properties:
      id:
        type: string
        description: Unique identifier of a related entity.
      href:
        type: string
        description: Reference of the related entity.
      name:
        type: string
        description: Name of the channel.
      role:
        type: string
        description: Role playing by the channel.
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  RelatedEntityRefOrValue:
    type: object
    description: A reference to an entity, where the type of the entity is not known in advance. A related entity defines a entity described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Entity and not the RelatedEntityRefOrValue class itself
    required:
      - role
    properties:
      id:
        type: string
        description: Unique identifier of a related entity.
      href:
        type: string
        description: Reference of the related entity.
      name:
        type: string
        description: Name of the related entity.
      role:
        type: string
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  RelatedParty:
    type: object
    description: Related Entity reference. A related party defines party or party role linked to a specific entity.
    required:
      - '@referredType'
      - id
      - href
    properties:
      id:
        type: string
        description: Unique identifier of a related entity.
      href:
        type: string
        description: Reference of the related entity.
      name:
        type: string
        description: Name of the related entity.
      role:
        type: string
        description: Role played by the related party
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name
      '@referredType':
        type: string
        description: The actual type of the target instance when needed for disambiguation.
  TimePeriod:
    type: object
    description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both
    properties:
      endDateTime:
        type: string
        format: date-time
        description: End of the time period, using IETC-RFC-3339 format
      startDateTime:
        type: string
        format: date-time
        description: Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end

  Error:
    description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
    type: object
    required:
      - code
      - reason
    properties:
      code:
        type: string
        description: Application relevant detail, defined in the API or a common list.
      reason:
        type: string
        description: Explanation of the reason for the error which can be shown to a client user.
      message:
        type: string
        description: More details and corrective actions related to the error which can be shown to a client user.
      status:
        type: string
        description: HTTP Error code extension
      transactionId: 
        type: "string"
        description: "A unique identifier for tracking all incoming requests"  
      timestamp:
        type: "string"
        format: "date-time"
        description: "Error response code"
      referenceError:
        type: string
        format: uri
        description: URI of documentation describing the error.
      '@baseType':
        type: string
        description: When sub-classing, this defines the super-class.
      '@schemaLocation':
        type: string
        format: uri
        description: A URI to a JSON-Schema file that defines additional attributes and relationships
      '@type':
        type: string
        description: When sub-classing, this defines the sub-class entity name.