FlowPay API (v2)

Second-generation FlowPay API published as OpenAPI 3.1.0 (2.0.0-alpha.4) in the public FlowPay/client-openapi GitHub repository, with operationIds, page/size pagination, documented 100 req/min and 10 req/s rate limits, and a shared public sandbox. Adds credit notes, proforma invoices, construction-site escrow flows, fee rules and KYC to the v1 surface, and describes an AIS consent-status webhook. The production server api.flowpay.it/v2 answers unauthenticated reads (GET /v2/banks returned 200 on 2026-09-17) even though the spec still labels it "Not implemented".

Operations 59

POST /oauth/token Get an access token or refresh an existing one #
POST /oauth/token/info Get information about the token #
GET /accounts Get the list of accounts #
POST /accounts Create account consent session #
GET /accounts/{accountID} Get account details #
GET /banks Get banks #
GET /banks/{id} Get bank details #
POST /bulk Create bulk document #
GET /bulk List bulk documents #
GET /bulk/{fingerprint} Get document details #
DELETE /bulk/{fingerprint} Delete bulk payment #
POST /chain Create chain document #
GET /chain List chain documents #
GET /chain/{fingerprint} Get document details #
POST /checkout Create checkout #
GET /checkout/{code} Get checkout details #
DELETE /checkout/{code} Delete checkout #
POST /creditNotes Create credit note #
GET /creditNotes List credit notes #
GET /creditNotes/{fingerprint} Get credit note details #
DELETE /creditNotes/{fingerprint} Delete credit note #
POST /constructions/contracts Add worker to site #
GET /constructions/contracts List workers #
PATCH /constructions/contracts/{identifier} Accept assignment #
DELETE /constructions/contracts/{identifier} Contract withdrawal #
POST /constructions/sites Open a new site #
GET /constructions/sites List sites #
GET /constructions/sites/{identifier} Get site details #
POST /constructions/sites/{identifier}/cashout Cashout #
POST /constructions/sites/{identifier}/quote Create quote #
GET /constructions/sites/{identifier}/quote List quotes #
POST /constructions/progress Register work progress #
GET /constructions/progress List work progress #
GET /constructions/progress/{identifier} Get work progress details #
GET /fee List fees #
GET /fee/rules List fee rules #
GET /fee/rules/{kind}/{fingerprint} Retrieve fee rules for a document #
GET /fee/rules/{kind}/{fingerprint}/{payer} Retrieve fee rule for a specific payer #
POST /invoices Create invoice #
GET /invoices List invoices #
GET /invoices/{fingerprint} Get invoice details #
POST /kyc Start KYC #
GET /kyc/{identifier} Get KYC data #
POST /pagopa pagoPA payment #
GET /pagopa pagoPA list #
GET /pagopa/{fingerprint} Get pagoPA details #
GET /pagopa/{fingerprint}/receipt Get pagoPA receipt #
GET /payments Get payments #
GET /payments/{paymentID} Get payment details #
POST /proforma Create proforma invoice #
GET /proforma List proforma invoices #
GET /proforma/{fingerprint} Get proforma details #
DELETE /proforma/{fingerprint} Delete proforma invoice #
GET /transactions Get transactions #
GET /transactions/{transactionID} Get transaction details #
GET /transfers Get transfers #
POST /transfers Create transfer #
GET /transfers/{transferID} Get transfer details #
DELETE /transfers/{transferID} Delete transfer #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/flowpay-api-v2"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

bancomat-flowpay-api-v2-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: FlowPay API
  version: 2.0.0-alpha.4
  description:
    $ref: docs/general.md
  termsOfService: https://developer.flowpay.it/tos
  license:
    name: FlowPay SRL
    url: https://developer.flowpay.it/tos
  x-logo:
    url: https://images.flowpay.it/logo
    altText: FlowPay
  contact:
    name: API Support
    url: https://developer.flowpay.it
    email: api-support@flowpay.it
  x-json-schema-faker:
    locale: it-IT
    omitNulls: true
    fillProperties: true
    reuseProperties: true
