> ## Documentation Index
> Fetch the complete documentation index at: https://grandcentral.backbase.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get started

> Quick start guide for Temenos Payments Hub Connector integration

Before you configure the Temenos Payments Hub Connector, make sure you have the following credentials and connectivity in place:

* Complete the steps in [Get started with connectors](/connectors/getting-started) and [Sync Hub](/platform/sync-hub/overview).
* **Temenos Payments Hub access:** An active account in the Temenos Payments Hub environment and OAuth2 bearer token credentials for REST API access.
* **Network connectivity:** Confirmed routing between the Temenos environment and the Grand Central iPaaS. For supported options, see [Network connectivity](/platform/network-connectivity).
* **Environment details:** Obtain the environmental keys listed in [Reference](/connectors/payments/temenos-payments-hub/reference) from Temenos to configure the connector.

***

## Configuration guide

Follow these steps to initialize and authorize your Temenos Payments Hub Connector.

### 1. Establish connectivity

Exchange connectivity details between **Grand Central and Temenos Payments Hub** as described on the [Network connectivity](/platform/network-connectivity) page for your chosen network connection.

### 2. Temenos service authentication and authorization mechanisms

You can configure the following authentication and authorization mechanisms based on your security requirements:

* **OAuth2 bearer token for Temenos REST services:** The outbound connector passes the `Authorization: Bearer` header from the incoming Grand Central request through to Temenos unchanged. Configure token acquisition at APIM or your calling channel before invoking the connector.
* **AMQP credentials for payment status events:** The inbound connector authenticates to the Temenos AMQP broker using credentials stored in a SOPS secret.

<Info>
  **Certificate and credential security:** To configure all certificates and credentials, create a SOPS secret. For more information, see [How to create SOPS](/platform/developer-guides/build/configure-connector). To share credentials between Temenos and Grand Central, use 1Password.
</Info>

### 3. Environment configuration

To initialize the Temenos Payments Hub Connector, define specific environment variables in your `gc-applications-live` repository.

Define connector-specific variables in the following files:

| Connector                               | Configuration file                | Description                                                                                                   |
| :-------------------------------------- | :-------------------------------- | :------------------------------------------------------------------------------------------------------------ |
| `gc-temenos-payment-connector`          | `v2/payment-v2.values.yaml`       | Outbound payment connector for payment initiation, validation, fee retrieval, modification, and cancellation. |
| `gc-temenos-payment-inbound-connector`  | `payment-inbound-v1.values.yaml`  | Inbound payment connector that receives payment status updates from Temenos over AMQP.                        |
| `gc-temenos-foreign-exchange-connector` | `foreign-exchange-v1.values.yaml` | Outbound foreign exchange connector for currency exchange rate retrieval.                                     |

For the full property list, see [Reference](/connectors/payments/temenos-payments-hub/reference).

### Define gc-temenos-payment-connector parameters

Use `v2/payment-v2.values.yaml` to configure outbound connections from **Grand Central to Temenos Payments Hub**.

The following example shows a sample `v2/payment-v2.values.yaml` file:

