Temenos · Arazzo Workflow

Temenos Infinity Initiate Payment And Track

Version 1.0.0

Initiate a digital-banking payment from a customer account and track it to completion.

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

Provider

temenos

Workflows

infinity-initiate-payment
Initiate an Infinity payment and poll until it completes or fails.
Initiates a payment from a customer account and polls its status, branching on the terminal processing status.
2 steps inputs: amount, creditAccountId, currency, debitAccountId, narrative, paymentType outputs: finalStatus, paymentId
1
initiatePayment
createPayment
Initiate a payment from the customer's debit account.
2
trackPayment
getPayment
Poll the payment to track processing, branching on the terminal status and retrying while it is still pending or processing.

Source API Descriptions

Arazzo Workflow Specification

temenos-infinity-initiate-payment-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Temenos Infinity Initiate Payment And Track
  summary: Initiate a digital-banking payment from a customer account and track it to completion.
  description: >-
    Customer-facing payment flow in the Temenos Infinity digital banking
    platform. The workflow initiates a payment from a customer account
    (domestic, international, or bill payment), then polls the payment endpoint
    to track processing, branching to a successful end when the payment is
    COMPLETED and to a failure path when it is FAILED or CANCELLED. Every step
    inlines its request so the chain is self-describing.
  version: 1.0.0
sourceDescriptions:
- name: infinityApi
  url: ../openapi/temenos-infinity-openapi.yml
  type: openapi
workflows:
- workflowId: infinity-initiate-payment
  summary: Initiate an Infinity payment and poll until it completes or fails.
  description: >-
    Initiates a payment from a customer account and polls its status,
    branching on the terminal processing status.
  inputs:
    type: object
    required:
    - debitAccountId
    - creditAccountId
    - amount
    - currency
    properties:
      debitAccountId:
        type: string
        description: Source customer account identifier.
      creditAccountId:
        type: string
        description: Destination account identifier.
      amount:
        type: number
        description: Payment amount.
      currency:
        type: string
        description: Payment currency in ISO 4217 format.
      paymentType:
        type: string
        description: Payment type (DOMESTIC_TRANSFER, INTERNATIONAL_TRANSFER, BILL_PAYMENT).
      narrative:
        type: string
        description: Optional payment narrative shown to the customer.
  steps:
  - stepId: initiatePayment
    description: Initiate a payment from the customer's debit account.
    operationId: createPayment
    requestBody:
      contentType: application/json
      payload:
        debitAccountId: $inputs.debitAccountId
        creditAccountId: $inputs.creditAccountId
        amount: $inputs.amount
        currency: $inputs.currency
        paymentType: $inputs.paymentType
        narrative: $inputs.narrative
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      paymentId: $response.body#/paymentId
      status: $response.body#/status
  - stepId: trackPayment
    description: >-
      Poll the payment to track processing, branching on the terminal status
      and retrying while it is still pending or processing.
    operationId: getPayment
    parameters:
    - name: paymentId
      in: path
      value: $steps.initiatePayment.outputs.paymentId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
    onSuccess:
    - name: completed
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "COMPLETED"
        type: jsonpath
    - name: failed
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "FAILED" || $.status == "CANCELLED"
        type: jsonpath
    - name: stillProcessing
      type: retry
      retryAfter: 5
      retryLimit: 12
      stepId: trackPayment
      criteria:
      - context: $response.body
        condition: $.status == "PENDING" || $.status == "PROCESSING"
        type: jsonpath
  outputs:
    paymentId: $steps.initiatePayment.outputs.paymentId
    finalStatus: $steps.trackPayment.outputs.status