openapi: 3.0.1
info:
title: Product Catalog Management agreement individual API
description: "Product Catalog API is one of Catalog Management API Family. Product Catalog API goal is to provide a catalog of products. \n### Operations\nProduct Catalog API performs the following operations on the resources :\n- Retrieve an entity or a collection of entities depending on filter criteria\n- Partial update of an entity (including updating rules)\n- Create an entity (including default values and creation rules)\n- Delete an entity\n- Manage notification of events"
version: 5.0.0
servers:
- url: https://serverRoot/productCatalogManagement/v5/
tags:
- name: individual
description: Operations for Individual Resource
paths:
/individual:
get:
tags:
- individual
summary: TM Forum List or Find Individual Objects
description: List or find Individual objects
operationId: listIndividual
parameters:
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Limit'
responses:
'200':
$ref: '#/components/responses/200IndividualArray'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
post:
tags:
- individual
summary: TM Forum Creates a Individual
description: This operation creates a Individual entity.
operationId: createIndividual
parameters:
- $ref: '#/components/parameters/Fields'
requestBody:
$ref: '#/components/requestBodies/Individual_FVO'
responses:
'201':
$ref: '#/components/responses/201Individual'
'202':
description: Accepted
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
/individual/{id}:
get:
tags:
- individual
summary: TM Forum Retrieves a Individual by ID
description: This operation retrieves a Individual entity. Attribute selection enabled for all first level attributes.
operationId: retrieveIndividual
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
responses:
'200':
$ref: '#/components/responses/200Individual_Get'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
patch:
tags:
- individual
summary: TM Forum Updates Partially a Individual
description: This operation updates partially a Individual entity.
operationId: patchIndividual
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
requestBody:
$ref: '#/components/requestBodies/Individual_MVO'
responses:
'200':
$ref: '#/components/responses/200Individual_Patch'
'202':
description: Accepted
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
delete:
tags:
- individual
summary: TM Forum Deletes a Individual
description: This operation deletes a Individual entity.
operationId: deleteIndividual
parameters:
- $ref: '#/components/parameters/Id'
responses:
'202':
$ref: '#/components/responses/202'
'204':
$ref: '#/components/responses/204'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
components:
schemas:
AgreementRef:
type: object
description: Agreement reference. An agreement represents a contract or arrangement, either written or verbal and sometimes enforceable by law, such as a service level agreement or a customer price agreement. An agreement involves a number of other business entities, such as products, services, and resources and/or their specifications.
allOf:
- $ref: '#/components/schemas/Extensible'
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
AgreementRef: '#/components/schemas/AgreementRef'
EntityRef_FVO:
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- $ref: '#/components/schemas/Addressable_FVO'
- type: object
description: Entity reference schema to be use for all entityRef class.
properties:
id:
type: string
description: The identifier of the referred entity.
href:
type: string
description: The URI of the referred entity.
name:
type: string
description: Name of the referred entity.
'@referredType':
type: string
description: The actual type of the target instance when needed for disambiguation.
required:
- id
ContactMedium:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Indicates the contact medium that could be used to contact the party.
properties:
id:
type: string
description: Identifier for this contact medium.
preferred:
type: boolean
description: If true, indicates that is the preferred contact medium
contactType:
type: string
description: Type of the contact medium to qualifiy it like pro email / personal email. This is not used to define the contact medium used.
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
ContactMedium: '#/components/schemas/ContactMedium'
SocialContactMedium: '#/components/schemas/SocialContactMedium'
PhoneContactMedium: '#/components/schemas/PhoneContactMedium'
GeographicAddressContactMedium: '#/components/schemas/GeographicAddressContactMedium'
FaxContactMedium: '#/components/schemas/FaxContactMedium'
EmailContactMedium: '#/components/schemas/EmailContactMedium'
PartyOrPartyRole_FVO:
type: object
description: ''
oneOf:
- $ref: '#/components/schemas/PartyRef_FVO'
- $ref: '#/components/schemas/PartyRoleRef_FVO'
- $ref: '#/components/schemas/Individual_FVO'
- $ref: '#/components/schemas/Organization_FVO'
- $ref: '#/components/schemas/PartyRole_FVO'
- $ref: '#/components/schemas/Supplier_FVO'
- $ref: '#/components/schemas/BusinessPartner_FVO'
- $ref: '#/components/schemas/Consumer_FVO'
- $ref: '#/components/schemas/Producer_FVO'
discriminator:
propertyName: '@type'
mapping:
PartyRef: '#/components/schemas/PartyRef_FVO'
PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO'
Individual: '#/components/schemas/Individual_FVO'
Organization: '#/components/schemas/Organization_FVO'
PartyRole: '#/components/schemas/PartyRole_FVO'
Supplier: '#/components/schemas/Supplier_FVO'
BusinessPartner: '#/components/schemas/BusinessPartner_FVO'
Consumer: '#/components/schemas/Consumer_FVO'
Producer: '#/components/schemas/Producer_FVO'
Supplier_MVO:
type: object
description: 'When business partner is the Supplier '
allOf:
- $ref: '#/components/schemas/PartyRole_MVO'
OrganizationChildRelationship_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Child references of an organization in a structure of organizations.
properties:
relationshipType:
type: string
description: Type of the relationship. Could be juridical, hierarchical, geographical, functional for example.
organization:
$ref: '#/components/schemas/OrganizationRef_MVO'
discriminator:
propertyName: '@type'
mapping:
OrganizationChildRelationship: '#/components/schemas/OrganizationChildRelationship_MVO'
PartyRoleRef_MVO:
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
description: Party role reference. A party role represents the part played by a party in a given context.
properties:
partyId:
type: string
description: The identifier of the engaged party that is linked to the PartyRole object.
partyName:
type: string
description: The name of the engaged party that is linked to the PartyRole object.
discriminator:
propertyName: '@type'
mapping:
PartyRoleRef: '#/components/schemas/PartyRoleRef_MVO'
Producer:
type: object
allOf:
- $ref: '#/components/schemas/PartyRole'
Attachment:
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
description: Complements the description of an element (for instance a product) through video, pictures...
properties:
name:
type: string
description: The name of the attachment
description:
type: string
description: A narrative text describing the content of the attachment
example: Photograph of the Product
url:
type: string
description: Uniform Resource Locator, is a web page address (a subset of URI)
example: http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f
content:
type: string
format: base64
description: The actual contents of the attachment object, if embedded, encoded as base64
size:
$ref: '#/components/schemas/Quantity'
validFor:
$ref: '#/components/schemas/TimePeriod'
attachmentType:
type: string
description: a business characterization of the purpose of the attachment, for example logo, instructionManual, contractCopy
mimeType:
type: string
description: a technical characterization of the attachment content format using IETF Mime Types
discriminator:
propertyName: '@type'
mapping:
Attachment: '#/components/schemas/Attachment'
OtherNameOrganization_FVO:
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- type: object
description: Keeps track of other names, for example the old name of an organization.
properties:
tradingName:
type: string
description: The name that the organization trades under
nameType:
type: string
description: Co. , Inc. , Ltd. , Pty Ltd. , Plc; , Gmbh
name:
type: string
description: Organization name (department name for example)
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
OtherNameOrganization: '#/components/schemas/OtherNameOrganization_FVO'
PartyCreditProfile_FVO:
allOf:
- $ref: '#/components/schemas/Entity_FVO'
- type: object
description: An individual might be evaluated for its worthiness and this evaluation might be based on a credit rating given by a credit agency.
properties:
creditAgencyName:
type: string
description: Name of the credit agency giving the score
creditAgencyType:
type: string
description: Type of the credit agency giving the score
ratingReference:
type: string
description: Reference corresponding to the credit rating
ratingScore:
type: integer
format: int32
description: A measure of a party's creditworthiness calculated on the basis of a combination of factors such as their income and credit history
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
PartyCreditProfile: '#/components/schemas/PartyCreditProfile_FVO'
PaymentMethodRef:
type: object
description: PaymentMethod reference. A payment method defines a specific mean of payment (e.g direct debit).
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
PaymentMethodRef: '#/components/schemas/PaymentMethodRef'
AccountRef:
type: object
description: Account reference. A account may be a party account or a financial account.
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
AccountRef: '#/components/schemas/AccountRef'
CreditProfile_MVO:
allOf:
- $ref: '#/components/schemas/Entity_MVO'
- type: object
description: Credit profile for the party (containing credit scoring, ...). By default only the current credit profile is retrieved. It can be used as a list to give the party credit profiles history, the first one in the list will be the current one.
properties:
creditProfileDate:
type: string
format: date-time
description: The date the profile was established
creditRiskRating:
type: integer
description: This is an integer whose value is used to rate the risk
creditScore:
type: integer
description: A measure of a person or organizations creditworthiness calculated on the basis of a combination of factors such as their income and credit history
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
CreditProfile: '#/components/schemas/CreditProfile_MVO'
OrganizationParentRelationship_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Parent references of an organization in a structure of organizations.
properties:
relationshipType:
type: string
description: Type of the relationship. Could be juridical, hierarchical, geographical, functional for example.
organization:
$ref: '#/components/schemas/OrganizationRef_MVO'
discriminator:
propertyName: '@type'
mapping:
OrganizationParentRelationship: '#/components/schemas/OrganizationParentRelationship_MVO'
PartyRoleRef_FVO:
allOf:
- $ref: '#/components/schemas/EntityRef_FVO'
- type: object
description: Party role reference. A party role represents the part played by a party in a given context.
properties:
partyId:
type: string
description: The identifier of the engaged party that is linked to the PartyRole object.
partyName:
type: string
description: The name of the engaged party that is linked to the PartyRole object.
discriminator:
propertyName: '@type'
mapping:
PartyRoleRef: '#/components/schemas/PartyRoleRef_FVO'
Party_FVO:
allOf:
- $ref: '#/components/schemas/Entity_FVO'
- type: object
description: Generic and Abstract Party structure used to define commonalities between sub concepts of Individual and Organization.
properties:
externalReference:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier_FVO'
description: List of identifiers of the Party in an external system, for example when party information is imported from a commerce system
partyCharacteristic:
type: array
items:
$ref: '#/components/schemas/Characteristic_FVO'
description: List of additional characteristics that a Party can take on.
taxExemptionCertificate:
type: array
items:
$ref: '#/components/schemas/TaxExemptionCertificate_FVO'
description: List of tax exemptions granted to the party. For example, a war veteran might have partial exemption from state tax and a full exemption from federal tax
creditRating:
type: array
items:
$ref: '#/components/schemas/PartyCreditProfile_FVO'
description: List of credit profiles and scores for the party, typically received from an external credit broker
relatedParty:
type: array
items:
$ref: '#/components/schemas/RelatedPartyOrPartyRole_FVO'
description: List of parties and/or party roles related to this party
contactMedium:
type: array
items:
$ref: '#/components/schemas/ContactMedium_FVO'
description: List of means for contacting the party, e.g. mobile phone, email address
discriminator:
propertyName: '@type'
mapping:
Party: '#/components/schemas/Party_FVO'
Organization: '#/components/schemas/Organization_FVO'
Individual: '#/components/schemas/Individual_FVO'
Characteristic_FVO:
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- type: object
description: Describes a given characteristic of an object or entity through a name/value pair.
properties:
id:
type: string
description: Unique identifier of the characteristic
name:
type: string
description: Name of the characteristic
valueType:
type: string
description: Data type of the value of the characteristic
characteristicRelationship:
type: array
items:
$ref: '#/components/schemas/CharacteristicRelationship_FVO'
required:
- name
discriminator:
propertyName: '@type'
mapping:
Characteristic: '#/components/schemas/Characteristic_FVO'
StringCharacteristic: '#/components/schemas/StringCharacteristic_FVO'
StringArrayCharacteristic: '#/components/schemas/StringArrayCharacteristic_FVO'
ObjectCharacteristic: '#/components/schemas/ObjectCharacteristic_FVO'
ObjectArrayCharacteristic: '#/components/schemas/ObjectArrayCharacteristic_FVO'
NumberCharacteristic: '#/components/schemas/NumberCharacteristic_FVO'
NumberArrayCharacteristic: '#/components/schemas/NumberArrayCharacteristic_FVO'
IntegerCharacteristic: '#/components/schemas/IntegerCharacteristic_FVO'
IntegerArrayCharacteristic: '#/components/schemas/IntegerArrayCharacteristic_FVO'
FloatCharacteristic: '#/components/schemas/FloatCharacteristic_FVO'
BooleanCharacteristic: '#/components/schemas/BooleanCharacteristic_FVO'
Producer_FVO:
type: object
allOf:
- $ref: '#/components/schemas/PartyRole_FVO'
OrganizationRef_FVO:
type: object
allOf:
- $ref: '#/components/schemas/EntityRef_FVO'
discriminator:
propertyName: '@type'
mapping:
OrganizationRef: '#/components/schemas/OrganizationRef_FVO'
Supplier_FVO:
type: object
description: 'When business partner is the Supplier '
allOf:
- $ref: '#/components/schemas/PartyRole_FVO'
Organization:
allOf:
- $ref: '#/components/schemas/Party'
- type: object
description: Organization represents a group of people identified by shared interests or purpose. Examples include business, department and enterprise. Because of the complex nature of many businesses, both organizations and organization units are represented by the same data.
properties:
isLegalEntity:
type: boolean
description: If value is true, the organization is a legal entity known by a national referential.
isHeadOffice:
type: boolean
description: If value is true, the organization is the head office
organizationType:
type: string
description: Type of Organization (company, department...)
existsDuring:
$ref: '#/components/schemas/TimePeriod'
name:
type: string
description: Organization name (department name for example)
nameType:
type: string
description: 'Type of the name : Co, Inc, Ltd, etc.'
status:
$ref: '#/components/schemas/OrganizationStateType'
otherName:
type: array
items:
$ref: '#/components/schemas/OtherNameOrganization'
description: List of additional names by which the organization is known
organizationIdentification:
type: array
items:
$ref: '#/components/schemas/OrganizationIdentification'
description: List of official identifiers given to the organization, for example company number in the registry of companies
organizationChildRelationship:
type: array
items:
$ref: '#/components/schemas/OrganizationChildRelationship'
description: List of organizations that are contained within this organization. For example if this organization is the Legal Department, the child organizations might include Claims, Courts, Contracts
organizationParentRelationship:
$ref: '#/components/schemas/OrganizationParentRelationship'
tradingName:
type: string
description: Name that the organization (unit) trades under
OrganizationRef:
type: object
allOf:
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
OrganizationRef: '#/components/schemas/OrganizationRef'
OtherNameOrganization:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Keeps track of other names, for example the old name of an organization.
properties:
tradingName:
type: string
description: The name that the organization trades under
nameType:
type: string
description: Co. , Inc. , Ltd. , Pty Ltd. , Plc; , Gmbh
name:
type: string
description: Organization name (department name for example)
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
OtherNameOrganization: '#/components/schemas/OtherNameOrganization'
Extensible_FVO:
type: object
description: Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
properties:
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible 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
required:
- '@type'
BusinessPartner_FVO:
type: object
description: 'When business partner is the BusinessPartner '
allOf:
- $ref: '#/components/schemas/PartyRole_FVO'
Consumer_FVO:
type: object
allOf:
- $ref: '#/components/schemas/PartyRole_FVO'
PartyCreditProfile:
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
description: An individual might be evaluated for its worthiness and this evaluation might be based on a credit rating given by a credit agency.
properties:
creditAgencyName:
type: string
description: Name of the credit agency giving the score
creditAgencyType:
type: string
description: Type of the credit agency giving the score
ratingReference:
type: string
description: Reference corresponding to the credit rating
ratingScore:
type: integer
format: int32
description: A measure of a party's creditworthiness calculated on the basis of a combination of factors such as their income and credit history
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
PartyCreditProfile: '#/components/schemas/PartyCreditProfile'
TaxExemptionCertificate:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: A tax exemption certificate represents a tax exemption granted to a party (individual or organization) by a tax jurisdiction which may be a city, state, country,... An exemption has a certificate identifier (received from the jurisdiction that levied the tax) and a validity period. An exemption is per tax types and determines for each type of tax what portion of the tax is exempted (partial by percentage or complete) via the tax definition.
properties:
id:
type: string
description: Identifier of the tax exemption within list of the exemptions
taxDefinition:
type: array
items:
$ref: '#/components/schemas/TaxDefinition'
description: A list of taxes that are covered by the exemption, e.g. City Tax, State Tax. The definition would include the exemption (e.g. for a rate exemption 0% would be a full exemption, 5% could be a partial exemption if the actual rate was 10%).
validFor:
$ref: '#/components/schemas/TimePeriod'
certificateNumber:
type: string
description: Identifier of a document that shows proof of exemption from taxes for the taxing jurisdiction
issuingJurisdiction:
type: string
description: Name of the jurisdiction that issued the exemption
example: USA
reason:
type: string
description: Reason for the tax exemption
attachment:
$ref: '#/components/schemas/AttachmentRefOrValue'
discriminator:
propertyName: '@type'
mapping:
TaxExemptionCertificate: '#/components/schemas/TaxExemptionCertificate'
JsonPatchOperations:
description: JSONPatch Operations document as defined by RFC 6902
type: array
items:
$ref: '#/components/schemas/JsonPatch'
OrganizationParentRelationship:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Parent references of an organization in a structure of organizations.
properties:
relationshipType:
type: string
description: Type of the relationship. Could be juridical, hierarchical, geographical, functional for example.
organization:
$ref: '#/components/schemas/OrganizationRef'
discriminator:
propertyName: '@type'
mapping:
OrganizationParentRelationship: '#/components/schemas/OrganizationParentRelationship'
IndividualStateType:
enum:
- initialized
- validated
- deceased
type: string
description: Valid values for the lifecycle state of the individual
ContactMedium_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Indicates the contact medium that could be used to contact the party.
properties:
id:
type: string
description: Identifier for this contact medium.
preferred:
type: boolean
description: If true, indicates that is the preferred contact medium
contactType:
type: string
description: Type of the contact medium to qualifiy it like pro email / personal email. This is not used to define the contact medium used.
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
ContactMedium: '#/components/schemas/ContactMedium_MVO'
SocialContactMedium: '#/components/schemas/SocialContactMedium_MVO'
PhoneContactMedium: '#/components/schemas/PhoneContactMedium_MVO'
GeographicAddressContactMedium: '#/components/schemas/GeographicAddressContactMedium_MVO'
FaxContactMedium: '#/components/schemas/FaxContactMedium_MVO'
EmailContactMedium: '#/components/schemas/EmailContactMedium_MVO'
Quantity:
type: object
description: An amount in a given unit
properties:
amount:
type: number
format: float
default: 1
description: Numeric value in a given unit
units:
type: string
description: Unit
Organization_FVO:
allOf:
- $ref: '#/components/schemas/Party_FVO'
- type: object
description: Organization represents a group of people identified by shared interests or purpose. Examples include business, department and enterprise. Because of the complex nature of many businesses, both organizations and organization units are represented by the same data.
properties:
isLegalEntity:
type: boolean
description: If value is true, the organization is a legal entity known by a national referential.
isHeadOffice:
type: boolean
description: If value is true, the organization is the head office
organizationType:
type: string
description: Type of Organization (company, department...)
existsDuring:
$ref: '#/components/schemas/TimePeriod'
name:
type: string
description: Organization name (department name for example)
nameType:
type: string
description: 'Type of the name : Co, Inc, Ltd, etc.'
status:
$ref: '#/components/schemas/OrganizationStateType'
otherName:
type: array
items:
$ref: '#/components/schemas/OtherNameOrganization_FVO'
descriptio
# --- truncated at 32 KB (151 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/openapi/tm-forum-individual-api-openapi.yml