swagger: '2.0'
info:
title: Party Management API
description: This API provides standardized mechanism for party management such as creation, update, retrieval and deletion of a party. Party can be an individual or an organization that has any kind of relation with the enterprise.
version: '1.0'
host: api.mtn.com
basePath: /party/v1
schemes:
- https
consumes:
- application/json;charset=utf-8
produces:
- application/json;charset=utf-8
securityDefinitions:
ApiKeyAuth:
type: "apiKey"
name: "X-API-Key"
in: "header"
OAuth2:
type: oauth2
flow: application
tokenUrl: https://api.mtn.com/oauth/client_credential/accesstoken
security:
- ApiKeyAuth: []
- OAuth2: []
tags:
- name: individual
- name: organization
paths:
/individual:
get:
operationId: listIndividual
summary: List or find Individual details
description: This operation list or find Individual entities
tags:
- individual
parameters:
- type: string
required: false
in: header
name: "transactionId"
description: 'Client generated Id to include for tracing requests.'
x-example: '6f0bece6-7df3-4da4-af02-5e7f16e5e6fc'
- type: string
required: false
in: header
name: "targetSystem"
enum:
- ZSmart
description: 'Provider system name.'
x-example: 'ZSmart'
- type: string
required: true
in: query
name: countryCode
description: "Country ISO code. Must be ISO 3166-1 alpha-3 codes (It is a 3 character string)"
enum:
- "NGA"
- "UGA"
- "ZAF"
- "RWA"
- "ZMB"
- "GHN"
- type: string
required: false
in: query
name: idType
description: This should be the type of ID. For eaxmple- passport, national identity card,refugee under document etc.
- type: string
required: false
in: query
name: idValue
description: Value of the 'idType
- type: string
required: true
in: query
name: customerId
description: This can be msisdn with country code or account number etc.
- type: string
required: false
in: query
name: customerCode
description: Unique id generated for customer.
- type: integer
required: false
in: query
name: offset
description: Requested index for start of resources to be provided in response
- type: integer
required: false
in: query
name: limit
description: Requested number of resources to be provided in response
responses:
'200':
description: Success
headers:
X-Total-Count:
type: integer
description: Total number of items matching criteria
X-Result-Count:
type: integer
description: Actual number of items returned in the response body
schema:
type: object
required:
- result
- data
properties:
result:
$ref: '#/definitions/Result'
data:
type: array
items:
$ref: '#/definitions/Individual'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Customer Not Found
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'
'/individual/{id}':
get:
operationId: retrieveIndividual
summary: Retrieves a Individual by ID
description: >-
This operation retrieves a Individual entity. Attribute selection is enabled for all first level attributes.
tags:
- individual
parameters:
- required: true
type: string
name: id
in: path
description: Identifier of the Individual. This could be msisdn number with country code or customer ID of the subscriber
- type: string
required: false
in: header
name: "transactionId"
description: 'Client generated Id to include for tracing requests.'
x-example: '6f0bece6-7df3-4da4-af02-5e7f16e5e6fc'
- type: string
required: false
in: header
name: "targetSystem"
enum:
- ZSmart
description: 'Provider system name.'
x-example: 'ZSmart'
- type: string
required: true
in: query
name: countryCode
description: "Country ISO code. Must be ISO 3166-1 alpha-3 codes (It is a 3 character string)"
enum:
- "NGA"
- "UGA"
- "ZAF"
- "RWA"
- "ZMB"
- "GHN"
- type: string
required: false
in: query
name: idType
description: This should be the type of ID. For eaxmple- passport, national identity card,refugee under document etc.
- type: string
required: false
in: query
name: idValue
description: Value of the 'idType'
- type: string
required: false
in: query
name: customerCode
description: Unique id generated for customer
responses:
'200':
description: Success
schema:
type: object
required:
- result
- data
properties:
result:
$ref: '#/definitions/Result'
data:
$ref: '#/definitions/Individual'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Customer Not Found
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'
/organization:
get:
operationId: listOrganization
summary: List or find Organization details
description: This operation list or find Organization entities
tags:
- organization
parameters:
- type: string
required: false
in: header
name: "transactionId"
description: 'Client generated Id to include for tracing requests.'
x-example: '6f0bece6-7df3-4da4-af02-5e7f16e5e6fc'
- type: string
required: false
in: header
name: "targetSystem"
enum:
- ZSmart
description: 'Provider system name.'
x-example: 'ZSmart'
- type: string
required: true
in: query
name: countryCode
description: "Country ISO code. Must be ISO 3166-1 alpha-3 codes (It is a 3 character string)"
enum:
- "NGA"
- "UGA"
- "ZAF"
- "RWA"
- "ZMB"
- "GHN"
- type: string
required: false
in: query
name: idType
description: This should be the type of ID. For eaxmple- passport, national identity card,refugee under document etc.
- type: string
required: false
in: query
name: idValue
description: Value of the 'idType'
- type: string
required: true
in: query
name: customerId
description: This can be msisdn with country code or account number etc.
- type: string
required: false
in: query
name: customerCode
description: Unique id generated for customer.
- type: integer
required: false
in: query
name: offset
description: Requested index for start of resources to be provided in response
- type: integer
required: false
in: query
name: limit
description: Requested number of resources to be provided in response
responses:
'200':
description: Success
headers:
X-Total-Count:
type: integer
description: Total number of items matching criteria
X-Result-Count:
type: integer
description: Actual number of items returned in the response body
schema:
type: object
required:
- result
- data
properties:
result:
$ref: '#/definitions/Result'
data:
type: array
items:
$ref: '#/definitions/Organization'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Customer Not Found
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'
'/organization/{id}':
get:
operationId: retrieveOrganization
summary: Retrieves a Organization by ID
description: >-
This operation retrieves a Organization entity. Attribute selection is enabled for all first level attributes.
tags:
- organization
parameters:
- required: true
type: string
name: id
in: path
description: Identifier of the Organization
- type: string
required: false
in: header
name: "transactionId"
description: 'Client generated Id to include for tracing requests.'
x-example: '6f0bece6-7df3-4da4-af02-5e7f16e5e6fc'
- type: string
required: false
in: header
name: "targetSystem"
enum:
- ZSmart
description: 'Provider system name.'
x-example: 'ZSmart'
- type: string
required: true
in: query
name: countryCode
description: "Country ISO code. Must be ISO 3166-1 alpha-3 codes (It is a 3 character string)"
enum:
- "NGA"
- "UGA"
- "ZAF"
- "RWA"
- "ZMB"
- "GHN"
- type: string
required: false
in: query
name: idType
description: This should be the type of ID. For eaxmple- passport, national identity card,refugee under document etc.
- type: string
required: false
in: query
name: idValue
description: Value of the 'idType'
- type: string
required: false
in: query
name: customerCode
description: Unique id generated for customer.
responses:
'200':
description: Success
schema:
type: object
required:
- result
- data
properties:
result:
$ref: '#/definitions/Result'
data:
$ref: '#/definitions/Organization'
'400':
description: Bad Request
schema:
$ref: '#/definitions/Error'
'401':
description: Unauthorized
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
schema:
$ref: '#/definitions/Error'
'404':
description: Customer Not Found
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
description: >-
A URI to a JSON-Schema file that defines additional attributes and
relationships
format: uri
'@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
description: >-
A URI to a JSON-Schema file that defines additional attributes and
relationships
format: uri
'@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. An attachment complements the
description of an element, for example through a document, a video, a
picture.
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
description: >-
A URI to a JSON-Schema file that defines additional attributes and
relationships
format: uri
'@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.
Characteristic:
type: object
description: >-
Describes a given characteristic of an object or entity through a
name/value pair.
required:
- name
- value
properties:
name:
type: string
description: Name of the characteristic
valueType:
type: string
description: Data type of the value of the characteristic
value:
type: string
description: The value of the characteristic
'@baseType':
type: string
description: 'When sub-classing, this defines the super-class'
'@schemaLocation':
type: string
description: >-
A URI to a JSON-Schema file that defines additional attributes and
relationships
format: uri
'@type':
type: string
description: 'When sub-classing, this defines the sub-class entity name'
ContactMedium:
type: object
description: Indicates the contact medium that could be used to contact the party.
properties:
mediumType:
type: string
description: >-
Type of the contact medium, such as: physicalAdress,postalAddress,contactPerson etc.
preferred:
type: boolean
description: 'If true, indicates that is the preferred contact medium'
characteristic:
$ref: '#/definitions/MediumCharacteristic'
description: Any additional characteristic(s) of this contact medium
validFor:
$ref: '#/definitions/TimePeriod'
description: The time period that the contact medium is valid for
'@baseType':
type: string
description: 'When sub-classing, this defines the super-class'
'@schemaLocation':
type: string
description: >-
A URI to a JSON-Schema file that defines additional attributes and
relationships
format: uri
'@type':
type: string
description: 'When sub-classing, this defines the sub-class entity name'
Disability:
type: object
description: Lack or inadequate strength or ability.
properties:
disabilityCode:
type: string
description: Code of the disability
disabilityName:
type: string
description: Name of the disability
validFor:
$ref: '#/definitions/TimePeriod'
'@baseType':
type: string
description: 'When sub-classing, this defines the super-class'
'@schemaLocation':
type: string
description: >-
A URI to a JSON-Schema file that defines additional attributes and
relationships
format: uri
'@type':
type: string
description: 'When sub-classing, this defines the sub-class entity name'
EntityRef:
type: object
description: Entity reference schema to be use for all entityRef class.
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.
'@baseType':
type: string
description: 'When sub-classing, this defines the super-class'
'@schemaLocation':
type: string
description: >-
A URI to a JSON-Schema file that defines additional attributes and
relationships
format: uri
'@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
ExternalReference:
type: object
description: External reference of the individual or reference in other system
properties:
externalReferenceType:
type: string
description: Type of the external reference
name:
type: string
description: External reference name
'@baseType':
type: string
description: 'When sub-classing, this defines the super-class'
'@schemaLocation':
type: string
description: >-
A URI to a JSON-Schema file that defines additional attributes and
relationships
format: uri
'@type':
type: string
description: 'When sub-classing, this defines the sub-class entity name'
Individual:
type: object
description: >-
Individual represents a single human being (a man, woman or child). The individual can be a customer, an employee or any other person that the organization needs to store information about.
required:
- id
properties:
id:
type: string
description: Unique identifier of the individual
href:
type: string
description: Hyperlink to access the individual
aristocraticTitle:
type: string
description: 'e.g. Baron, Graf, Earl,…'
birthDate:
type: string
format: date-time
description: Birth date
countryOfBirth:
type: string
description: Country where the individual was born
deathDate:
type: string
format: date-time
description: Date of death
firstName:
type: string
description: >-
First name of the individual
middleName:
type: string
description: >-
Middle name of the individual
lastName:
type: string
description: >-
Contains the non-chosen or inherited name. Also known as sur name or family name.
familyNamePrefix:
type: string
description: Family name prefix
formattedName:
type: string
description: >-
A fully formatted name in one string with all of its pieces in their
proper place and all of the necessary punctuation. Useful for specific
contexts (Chinese, Japanese, Korean,…)
fullName:
type: string
description: 'Full name flatten (first, middle, and last names)'
gender:
type: string
description: Gender
generation:
type: string
description: 'e.g.. Sr, Jr, III (the third),…'
legalName:
type: string
description: Legal name or birth name (name one has for official purposes)
location:
type: string
description: >-
Temporary current location od the individual (may be used if the
individual has approved its sharing)
maritalStatus:
type: string
description: 'Marital status (married, divorced, widow ...)'
nationality:
type: string
description: Nationality
placeOfBirth:
type: string
description: Reference to the place where the individual was born
preferredGivenName:
type: string
description: >-
Contains the chosen name by which the individual prefers to be
addressed. Note: This name may be a name other than a given name, such as a nickname
title:
type: string
description: 'Useful for titles (aristocratic, social,...) Pr, Dr, Sir, ...'
contactMedium:
type: array
items:
$ref: '#/definitions/ContactMedium'
creditRating:
type: array
items:
$ref: '#/definitions/PartyCreditProfile'
disability:
type: array
items:
$ref: '#/definitions/Disability'
externalReference:
type: array
items:
$ref: '#/definitions/ExternalReference'
individualIdentification:
type: array
items:
$ref: '#/definitions/IndividualIdentification'
languageAbility:
type: array
items:
$ref: '#/definitions/LanguageAbility'
otherName:
type: array
items:
$ref: '#/definitions/OtherNameIndividual'
partyCharacteristic:
type: array
items:
$ref: '#/definitions/Characteristic'
relatedParty:
type: array
items:
$ref: '#/definitions/RelatedParty'
skill:
type: array
items:
$ref: '#/definitions/Skill'
status:
$ref: '#/definitions/IndividualStateType'
description: Status of the individual
taxExemptionCertificate:
type: array
items:
$ref: '#/definitions/TaxExemptionCertificate'
'@baseType':
type: string
description: 'When sub-classing, this defines the super-class'
'@schemaLocation':
type: string
description: >-
A URI to a JSON-Schema file that defines additional attributes and
relationships
format: uri
'@type':
type: string
description: 'When sub-classing, this defines the sub-class entity name'
Individual_Create:
type: object
description: >-
Individual represents a single human being (a man, woman or child). The
individual can be a customer, an employee or any other person that the
organization needs to store information about.
Skipped properties: id,href
required:
- id
- givenName
- familyName
properties:
aristocraticTitle:
type: string
description: 'e.g. Baron, Graf, Earl,…'
birthDate:
type: string
format: date-time
description: Birth date
countryOfBirth:
type: string
description: Country where the individual was born
deathDate:
type: string
format: date-time
description: Date of death
familyName:
type: string
description: >-
Contains the non-chosen or inherited name. Also known as last name in
the Western context
familyNamePrefix:
type: string
description: Family name prefix
formattedName:
type: string
description: >-
A fully formatted name in one string with all of its pieces in their
proper place and all of the necessary punctuation. Useful for specific
contexts (Chinese, Japanese, Korean,…)
fullName:
type: string
description: 'Full name flatten (first, middle, and last names)'
gender:
type: string
description: Gender
generation:
type: string
description: 'e.g.. Sr, Jr, III (the third),…'
givenName:
type: string
description: First name of the individual
legalName:
type: string
description: Legal name or birth name (name one has for official purposes)
location:
type: string
description: >-
Temporary current location od the individual (may be used if the
individual has approved its sharing)
maritalStatus:
type: string
description: 'Marital status (married, divorced, widow ...)'
middleName:
type: string
description: Middles name or initial
nationality:
type: string
description: Nationality
placeOfBirth:
type: string
description: Reference to the place where the individual was born
preferredGivenName:
type: string
description: >-
Contains the chosen name by which the individual prefers to be
addressed. Note: This name may be a name other than a given name, such
as a nickname
title:
type: string
description: 'Useful for titles (aristocratic, social,...) Pr, Dr, Sir, ...'
contactMedium:
type: array
items:
$ref: '#/definitions/ContactMedium'
creditRating:
type: array
items:
$ref: '#/definitions/PartyCreditProfile'
disability:
type: array
items:
$ref: '#/definitions/Disability'
externalReference:
type: array
items:
$ref: '#/definitions/ExternalReference'
individualIdentification:
type: array
items:
$ref: '#/definitions/IndividualIdentification'
languageAbility:
type: array
items:
$ref: '#/definitions/LanguageAbility'
otherName:
type: array
items:
$ref: '#/definitions/OtherNameIndividual'
partyCharacteristic:
type: array
items:
$ref: '#/definitions/Characteristic'
relatedParty:
type: array
items:
$ref: '#/definitions/RelatedParty'
skill:
type: array
items:
$ref: '#/definitions/Skill'
status:
$ref: '#/definitions/IndividualStateType'
description: Status of the individual
taxExemptionCertificate:
type: array
items:
$ref: '#/definitions/TaxExemptionCertificate'
'@baseType':
type: string
description: 'When sub-classing, this defines the super-class'
'@schemaLocation':
type: string
description: >-
A URI to a JSON-Schema file that defines additional attributes and
relationships
format: uri
'@type':
type: string
description: 'When sub-classing, this defines the sub-class entity name'
Individual_Update:
type: object
description: >-
Individual represents a single human being (a man, woman or child). The
individual can be a customer, an employee or any other person that the
organization needs to store information about.
Skipped properties: id,href
required:
- id
properties:
aristocraticTitle:
type: string
description: 'e.g. Baron, Graf, Earl,…'
birthDate:
type: string
format: date-time
description: Birth date
countryOfBirth:
type: string
description: Country where the individual was born
deathDate:
type: string
format: date-time
description: Date of death
familyName:
type: string
desc
# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mtn-group/refs/heads/main/openapi/mtn-group-rwanda-party-management.yml