Temenos · Arazzo Workflow

Temenos Payments Initiate Payment And Poll Status

Version 1.0.0

Create a payment order and poll its processing status until it settles.

1 workflow 1 source API 1 provider
View Spec View on GitHub BankingCloud BankingCore BankingDigital BankingFinancial-ServicesFintechOpen BankingPaymentsWealth ManagementArazzoWorkflows

Provider

temenos

Workflows

initiate-payment-poll-status
Initiate a payment order and poll until it completes or fails.
Creates a payment order, confirms it was persisted, and polls the payment status endpoint, branching on the terminal status reported by the hub.
4 steps inputs: amount, beneficiaryBic, beneficiaryIban, beneficiaryName, creditAccountId, currency, debitAccountId, paymentType outputs: bookingStatus, finalStatus, paymentOrderId
1
createPaymentOrder
{$sourceDescriptions.paymentOrdersApi.url}#/paths/~1paymentOrders/post
Create a payment order for the requested transfer.
2
getPaymentOrder
{$sourceDescriptions.paymentOrdersApi.url}#/paths/~1paymentOrders~1{paymentOrderId}/get
Read the created payment order back to confirm it was persisted.
3
pollStatus
Poll the payment status endpoint and branch on the terminal status: COMPLETED ends the workflow successfully, FAILED or CANCELLED routes to the failure step, and any other status retries.
4
handleFailure
Re-read the final status of a payment that did not settle so the failure reason is captured in the workflow outputs.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Temenos Payments Initiate Payment And Poll Status
  summary: Create a payment order and poll its processing status until it settles.
  description: >-
    The canonical Temenos Payment Order Hub flow. The workflow creates a
    payment order for a SEPA, SWIFT, domestic or internal transfer, reads the
    created order back, and then polls the dedicated status endpoint, branching
    to success when the payment is COMPLETED and to a failed terminal state
    when the payment is FAILED or CANCELLED. Every step inlines its request so
    the chain can be executed without opening the OpenAPI description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-1340.10
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-1340.10
      capability_name: Payment Initiation Management
      spec: temenos-payment-orders-api-openapi.yml
      confidence: 0.85
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: paymentOrdersApi
  url: ../openapi/temenos-payment-orders-api-openapi.yml
  type: openapi
workflows:
- workflowId: initiate-payment-poll-status
  summary: Initiate a payment order and poll until it completes or fails.
  description: >-
    Creates a payment order, confirms it was persisted, and polls the payment
    status endpoint, branching on the terminal status reported by the hub.
  inputs:
    type: object
    required:
    - debitAccountId
    - amount
    - currency
    - paymentType
    properties:
      debitAccountId:
        type: string
        description: Originating account identifier.
      creditAccountId:
        type: string
        description: Destination account identifier for internal transfers.
      beneficiaryName:
        type: string
        description: Beneficiary name for external transfers.
      beneficiaryIban:
        type: string
        description: Beneficiary IBAN for external transfers.
      beneficiaryBic:
        type: string
        description: Beneficiary bank BIC/SWIFT code.
      amount:
        type: number
        description: Payment amount.
      currency:
        type: string
        description: Payment currency in ISO 4217 format.
      paymentType:
        type: string
        description: Payment type (SEPA_CREDIT, INSTANT_SEPA, SWIFT, DOMESTIC, INTERNAL, TARGET2, CROSS_BORDER).
  steps:
  - stepId: createPaymentOrder
    description: Create a payment order for the requested transfer.
    operationPath: '{$sourceDescriptions.paymentOrdersApi.url}#/paths/~1paymentOrders/post'
    requestBody:
      contentType: application/json
      payload:
        debitAccountId: $inputs.debitAccountId
        creditAccountId: $inputs.creditAccountId
        beneficiaryName: $inputs.beneficiaryName
        beneficiaryIban: $inputs.beneficiaryIban
        beneficiaryBic: $inputs.beneficiaryBic
        amount: $inputs.amount
        currency: $inputs.currency
        paymentType: $inputs.paymentType
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      paymentOrderId: $response.body#/paymentOrderId
      status: $response.body#/status
  - stepId: getPaymentOrder
    description: Read the created payment order back to confirm it was persisted.
    operationPath: '{$sourceDescriptions.paymentOrdersApi.url}#/paths/~1paymentOrders~1{paymentOrderId}/get'
    parameters:
    - name: paymentOrderId
      in: path
      value: $steps.createPaymentOrder.outputs.paymentOrderId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      paymentOrderId: $response.body#/paymentOrderId
  - stepId: pollStatus
    description: >-
      Poll the payment status endpoint and branch on the terminal status:
      COMPLETED ends the workflow successfully, FAILED or CANCELLED routes to
      the failure step, and any other status retries.
    operationId: getPaymentOrderStatus
    parameters:
    - name: paymentOrderId
      in: path
      value: $steps.getPaymentOrder.outputs.paymentOrderId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
      bookingStatus: $response.body#/bookingStatus
      statusReason: $response.body#/statusReason
    onSuccess:
    - name: settled
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "COMPLETED"
        type: jsonpath
    - name: rejected
      type: goto
      stepId: handleFailure
      criteria:
      - context: $response.body
        condition: $.status == "FAILED" || $.status == "CANCELLED"
        type: jsonpath
    - name: keepPolling
      type: retry
      retryAfter: 5
      retryLimit: 12
      stepId: pollStatus
      criteria:
      - context: $response.body
        condition: $.status == "PENDING" || $.status == "PROCESSING"
        type: jsonpath
  - stepId: handleFailure
    description: >-
      Re-read the final status of a payment that did not settle so the failure
      reason is captured in the workflow outputs.
    operationId: getPaymentOrderStatus
    parameters:
    - name: paymentOrderId
      in: path
      value: $steps.getPaymentOrder.outputs.paymentOrderId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
      statusReason: $response.body#/statusReason
  outputs:
    paymentOrderId: $steps.createPaymentOrder.outputs.paymentOrderId
    finalStatus: $steps.pollStatus.outputs.status
    bookingStatus: $steps.pollStatus.outputs.bookingStatus

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/temenos-initiate-payment-poll-status-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.