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.