Temenos Holdings API

Manage fund investment positions including deposits, capital transactions, dividends, equities, bonds, foreign exchange, futures, options, swaps, and other securities with 47 endpoints.

Documentation

Specifications

Other Resources

OpenAPI Specification

temenos-holdings-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Temenos Buy Now Pay Later Accounts Holdings API
  description: APIs for buy now pay later services with embedded Explainable AI for automated decisioning and credit offer matching. Supports interest-free and interest-bearing BNPL products with point-of-sale integration and full loan lifecycle management. Core banking agnostic and deployable on Temenos Banking Cloud.
  version: 1.0.0
  contact:
    name: Temenos Developer Support
    url: https://developer.temenos.com/
    email: api.support@temenos.com
  license:
    name: Temenos Terms of Service
    url: https://www.temenos.com/legal-information/website-terms-and-conditions/
  termsOfService: https://www.temenos.com/legal-information/website-terms-and-conditions/
servers:
- url: https://api.temenos.com/bnpl/v1
  description: Temenos BNPL API - Production
security:
- bearerAuth: []
tags:
- name: Holdings
  description: Manage fund investment positions including deposits, capital transactions, dividends, equities, bonds, foreign exchange, futures, options, swaps, and other securities with 47 endpoints.
paths:
  /holdings/positions:
    get:
      operationId: listPositions
      summary: List Fund Positions
      description: Retrieve investment positions across funds including equities, bonds, derivatives, and other securities with current valuations and accounting data.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageStart'
      - name: fundId
        in: query
        description: Filter by fund identifier
        schema:
          type: string
      responses:
        '200':
          description: Successful retrieval of positions
          content:
            application/json:
              schema:
                type: object
                properties:
                  header:
                    $ref: '#/components/schemas/PaginationHeader'
                  body:
                    type: array
                    items:
                      $ref: '#/components/schemas/Position'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /holdings/transactions:
    get:
      operationId: listHoldingsTransactions
      summary: List Holdings Transactions
      description: Retrieve securities transactions including equity trades, bond transactions, FX spot and forward deals, futures, options, and swap bookings across fund portfolios.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageStart'
      - name: fundId
        in: query
        description: Filter by fund identifier
        schema:
          type: string
      - name: transactionType
        in: query
        description: Filter by transaction type
        schema:
          type: string
          enum:
          - EQUITY
          - BOND
          - FX_SPOT
          - FX_FORWARD
          - FUTURE
          - OPTION
          - SWAP
          - DIVIDEND
          - CAPITAL
      responses:
        '200':
          description: Successful retrieval of transactions
          content:
            application/json:
              schema:
                type: object
                properties:
                  header:
                    $ref: '#/components/schemas/PaginationHeader'
                  body:
                    type: array
                    items:
                      $ref: '#/components/schemas/SecurityTransaction'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /holdings/dividends:
    post:
      operationId: bookDividend
      summary: Book Dividend Transaction
      description: Book a dividend or coupon distribution transaction for a fund including income distributions and reinvestment processing.
      tags:
      - Holdings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DividendBooking'
      responses:
        '201':
          description: Dividend booked successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecurityTransaction'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /holdings/accounts:
    get:
      operationId: listAccounts
      summary: List Accounts
      description: Retrieve a list of customer accounts across all account types including current accounts, savings accounts, deposit accounts, and loan accounts. Supports filtering by customer, account type, and status.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageStart'
      - name: customerId
        in: query
        description: Filter accounts by customer identifier
        schema:
          type: string
      - name: accountType
        in: query
        description: Filter by account type
        schema:
          type: string
      responses:
        '200':
          description: Successful retrieval of accounts
          content:
            application/json:
              schema:
                type: object
                properties:
                  header:
                    $ref: '#/components/schemas/PaginationHeader_2'
                  body:
                    type: array
                    items:
                      $ref: '#/components/schemas/Account'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: createAccount
      summary: Create Account Arrangement
      description: Create a new account arrangement for a customer. The arrangement architecture supports creating various account types including current accounts, savings accounts, and deposit accounts with modular business component configuration.
      tags:
      - Holdings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountCreate'
      responses:
        '201':
          description: Account created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /holdings/accounts/{accountId}:
    get:
      operationId: getAccount
      summary: Get Account Details
      description: Retrieve detailed information for a specific account including balances, status, product details, and arrangement properties.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/accountId'
      responses:
        '200':
          description: Successful retrieval of account details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateAccount
      summary: Update Account Arrangement
      description: Update an existing account arrangement including modifying account properties, status, and configuration settings.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/accountId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountUpdate'
      responses:
        '200':
          description: Account updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /holdings/accounts/{accountId}/balances:
    get:
      operationId: getAccountBalances
      summary: Get Account Balances
      description: Retrieve balance information for a specific account including working balance, available balance, locked amount, and cleared balance across different balance types.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/accountId'
      responses:
        '200':
          description: Successful retrieval of account balances
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountBalance'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /holdings/accounts/{accountId}/transactions:
    get:
      operationId: listAccountTransactions
      summary: List Account Transactions
      description: Retrieve transaction history for a specific account with support for date range filtering, transaction type filtering, and pagination.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageStart'
      - name: dateFrom
        in: query
        description: Start date for transaction filter in ISO 8601 format
        schema:
          type: string
          format: date
      - name: dateTo
        in: query
        description: End date for transaction filter in ISO 8601 format
        schema:
          type: string
          format: date
      - name: transactionType
        in: query
        description: Filter by transaction type
        schema:
          type: string
      responses:
        '200':
          description: Successful retrieval of transactions
          content:
            application/json:
              schema:
                type: object
                properties:
                  header:
                    $ref: '#/components/schemas/PaginationHeader_2'
                  body:
                    type: array
                    items:
                      $ref: '#/components/schemas/Transaction'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /holdings/deposits:
    get:
      operationId: listDeposits
      summary: List Deposit Arrangements
      description: Retrieve a list of deposit arrangements including term deposits, call deposits, and savings deposits with their maturity dates, interest rates, and current balances.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageStart'
      - name: customerId
        in: query
        description: Filter deposits by customer identifier
        schema:
          type: string
      responses:
        '200':
          description: Successful retrieval of deposits
          content:
            application/json:
              schema:
                type: object
                properties:
                  header:
                    $ref: '#/components/schemas/PaginationHeader_2'
                  body:
                    type: array
                    items:
                      $ref: '#/components/schemas/Deposit'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /holdings/loans:
    get:
      operationId: listLoans
      summary: List Loan Arrangements
      description: Retrieve a list of loan arrangements including personal loans, mortgage loans, and corporate lending with their outstanding balances, repayment schedules, and interest details.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageStart'
      - name: customerId
        in: query
        description: Filter loans by customer identifier
        schema:
          type: string
      responses:
        '200':
          description: Successful retrieval of loans
          content:
            application/json:
              schema:
                type: object
                properties:
                  header:
                    $ref: '#/components/schemas/PaginationHeader_2'
                  body:
                    type: array
                    items:
                      $ref: '#/components/schemas/Loan'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createLoan
      summary: Create Loan Arrangement
      description: Create a new loan arrangement for a customer specifying loan amount, term, interest rate, and repayment schedule details.
      tags:
      - Holdings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoanCreate'
      responses:
        '201':
          description: Loan created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Loan'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /holdings/portfolios:
    get:
      operationId: listPortfolios
      summary: List Portfolios
      description: Retrieve a list of investment portfolios for wealth clients including portfolio valuations, benchmark assignments, and investment mandate details.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/pageSize_2'
      - $ref: '#/components/parameters/pageStart_2'
      - name: customerId
        in: query
        description: Filter portfolios by customer identifier
        schema:
          type: string
      - name: advisorId
        in: query
        description: Filter by assigned advisor
        schema:
          type: string
      responses:
        '200':
          description: Successful retrieval of portfolios
          content:
            application/json:
              schema:
                type: object
                properties:
                  header:
                    $ref: '#/components/schemas/PaginationHeader_3'
                  body:
                    type: array
                    items:
                      $ref: '#/components/schemas/Portfolio'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
    post:
      operationId: createPortfolio
      summary: Create Portfolio
      description: Create a new investment portfolio for a wealth client with specified investment mandate, benchmark, and risk profile.
      tags:
      - Holdings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PortfolioCreate'
      responses:
        '201':
          description: Portfolio created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Portfolio'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
  /holdings/portfolios/{portfolioId}:
    get:
      operationId: getPortfolio
      summary: Get Portfolio Details
      description: Retrieve detailed portfolio information including current valuation, asset allocation, performance metrics, and linked account details.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/portfolioId'
      responses:
        '200':
          description: Successful retrieval of portfolio details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Portfolio'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '404':
          $ref: '#/components/responses/NotFound_2'
    delete:
      operationId: closePortfolio
      summary: Close Portfolio
      description: Close an investment portfolio after all positions have been liquidated and settled.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/portfolioId'
      responses:
        '200':
          description: Portfolio closed successfully
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '404':
          $ref: '#/components/responses/NotFound_2'
  /holdings/portfolios/{portfolioId}/positions:
    get:
      operationId: listPortfolioPositions
      summary: List Portfolio Positions
      description: Retrieve investment positions within a portfolio including equities, bonds, derivatives, funds, and cash positions with current market valuations.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/portfolioId'
      - $ref: '#/components/parameters/pageSize_2'
      - $ref: '#/components/parameters/pageStart_2'
      - name: assetClass
        in: query
        description: Filter by asset class
        schema:
          type: string
          enum:
          - EQUITY
          - FIXED_INCOME
          - DERIVATIVES
          - FUNDS
          - CASH
          - ALTERNATIVES
      responses:
        '200':
          description: Successful retrieval of positions
          content:
            application/json:
              schema:
                type: object
                properties:
                  header:
                    $ref: '#/components/schemas/PaginationHeader_3'
                  body:
                    type: array
                    items:
                      $ref: '#/components/schemas/Position_2'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '404':
          $ref: '#/components/responses/NotFound_2'
  /holdings/portfolios/{portfolioId}/valuation:
    get:
      operationId: getPortfolioValuation
      summary: Get Portfolio Valuation
      description: Retrieve the current or historical valuation of a portfolio including total market value, unrealized gains and losses, and asset allocation breakdown.
      tags:
      - Holdings
      parameters:
      - $ref: '#/components/parameters/portfolioId'
      - name: valuationDate
        in: query
        description: Valuation date for historical lookups
        schema:
          type: string
          format: date
      responses:
        '200':
          description: Successful retrieval of valuation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PortfolioValuation'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '404':
          $ref: '#/components/responses/NotFound_2'
