Fintecture · Arazzo Workflow

Fintecture List Providers and Initiate Payment

Version 1.0.0

Discover supported bank providers, then open a payment session and inspect its status.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Open BankingPaymentsPSD2FranceAccount InformationPayment InitiationInstant PaymentsSEPASmart TransferRequest To PayBuy Now Pay LaterE-MandatesAccount-to-AccountKYCArazzoWorkflows

Provider

fintecture

Workflows

list-providers-initiate-payment
List bank providers for a country, then create and inspect a payment session.
Resolves the provider catalog filtered by country, creates a payment session for the requested amount, and reads the resulting payment back to obtain the PSU connect URL and payment status.
3 steps inputs: accessToken, amount, communication, country, currency, psuEmail, psuName outputs: connectUrl, providers, sessionId, status
1
listProviders
getResV1Providers
Retrieve the banks accessible for payment initiation in the requested country, including their supported PIS rails.
2
createPayment
createPisV2Connect
Create an Immediate Transfer payment session for the requested amount, returning the connect URL the PSU uses to authorize the payment at their bank.
3
getPayment
getPaymentSession
Read the created payment back to surface its current lifecycle status and attributes.

Source API Descriptions

Arazzo Workflow Specification

fintecture-list-providers-initiate-payment-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Fintecture List Providers and Initiate Payment
  summary: Discover supported bank providers, then open a payment session and inspect its status.
  description: >-
    A merchant onboarding-to-checkout flow. It first reads the Fintecture
    Resources catalog of bank providers to confirm coverage and PIS rails for a
    country, then creates a PIS payment session (Immediate Transfer) via the
    Payment Initiation Services API, and finally reads back the created payment
    to surface its connect URL and lifecycle status. Every step spells out its
    request inline so the flow can be read and executed without opening the
    underlying OpenAPI descriptions.
  version: 1.0.0
sourceDescriptions:
- name: resourcesApi
  url: ../openapi/fintecture-resources-api-openapi.yml
  type: openapi
- name: pisApi
  url: ../openapi/fintecture-pis-api-openapi.yml
  type: openapi
workflows:
- workflowId: list-providers-initiate-payment
  summary: List bank providers for a country, then create and inspect a payment session.
  description: >-
    Resolves the provider catalog filtered by country, creates a payment
    session for the requested amount, and reads the resulting payment back to
    obtain the PSU connect URL and payment status.
  inputs:
    type: object
    required:
    - accessToken
    - country
    - amount
    - currency
    - communication
    - psuName
    - psuEmail
    properties:
      accessToken:
        type: string
        description: A valid PIS-scoped bearer access token.
      country:
        type: string
        description: ISO 3166-1 alpha-2 country code used to filter providers (e.g. "FR").
      amount:
        type: string
        description: Payment amount as a string in the given currency (e.g. "12.34").
      currency:
        type: string
        description: ISO currency code for the payment (EUR, GBP, or PLN).
      communication:
        type: string
        description: Free-form remittance information shown to the PSU.
      psuName:
        type: string
        description: Full name of the paying PSU.
      psuEmail:
        type: string
        description: Email address of the paying PSU.
  steps:
  - stepId: listProviders
    description: >-
      Retrieve the banks accessible for payment initiation in the requested
      country, including their supported PIS rails.
    operationId: getResV1Providers
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: country
      in: query
      value: $inputs.country
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      providers: $response.body#/data
      firstProviderId: $response.body#/data/0/id
  - stepId: createPayment
    description: >-
      Create an Immediate Transfer payment session for the requested amount,
      returning the connect URL the PSU uses to authorize the payment at their
      bank.
    operationId: createPisV2Connect
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: x-request-id
      in: header
      value: $inputs.communication
    requestBody:
      contentType: application/json
      payload:
        meta:
          psu_name: $inputs.psuName
          psu_email: $inputs.psuEmail
        data:
          type: PIS
          attributes:
            amount: $inputs.amount
            currency: $inputs.currency
            communication: $inputs.communication
            payment_method: immediate_transfer
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      sessionId: $response.body#/meta/session_id
      connectUrl: $response.body#/meta/url
  - stepId: getPayment
    description: >-
      Read the created payment back to surface its current lifecycle status
      and attributes.
    operationId: getPaymentSession
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: payment_id
      in: path
      value: $steps.createPayment.outputs.sessionId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      paymentId: $response.body#/id
      status: $response.body#/status
  outputs:
    providers: $steps.listProviders.outputs.providers
    sessionId: $steps.createPayment.outputs.sessionId
    connectUrl: $steps.createPayment.outputs.connectUrl
    status: $steps.getPayment.outputs.status