TM Forum settlementAccount API

The settlementAccount API from TM Forum — 2 operation(s) for settlementaccount.

OpenAPI Specification

tm-forum-settlementaccount-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Product Catalog Management agreement settlementAccount 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: settlementAccount
paths:
  /settlementAccount:
    get:
      operationId: listSettlementAccount
      summary: List or find SettlementAccount objects
      description: This operation list or find SettlementAccount entities
      tags:
      - settlementAccount
      parameters:
      - name: fields
        description: Comma-separated properties to be provided in response
        required: false
        in: query
        type: string
      - name: offset
        description: Requested index for start of resources to be provided in response
        required: false
        in: query
        type: integer
      - name: limit
        description: Requested number of resources to be provided in response
        required: false
        in: query
        type: integer
      responses:
        '200':
          description: Success
          headers:
            X-Result-Count:
              description: Actual number of items returned in the response body
              type: integer
            X-Total-Count:
              description: Total number of items matching criteria
              type: integer
          schema:
            type: array
            items:
              $ref: '#/definitions/SettlementAccount'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '404':
          description: 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'
    post:
      operationId: createSettlementAccount
      summary: Creates a SettlementAccount
      description: This operation creates a SettlementAccount entity.
      tags:
      - settlementAccount
      parameters:
      - name: settlementAccount
        description: The SettlementAccount to be created
        required: true
        schema:
          $ref: '#/definitions/SettlementAccount_Create'
        in: body
      responses:
        '201':
          description: Created
          schema:
            $ref: '#/definitions/SettlementAccount'
        '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'
  /settlementAccount/{id}:
    get:
      operationId: retrieveSettlementAccount
      summary: Retrieves a SettlementAccount by ID
      description: This operation retrieves a SettlementAccount entity. Attribute selection is enabled for all first level attributes.
      tags:
      - settlementAccount
      parameters:
      - name: id
        description: Identifier of the SettlementAccount
        required: true
        type: string
        in: path
      - name: fields
        description: Comma-separated properties to provide in response
        required: false
        type: string
        in: query
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/SettlementAccount'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '404':
          description: 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'
    patch:
      operationId: patchSettlementAccount
      summary: Updates partially a SettlementAccount
      description: This operation updates partially a SettlementAccount entity.
      tags:
      - settlementAccount
      parameters:
      - name: id
        description: Identifier of the SettlementAccount
        required: true
        type: string
        in: path
      - name: settlementAccount
        description: The SettlementAccount to be updated
        required: true
        schema:
          $ref: '#/definitions/SettlementAccount_Update'
        in: body
      responses:
        '200':
          description: Updated
          schema:
            $ref: '#/definitions/SettlementAccount'
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '404':
          description: 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'
    delete:
      operationId: deleteSettlementAccount
      summary: Deletes a SettlementAccount
      description: This operation deletes a SettlementAccount entity.
      tags:
      - settlementAccount
      parameters:
      - name: id
        description: Identifier of the SettlementAccount
        required: true
        type: string
        in: path
      responses:
        '204':
          description: Deleted
        '400':
          description: Bad Request
          schema:
            $ref: '#/definitions/Error'
        '401':
          description: Unauthorized
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden
          schema:
            $ref: '#/definitions/Error'
        '404':
          description: 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:
  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
      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.
  AccountBalance:
    type: object
    description: Balances linked to the account
    required:
    - amount
    - balanceType
    - validFor
    properties:
      balanceType:
        type: string
        description: 'Type of the balance : deposit balance, disputed balance, loyalty balance, receivable balance...'
      amount:
        $ref: '#/definitions/Money'
        description: Balance amount
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: Balance validity period
      '@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
  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: email address, telephone number, postal address'
      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
        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
  SettlementAccount_Update:
    type: object
    description: 'A party account used for settlement purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount.

      Skipped properties: id,href,accountBalance'
    required:
    - name
    - relatedParty
    properties:
      accountType:
        type: string
        description: 'A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.'
      description:
        type: string
        description: Detailed description of the party account
      lastModified:
        type: string
        format: date-time
        description: Date of last modification of the account
      name:
        type: string
        description: Name of the account
      paymentStatus:
        type: string
        description: The condition of the account, such as due, paid, in arrears.
      state:
        type: string
        description: 'Contains the lifecycle state such as: Active, Closed, Suspended and so on.'
      accountRelationship:
        type: array
        items:
          $ref: '#/definitions/AccountRelationship'
      billStructure:
        $ref: '#/definitions/BillStructure'
      contact:
        type: array
        items:
          $ref: '#/definitions/Contact'
      creditLimit:
        $ref: '#/definitions/Money'
        description: The maximum amount of money that may be charged on an account
      defaultPaymentMethod:
        $ref: '#/definitions/PaymentMethodRef'
      financialAccount:
        $ref: '#/definitions/FinancialAccountRef'
      paymentPlan:
        type: array
        items:
          $ref: '#/definitions/PaymentPlan'
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        minItems: 1
      taxExemption:
        type: array
        items:
          $ref: '#/definitions/AccountTaxExemption'
      '@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
  FinancialAccountRef:
    type: object
    description: AccountReceivable reference. An account of money owed by a party to another entity in exchange for goods or services that have been delivered or used. An account receivable aggregates the amounts of one or more party accounts (billing or settlement) owned by a given party.
    properties:
      id:
        type: string
        description: Unique identifier of the account
      href:
        type: string
        description: Unique reference of the account
      name:
        type: string
        description: Name of the account
      accountBalance:
        $ref: '#/definitions/AccountBalance'
      '@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
  PaymentMethodRef:
    type: object
    description: PaymentMethod reference. A payment method defines a specific mean of payment (e.g direct debit).
    properties:
      id:
        type: string
        description: Unique identifier of the payment mean
      href:
        type: string
        description: Reference of the payment mean
      name:
        type: string
        description: Name of the payment mean
      '@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
  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
  MediumCharacteristic:
    type: object
    description: Describes the contact medium characteristics that could be used to contact a party (an individual or an organization)
    properties:
      city:
        type: string
        description: The city
      contactType:
        type: string
        description: 'The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping instalation…'
      country:
        type: string
        description: The country
      emailAddress:
        type: string
        description: Full email address in standard format
      faxNumber:
        type: string
        description: The fax number of the contact
      phoneNumber:
        type: string
        description: The primary phone number of the contact
      postCode:
        type: string
        description: Postcode
      socialNetworkId:
        type: string
        description: Identifier as a member of a social network
      stateOrProvince:
        type: string
        description: State or province
      street1:
        type: string
        description: Describes the street
      street2:
        type: string
        description: Complementary street description
      '@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
  SettlementAccount_Create:
    type: object
    description: 'A party account used for settlement purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount.

      Skipped properties: id,href'
    required:
    - name
    - relatedParty
    properties:
      accountType:
        type: string
        description: 'A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.'
      description:
        type: string
        description: Detailed description of the party account
      lastModified:
        type: string
        format: date-time
        description: Date of last modification of the account
      name:
        type: string
        description: Name of the account
      paymentStatus:
        type: string
        description: The condition of the account, such as due, paid, in arrears.
      state:
        type: string
        description: 'Contains the lifecycle state such as: Active, Closed, Suspended and so on.'
      accountBalance:
        type: array
        items:
          $ref: '#/definitions/AccountBalance'
      accountRelationship:
        type: array
        items:
          $ref: '#/definitions/AccountRelationship'
      billStructure:
        $ref: '#/definitions/BillStructure'
      contact:
        type: array
        items:
          $ref: '#/definitions/Contact'
      creditLimit:
        $ref: '#/definitions/Money'
        description: The maximum amount of money that may be charged on an account
      defaultPaymentMethod:
        $ref: '#/definitions/PaymentMethodRef'
      financialAccount:
        $ref: '#/definitions/FinancialAccountRef'
      paymentPlan:
        type: array
        items:
          $ref: '#/definitions/PaymentPlan'
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        minItems: 1
      taxExemption:
        type: array
        items:
          $ref: '#/definitions/AccountTaxExemption'
      '@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
  BillFormatRefOrValue:
    type: object
    description: An attachment by value or by reference.
    required:
    - name
    - isRef
    properties:
      id:
        type: string
        description: Unique identifier of the bill format
      href:
        type: string
        description: Reference of the bill format
      description:
        type: string
        description: An explanatory text for this bill format
      isRef:
        default: true
        type: boolean
      name:
        type: string
        description: A short descriptive name
      '@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.
  BillingCycleSpecificationRefOrValue:
    type: object
    description: An attachment by value or by reference.
    required:
    - name
    - isRef
    properties:
      id:
        type: string
        description: Unique identifier of the billing cycle specification
      href:
        type: string
        description: Reference of the billing cycle specification
      billingDateShift:
        type: integer
        description: An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period.
      billingPeriod:
        type: string
        description: 'A billing time period. It can be recurring, for example: week, month, quarter of year, year .'
      chargeDateOffset:
        type: integer
        description: An offset of a date through which charges previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod.
      creditDateOffset:
        type: integer
        description: An offset of a date through which credits previously received by the billing system will appear on the bill. The offset is expressed as number of days with regard to the start of the BillingPeriod.
      dateShift:
        type: integer
        description: An offset of a billing/settlement date. The offset is expressed as number of days with regard to the start of the billing/settlement period.
      description:
        type: string
        description: An explanation regarding this billing cycle specification
      frequency:
        type: string
        description: Frequency of the billing cycle (monthly for instance)
      isRef:
        default: true
        type: boolean
      mailingDateOffset:
        type: integer
        description: An offset of a customer bill mailing date. The offset is expressed as number of days with regard to the start of the BillingPeriod.
      name:
        type: string
        description: A short descriptive name
      paymentDueDateOffset:
        type: integer
        description: An offset of a payment due date. The offset is expressed as number of days with regard to the start of the BillingPeriod.
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: The period for which the billing specification cycle 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.
  PaymentPlan:
    type: object
    description: Defines a plan for payment (when a party wants to spread his payments)
    properties:
      numberOfPayments:
        type: integer
        description: Number of payments used to spread the global payment
      paymentFrequency:
        type: string
        description: Frequency of the payments, such as monthly and bimonthly
      planType:
        type: string
        description: Type of payment plan
      priority:
        type: integer
        description: Priority of the payment plan
      status:
        type: string
        description: Status of the payment plan (effective, ineffective)
      paymentMethod:
        $ref: '#/definitions/PaymentMethodRef'
      totalAmount:
        $ref: '#/definitions/Money'
        description: Amount paid
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: Validity period of the payment plan
      '@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
  BillPresentationMediaRefOrValue:
    type: object
    description: An attachment by value or by reference.
    required:
    - name
    - isRef
    properties:
      id:
        type: string
        description: Unique identifier of the bill presentation media
      href:
        type: string
        description: Reference of the bill presentation media
      description:
        type: string
        description: An explanatory text describing this bill presentation media
      isRef:
        default: true
        type: boolean
      name:
        type: string
        description: A short descriptive name
      '@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.
  AccountTaxExemption:
    type: object
    description: Proof of freedom from taxes imposed by a taxing jurisdiction
    required:
    - issuingJurisdiction
    - validFor
    properties:
      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 taxing jurisdiction for which taxes are exempt
      reason:
        type: string
        description: Reason of the tax exemption
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: Period for which the exemption 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
  Money:
    type: object
    description: A base / value business entity used to represent money
    properties:
      unit:
        type: string
        description: Currency (ISO4217 norm uses 3 letters to define the currency)
      value:
        type: number
        format: float
        description: A positive floating point number
  SettlementAccount:
    type: object
    description: A party account used for settlement purposes. It includes a description of the bill structure (frequency, presentation media, format and so on). It is a specialization of entity PartyAccount.
    required:
    - name
    - relatedParty
    properties:
      id:
        type: string
        description: Unique identifier of the account
      href:
        type: string
        description: Unique reference of the account
      accountType:
        type: string
        description: 'A categorization of an account, such as individual, joint, and so forth, whose instances share some of the same characteristics. Note: for flexibility we use a String here but an implementation may use an enumeration with a limited list of valid values.'
      description:
        type: string
        description: Detailed description of the party account
      lastModified:
        type: string
        format: date-time
        description: Date of last modification of the account
      name:
        type: string
        description: Name of the account
      paymentStatus:
        type: string
        description: The condition of the account, such as due, paid, in arrears.
      state:
        type: string
        description: 'Contains the lifecycle state such as: Active, Closed, Suspended and so on.'
      accountBalance:
        type: array
        items:
          $ref: '#/definitions/AccountBalance'
      accountRelationship:
        type: array
        items:
          $ref: '#/definitions/AccountRelationship'
      billStructure:
        $ref: '#/definitions/BillStructure'
      contact:
        type: array
        items:
          $ref: '#/definitions/Contact'
      creditLimit:
        $ref: '#/definitions/Money'
        description: The maximum amount of money that may be charged on an account
      defaultPaymentMethod:
        $ref: '#/definitions/PaymentMethodRef'
      financialAccount:
        $ref: '#/definitions/FinancialAccountRef'
      paymentPlan:
        type: array
        items:
          $ref: '#/definitions/PaymentPlan'
      relatedParty:
        type: array
        items:
          $ref: '#/definitions/RelatedParty'
        minItems: 1
      taxExemption:
        type: array
        items:
          $ref: '#/definitions/AccountTaxExemption'
      '@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
  Contact:
    type: object
    description: An individual or an organization used as a contact point for a given account and accessed via some contact medium.
    required:
    - contactType
    - validFor
    properties:
      contactName:
        type: string
        description: A displayable name for that contact
      contactType:
        type: string
        description: Type of contact (primary, secondary...)
      partyRoleType:
        type: string
        description: Identifies what kind of party role type is linked to the contact (a account manager...)
      contactMedium:
        type: array
        items:
          $ref: '#/definitions/ContactMedium'
      relatedParty:
        $ref: '#/definitions/RelatedParty'
      validFor:
        $ref: '#/definitions/TimePeriod'
        description: Validity period of that contact
      '@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
  AccountRef:
    type: object
    description: Account reference. A account may be a party account or a financial account.
    properties:
      id:
        type: string
        description: Unique identifier of the account
      href:
        type: string
        descr

# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/openapi/tm-forum-settlementaccount-api-openapi.yml