{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/swift/json-schema/swift-pmi-details-schema.json",
  "title": "PmiDetails",
  "description": "Details of a Payment Market Infrastructure",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/swift-swiftref-api-v4-openapi.yml#/components/schemas/PmiDetails",
  "type": "object",
  "required": [
    "service_id",
    "service_name"
  ],
  "properties": {
    "service_id": {
      "type": "string",
      "description": "The acronym of the clearing and settlement service, or the SWIFTNet service. It is usually prefixed with the ISO country code or the AREA code, which represents the land/area where the service is offered.",
      "maxLength": 20
    },
    "alternative_service_ids": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 20
      },
      "description": "The list of the various alternative IDs. The prefix and the alternative ID are separated by \":\"."
    },
    "service_name": {
      "type": "string",
      "description": "The name of the Payment Market Infrastructure.",
      "maxLength": 105
    },
    "currency_codes": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/CurrencyCode"
      },
      "description": "The list of currency codes cleared or settled on the service. Required only for platforms other than SwiftNET."
    },
    "service_type": {
      "type": "string",
      "description": "If applicable, a comma-separated combination of ACH (automated clearing house), CHQ (cheque clearing system), RTGS (real-time gross settlement), RT-RPS (real-time retail payments service). Other services that are not in these categories have this field empty.",
      "maxLength": 50
    },
    "areas": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 2
      },
      "description": "A list of one or several countries, at times defining an official group of countries in which the service is made available."
    },
    "coverage": {
      "type": "string",
      "enum": [
        "domestic",
        "regional",
        "international"
      ],
      "description": "The reach/coverage the service provides."
    },
    "high_low_value": {
      "type": "string",
      "enum": [
        "HV",
        "LV",
        "HV/LV"
      ],
      "description": "The value of the transactions, one of HV (high value), LV (low value), HV/LV (high and low value)."
    },
    "gross_net_settlement": {
      "type": "string",
      "enum": [
        "GS",
        "NS"
      ],
      "description": "The type of settlement, one of GS (gross settlement, each transaction is settled individually), NS (net settlement, the transactions are aggregated and settled in batch as net differences in amounts)."
    },
    "execution_delay": {
      "type": "string",
      "enum": [
        "RT",
        "1H",
        "2H",
        "3H",
        "4H",
        "5H",
        "6H",
        "7H",
        "8H",
        "9H",
        "SD",
        "DF"
      ],
      "description": "The maximum period necessary to execute the transaction, one of RT (real-time or instant), nH (a number of hours, for example 2H), SD (same day), DF (deferred, can take one or several days)"
    },
    "transaction_types": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 2
      },
      "description": "The types of transaction. A list of one or several of CQ (cheque transfer), CT (credit transfer), DT (debit transfer), DD (direct debit), IB (inter-bank transfer). Additional types may be added in the future."
    },
    "participant_id_type": {
      "type": "string",
      "description": "The type of identifier of the participant of the service. In most cases, it will either be a SWIFT BIC or a domestic routing/clearing number (with or without the branch code). These have a dedicated name in the related Bank Directory Plus file called the NATIONAL ID TYPE.",
      "maxLength": 50
    },
    "iso_message_formats": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 50
      },
      "description": "The comma-separated list of the ISO standards ID(s) for the type of messages used by the service, e.g. ISO15022 (as used in the FIN MTs), ISO20022, ISO8583."
    },
    "service_local_start_time": {
      "type": "string",
      "pattern": "^\\d\\d:\\d\\d[\\+\\-]\\d\\d:\\d\\d$",
      "description": "The local time + UTC offset of the start of the daily operations of the service. This time is not adapted for Daylight Saving Time (DST)."
    },
    "service_local_cut_off_time": {
      "type": "string",
      "pattern": "^\\d\\d:\\d\\d[\\+\\-]\\d\\d:\\d\\d$",
      "description": "The local time + UTC offset of the acceptance of the last transaction by the service. This time is not adapted for Daylight Saving Time (DST)."
    },
    "operating_days": {
      "type": "string",
      "pattern": "^(SUN|MON|TUE|WED|THU|FRI|SAT)-(SUN|MON|TUE|WED|THU|FRI|SAT)$",
      "description": "A range of days (in acronyms) during which the service is operational."
    },
    "cut_off_amount": {
      "type": "string",
      "description": "The maximum amount allowed in an ACH or RT-RPS-RPS (low value) and/or the minimum amount allowed in an RTGS (high value) service, with syntax min/max <amount> <currency>.",
      "maxLength": 255
    }
  },
  "additionalProperties": false,
  "$defs": {
    "CurrencyCode": {
      "type": "string",
      "pattern": "^[a-zA-Z]{3}$",
      "description": "3-character ISO 4217 currency code"
    }
  }
}