openapi: 3.1.0 info: title: Temenos Enterprise Product and Pricing API description: >- APIs for product pricing, quotation simulation, package arrangements, pricing adjustments, transparency details, and promotions management for banking products and services. Enables simulation of account creation and transaction events to determine applicable pricing details including interest rates, fees, and cashback. Supports pricing negotiation through quotation references and manual adjustment workflows. 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/ externalDocs: description: Temenos Enterprise Product Pricing API Documentation url: https://developer.temenos.com/temenos-enterprise-product-pricing-apis servers: - url: https://api.temenos.com/enterprise-pricing/v1 description: Temenos Enterprise Pricing API - Production security: - bearerAuth: [] tags: - name: Accounts Arrangement Details description: >- Calculate payoff amounts, adjust closure charges, process early deposit redemptions, and handle external arrangement balances. - name: Package Details description: >- Create, amend, and manage package arrangements that bundle customer accounts for combined pricing benefits. - name: Party Details description: >- Retrieve customer contracts, pricing information, related parties, and eligibility status within the pricing system. - name: Pricing Adjustment description: >- Apply manual pricing adjustments including fee and interest rate modifications with expiry settings and negotiation workflows. - name: Pricing Arrangement Details description: >- Retrieve interest rate details, activity charges, transaction pricing, periodic fees, and account event history within the pricing system. - name: Pricing Quotation description: >- Simulate account or arrangement creation and transaction events to determine applicable pricing details including interest rates, fees, and cashback with negotiation support. - name: Promotions description: >- Create and manage promotional arrangements for parties with promotional codes and benefit tracking. paths: /quotations/simulate: post: operationId: simulateArrangementCreation summary: Simulate Account Creation Pricing description: >- Simulate the creation of an arrangement or account to determine applicable pricing details including interest rates, fees, and cashback. Returns a quotation reference that can be used for negotiating or adjusting pricing details or for creating a new account. tags: - Pricing Quotation requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/QuotationSimulateRequest' responses: '200': description: Quotation simulation completed content: application/json: schema: $ref: '#/components/schemas/QuotationResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /quotations/simulateEvent: post: operationId: simulateEventPricing summary: Simulate Event Pricing description: >- Simulate an activity or transaction event such as an ATM withdrawal, partial redemption, or funds transfer to determine applicable pricing details and returns a quotation reference. tags: - Pricing Quotation requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EventSimulateRequest' responses: '200': description: Event simulation completed content: application/json: schema: $ref: '#/components/schemas/QuotationResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /quotations/{quotationReference}: get: operationId: getQuotationDetails summary: Get Quotation Details description: >- Retrieve pricing details of a simulated quotation. If the quotation has been negotiated, returns final pricing details including any adjustments applied. tags: - Pricing Quotation parameters: - name: quotationReference in: path required: true description: Quotation reference identifier schema: type: string responses: '200': description: Successful retrieval of quotation details content: application/json: schema: $ref: '#/components/schemas/QuotationResult' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: operationId: amendQuotationPricing summary: Amend Quotation Pricing description: >- Amend pricing details such as interest rates or fees for an existing simulated quotation reference as part of pricing negotiation. tags: - Pricing Adjustment parameters: - name: quotationReference in: path required: true description: Quotation reference identifier schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PricingAmendment' responses: '200': description: Quotation pricing amended content: application/json: schema: $ref: '#/components/schemas/QuotationResult' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /packages: get: operationId: listPackages summary: List Package Arrangements description: >- Retrieve package arrangements that bundle customer accounts for combined pricing benefits with primary and linked account information. tags: - Package Details parameters: - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/pageStart' - name: customerId in: query description: Filter by customer schema: type: string responses: '200': description: Successful retrieval of packages content: application/json: schema: type: object properties: header: $ref: '#/components/schemas/PaginationHeader' body: type: array items: $ref: '#/components/schemas/Package' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createPackage summary: Create Package Arrangement description: >- Create a new package arrangement to bundle customer accounts for combined pricing benefits and promotions. tags: - Package Details requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PackageCreate' responses: '201': description: Package created successfully content: application/json: schema: $ref: '#/components/schemas/Package' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /packages/{packageId}/pricing: get: operationId: getPackagePricing summary: Get Package Pricing Details description: >- Retrieve periodic pricing events and benefit details within specific periods for a package arrangement. tags: - Package Details parameters: - name: packageId in: path required: true description: Package arrangement identifier schema: type: string responses: '200': description: Successful retrieval of package pricing content: application/json: schema: $ref: '#/components/schemas/PackagePricing' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /party/{customerId}/contracts: get: operationId: getCustomerContracts summary: Get Customer Contracts And Accounts description: >- Retrieve all holdings, contracts, and accounts for a party within the pricing system. tags: - Party Details parameters: - name: customerId in: path required: true description: Customer identifier schema: type: string responses: '200': description: Successful retrieval of contracts content: application/json: schema: type: object properties: body: type: array items: $ref: '#/components/schemas/CustomerContract' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /party/{customerId}/pricing: get: operationId: getCustomerPricing summary: Get Customer Pricing description: >- Retrieve all pricing information for a customer including pricing identifiers and applied benefit adjustments. tags: - Party Details parameters: - name: customerId in: path required: true description: Customer identifier schema: type: string responses: '200': description: Successful retrieval of pricing content: application/json: schema: type: object properties: body: type: array items: $ref: '#/components/schemas/CustomerPricing' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /arrangements/{arrangementId}/payoff: get: operationId: calculatePayoffAmount summary: Calculate Payoff Amount description: >- Compute the closure costs for an arrangement including outstanding interest, charges, and early termination penalties. tags: - Accounts Arrangement Details parameters: - name: arrangementId in: path required: true description: Arrangement identifier schema: type: string responses: '200': description: Payoff calculation completed content: application/json: schema: $ref: '#/components/schemas/PayoffCalculation' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /arrangements/{arrangementId}/interestRates: get: operationId: getArrangementInterestRates summary: Get Arrangement Interest Rates description: >- Retrieve interest rate details for an arrangement including base rates, applied benefits, and effective net rates. tags: - Pricing Arrangement Details parameters: - name: arrangementId in: path required: true description: Arrangement identifier schema: type: string responses: '200': description: Successful retrieval of interest rates content: application/json: schema: $ref: '#/components/schemas/InterestRateDetails' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /arrangements/{arrangementId}/charges: get: operationId: getArrangementCharges summary: Get Arrangement Charges description: >- Retrieve activity charge fees and periodic charge fees for an arrangement including account opening, closure, and recurring maintenance charges. tags: - Pricing Arrangement Details parameters: - name: arrangementId in: path required: true description: Arrangement identifier schema: type: string responses: '200': description: Successful retrieval of charges content: application/json: schema: type: object properties: body: type: array items: $ref: '#/components/schemas/ChargeDetail' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /promotions: post: operationId: createPromotion summary: Create Promotion Arrangement description: >- Establish a promotional arrangement for a party with promotional codes enabling special pricing benefits. tags: - Promotions requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PromotionCreate' responses: '201': description: Promotion created successfully content: application/json: schema: $ref: '#/components/schemas/Promotion' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT parameters: pageSize: name: page_size in: query description: Records per page schema: type: integer minimum: 1 maximum: 100 default: 25 pageStart: name: page_start in: query description: Starting record schema: type: integer minimum: 0 default: 0 responses: BadRequest: description: Invalid request parameters content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication required content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/Error' schemas: PaginationHeader: type: object description: Pagination metadata properties: page_size: type: integer description: Records per page page_start: type: integer description: Starting record total_size: type: integer description: Total records QuotationSimulateRequest: type: object description: Arrangement creation simulation request required: - productId - currency properties: productId: type: string description: Product identifier to simulate customerId: type: string description: Customer identifier for personalized pricing currency: type: string description: Arrangement currency pattern: '^[A-Z]{3}$' amount: type: number format: double description: Initial amount term: type: integer description: Arrangement term in months quotationReference: type: string description: User-defined quotation reference EventSimulateRequest: type: object description: Event simulation request required: - arrangementId - eventType properties: arrangementId: type: string description: Existing arrangement identifier eventType: type: string description: Type of event to simulate enum: - ATM_WITHDRAWAL - FUNDS_TRANSFER - PARTIAL_REDEMPTION - FULL_REDEMPTION - PAYMENT amount: type: number format: double description: Event amount currency: type: string description: Event currency QuotationResult: type: object description: Quotation pricing result properties: quotationReference: type: string description: Quotation reference identifier productId: type: string description: Product identifier interestRates: type: array description: Applicable interest rates items: $ref: '#/components/schemas/InterestRateDetail' fees: type: array description: Applicable fees items: $ref: '#/components/schemas/FeeDetail' cashback: type: array description: Applicable cashback offers items: type: object properties: type: type: string description: Cashback type amount: type: number format: double description: Cashback amount negotiated: type: boolean description: Whether pricing has been negotiated PricingAmendment: type: object description: Pricing amendment request properties: interestRateAdjustment: type: number format: double description: Interest rate adjustment in basis points feeWaivers: type: array description: Fee waivers to apply items: type: object properties: feeType: type: string description: Fee type to waive waivePercentage: type: number format: double description: Percentage of fee to waive expiryDate: type: string format: date description: Expiry date for the adjustment Package: type: object description: Package arrangement properties: packageId: type: string description: Package identifier customerId: type: string description: Customer identifier packageName: type: string description: Package name primaryAccountId: type: string description: Primary account linkedAccounts: type: array description: Linked account identifiers items: type: string status: type: string description: Package status PackageCreate: type: object description: Package creation request required: - customerId - productId properties: customerId: type: string description: Customer identifier productId: type: string description: Package product identifier packageName: type: string description: Package name linkedAccounts: type: array description: Accounts to link items: type: string PackagePricing: type: object description: Package pricing details properties: packageId: type: string description: Package identifier periodicPricing: type: array description: Pricing events by period items: type: object properties: effectiveDate: type: string format: date description: Effective date interestRates: type: array items: $ref: '#/components/schemas/InterestRateDetail' fees: type: array items: $ref: '#/components/schemas/FeeDetail' benefits: type: array description: Applied pricing benefits items: type: object properties: benefitType: type: string description: Benefit type description: type: string description: Benefit description value: type: number format: double description: Benefit value CustomerContract: type: object description: Customer contract within pricing system properties: contractId: type: string description: Contract identifier productId: type: string description: Product identifier productName: type: string description: Product name status: type: string description: Contract status CustomerPricing: type: object description: Customer pricing information properties: arrangementId: type: string description: Arrangement identifier pricingId: type: string description: Pricing identifier interestRate: type: number format: double description: Effective interest rate adjustments: type: array description: Applied adjustments items: type: object properties: type: type: string description: Adjustment type value: type: number format: double description: Adjustment value PayoffCalculation: type: object description: Payoff calculation result properties: arrangementId: type: string description: Arrangement identifier outstandingPrincipal: type: number format: double description: Outstanding principal accruedInterest: type: number format: double description: Accrued interest earlyTerminationFee: type: number format: double description: Early termination penalty outstandingCharges: type: number format: double description: Outstanding charges totalPayoff: type: number format: double description: Total payoff amount currency: type: string description: Currency InterestRateDetails: type: object description: Arrangement interest rate details properties: arrangementId: type: string description: Arrangement identifier rates: type: array description: Interest rate details items: $ref: '#/components/schemas/InterestRateDetail' InterestRateDetail: type: object description: Individual interest rate detail properties: rateType: type: string description: Rate type enum: - FIXED - VARIABLE - PROMOTIONAL baseRate: type: number format: double description: Base rate percentage benefit: type: number format: double description: Benefit adjustment netRate: type: number format: double description: Effective net rate effectiveDate: type: string format: date description: Rate effective date FeeDetail: type: object description: Fee detail properties: feeType: type: string description: Fee type description: type: string description: Fee description amount: type: number format: double description: Fee amount currency: type: string description: Fee currency frequency: type: string description: Fee frequency ChargeDetail: type: object description: Charge detail properties: chargeType: type: string description: Charge type description: type: string description: Charge description amount: type: number format: double description: Charge amount currency: type: string description: Currency frequency: type: string description: Charge frequency PromotionCreate: type: object description: Promotion creation request required: - customerId - promotionCode properties: customerId: type: string description: Customer identifier promotionCode: type: string description: Promotional code arrangementId: type: string description: Target arrangement Promotion: type: object description: Promotional arrangement properties: promotionId: type: string description: Promotion identifier customerId: type: string description: Customer identifier promotionCode: type: string description: Promotional code benefits: type: array description: Applied benefits items: type: object properties: type: type: string description: Benefit type value: type: number format: double description: Benefit value status: type: string description: Promotion status startDate: type: string format: date description: Promotion start date endDate: type: string format: date description: Promotion end date Error: type: object description: Error response properties: errorCode: type: string description: Error code errorMessage: type: string description: Error description