components:
  schemas:
    Loan:
      type: object
      description: Loan arrangement
      properties:
        loanId:
          type: string
          description: Unique loan identifier
        customerId:
          type: string
          description: Associated customer identifier
        loanType:
          type: string
          description: Type of loan
        currency:
          type: string
          description: Loan currency in ISO 4217 format
        principalAmount:
          type: number
          format: double
          description: Original loan principal amount
        outstandingBalance:
          type: number
          format: double
          description: Current outstanding balance
        interestRate:
          type: number
          format: double
          description: Applied interest rate
        term:
          type: integer
          description: Loan term in months
        startDate:
          type: string
          format: date
          description: Loan start date
        maturityDate:
          type: string
          format: date
          description: Loan maturity date
        repaymentFrequency:
          type: string
          description: Frequency of repayments
          enum:
          - MONTHLY
          - QUARTERLY
          - SEMI_ANNUAL
          - ANNUAL
        status:
          type: string
          description: Current loan status
    Portfolio:
      type: object
      description: Investment portfolio
      properties:
        portfolioId:
          type: string
          description: Unique portfolio identifier
        customerId:
          type: string
          description: Associated customer
        portfolioName:
          type: string
          description: Portfolio display name
        currency:
          type: string
          description: Portfolio base currency
        mandateType:
          type: string
          description: Investment mandate type
          enum:
          - DISCRETIONARY
          - ADVISORY
          - EXECUTION_ONLY
        riskProfile:
          type: string
          description: Client risk profile
          enum:
          - CONSERVATIVE
          - MODERATE
          - BALANCED
          - GROWTH
          - AGGRESSIVE
        benchmarkId:
          type: string
          description: Assigned benchmark identifier
        totalValue:
          type: number
          format: double
          description: Total portfolio market value
        advisorId:
          type: string
          description: Assigned advisor identifier
        openDate:
          type: string
          format: date
          description: Portfolio opening date
        status:
          type: string
          description: Portfolio status
          enum:
          - ACTIVE
          - CLOSED
          - SUSPENDED
    Transaction:
      type: object
      description: Account transaction record
      properties:
        transactionId:
          type: string
          description: Unique transaction identifier
        accountId:
          type: string
          description: Associated account identifier
        transactionType:
          type: string
          description: Type of transaction
        amount:
          type: number
          format: double
          description: Transaction amount
        currency:
          type: string
          description: Transaction currency in ISO 4217 format
        debitOrCredit:
          type: string
          description: Whether the transaction is a debit or credit
          enum:
          - DEBIT
          - CREDIT
        bookingDate:
          type: string
          format: date
          description: Date the transaction was booked
        valueDate:
          type: string
          format: date
          description: Value date of the transaction
        description:
          type: string
          description: Transaction narrative description
        reference:
          type: string
          description: Transaction reference number
    LoanCreate:
      type: object
      description: Request body for creating a new loan
      required:
      - customerId
      - productId
      - currency
      - principalAmount
      - term
      properties:
        customerId:
          type: string
          description: Customer identifier for the borrower
        productId:
          type: string
          description: Loan product identifier
        currency:
          type: string
          description: Loan currency in ISO 4217 format
          pattern: ^[A-Z]{3}$
        principalAmount:
          type: number
          format: double
          description: Requested loan amount
          minimum: 0
        term:
          type: integer
          description: Loan term in months
          minimum: 1
    PaginationHeader_2:
      type: object
      description: Pagination metadata for list responses
      properties:
        page_size:
          type: integer
          description: Number of records per page
        page_start:
          type: integer
          description: Starting record number
        total_size:
          type: integer
          description: Total number of records available
    Position_2:
      type: object
      description: Portfolio position
      properties:
        positionId:
          type: string
          description: Position identifier
        portfolioId:
          type: string
          description: Portfolio identifier
        securityId:
          type: string
          description: Security identifier
        securityName:
          type: string
          description: Security name
        assetClass:
          type: string
          description: Asset class
          enum:
          - EQUITY
          - FIXED_INCOME
          - DERIVATIVES
          - FUNDS
          - CASH
          - ALTERNATIVES
        quantity:
          type: number
          format: double
          description: Position quantity
        averageCost:
          type: number
          format: double
          description: Average cost per unit
        marketPrice:
          type: number
          format: double
          description: Current market price
        marketValue:
          type: number
          format: double
          description: Current market value
        unrealizedPnL:
          type: number
          format: double
          description: Unrealized profit and loss
        currency:
          type: string
          description: Position currency
        weight:
          type: number
          format: double
          description: Position weight in portfolio as percentage
    DividendBooking:
      type: object
      description: Dividend booking request
      required:
      - fundId
      - securityId
      - amount
      - currency
      properties:
        fundId:
          type: string
          description: Fund identifier
        securityId:
          type: string
          description: Security identifier
        amount:
          type: number
          format: double
          description: Dividend amount
        currency:
          type: string
          description: Currency code
        exDate:
          type: string
          format: date
          description: Ex-dividend date
        paymentDate:
          type: string
          format: date
          description: Payment date
    AccountCreate:
      type: object
      description: Request body for creating a new account
      required:
      - customerId
      - productId
      - currency
      properties:
        customerId:
          type: string
          description: Customer identifier for the account holder
        productId:
          type: string
          description: Product identifier defining account type and terms
        currency:
          type: string
          description: Account currency in ISO 4217 format
          pattern: ^[A-Z]{3}$
        accountName:
          type: string
          description: Optional display name for the account
    AccountBalance:
      type: object
      description: Account balance details
      properties:
        accountId:
          type: string
          description: Account identifier
        currency:
          type: string
          description: Balance currency in ISO 4217 format
        workingBalance:
          type: number
          format: double
          description: Current working balance
        availableBalance:
          type: number
          format: double
          description: Balance available for transactions
        lockedAmount:
          type: number
          format: double
          description: Amount held or locked
        clearedBalance:
          type: number
          format: double
          description: Cleared funds balance
    Deposit:
      type: object
      description: Deposit arrangement
      properties:
        depositId:
          type: string
          description: Unique deposit identifier
        customerId:
          type: string
          description: Associated customer identifier
        depositType:
          type: string
          description: Type of deposit
          enum:
          - TERM
          - CALL
          - SAVINGS
        currency:
          type: string
          description: Deposit currency in ISO 4217 format
        principalAmount:
          type: number
          format: double
          description: Original deposit principal amount
        interestRate:
          type: number
          format: double
          description: Applied interest rate
        maturityDate:
          type: string
          format: date
          description: Maturity date for term deposits
        status:
          type: string
          description: Current deposit status
    PaginationHeader:
      type: object
      description: Pagination metadata
      properties:
        page_size:
          type: integer
          description: Records per page
        page_start:
          type: integer
          description: Starting record number
        total_size:
          type: integer
          description: Total records available
    PortfolioCreate:
      type: object
      description: Portfolio creation request
      required:
      - customerId
      - currency
      - mandateType
      properties:
        customerId:
          type: string
          description: Customer identifier
        portfolioName:
          type: string
          description: Portfolio name
        currency:
          type: string
          description: Base currency in ISO 4217 format
          pattern: ^[A-Z]{3}$
        mandateType:
          type: string
          description: Investment mandate type
          enum:
          - DISCRETIONARY
          - ADVISORY
          - EXECUTION_ONLY
        riskProfile:
          type: string
          description: Risk profile
          enum:
          - CONSERVATIVE
          - MODERATE
          - BALANCED
          - GROWTH
          - AGGRESSIVE
        benchmarkId:
          type: string
          description: Benchmark assignment
        advisorId:
          type: string
          description: Advisor assignment
    SecurityTransaction:
      type: object
      description: Securities transaction record
      properties:
        transactionId:
          type: string
          description: Transaction identifier
        fundId:
          type: string
          description: Fund identifier
        securityId:
          type: string
          description: Security identifier
        transactionType:
          type: string
          description: Transaction type
          enum:
          - BUY
          - SELL
          - DIVIDEND
          - COUPON
          - FX_SPOT
          - FX_FORWARD
          - CAPITAL_INCREASE
          - CAPITAL_DECREASE
        quantity:
          type: number
          format: double
          description: Transaction quantity
        price:
          type: number
          format: double
          description: Transaction price
        amount:
          type: number
          format: double
          description: Total transaction amount
        currency:
          type: string
          description: Transaction currency
        tradeDate:
          type: string
          format: date
          description: Trade date
        settlementDate:
          type: string
          format: date
          description: Settlement date
    Error:
      type: object
      description: Error response
      properties:
        errorCode:
          type: string
          description: Machine-readable error code
        errorMessage:
          type: string
          description: Human-readable error description
    Position:
      type: object
      description: Fund investment position
      properties:
        positionId:
          type: string
          description: Position identifier
        fundId:
          type: string
          description: Fund identifier
        securityId:
          type: string
          description: Security identifier
        securityType:
          type: string
          description: Type of security
          enum:
          - EQUITY
          - BOND
          - FX
          - FUTURE
          - OPTION
          - SWAP
          - FUND
        quantity:
          type: number
          format: double
          description: Position quantity
        marketValue:
          type: number
          format: double
          description: Current market value
        currency:
          type: string
          description: Position currency
        valuationDate:
          type: string
          format: date
          description: Valuation date
    PortfolioValuation:
      type: object
      description: Portfolio valuation summary
      properties:
        portfolio

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/temenos/refs/heads/main/openapi/temenos-holdings-api-openapi.yml