x-api-evangelist:
  method: searched
  fetched: '2026-09-17'
  source: https://raw.githubusercontent.com/FlowPay/client-openapi/main/openapi.json
  via: 'https://github.com/FlowPay/client-openapi (org profile: "FlowPay — a Bancomat company")'
  original: openapi/_original/bancomat-flowpay-api-v2-openapi.json
  ownership: 'FlowPay S.r.l. (flowpay.it) is a BANCOMAT S.p.A. subsidiary: the acquisition closed 2025-07-22 per https://bancomat.it/en/press-releases/bancomat-acquires-flowpay-closing-finalized and the FlowPay GitHub org describes itself as "a Bancomat company"; the spec self-identifies as FlowPay (servers, contact) and is saved unmodified.'
servers:
- url: https://api.flowpay.it/v2
  description: Production server (Not implementend)
- url: https://mock.flowpay.it/v2
  description: Mock server
- url: https://sandbox.{customerID}.flowpay.it/v2
  description: Customer-assigned sandbox server
  variables:
    customerID:
      default: 00000000-00000000-00000000-00000000
      description: Unique customer identifier assigned after contract signature
- url: http://localhost:5002
  description: Debug
components:
  securitySchemes:
    oAuth2:
      type: oauth2
      description: OAuth2 flow
      flows:
        authorizationCode:
          authorizationUrl: /openid/authenticate
          tokenUrl: /oauth/token
          refreshUrl: /oauth/token
          scopes:
            accounts:read: Allow to read accounts
            accounts:write: Allow to mediate accounts creation and open banking consent renewal
            invoices:read: Allow to read invoices
            invoices:write: Allow to create invoices and manage lifecycle
            bills:read: Allow to read bills
            bills:write: Allow to create bills and manage lifecycle
            constructions:read: Allow to read information about construction sites
            constructions:write: Allow to create construction sites and manage the lifecycle
            openid: Allow to read user profile
            pagopa:read: Allow to retrieve users' PagoPA payment notices
            pagopa:write: Allow to create PagoPA payment notices
            transfers:read: Allow to read transfers
            transfers:write: Allow to create transfers and manage lifecycle
            wallet:`document_type`: Allow to manage wallet for the specified use case
        clientCredentials:
          tokenUrl: /oauth/token
          scopes:
            ade: Allow to interact with Agenzia delle Entrate services
            accounts:read: Allow to read accounts
            accounts:write: Allow to mediate accounts creation and open banking consent renewal
            invoices:read: Allow to read invoices
            invoices:write: Allow to create invoices and manage lifecycle
            bills:read: Allow to read bills
            bills:write: Allow to create bills and manage lifecycle
            constructions:read: Allow to read information about construction sites
            constructions:write: Allow to create construction sites and manage the lifecycle
            openid: Allow to read user profile
            pagopa:read: Allow to retrieve users' PagoPA payment notices
            pagopa:write: Allow to create PagoPA payment notices
            transfers:read: Allow to read transfers
            transfers:write: Allow to create transfers and manage lifecycle
            wallet:`document_type`: Allow to manage wallet for the specified use case
  schemas:
    Address:
      type: object
      properties:
        city:
          type: string
          description: Name of the city where the property is located.
        street:
          type: string
          description: This field contains the name of the street where the property is located. It must include the name with a type (e.g., Avenue, Street, Road, etc.) but not the number or any other information.
        number:
          type: string
          description: This field refers to the numeric or alphanumeric value assigned to a property on a street.
        unitNumber:
          type: string
          description: his field is used when a single property has multiple units, such as apartments or office suites. It differentiates one unit from another within the same property.
        postalCode:
          type: string
          description: Also known as ZIP code (or CAP in Italy)
        province:
          type: string
          description: It refers to the name of the state or province where the property is located.
        country:
          type: string
          description: The name of the country where the property is located.
      required:
      - city
      - street
      - postalCode
      - province
      - country
    Bank:
      type: object
      properties:
        name:
          type: string
          description: Name of the bank
          example: Intesa Sanpaolo
          x-faker: Company.companyName
        nationalID:
          type: string
          description: National identifier of the bank
          example: 03999
          x-faker: finance.bic
        id:
          type: string
          description: Unique identifier of the bank
          example: intesa_sanpaolo
        countries:
          type: array
          items:
            type: string
            description: Countries where the bank operates in ISO 3166-1 alpha-2 format
            example: IT
            x-faker: address.countryCode
        logo:
          type: string
          description: URL of the bank logo
          example: https://flowpayproduction.blob.core.windows.net/img/84036981-d004-40c4-a872-c81dd37e4acc.png
          x-faker: image.imageUrl
        features:
          type: object
          description: Features supported by the bank
          properties:
            futurePayments:
              type: boolean
              description: True if the bank supports future payments
              example: true
            sct:
              type: array
              description: List of SCT payment types supported by the bank
              items:
                type: string
                enum:
                - standard
                - instant
                description: SCT payment type
            recurringPayments:
              type: array
              description: List of recurring payment types supported by the bank
              items:
                type: string
                enum:
                - monthly
                - everyTwoMonths
                - quarterly
                - semiAnnual
                - daily
                - everyFourMonths
                - weekly
                - everyTwoWeeks
                - annual
                description: Recurring payment frequency
    BankAccount:
      type: object
      properties:
        owner:
          type: string
          format: uuid
          description: Identifier of the owner of the bank account
        iban:
          type: string
          description: International Bank Account Number
          x-faker: finance.iban
          example: IT60X0542811101000000123456
        currencies:
          type: array
          items:
            type: string
            description: Currencies supported by the bank account
            x-faker: finance.currencyCode
          example:
          - EUR
          - CHF
          - GBP
        bankName:
          type: string
          description: Identifier of the bank
          example: intesa_sanpaolo
        owners:
          type: array
          description: List of owners of the bank account
          items:
            type: string
            description: Name of the owner of the bank account
            x-faker: person.fullName
          example:
          - Maria Fumagalli
          - Luigi Verdi
        consentStatus:
          $ref: '#/components/schemas/ConsentStatusEnum'
    Bulk:
      type: object
      properties:
        fingerprint:
          $ref: '#/components/schemas/Fingerprint'
        amount:
          type: number
          format: double
          example: 48223.07
          description: Total amount of the bulk
        allowWireTranfersAggregation:
          type: boolean
          example: true
          description: Indicate if the wire transfers to the same beneficiary can be aggregated
        documents:
          type: object
          description: Dictionary of documents related to the bulk. Keys are the document type, values are the fingerprints of the documents.
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/Fingerprint'
    Chain:
      description: Chain of documents
      type: object
      properties:
        fingerprint:
          $ref: '#/components/schemas/Fingerprint'
        targetType:
          $ref: '#/components/schemas/DocumentKindEnum'
        targetFingerprint:
          $ref: '#/components/schemas/Fingerprint'
        triggerType:
          $ref: '#/components/schemas/DocumentKindEnum'
        triggerFingerprint:
          $ref: '#/components/schemas/Fingerprint'
    Checkout:
      type: object
      properties:
        code:
          type: string
          pattern: ^[a-zA-Z\d]{8}$
          description: Unique identifier of the checkout session. This code is secret and should never be shared with anyone who is not the payer.
        fingerprint:
          $ref: '#/components/schemas/Fingerprint'
        type:
          $ref: '#/components/schemas/DocumentKindEnum'
        creditor:
          type: string
          format: uuid
          description: Identifier of the creditor
          x-faker: datatype.uuid
        debtor:
          type: string
          format: uuid
          description: Identifier of the debtor
          x-faker: datatype.uuid
        collectionMethods:
          type: array
          items:
            $ref: '#/components/schemas/CollectionMethodEnum'
          description: Collection methods enabled for the payment.<br>Note that collection methods are the intersection of the collection methods techologies enabled for the creditor and the collection methods allowed by the client for checkout.
        payments:
          type: array
          items:
            $ref: '#/components/schemas/Payment'
          description: List of payments related to the checkout
      required:
      - code
      - fingerprint
      - type
      - creditor
      - debtor
      - collectionMethods
    ConsentStatusEnum:
      type: string
      enum:
      - not_granted
      - granted
      - revoked
      - expired
      - all
      default: all
      description: 'Status of the account information service (AIS) consent granted by account owner to FlowPay.<br/> - `not_granted`: owner has never granted a consent<br> - `granted`: consent granted by account owner<br> - `revoked`: consent revoked by account owner<br> - `expired`: consent expired<br> - `all`: all types of consent'
    CollectionMethodEnum:
      type: string
      enum:
      - sct
      - sct-inst
      - sdd
      - card
      - custom/<label>
      description: 'Collection method enabled for the payment. <br> - `sct`: SEPA Credit Transfer (SCT)<br> - `sct-inst`: SEPA Credit Transfer Instant (SCT-INST)<br> - `sdd`: SEPA Direct Debit (SDD)<br> - `card`: Credit Card<br> - `custom/label`: Custom collection method, enabled by the client who created the checkout. Please see the `custom` section for more details: https://docs.flowpay.it/docs/custom-collection-method'
    CompanyVATNumber:
      type: string
      description: VAT number of the company, full european format
      pattern: /^((AT)(U\d{8})|(BE)(0\d{9})|(BG)(\d{9,10})|(CY)(\d{8}[LX])|(CZ)(\d{8,10})|(DE)(\d{9})|(DK)(\d{8})|(EE)(\d{9})|(EL|GR)(\d{9})|(ES)([\dA-Z]\d{7}[\dA-Z])|(FI)(\d{8})|(FR)([\dA-Z]{2}\d{9})|(HU)(\d{8})|(IE)(\d{7}[A-Z]{2})|(IT)(\d{11})|(LT)(\d{9}|\d{12})|(LU)(\d{8})|(LV)(\d{11})|(MT)(\d{8})|(NL)(\d{9}(B\d{2}|BO2))|(PL)(\d{10})|(PT)(\d{9})|(RO)(\d{2,10})|(SE)(\d{12})|(SI)(\d{8})|(SK)(\d{10}))$
      example: IT12345678901
      x-faker: finance.vat
    ConstructionProgress:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the construction progress
          x-faker: datatype.uuid
        site:
          type: string
          format: uuid
          description: Identifier of the construction site
          x-faker: datatype.uuid
        createdAt:
          type: string
          format: date-time
          description: Date and time of the construction progress creation
          example: '2020-01-01T00:00:00Z'
          x-faker: date.past
        amount:
          type: number
          format: float
          example: 45050.23
          description: Total amount of the construction progress
          x-faker: finance.amount
        invoices:
          type: object
          description: Array of invoices related to each supplier for the worker. Keys are the creditor identifiers.
          additionalProperties:
            $ref: '#/components/schemas/Fingerprint'
    ConstructionSite:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the construction site
          x-faker: datatype.uuid
        name:
          type: string
          description: Name of the construction site
          example: Calenzano Payments Museum
          x-faker: lorem.word
        address:
          $ref: '#/components/schemas/Address'
        initialCreditFingerprint:
          $ref: '#/components/schemas/Fingerprint'
          description: Fingerprint of the initial credit document, used to transfer money to the wallet
        availableBalance: {}
    ConsumerNationalID:
      type: string
      description: National ID of the consumer, currently only italian format is supported
      pattern: /^([A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z])$
      example: RSSMRA80A01H501T
    Contact:
      type: object
      properties:
        fullName:
          description: Full name of the contact, contains the concatenation of the name and surname of a consumer, or the name of a company.
          oneOf:
          - type: string
            description: Full name of the consumer
            example: Mario Rossi
            x-faker: person.fullName
          - type: string
            description: Company name
            example: Illustrious Company S.p.A.
            x-faker: company.companyName
        fullVat:
          type: string
          description: 'VAT number of the company in full european format or national ID of the consumer '
          oneOf:
          - $ref: '#/components/schemas/ConsumerNationalID'
          - $ref: '#/components/schemas/CompanyVATNumber'
        type:
          type: string
          enum:
          - consumer
          - company
          description: Type of the contact
    DocumentKindEnum:
      type: string
      enum:
      - bill
      - bulk
      - chain
      - construction
      - invoice
      - pagopa
      - transfer
      description:
        $ref: types/DocumentKind.md
    Fee:
      type: object
      properties:
        fingerprint:
          $ref: '#/components/schemas/Fingerprint'
          description: Fingerprint of the fee
        amount:
          type: number
          format: double
          minimum: 0
          example: 0.5
          description: Amount of the fee
        targetFingerprint:
          $ref: '#/components/schemas/Fingerprint'
          description: Fingerprint of the document the fee is related to
        targetType:
          $ref: '#/components/schemas/DocumentKindEnum'
          description: Type of the document the fee is related to
        ruleID:
          type: string
          format: uuid
          description: Identifier of the rule that generated the fee
        linkedFingerprint:
          $ref: '#/components/schemas/Fingerprint'
          description: Fingerprint of the document the fee is linked to. Can be related to a `bulk` if the payer is the debtor of the target or to a `chain` if the payer is the creditor of the target.
    FeeRule:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the fee rule
          x-faker: datatype.uuid
        clientID:
          type: string
          format: uuid
          description: Unique identifier of the client that created the rule
          x-faker: datatype.uuid
        useCase:
          $ref: '#/components/schemas/DocumentKindEnum'
          description: Use case of the rule
        method:
          $ref: '#/components/schemas/FeeRuleMethods'
        lowerBound:
          type: number
          format: double
          description: Lower bound of the rule. If the amount is lower than this value, the rule does not apply.
        kind:
          type: string
          enum:
          - fixed
          - percentage
          description: 'Calculation method of the fee. <br> - `fixed`: the fee is a fixed amount<br> - `percentage`: the fee is a percentage of the target''s amount'
        numeric:
          type: number
          format: double
          description: Value of the fee. If the kind is `percentage`, the value is a percentage of the target's amount and can assume values between 0 and 1.
        remittance:
          type: string
          description: Remittance information of the fee charged to the payer
        payer:
          $ref: '#/components/schemas/FeeRulePayer'
          description: 'Payer of the fee. <br> - `debtor`: the debtor of the target document pays the fee using a bulk<br> - `creditor`: the creditor of the target document pays the fee using a chain'
      required:
      - id
      - clientID
      - useCase
      - method
      - kind
      - numeric
      - payer
      - lowerBound
    FeeRuleMap:
      type: object
      description: A dictionary mapping document fingerprints to fee amounts.
      propertyNames:
        $ref: '#/components/schemas/Fingerprint'
      additionalProperties:
        type: number
        format: double
      example:
        d41d8cd98f00b204e9800998ecf8427e: 0.05
        e56d7ef1234567890abcde1234567890: 0.1
    FeeRuleAmountMap:
      type: object
      description: A dictionary mapping payment methods to payment amounts including fees for a specific document
      propertyNames:
        $ref: '#/components/schemas/FeeRuleMethods'
      additionalProperties:
        type: number
        format: double
      example:
        pis: 0.05
        card: 0.1
    FeeRuleMethods:
      type: string
      enum:
      - pis
      - card
      - sdd
      description: |-
        Payment methods applicable for fee rules.

        - **pis**: Used for bank transfers, including standard bank transfers and instant transfers (bonifico istantaneo).
        - **card**: Used for card payments, including mobile wallet transactions.
        - **sdd**: Used for direct debit payments.
    FeeRulePayer:
      type: string
      enum:
      - debtor
      - creditor
      description: |-
        Payer types applicable for fee rules.

        - **debtor**: The fees are paid by the debtor via a bulk payment.
        - **creditor**: The fees are paid by the creditor via a split payment.
    Fingerprint:
      type: string
      description: Fingerprint of the document
      example: d41d8cd98f00b204e9800998ecf8427e
    Invoice:
      type: object
      properties:
        number:
          type: string
          description: Invoice number
          x-faker: finance.account
        date:
          type: string
          format: iso8601
          example: '2019-01-01T00:00:00Z'
          description: Invoice date of issue
          x-faker: date.past
        amount:
          type: number
          description: Invoice amount
          x-faker: finance.amount
        currency:
          type: string
          description: Invoice currency
          default: EUR
          x-faker: finance.currencyCode
        stage:
          type: string
          enum:
          - proforma
          - invoice
          - creditNote
          default: invoice
          description: Invoice stage
        type:
          type: string
          enum:
          - b2b
          - b2c
          description: 'Invoice relations with the debtor. <br> - `b2b`: invoice issued to a business<br> - `b2c`: invoice issued to a private person. <br> Note:. Invoice relations with Public Administrations are not directly supported by FlowPay. However, you can use the `b2b` type to represent the invoice issued to a Public Administration.'
        creditor:
          type: string
          format: uuid
          description: Identifier of the creditor
          x-faker: datatype.uuid
        debtor:
          type: string
          format: uuid
          description: Identifier of the debtor
          x-faker: datatype.uuid
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/DocumentAttachment'
          description: Attachments of the invoice
        items:
          type: array
          items:
            $ref: '#/components/schemas/DocumentItem'
          description: Items of the invoice
        terms:
          type: array
          items:
            $ref: '#/components/schemas/DocumentTerm'
          description: Terms of the invoice
        invoice:
          $ref: '#/components/schemas/Fingerprint'
          description: Fingerprint of the invoice related to the proforma invoice or credit note, if any
        proforma:
          $ref: '#/components/schemas/Fingerprint'
          description: Fingerprint of the proforma invoice related to the invoice, if any
        creditNotes:
          type: array
          items:
            $ref: '#/components/schemas/Fingerprint'
          description: Fingerprints of the credit notes related to the invoice, if any
      description: Document representing an invoice at any stage.
      required:
      - number
      - date
      - amount
      - currency
      - stage
      - type
      - creditor
      - debtor
      - terms
    KYCBankAccountDossier:
      type: object
      properties:
        iban:
          type: string
          description: IBAN of the bank account
          x-faker: finance.iban
        label:
          type: string
          description: Label of the bank account
          example: My bank account
        verified:
          type: boolean
          description: True if the ownership of the bank account has been verified
        consentExpiresAt:
          type: string
          format: date-time
          description: Date and time of the bank account PSD2 consent expiration
          example: '2020-01-01T00:00:00Z'
          x-faker: date.future
    KYCCompanyDossier:
      type: object
      description: Company information
      properties:
        name:
          type: string
          description: Name of the company
          example: Illustrious Company S.p.A.
          x-faker: company.companyName
        vat:
          $ref: '#/components/schemas/CompanyVATNumber'
          description: VAT number of the company
        address:
          $ref: '#/components/schemas/Address'
          description: Address of the company
        email:
          type: string
          format: email
          description: Email of the company
          x-faker: internet.email
        phone:
          type: string
          description: Phone number of the company
          example: '+393331234567'
          x-faker: phone.phoneNumber
        sanctioned:
          type: boolean
          description: True if the company is present in the list of sanctioned subjects
        verified:
          type: boolean
          description: True if the company information has been verified
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/KYCBankAccountDossier'
          description: List of bank accounts of the company
    KYCConsumerDossier:
      type: object
      properties:
        name:
          type: string
          description: Name of the consumer
          example: Mario
          x-faker: person.firstName
        surname:
          type: string
          description: Surname of the consumer
          example: Rossi
          x-faker: person.lastName
        tin:
          $ref: '#/components/schemas/ConsumerNationalID'
          description: National ID of the consumer
        birthDate:
          type: string
          format: date
          description: Date of birth of the consumer
          example: '1980-01-01'
          x-faker: date.past
        birthPlace:
          type: string
          description: Place of birth of the consumer
          example: Milano
          x-faker: address.city
        birthCountry:
          type: string
          description: Country of birth of the consumer
          example: IT
          x-faker: address.countryCode
        address:
          $ref: '#/components/schemas/Address'
          description: Address of the consumer
        email:
          type: string
          format: email
          description: Email of the consumer
          x-faker: internet.email
        phone:
          type: string
          description: Phone number of the consumer
          example: '+393331234567'
          x-faker: phone.phoneNumber
        sanctioned:
          type: boolean
          description: True if the consumer is present in the list of sanctioned subjects
        verified:
          type: boolean
          description: True if the consumer information has been verified
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/KYCBankAccountDossier'
          description: List of bank accounts of the consumer
    KYCDossier:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the KYC session
          x-faker: datatype.uuid
        createdAt:
          type: string
          format: date-time
          description: Date and time of the KYC session creation
          example: '2020-01-01T00:00:00Z'
          x-faker: date.past
        updatedAt:
          type: string
          format: date-time
          description: Date and time of the last KYC session update
          example: '2020-01-01T00:00:00Z'
          x-faker: date.past
        lastAccessAt:
          type: string
          format: date-time
          description: Date and time of the last KYC session access
          example: '2020-01-01T00:00:00Z'
          x-faker: date.past
        kind:
          $ref: '#/components/schemas/KYCFlow'
        canLogin:
          type: boolean
          description: True if the user can login to the KYC session. If true, the user can retrieve data verified in previous sessions and can skip some steps of the KYC flow.
          default: false
        consumer:
          $ref: '#/components/schemas/KYCConsumerDossier'
          description: Consumer information
        company:
          $ref: '#/components/schemas/KYCCompanyDossier'
          description: Company information
    KYCFlow:
      type: string
      description: KYC flow
      enum:
      - consumer
      - company
      - business
    DocumentAttachment:
      type: object
      properties:
        name:
          type: string
          description: Name of the attachment
          example: ITAAABBB99T99X999W_00003.xml.p7m
          x-faker: system.fileName
        description:
          type: string
          description: Description of the attachment
          example: Electronic invoice signed with P7M format
          x-faker: lorem.sentence
        id:
          type: string
          format: uuid
          description: Identifier of the attachment
          example: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
          x-faker: datatype.uuid
      description: Attachment of the document.
      required:
      - name
      - id
    DocumentItem:
      type: object
      properties:
        description:
          type: string
          description: Description of the item
          example: Super energy drink
          x-faker: lorem.sentence
        quantity:
          type: number
          format: double
          example: 8
          description: Quantity of the item
          x-faker: random.number
        measureUnit:
          type: string
          description: Measure unit of the item
          example: L
          maxLength: 10
          x-faker: commerce.productAdjective
        unitPrice:
          type: number
          format: double
          example: 1.5
          description: Unit price of the item
          x-faker: finance.amount
        tax:
          type: number
          format: double
          example: 0.23
          description: Tax rate of the item
          x-faker: finance.amount
        discount:
          type: number
          format: double
          example: 0.0
          description: Discount rate of the item
          x-faker: finance.amount
      description: Billing item. This is used only for UX and utility purposes and will not be used for the payment process.
      required:
      - description
      - quantity
      - unitPrice
    DocumentTerm:
      type: object
      description: A payment term of the document, it will be used to generate the payment schedule.
      properties:
        dueDate:
          type: string
          format: iso8601
          example: '2020-01-01T00:00:00Z'
          description: Due date of the payment
          x-faker: date.future
        amount:
          type: number
          format: double
          example: 100.01
          description: Amount to be paid
          x-faker: finance.amount
        currency:
          type: string
          description: 'Currency of the payment. <br> <b>Note: All payments must be in the same currency.</b>'
          example: EUR
          default: EUR
          x-faker: finance.currencyCode
        description:
          type: string
          description: Description of the payment. This will be shown to the customer when paying the invoice through the FlowPay checkout page.
          example: Subscription to the premium plan
          x-faker: lorem.sentence
        remittance:
          type: string
          description: 'Remittance information. This will be shown to the customer during the payment process and will be included in the bank statement.<br> <b>Notes:</b> - This field is optional and will be automatically generated if not provided with the format: Invoice #<invoice_number> - <invoiceDate> - Remittance will also contain a FlowPay identifier'
          maxLength: 100
          example: 'Invoice #1234 - subscription to the premium plan'
          x-faker: lorem.sentence
      required:
      - dueDate
      - amount
      - currency
    PaginatedResult:
      type: object
      properties:
        page:
          type: integer
          description: Current page number
        pageSize:
          type: integer
          description: Number of items per page
        total:
          type: integer
          description: Total number of items
        items:
          type: array
          description: List of items
          items: {}
    pagoPA:
      type: object
      description: PagoPA payment information
      properties:
        fingerprint:
          description: Fingerprint generated for the document
          $ref: '#/components/schemas/Fingerprint'
        ec:
          $ref: '#/components/schemas/CompanyVATNumber'
          description: Public administration VAT number
        debtor:
          $ref: '#/components/schemas/Contact'
          description: Debtor information
        remittance:
          type: string
          description: Remittance information
          example: Rata scuola A.S. 2019/2020
        amount:
          type: number
          format: double
          example: 100.01
          description: Amount to be paid
          x-faker: finance.amount
        status:
          $ref: '#/components/schemas/pagoPAStatus'
      required:
      - fingerprint
   

# --- truncated at 32 KB (147 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bancomat/refs/heads/main/openapi/bancomat-flowpay-api-v2-openapi.yml