```yaml theme={"system"}
# Sample Temenos Payments Hub outbound environment configuration
connector:
  properties:
    temenos.baseUrl: http://wiremock-temenos-payment-v2.gc-temenos.svc.cluster.local:9021

    # Bank directory lookup endpoints (R25 IRF Provider Container)
    temenos.searchBankDirectoryByBICApiUri: /irf-provider-container/api/v3.3.0/reference/bankCodes/bics/
    temenos.searchBankDirectoryByIBANApiUri: /irf-provider-container/api/v2.3.0/reference/bankCodes/ibans/
    temenos.searchBankDirectoryByBankBranchCodeApiUri: /irf-provider-container/api/v1.5.0/reference/bankCodes/nationalIds/
    temenos.ibanValidationApiUri: /irf-provider-container/api/v2.3.0/reference/bankCodes/ibans/{IBAN}/validity

    # Single payment initiation, modification, and cancellation
    temenos.paymentOrders.apiUri: /irf-provider-container/api/v6.0.1/order/paymentOrders
    temenos.paymentOrders.cancel.apiUri: /irf-provider-container/api/v6.0.1/order/paymentOrders/{paymentOrderId}/cancellations
    temenos.paymentOrders.update.apiUri: /irf-provider-container/api/v6.0.1/order/paymentOrders/{paymentOrderId}

    # Recurring payment initiation and cancellation
    temenos.standingOrders.apiUri: /irf-provider-container/api/v2.2.0/order/standingOrders/{standingOrderId}
    temenos.standingOrders.cancel.apiUri: /irf-provider-container/api/v2.2.0/order/standingOrders/{standingOrderId}
    temenos.standingOrder.suppressFT: PAYMENT

    temenos.disablePagination: true

    retryFlag: false
    maximumRedeliveries: 3
    redeliveryDelay: 200
    retryStatuses: 429,502,503
    backOffMultiplier: 2

    http.client.proxy.activate: false

  traits:
    knativeservice:
      # IMPORTANT: Cost-related. Keeping minScale >0 causes continuous cost even when idle.
      # With minScale: 0, each request grants 30 min uptime (extended if new requests arrive).
      # Use >0 only if hot start is required, and reset to 0 afterward to avoid unnecessary cost.
      minScale: 0
    logging:
      # DEBUG adds significant log output during startup and runtime.
      # This can noticeably slow down starts due to extra logging work and I/O.
      # Use only for troubleshooting and disable when not needed.
      level: INFO
```

Place the `v2/payment-v2.values.yaml` file under each runtime that uses the connector. Use the following path, replacing `<runtime>` with the runtime name (`dev`, `test`, and so on):

```text theme={"system"}
azure/runtimes/<runtime>/
└── values/
    └── gc-temenos/
        └── v2/
            └── payment-v2.values.yaml
```

### Define gc-temenos-payment-inbound-connector parameters

Configure how Grand Central receives asynchronous payment status updates from **Temenos Payments Hub**.

<Info>
  Set up the Sync Hub component as described in [Sync Hub](/platform/sync-hub/overview). Configure Sync Hub to obtain the ASB variables. Sync Hub is a mandatory component for inbound connectivity.
</Info>

Create a SOPS secret named `temenos-amqp-jms-credentials-secret` for the AMQP credentials. See [Reference](/connectors/payments/temenos-payments-hub/reference) for the required variables.

<Info>
  Follow [How to create SOPS](/platform/developer-guides/build/configure-connector) to create a SOPS secret for the AMQP credentials.
</Info>

The following example shows a sample `payment-inbound-v1.values.yaml` file:

```yaml theme={"system"}
connector:
  existingSecretName: temenos-amqp-jms-credentials-secret
  customLabels:
    app.gcservices.io/synchub-enabled: "true"
    app.gcservices.io/synchub-type: "producer"
  properties:
    source.provider: amqp
    source.queue.route.mapping: R25PaymentEvents>direct:updatePaymentStatus
    source.concurrent.threads: 1
    inbound.listener.transacted: true
    quarkus.qpid-jms.url: amqps://wiremock-temenos-amq.gc-temenos.svc.cluster.local:8443

    asb.payment.status.event.type: com.backbase.payment.event.spec.v1.PaymentOrderStatusEvent
    asb.payment.status.event.source: com.backbase.payments
    asb.payment.status.event.version: 1.0.0
    asb.event.topic: payment-status
    asb.producer.apiUri: http://asb-producer-v0.synchub-producer.svc.cluster.local

    retryFlag: true
    redelivery.maximumRetries: 0

  traits:
    knativeservice:
      # IMPORTANT: Cost-related. Keeping minScale >0 causes continuous cost even when idle.
      # With minScale: 0, each request grants 30 min uptime (extended if new requests arrive).
      # Use >0 only if hot start is required, and reset to 0 afterward to avoid unnecessary cost.
      minScale: 1
    logging:
      # DEBUG adds significant log output during startup and runtime.
      # This can noticeably slow down starts due to extra logging work and I/O.
      # Use only for troubleshooting and disable when not needed.
      level: INFO
```

Place the `payment-inbound-v1.values.yaml` file under each runtime that uses the connector. Use the following path, replacing `<runtime>` with the runtime name (`dev`, `test`, and so on):

