Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Open Gateway Operate API Onboarding and Ordering Application Owner API
description: "**TMF931 - API Ordering, Developer & Application Onboarding and Management** \n\nThis Operate API specification covers the onboarding operations between Channel Partners and Operators as described by GSMA. It offers a consolidation of multiple TM Forum based APIs into a single specification (a component suite). This API specification proposes : \n- Application Owner (Developer) Management (acceptance, onboarding, lifecycle management) \n- Application Management (acceptance, onboarding, lifecycle management) \n- Service API Management (ordering, retrieving)\n\nThis API is a composite DCS (Domain Context Specialization) of the following TMF Open APIs for Open Gateway context\n- TMF622 Product Ordering Management v5.0\n- TMF637 Product Inventory Management v5.0\n- TMF669 Party Role Management v5.0\n- TMF639 Resource Inventory v5.0\n\nCopyright © TM Forum 2025. All Rights Reserved\n"
version: 5.2.1
x-generation-tooling-version: v8.5.15
x-generation-data-model-version: unknown
x-generation-date: '2025-12-11T09:49:01.463Z'
x-api-id: TMF931
license:
name: Apache License 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: '{apiRoot}/openGatewayOperateAPIOnboardingAndOrdering/v5/'
variables:
apiRoot:
default: https://serverRoot/tmf-api/openGatewayOperateAPIOnboardingAndOrdering/v5
enum:
- https://serverRoot/tmf-api/openGatewayOperateAPIOnboardingAndOrdering/v5
tags:
- name: applicationOwner
description: Operations for ApplicationOwner Resource
paths:
/applicationOwner:
post:
tags:
- applicationOwner
summary: Creates a ApplicationOwner
description: This operation creates a ApplicationOwner entity.
operationId: createApplicationOwner
parameters:
- $ref: '#/components/parameters/Fields'
requestBody:
$ref: '#/components/requestBodies/ApplicationOwner_FVO'
responses:
'201':
$ref: '#/components/responses/201ApplicationOwner'
'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'
get:
tags:
- applicationOwner
summary: List or find ApplicationOwner objects
description: List or find ApplicationOwner objects
operationId: listApplicationOwner
parameters:
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Before'
- $ref: '#/components/parameters/After'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/Filter'
responses:
'200':
$ref: '#/components/responses/200ApplicationOwnerArray'
'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'
/applicationOwner/{id}:
get:
tags:
- applicationOwner
summary: Retrieves a ApplicationOwner by ID
description: This operation retrieves a ApplicationOwner entity. Attribute selection enabled for all first level attributes.
operationId: retrieveApplicationOwner
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
responses:
'200':
$ref: '#/components/responses/200ApplicationOwner_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:
- applicationOwner
summary: Updates partially a ApplicationOwner
description: This operation updates partially a ApplicationOwner entity.
operationId: patchApplicationOwner
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
requestBody:
$ref: '#/components/requestBodies/ApplicationOwner_MVO'
responses:
'200':
$ref: '#/components/responses/200ApplicationOwner_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'
components:
schemas:
ApplicationOwner_FVO:
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
description: Application Owner represents the role played by the organization that owns an Application that can consume API products. It's a specialization of a PartyRole in the Open Gateway context.
properties:
name:
type: string
description: A word, term, or phrase by which the ApplicationOwner is known and distinguished from other PartyRoles. It's the name of the ApplicationOwner unique entity.
description:
type: string
description: A description of the ApplicationOwner.
engagedParty:
$ref: '#/components/schemas/ApplicationOwnerOrganization_FVO'
required:
- engagedParty
- name
- description
discriminator:
propertyName: '@type'
mapping:
ApplicationOwner: '#/components/schemas/ApplicationOwner_FVO'
ApplicationOwnerOrganization_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Application 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. It's a specialization of Party in the Open Gateway context.
properties:
name:
type: string
description: Organization name (department name for example)
nameType:
type: string
description: 'Type of the name : Co, Inc, Ltd, etc.'
tradingName:
type: string
description: Name that the organization (unit) trades under
organizationType:
$ref: '#/components/schemas/DpvOrganizationType'
organizationIdentification:
type: array
items:
$ref: '#/components/schemas/OrganizationIdentification_FVO'
description: List of official identifiers given to the organization, for example company number in the registry of companies
isLegalEntity:
type: boolean
description: If value is true, the organization is a legal entity known by a national referential.
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
contactMedium:
type: array
items:
$ref: '#/components/schemas/ContactMedium_FVO'
description: List of means for contacting the party, e.g. mobile phone, email address
legalRepresentative:
$ref: '#/components/schemas/ApplicationOwnerRelatedIndividual_FVO'
localRepresentative:
type: array
items:
$ref: '#/components/schemas/ApplicationOwnerRelatedLocalRepresentative_FVO'
description: Represents a Party representing the Organization within a geographic localization.
dataProtectionOfficer:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_FVO'
privacyManager:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole_FVO'
registeredGeographicAddress:
$ref: '#/components/schemas/LightGeographicAddress_FVO'
taxNumber:
type: string
description: Tax number of the Organization in the country
privacyPolicyURL:
type: string
description: Url to privacy policy.
required:
- contactMedium
- name
- organizationIdentification
- registeredGeographicAddress
- taxNumber
- tradingName
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerOrganization: '#/components/schemas/ApplicationOwnerOrganization_FVO'
Entity:
type: object
description: Base entity schema for use in TMForum Open-APIs. Property.
allOf:
- $ref: '#/components/schemas/Extensible'
- $ref: '#/components/schemas/Addressable'
LightGeographicSubAddress:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Representation of a GeographicSubAddress. It is used for addressing within a property in an urban area (country properties are often defined differently). It may refer to a building, a building cluster, or a floor of a multistory building.
properties:
buildingName:
type: string
description: allows for buildings that have well-known names
levelNumber:
type: string
description: used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2
levelType:
type: string
description: describes level types within a building
privateStreetName:
type: string
description: private streets internal to a property (e.g. a university) may have internal names that are not recorded by the land title office.
privateStreetNumber:
type: string
description: private streets numbers internal to a private street
discriminator:
propertyName: '@type'
mapping:
LightGeographicSubAddress: '#/components/schemas/LightGeographicSubAddress'
Error:
discriminator:
propertyName: '@type'
mapping:
Error: '#/components/schemas/Error'
allOf:
- $ref: '#/components/schemas/Extensible'
- 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
referenceError:
type: string
description: URI of documentation describing the error.
description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
ApplicationOwnerRelatedLocalRepresentative_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: ApplicationOwnerRelatedLocalRepresentative represents a Party representing the Organization within a geographic localization.
properties:
countryCode:
$ref: '#/components/schemas/ISO31661Alpha2StandardIdentifier_FVO'
representative:
$ref: '#/components/schemas/ApplicationOwnerRelatedIndividual_FVO'
required:
- representative
- countryCode
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerRelatedLocalRepresentative: '#/components/schemas/ApplicationOwnerRelatedLocalRepresentative_FVO'
Addressable:
type: object
description: Base schema for addressable entities
properties:
href:
type: string
description: Hyperlink reference
id:
type: string
description: unique identifier
ContactMedium:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: 'Indicates the contact medium that could be used to contact the party. This is an abstract base class, the actual value is in one of the strongly-typed subclasses : EmailContactMedium, FaxContactMedium, PhoneContactMedium, GeographicAddressContactMedium, SocialMediaContactMedium...'
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 qualify 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'
EmailContactMedium: '#/components/schemas/EmailContactMedium'
FaxContactMedium: '#/components/schemas/FaxContactMedium'
GeographicAddressContactMedium: '#/components/schemas/GeographicAddressContactMedium'
PhoneContactMedium: '#/components/schemas/PhoneContactMedium'
SocialContactMedium: '#/components/schemas/SocialContactMedium'
WebFormContactMedium: '#/components/schemas/WebFormContactMedium'
AttachmentRef:
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
description: Attachment reference. An attachment complements the description of an element (for instance a product) through video, pictures
properties:
description:
type: string
description: A narrative text describing the content of the attachment
url:
description: Link to the attachment media/content
type: string
discriminator:
propertyName: '@type'
mapping:
AttachmentRef: '#/components/schemas/AttachmentRef'
ApplicationOwner_RES:
type: object
description: Response object for ApplicationOwner
allOf:
- $ref: '#/components/schemas/ApplicationOwner'
required:
- id
- href
discriminator:
propertyName: '@type'
mapping:
ApplicationOwner: '#/components/schemas/ApplicationOwner'
ISO31661Alpha2StandardIdentifier:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: The corresponding identification of the resource in different standard, regulatory definitions. The standard specification identifier (e.g., ISO 3166-1 Alpha-2) and the corresponding value (e.g., BE) relevant to a particular resource.
properties:
value:
type: string
description: The value of the resource in the ISO 3166-1 Alpha 2 standard
pattern: '[A-Z]{2}'
example: GB
discriminator:
propertyName: '@type'
mapping:
ISO31661Alpha2StandardIdentifier: '#/components/schemas/ISO31661Alpha2StandardIdentifier'
Attachment_FVO:
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: https://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
required:
- attachmentType
- mimeType
discriminator:
propertyName: '@type'
mapping:
Attachment: '#/components/schemas/Attachment_FVO'
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: https://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'
JsonPatch:
type: object
description: A JSONPatch document as defined by RFC 6902
required:
- op
- path
properties:
op:
type: string
description: The operation to be performed
enum:
- add
- remove
- replace
- move
- copy
- test
path:
type: string
description: A JSON-Pointer
value:
description: The value to be used within the operations.
from:
type: string
description: A string containing a JSON Pointer value.
OrganizationIdentification_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Represents our registration of information used as proof of identity by an organization
properties:
identificationId:
type: string
description: Identifier
issuingAuthority:
type: string
description: Authority which has issued the identifier (chamber of commerce...)
issuingDate:
type: string
format: date-time
description: Date at which the identifier was issued
identificationType:
type: string
description: Type of identification information used to identify the company in a country or internationally
validFor:
$ref: '#/components/schemas/TimePeriod'
attachment:
$ref: '#/components/schemas/AttachmentRefOrValue_FVO'
required:
- identificationId
discriminator:
propertyName: '@type'
mapping:
OrganizationIdentification: '#/components/schemas/OrganizationIdentification_FVO'
ApplicationOwnerOrganization:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Application 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. It's a specialization of Party in the Open Gateway context.
properties:
name:
type: string
description: Organization name (department name for example)
nameType:
type: string
description: 'Type of the name : Co, Inc, Ltd, etc.'
tradingName:
type: string
description: Name that the organization (unit) trades under
organizationType:
$ref: '#/components/schemas/DpvOrganizationType'
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
isLegalEntity:
type: boolean
description: If value is true, the organization is a legal entity known by a national referential.
externalReference:
type: array
items:
$ref: '#/components/schemas/ExternalIdentifier'
description: List of identifiers of the Party in an external system, for example when party information is imported from a commerce system
contactMedium:
type: array
items:
$ref: '#/components/schemas/ContactMedium'
description: List of means for contacting the party, e.g. mobile phone, email address
legalRepresentative:
$ref: '#/components/schemas/ApplicationOwnerRelatedIndividual'
localRepresentative:
type: array
items:
$ref: '#/components/schemas/ApplicationOwnerRelatedLocalRepresentative'
description: Represents a Party representing the Organization within a geographic localization.
dataProtectionOfficer:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole'
privacyManager:
$ref: '#/components/schemas/ApplicationOwnerPartyOrPartyRole'
registeredGeographicAddress:
$ref: '#/components/schemas/LightGeographicAddress'
taxNumber:
type: string
description: Tax number of the Organization in the country
privacyPolicyURL:
type: string
description: Url to privacy policy.
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerOrganization: '#/components/schemas/ApplicationOwnerOrganization'
ApplicationOwnerRelatedIndividual:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: ApplicationOwnerRelatedIndividual represents an Individual that has a role within the ApplicationOwner, in the Open Gateway context. Typically an employee of the company.
properties:
familyName:
type: string
description: Contains the non-chosen or inherited name. Also known as last name in the Western context
givenName:
type: string
description: First name of the individual
contactMedium:
type: array
items:
$ref: '#/components/schemas/ContactMedium'
description: List of means for contacting the party, e.g. mobile phone, email address
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerRelatedIndividual: '#/components/schemas/ApplicationOwnerRelatedIndividual'
ApplicationOwnerStatusType:
enum:
- active
- inactive
type: string
description: Used to track the lifecycle status of the ApplicationOwner in Channel Partner IT. So this attribute is allowed to be contributed by the Channel Partner and patchable.
OrganizationIdentification:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: Represents our registration of information used as proof of identity by an organization
properties:
identificationId:
type: string
description: Identifier
issuingAuthority:
type: string
description: Authority which has issued the identifier (chamber of commerce...)
issuingDate:
type: string
format: date-time
description: Date at which the identifier was issued
identificationType:
type: string
description: Type of identification information used to identify the company in a country or internationally
validFor:
$ref: '#/components/schemas/TimePeriod'
attachment:
$ref: '#/components/schemas/AttachmentRefOrValue'
discriminator:
propertyName: '@type'
mapping:
OrganizationIdentification: '#/components/schemas/OrganizationIdentification'
JsonPatchOperations:
description: JSONPatch Operations document as defined by RFC 6902
type: array
items:
$ref: '#/components/schemas/JsonPatch'
ApplicationOwnerRelatedIndividual_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: ApplicationOwnerRelatedIndividual represents an Individual that has a role within the ApplicationOwner, in the Open Gateway context. Typically an employee of the company.
properties:
familyName:
type: string
description: Contains the non-chosen or inherited name. Also known as last name in the Western context
givenName:
type: string
description: First name of the individual
contactMedium:
type: array
items:
$ref: '#/components/schemas/ContactMedium_FVO'
description: List of means for contacting the party, e.g. mobile phone, email address
required:
- familyName
- givenName
- contactMedium
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerRelatedIndividual: '#/components/schemas/ApplicationOwnerRelatedIndividual_FVO'
ISO31661Alpha2StandardIdentifier_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: The corresponding identification of the resource in different standard, regulatory definitions. The standard specification identifier (e.g., ISO 3166-1 Alpha-2) and the corresponding value (e.g., BE) relevant to a particular resource.
properties:
value:
type: string
description: The value of the resource in the ISO 3166-1 Alpha 2 standard
pattern: '[A-Z]{2}'
example: GB
required:
- value
discriminator:
propertyName: '@type'
mapping:
ISO31661Alpha2StandardIdentifier: '#/components/schemas/ISO31661Alpha2StandardIdentifier_FVO'
ApplicationOwnerRelatedOrganization:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: ApplicationOwnerRelatedOrganization represents an Organization that has a role within the ApplicationOwner, in the Open Gateway context. Typically a department inside the company.
properties:
name:
type: string
description: Organization name (department name for example)
contactMedium:
type: array
items:
$ref: '#/components/schemas/ContactMedium'
description: List of means for contacting the party, e.g. mobile phone, email address
organizationType:
$ref: '#/components/schemas/DpvOrganizationType'
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerRelatedOrganization: '#/components/schemas/ApplicationOwnerRelatedOrganization'
DpvOrganizationType:
enum:
- dpv:AcademicScientificOrganisation
- dpv:ForProfitOrganisation
- dpv:GovernmentalOrganisation
- dpv:IndustryConsortium
- dpv:InternationalOrganisation
- dpv:NonGovernmentalOrganisation
- dpv:NonProfitOrganisation
- dpv:OrganisationalUnit
type: string
description: Valid values for a type of organization based on W3C Data Privacy Vocabulary v2 https://w3c.github.io/dpv/2.0/dpv.
ApplicationOwnerRelatedOrganization_FVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: ApplicationOwnerRelatedOrganization represents an Organization that has a role within the ApplicationOwner, in the Open Gateway context. Typically a department inside the company.
properties:
name:
type: string
description: Organization name (department name for example)
contactMedium:
type: array
items:
$ref: '#/components/schemas/ContactMedium_FVO'
description: List of means for contacting the party, e.g. mobile phone, email address
organizationType:
$ref: '#/components/schemas/DpvOrganizationType'
required:
- name
- contactMedium
discriminator:
propertyName: '@type'
mapping:
ApplicationOwnerRelatedOrganization: '#/components/schemas/ApplicationOwnerRelatedOrganization_FVO'
ApplicationOwner_MVO:
allOf:
- $ref: '#/components/schemas/Entity'
- type: object
description: Application Owner represents the role played by the organization that owns an Application that can consume API products. It's a specialization of a PartyRole in the Open Gateway context.
properties:
name:
type: string
description: A word, term, or phrase by which the ApplicationOwner is known and distinguished from other PartyRoles. It's the name of the ApplicationOwner unique entity.
description:
type: string
description: A description of the ApplicationOwner.
engagedParty:
$ref: '#/components/schemas/ApplicationOwnerOrganization'
status:
$ref: '#/components/schemas/ApplicationOwnerStatusType'
statusReason:
type: string
description: A string providing an explanation on the value of the Status lifecycle. For instance if the Status is Rejected, statusReason will provide the reason for rejection.
discriminator:
propertyName: '@type'
mapping:
ApplicationOwner: '#/components/schemas/ApplicationOwner_MVO'
Quantity:
type: object
descripti
# --- truncated at 32 KB (89 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/open-gateway/refs/heads/main/openapi/open-gateway-applicationowner-api-openapi.yml