Skip to main content
Follow the steps in Get started before proceeding.

Prerequisites

Before you configure the connector, ensure you have:
  • An active account in the Temenos Transact production or sandbox environment.
  • Network connectivity between the Temenos Transact environment and Grand Central iPaaS. For supported options, see Network connectivity.
You also need the following environment detail from Temenos Transact:
ParameterDescription
temenos.base.urlThe API endpoint URL for the Temenos Transact environment (for example, https://TENANT_NAME.temenos.cloud/irf-provider-container/api).
The connector uses Bearer token authentication. The token is stored in Azure Key Vault and injected as the Authorization header at the APIM layer through a policy fragment, so no per-connector secret is required. You configure this in step 2.

Configuration guide

Follow these steps to initialize and authorize your Temenos Transact Connector.

1. Establish connectivity

Share connectivity details between Grand Central and Temenos Transact as described in Network connectivity.
Establish network connectivity to the Temenos Transact environment before you continue with configuration.

2. Temenos Transact authentication

The Temenos Transact Connector uses Bearer token authentication for API access. The token is managed at the Azure API Management (APIM) layer rather than at the connector, so no per-connector SOPS secret is required. The setup is:
  1. Store the Temenos bearer token in Azure Key Vault.
  2. Expose the secret to APIM as a named value (for example, temenos-sandbox-token), so APIM resolves it at request time without the value appearing in policy code.
  3. Attach a shared Temenos policy fragment to the Grand Central APIs routing to Temenos (party, deposit, deposit-transaction, loan, loan-transaction). The fragment injects the Authorization: Bearer … header from the named value, applies the standard rate limit, and routes each request to the correct Temenos connector backend based on the API ID and path.
Rotating the Temenos bearer token only requires updating the Key Vault secret backing the APIM named value. APIM picks up the new value on the next refresh, with no redeploy of the connectors.

3. Environment configuration

To initialize the Temenos Transact Connector, define the required environment variables in your gc-applications-live repository. Store these variables in values.yaml for configuration that applies to all connectors, and in the following files for connector-specific configuration:
ConnectorProperty fileDescription
gc-temenos-party-connectorparty-v0.values.yamlOutbound party management operations
gc-temenos-deposit-connectordeposit-v0.values.yamlDeposit account operations
gc-temenos-deposit-transaction-connectordeposit-transaction-v0.values.yamlDeposit transaction operations
gc-temenos-loan-connectorloan-v0.values.yamlLoan account operations
gc-temenos-loan-transaction-connectorloan-transaction-v0.values.yamlLoan transaction operations

Define common parameters

Store these variables in values.yaml. They apply across all Temenos Transact connectors:
ParameterDescriptionExample value
temenos.base.urlTarget API endpoint for the Temenos Transact environment.https://TENANT_NAME.temenos.cloud/irf-provider-container/api
corporate.sectorIdSector ID that identifies a corporate or organisation party in Temenos.2001
customers.api.versionAPI version for the Temenos party (customers) API.v5.2.0
holdings.api.versionAPI version for the Temenos holdings API.v1.0.0
The following example shows the values.yaml configuration:
# Common Temenos Transact configuration
# Place this in: values.yaml
connector:
  properties:
    # Temenos Transact connection settings
    # temenos.base.url: TEMENOS_API_ENDPOINT

    # Sector ID that identifies a corporate/organisation party in Temenos
    # corporate.sectorId: 2001

    # API version settings
    # customers.api.version: v5.2.0
    # holdings.api.version: v1.0.0
  traits:
    knativeservice:
      minScale: 0
    logging:
      level: INFO
Place the values files at the following paths:
runtimes/{runtime}/values/gc-temenos/
├── values.yaml
├── party-v0.values.yaml
├── deposit-v0.values.yaml
├── deposit-transaction-v0.values.yaml
├── loan-v0.values.yaml
└── loan-transaction-v0.values.yaml

Define party connector parameters

The party-v0.values.yaml file contains configuration for party management operations, including HTTP client tuning, party and deposit ID validation, and Temenos error code mappings.
connector:
  properties:
    http.client.connect.timeout: 5000
    http.client.request.timeout: 10000
    http.client.socket.timeout: 5000
    http.client.connection.max.per.route: 200
    http.client.connection.max.total: 200
    http.client.proxy.activate: true

    # Temenos onlineServices endpoint - used by searchParty (depositAccountId branch) to resolve the bound party.
    temenos.api.online-services.path: /v2.0.0/holdings/onlineServices

    # Validation patterns and messages for party and deposit IDs
    regex.party-id.pattern: ^[a-zA-Z0-9]{1,10}$
    regex.party-id.failure-message: Party ID must be alphanumeric and between 1 and 10 characters long.
    regex.deposit-id.pattern: ^[a-zA-Z0-9]{1,20}$
    regex.deposit-id.failure-message: Deposit ID must be alphanumeric and between 1 and 20 characters long

  traits:
    knativeservice:
      minScale: 1
    logging:
      level: INFO

Define deposit connector parameters

The deposit-v0.values.yaml file contains configuration for deposit account operations, including HTTP client tuning, Temenos API paths, the term-deposit product line, ID validation, and optional product ID mappings.
connector:
  properties:
    http.client.connect.timeout: 5000
    http.client.request.timeout: 10000
    http.client.socket.timeout: 5000
    http.client.connection.max.per.route: 200
    http.client.connection.max.total: 200
    http.client.proxy.activate: true

    # Temenos API paths (relative to temenos.base.url)
    temenos.api.accounts.path: /v5.1.0/holdings/accounts
    temenos.api.deposits.path: /v3.0.0/holdings/deposits
    temenos.api.online-services.path: /v2.0.0/holdings/onlineServices
    temenos.api.party-customers.path: /v5.2.0/party/customers
    temenos.api.redeem-deposits.path: /v3.0.0/holdings/deposits/redeemDeposits
    temenos.api.account-closures.path: /v5.1.0/holdings/accounts/currentAccounts

    # Product lookup API path
    temenos.api.product-lookup.path: /v1.0.0/product/products

    # Temenos base URL for create deposit
    temenos.api.create-deposit.path: /v5.1.0/holdings/accounts
    temenos.api.create-term-deposit.path: /v3.0.0/holdings/deposits/termDeposits

    # Product line identifier for term deposits
    product.line.term-deposit: DEPOSITS

    # Deposit ID validation
    regex.deposit-id.pattern: ^[a-zA-Z0-9]{1,20}$
    regex.deposit-id.failure-message: Deposit ID must be alphanumeric and between 1 and 20 characters long.

    # Optional product ID mappings (commented by default; uncomment per environment)
    # fieldsToBeReplaced: product.secondaryProductId,ArrangementProperties.body.arrangementActivity.productId,ArrangementProperties.body.arrangementActivity.productGroupId

    # GC to Temenos product ID (CREATE flow): product.secondaryProductId.<GC_CODE>: <TEMENOS_CODE>
    # product.secondaryProductId.DEPOSIT_2Y: DEPOSIT.2Y

    # Temenos to GC product ID (GET flow): ArrangementProperties.body.arrangementActivity.productId.<TEMENOS_CODE>: <GC_CODE>
    # ArrangementProperties.body.arrangementActivity.productId.DEPOSIT.2Y: DEPOSIT_2Y
  traits:
    knativeservice:
      minScale: 1
    logging:
      level: INFO
The product.line.term-deposit value determines how the connector routes a create deposit request. When the product’s Temenos product line matches this value, the connector calls the term deposit endpoint (/holdings/deposits/termDeposits); other product types go to /holdings/accounts. The same routing applies to the close deposit operation.

Define deposit-transaction connector parameters

The deposit-transaction-v0.values.yaml file contains configuration for deposit transaction operations, including the Temenos transactions endpoint, ID validation, pagination, and threading.
connector:
  properties:
    http.client.connect.timeout: 5000
    http.client.request.timeout: 10000
    http.client.socket.timeout: 5000
    http.client.response.timeout: 10000
    http.client.connection.max.per.route: 100
    http.client.connection.max.total: 200
    http.client.proxy.activate: true

    holdings.api.version: v2.1.0
    holdings.transactions.path: /holdings/transactions

    contentType: application/json
    accept: application/json
    gc-http-caller-handleExceptionsInConnector: false
    retryFlag: false
    retryStatuses: 429,500,502,503,504

    thread.profile.core.pool.size: 20
    thread.profile.max.pool.size: 40

    acceptedHeaders: depositId,transactionId,fromDate,toDate,size,from,cursor,sort,credentials,companyId,deviceId,userRole,disablePagination,Content-Type,Accept,Authorization,X-Total-Count,X-Pagination-Truncated,CamelHttpResponseCode

    regex.deposit-id.pattern: ^[A-Za-z0-9]{1,20}$
    regex.deposit-id.failure-message: Deposit ID must be alphanumeric and between 1 and 20 characters long.
    regex.transaction-id.pattern: ^[A-Za-z0-9.-]{1,50}$
    regex.transaction-id.failure-message: Transaction ID must be alphanumeric and between 1 and 50 characters long.

    default.page.size: 20
    default.max.pages: 100
    default.from-date.lookback-years: 1
  traits:
    knativeservice:
      minScale: 1
    logging:
      level: INFO

Define loan connector parameters

The loan-v0.values.yaml file contains configuration for loan account operations, including HTTP client tuning, Temenos API paths, loan ID validation, and optional product ID mappings.
connector:
  properties:
    http.client.connect.timeout: 5000
    http.client.request.timeout: 10000
    http.client.socket.timeout: 5000
    http.client.connection.max.per.route: 200
    http.client.connection.max.total: 200
    http.client.proxy.activate: true

    # Temenos API path for create loan
    temenos.api.create-loan.path: /v6.4.0/holdings/loans
    temenos.api.amortization-schedule.path: /v4.3.0/holdings/arrangements

    # Temenos API path for loan balance lookup (per-loan, uses ?arrangementId={loanId} query param)
    temenos.api.loan-balances.path: /v6.4.0/holdings/loans/balances

    # Temenos API paths for arrangement balances and total due amount (per-loan, {loanId} is replaced at runtime)
    temenos.api.arrangement-balances.path: /v4.3.0/holdings/arrangements/{loanId}/balances
    temenos.api.arrangement-total-due-amount.path: /v4.3.0/holdings/arrangements/{loanId}/totalDueAmount

    # Loan ID validation
    regex.loan-id.pattern: ^[a-zA-Z0-9]{1,20}$
    regex.loan-id.failure-message: Loan ID must be alphanumeric and between 1 and 20 characters long.

    # Optional product ID mappings (commented by default; uncomment per environment)
    # fieldsToBeReplaced: productArrangement.secondaryProductId
    # productArrangement.secondaryProductId.<GC_ID>: <TEMENOS_ID>
    # productArrangement.secondaryProductId.CONSUMER_LOAN: CONSUMER.LOAN

    # configuring what fields need to be replaced
    # Note: Below configuration is sample demonstrated for Product mapping but any field can be replaced with this approach
    # fieldsToBeReplaced=productArrangement.secondaryProductId,loanProduct

    # GC to Temenos Product ID mappings
    # Format: productArrangement.secondaryProductId.<GC_ID>=<TEMENOS_ID>
    # productArrangement.secondaryProductId.CONSUMER_LOAN: CONSUMER.LOAN

    # Temenos to GC Product ID mappings
    # Format: loanProduct.<TEMENOS_ID>=<GC_ID>
    # loanProduct.VEHICLE.LOAN=TERM_LOAN
  traits:
    knativeservice:
      minScale: 1
    logging:
      level: INFO

Define loan-transaction connector parameters

The loan-transaction-v0.values.yaml file contains configuration for loan transaction operations. The connector reads settled bills from the Temenos arrangement bills enquiry and maps them to the Grand Central loan transaction contract; configure the arrangements endpoint, amount normalisation, error mappings, and validation here.
connector:
  properties:
    http.client.connect.timeout: 5000
    http.client.request.timeout: 30000
    http.client.response.timeout: 30000
    http.client.socket.timeout: 5000
    http.client.connection.max.per.route: 150
    http.client.connection.max.total: 300
    http.client.proxy.activate: true

    arrangements.api.version: v4.3.0
    arrangements.path: /holdings/arrangements
    arrangements.bills.suffix: /bills

    # Strip thousands-separators from amount fields before JOLT numeric conversion
    temenos.bills.amount-strip-chars: ","
    temenos.bills.amount-fields: billedAmount,outstandingAmount

    contentType: application/json
    accept: application/json
    gc-http-caller-handleExceptionsInConnector: false
    retryFlag: false
    retryStatuses: 429,500,502,503,504

    # Temenos error code mappings
    errorTemplate: temenos-transform-error-details.json
    coreMessageVisibility: true

    thread.profile.core.pool.size: 50
    thread.profile.max.pool.size: 100

    acceptedHeaders: loanId,transactionId,fromDate,toDate,size,from,credentials,companyId,deviceId,userRole,disablePagination,gc-http-caller-headers,Content-Type,Accept,Authorization,X-Total-Count,CamelHttpResponseCode

    regex.loan-id.pattern: ^[A-Za-z0-9]{1,20}$
    regex.loan-id.failure-message: Loan ID must be alphanumeric and between 1 and 20 characters long.

    default.page.size: 20
    default.max.pages: 100
    default.currency: USD
  traits:
    knativeservice:
      minScale: 1
    logging:
      level: INFO

Test the connector

To access the Unified API, include your Grand Central subscription key in the request header. If you don’t have a key, contact the Grand Central Support Team to request one.
HeaderValue
api-keyYOUR_SUBSCRIPTION_KEY
Test the API using the Postman collection.

Troubleshooting

If your connector isn’t responding as expected, check these common scenarios.
Cause: The Grand Central gateway cannot establish a handshake with the Temenos Transact endpoint. This typically indicates an upstream service outage at Temenos or a network routing failure.Solution: Verify the operational status of the Temenos Transact environment with Temenos. If the service is operational, contact Grand Central Support.
Cause: The request to Temenos Transact exceeded the configured timeout period. This may indicate performance issues at Temenos or network latency problems.Solution: Verify the operational status of the Temenos Transact environment and check for any performance degradation. If the service is operational and performing normally, consider increasing the timeout values (http.client.connect.timeout, http.client.socket.timeout, http.client.request.timeout) in your configuration. Contact Grand Central Support if issues persist.
Cause: Network connectivity to the Temenos Transact environment has not been established or has been interrupted.Solution: Verify network connectivity and ensure routing is properly configured between Grand Central and Temenos Transact. Review the Network connectivity documentation for configuration details.
Cause: The bearer token injected by the APIM policy fragment is missing, incorrect, expired, or the user lacks the required permissions in Temenos Transact.Solution: Verify the Key Vault secret backing the Temenos APIM named value holds a current bearer token. Confirm the Temenos policy fragment is applied to the Grand Central APIs routing to Temenos and that it sets the Authorization: Bearer … header. If the token is valid, re-verify permissions with your Temenos administrator.
Cause: The party ID, deposit ID, or loan ID in the request does not match the configured regex pattern.Solution: Verify that the ID matches the pattern defined in regex.party-id.pattern, regex.deposit-id.pattern, or regex.loan-id.pattern. The default patterns accept alphanumeric characters only (party ID: up to 10 characters; deposit ID and loan ID: up to 20 characters).
Cause: The Temenos arrangement bills enquiry returns TGVCP-007 for empty-result, unknown loan ID, malformed loan ID, and pagination cursor errors. The connector cannot distinguish between “loan does not exist” and “no settled bills for this loan”, so both surface as GC301.Solution: Confirm that the loan ID exists in Temenos and has at least one bill with billStatus=SETTLED. If you are paginating through transactions, an overshoot page (from > 0) returns 200 with an empty array rather than 404.
Cause: Temenos arrangement bills do not expose a single-bill lookup, so the connector intentionally returns HTTP 501 with GC023 for GET /loans/transactions/{transactionId}.Solution: Use GET /loans/{loanId}/transactions or POST /loans/transactions instead, and filter the response by transaction ID on the caller side.
Cause: The number of incoming requests exceeded the defined threshold for your subscription tier. This “429 Too Many Requests” response protects the stability of the Grand Central and Temenos Transact infrastructure.Solution: Review your app’s request patterns to identify unexpected spikes. If you need higher throughput, contact the Grand Central team to request an adjustment to your API management rate limit policy.
Cause: The maximum number of connections (http.client.connection.max.total or http.client.connection.max.per.route) has been reached, and no connections are available for new requests.Solution: Review your connection pool configuration and consider increasing the http.client.connection.max.total or http.client.connection.max.per.route values. Ensure your app closes connections after use.

Need more help?

Contact support

Reach out to the Grand Central team for assistance with environment setup, rate limit increases, or configuration guidance.