```text theme={"system"}
azure/runtimes/<runtime>/
└── values/
    └── gc-temenos/
        └── payment-inbound-v1.values.yaml
```

### Define gc-temenos-foreign-exchange-connector parameters

Use `foreign-exchange-v1.values.yaml` to configure outbound foreign exchange connections from **Grand Central to Temenos Payments Hub**.

The following example shows a sample `foreign-exchange-v1.values.yaml` file:

```yaml theme={"system"}
connector:
  properties:
    temenos.baseUrl: http://wiremock-temenos-payment-v2.gc-temenos.svc.cluster.local:9021
    temenos.forex.exchangeRates.apiUri: /irf-provider-container/api/v2.3.0/reference/currencies/exchangeRates/{buyCurrency}/{sellCurrency}/{transactionAmount}/{transactionAmountType}
    temenos.forex.amount: 1
    temenos.forex.type: BUY
    temenos.forex.currencyMarket: 1

    retryFlag: false
    maximumRedeliveries: 3
    redeliveryDelay: 200
    retryStatuses: 429,502,503
    backOffMultiplier: 2

    http.client.proxy.activate: false

  traits:
    knativeservice:
      minScale: 0
    logging:
      level: INFO
```

Place the `foreign-exchange-v1.values.yaml` file under each runtime that uses the connector. Use the following path, replacing `<runtime>` with the runtime name (`dev`, `test`, and so on):

```text theme={"system"}
azure/runtimes/<runtime>/
└── values/
    └── gc-temenos/
        └── foreign-exchange-v1.values.yaml
```

## Testing your integration

To access the Payments 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 have one provisioned. The following table shows the required header:

| Key       | Value                     |
| :-------- | :------------------------ |
| `api-key` | `<your_subscription_key>` |

<Info>
  **Inbound status testing:** The inbound connector automatically consumes payment status events from the configured AMQP queue. No external trigger is required.
</Info>

Test the API using the [Postman collection](https://github.com/bb-ecos-ecos/grandcentral-documentation/blob/main/Postman-Collection/GC%20Payments%20-%20Unified%20Spec.postman_collection.json).

## Troubleshooting

If your connector isn't responding as expected, check these common scenarios.

<AccordionGroup>
  <Accordion title="5XX: Internal server error / Core system is down" icon="lock">
    **Cause:** The Grand Central gateway can't establish a handshake with the Temenos endpoint. This typically indicates an upstream service outage at Temenos or a network routing failure.

    **Solution:** Verify the operational status of the Temenos Payments Hub environment with Temenos. If the service is operational, contact [GC Support](mailto:gc_support@backbase.com).
  </Accordion>

  <Accordion title="5XX: Timeout from core / Read timeout / SocketTimeoutException" icon="wifi-slash">
    **Cause:** The Temenos endpoint didn't respond before the configured read timeout expired. This typically indicates network latency, an overloaded upstream service, or an incorrectly configured timeout value.

    **Solution:** Verify network connectivity and Temenos service performance. If the service is operational, review timeout settings in your connector configuration and contact [GC Support](mailto:gc_support@backbase.com).
  </Accordion>

  <Accordion title="Invalid OAuth token" icon="key">
    **Cause:** The bearer token provided during setup is incorrect or expired.

    **Solution:** Re-verify your credentials with the Temenos portal and contact the GC team to update the connection.
  </Accordion>

  <Accordion title="429: Rate limit exceeded" icon="gauge-high">
    **Cause:** The number of incoming requests has exceeded the defined threshold for your subscription tier. This "429 Too Many Requests" response is a protective measure to ensure the stability of the Grand Central and Core Banking infrastructure.

    **Solution:** Review your app's request patterns to identify unexpected spikes. If your business requirements have evolved and you require a higher throughput, contact the Grand Central Team to request an adjustment to your APIM rate limit policy.
  </Accordion>
</AccordionGroup>

***

## Need more help?

<Card title="Contact support" icon="envelope" href="mailto:support@grandcentral.io">
  Reach out to the Grand Central team for assistance with environment setup or rate limit increases.
</Card>
