{
  "openapi" : "3.0.2",
  "info" : {
    "title" : "Payment Pre-validation",
    "description" : "Payment Pre-validation:\n\nPayment Pre-validation API endpointss are a suite of Swift API services designed to enable banks and PSPs to verify certain data in their payment instructions against the information available to Swift (including pseudonymised account statistics), to another Payment Pre-validation customer, or an aggregator.\n\nPayment Preparation Rules:\n\nThe API endpoint delivers all essential information needed to successfully execute a retail cross-border payment to any payment corridor. Its purpose is to bolster the reliability and accuracy of cross-border transactions to any destination and in any currency, empowering institutions to generate secure and robust payment instructions, thereby enhancing the overall customer experience.\n            \n`The API supports following functionalities:`\n* Customer Payment User Interface Corridor Rules - provides the regulatory requirements and local market practices.\n",
    "contact" : {
      "name" : "Developer Hub",
      "url" : "https://developer.swift.com",
      "email" : "developer-support@swift.com"
    },
    "license" : {
      "name" : "API Restricted License",
      "url" : "https://developer.swift.com/api-license"
    },
    "version" : "3.2.0"
  },
  "servers" : [ {
    "description" : "URL for Apigee (SDK consumer) Pilot",
    "url" : "https://api-test.swiftnet.sipn.swift.com/swift-preval/v3"
  }, {
    "description" : "URL for Apigee (SDK consumer) Live",
    "url" : "https://api.swiftnet.sipn.swift.com/swift-preval/v3"
  }, {
    "description" : "URL for Sandbox Environment",
    "url" : "https://sandbox.swift.com/swift-preval/v3"
  }, {
    "description" : "URL for Production Environment",
    "url" : "https://api.swift.com/swift-preval/v3"
  }, {
    "description" : "URL for Test Environment",
    "url" : "https://api-pilot.swift.com/swift-preval/v3"
  } ],
  "externalDocs" : {
    "description" : "To make a request to this API, the client must pass the access token obtained as a result of OAuth 2.0 flows. For more information please visit the developer portal.\n",
    "url" : "https://docs.developer.swift.com/docs/api-guides/payment-prevalidation-api/authentication"
  },
  "security" : [ {
    "oauthBearerToken" : [ ]
  } ],
  "tags" : [ {
    "name" : "Beneficiary Account Verification (BAV)",
    "description" : "Endpoint to verify beneficiary bank account information"
  }, {
    "name" : "Data Providers",
    "description" : "Endpoint to check Data Provider information"
  }, {
    "name" : "Payment Preparation"
  } ],
  "paths" : {
    "/accounts/verification" : {
      "post" : {
        "tags" : [ "Beneficiary Account Verification (BAV)" ],
        "summary" : "Verification of a creditor/beneficiary account.",
        "description" : "API resource that allows users to verify an account’s existence (identity and status), ownership and type. The verification is completely independent from any payment scheme or payment initiation. \n\nThe requesting entity is the data consumer which can be a Debtor Agent, a Creditor Agent or a Financial Institution. The responding entity is the data provider which can be a Creditor Agent, a Debtor Agent, or a third party account/name check provider.\n\nUsage guideline for Swift Payment Pre-validation:\nThe requesting entity is the data consumer which can only be a Debtor Agent, a Creditor Agent, or a financial institution.  \n\nSynonym\n\n - Creditor: Payee\n\n - Debtor: Payer\n\nThese are the subsets of the ISO 20022 Verification Of Party resources, as used by the SWIFT Beneficiary Account Verification service.\n",
        "operationId" : "verifyBeneficiaryAccount",
        "parameters" : [ {
          "$ref" : "#/components/parameters/X-Request-ID"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AccountVerificationRequest"
              },
              "examples" : {
                "3.1.1.1-Verify_account_using_Pre-validation_data_providers_and_central_BAV" : {
                  "$ref" : "#/components/examples/3.1.1.1-Verify_account_using_Pre-validation_data_providers_and_central_BAV"
                },
                "3.1.1.2-Verify_account_and_name_using_Pre-validation_data_providers_and_Central_BAV" : {
                  "$ref" : "#/components/examples/3.1.1.2-Verify_account_and_name_using_Pre-validation_data_providers_and_Central_BAV"
                },
                "3.1.1.3-Verify_account_and_id_using_Pre-validation_data_providers_and_Central_BAV" : {
                  "$ref" : "#/components/examples/3.1.1.3-Verify_account_and_id_using_Pre-validation_data_providers_and_Central_BAV"
                },
                "3.1.1.4-Verify_account_and_currency_using_Pre-validation_data_providers_and_Central_BAV" : {
                  "$ref" : "#/components/examples/3.1.1.4-Verify_account_and_currency_using_Pre-validation_data_providers_and_Central_BAV"
                },
                "3.1.1.5-Verify_account_and_address_using_Pre-validation_data_providers_and_Central_BAV" : {
                  "$ref" : "#/components/examples/3.1.1.5-Verify_account_and_address_using_Pre-validation_data_providers_and_Central_BAV"
                },
                "3.1.1.6-Verify_account_name_id_address_and_currency_using_Pre-validation_data_providers_and_Central_BAV" : {
                  "$ref" : "#/components/examples/3.1.1.6-Verify_account_name_id_address_and_currency_using_Pre-validation_data_providers_and_Central_BAV"
                },
                "3.1.1.7-Verify_account_using_Pre-validation_central_BAV_only" : {
                  "$ref" : "#/components/examples/3.1.1.7-Verify_account_using_Pre-validation_central_BAV_only"
                },
                "3.1.1.8-Verify_account_and_name_using_Pre-validation_data_providers_only" : {
                  "$ref" : "#/components/examples/3.1.1.8-Verify_account_and_name_using_Pre-validation_data_providers_only"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Result of a Verification of a creditor/beneficiary account request.\n",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AccountVerificationResponse"
                },
                "examples" : {
                  "3.1.2.1-PartyAccount_matches" : {
                    "$ref" : "#/components/examples/3.1.2.1-PartyAccount_matches"
                  },
                  "3.1.2.2-PartyName_matches" : {
                    "$ref" : "#/components/examples/3.1.2.2-PartyName_matches"
                  },
                  "3.1.2.3-PartyId_matches" : {
                    "$ref" : "#/components/examples/3.1.2.3-PartyId_matches"
                  },
                  "3.1.2.4-AccountCurrency_matches" : {
                    "$ref" : "#/components/examples/3.1.2.4-AccountCurrency_matches"
                  },
                  "3.1.2.5-PartyAddress_matches" : {
                    "$ref" : "#/components/examples/3.1.2.5-PartyAddress_matches"
                  },
                  "3.1.2.6-All_matching_results_provided" : {
                    "$ref" : "#/components/examples/3.1.2.6-All_matching_results_provided"
                  },
                  "3.1.2.7-Some_matching_results_provided" : {
                    "$ref" : "#/components/examples/3.1.2.7-Some_matching_results_provided"
                  },
                  "3.1.2.8-PartyAccount_does_not_match" : {
                    "$ref" : "#/components/examples/3.1.2.8-PartyAccount_does_not_match"
                  },
                  "3.1.2.9-PartyAccount_matches_Subaccount_does_not_match" : {
                    "$ref" : "#/components/examples/3.1.2.9-PartyAccount_matches_Subaccount_does_not_match"
                  },
                  "3.1.2.10-PartyAccount_matches_no_other_matching_done_Snapshot" : {
                    "$ref" : "#/components/examples/3.1.2.10-PartyAccount_matches_no_other_matching_done_Snapshot"
                  },
                  "3.1.2.11-PartyAccount_matches_likely_to_receive_funds" : {
                    "$ref" : "#/components/examples/3.1.2.11-PartyAccount_matches_likely_to_receive_funds"
                  },
                  "3.1.2.12-PartyAccount_matches_not_likely_to_receive_funds" : {
                    "$ref" : "#/components/examples/3.1.2.12-PartyAccount_matches_not_likely_to_receive_funds"
                  },
                  "3.1.2.13-PartyAccount_was_not_found" : {
                    "$ref" : "#/components/examples/3.1.2.13-PartyAccount_was_not_found"
                  },
                  "3.1.2.14-PartyAccount_was_not_found_out_of_scope" : {
                    "$ref" : "#/components/examples/3.1.2.14-PartyAccount_was_not_found_out_of_scope"
                  },
                  "3.1.2.15-PartyAccount_matches_more_likely_to_receive_funds_mixed_transactions" : {
                    "$ref" : "#/components/examples/3.1.2.15-PartyAccount_matches_more_likely_to_receive_funds_mixed_transactions"
                  },
                  "3.1.2.16-PartyAccount_matches_more_likely_to_not_receive_funds_mixed_transactions" : {
                    "$ref" : "#/components/examples/3.1.2.16-PartyAccount_matches_more_likely_to_not_receive_funds_mixed_transactions"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "API_Request_Is_Malformed" : {
                    "$ref" : "#/components/examples/BadRequest"
                  },
                  "Bad_Request_Parameters_Missing_Or_Not_Supported" : {
                    "$ref" : "#/components/examples/BadRequestParametersMissingOrNotSupported"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Invalid_Token" : {
                    "$ref" : "#/components/examples/InvalidToken"
                  },
                  "Inconsistent_Client" : {
                    "$ref" : "#/components/examples/InconsistentClient"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Insufficient_Scope" : {
                    "$ref" : "#/components/examples/InsufficientScope"
                  }
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Not_Found" : {
                    "$ref" : "#/components/examples/NotFound"
                  }
                }
              }
            }
          },
          "429" : {
            "description" : "Too Many Requests",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Too_Many_Request" : {
                    "$ref" : "#/components/examples/TooManyRequests"
                  }
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Service_Unavailable" : {
                    "$ref" : "#/components/examples/ServiceUnavailable"
                  },
                  "Data_Provider_Unavailable" : {
                    "$ref" : "#/components/examples/DataProviderUnavailable"
                  }
                }
              }
            }
          },
          "504" : {
            "description" : "Gateway Timeout",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "GatewayTimeout" : {
                    "$ref" : "#/components/examples/GatewayTimeout"
                  }
                }
              }
            }
          },
          "default" : {
            "description" : "Service Unavailable",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Service_Unavailable" : {
                    "$ref" : "#/components/examples/DefaultError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/data-providers/check" : {
      "post" : {
        "tags" : [ "Data Providers" ],
        "summary" : "Check and get details of the Payment Pre-validation Data Provider.",
        "description" : "Check whether the specified party agent is registered as a Data Provider and retrieve all relevant information regarding that Payment Pre-validation Data Provider.\n\nThis service returns information only for active Data Providers. Identification is based on one or more of the following identifiers: BIC, Clearing System Member Identification, or LEI.\n  \nWhen multiple identifiers are provided, the system checks them in the following order of precedence:\n  BIC → Clearing System Member Identification → LEI\n",
        "operationId" : "getDataProviderDetails",
        "parameters" : [ {
          "$ref" : "#/components/parameters/X-Request-ID"
        } ],
        "requestBody" : {
          "description" : "Request for checking the Data Provider information. \n\n\nAt least one of the party agent IDs must be provided in the request.\n",
          "required" : true,
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DataProviderRequest"
              },
              "examples" : {
                "DataProviderRequestWithBIC" : {
                  "$ref" : "#/components/examples/DataProviderRequestWithBIC"
                },
                "DataProviderRequestWithClearingSystem" : {
                  "$ref" : "#/components/examples/DataProviderRequestWithClearingSystem"
                },
                "DataProviderRequestWithLEI" : {
                  "$ref" : "#/components/examples/DataProviderRequestWithLEI"
                },
                "DataProviderRequestWithMultipleIdentifiers" : {
                  "$ref" : "#/components/examples/DataProviderRequestWithMultipleIdentifiers"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataProviderResponse"
                },
                "examples" : {
                  "DataProviderActiveResponse" : {
                    "$ref" : "#/components/examples/DataProviderActiveResponse"
                  },
                  "DataProviderNotActiveResponse" : {
                    "$ref" : "#/components/examples/DataProviderNotActiveResponse"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "API_Request_Is_Malformed" : {
                    "$ref" : "#/components/examples/BadRequest"
                  },
                  "Bad_Request_Parameters_Missing_Or_Not_Supported" : {
                    "$ref" : "#/components/examples/BadRequestParametersMissingOrNotSupported"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Invalid_Token" : {
                    "$ref" : "#/components/examples/InvalidToken"
                  }
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Insufficient_Scope" : {
                    "$ref" : "#/components/examples/InsufficientScope"
                  }
                }
              }
            }
          },
          "404" : {
            "description" : "Not Found",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Not_Found" : {
                    "$ref" : "#/components/examples/NotFound"
                  }
                }
              }
            }
          },
          "429" : {
            "description" : "Too Many Requests",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Too_Many_Request" : {
                    "$ref" : "#/components/examples/TooManyRequests"
                  }
                }
              }
            }
          },
          "503" : {
            "description" : "Service Unavailable",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Service_Unavailable" : {
                    "$ref" : "#/components/examples/ServiceUnavailable"
                  },
                  "Data_Provider_Unavailable" : {
                    "$ref" : "#/components/examples/DataProviderUnavailable"
                  }
                }
              }
            }
          },
          "504" : {
            "description" : "Gateway Timeout",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "GatewayTimeout" : {
                    "$ref" : "#/components/examples/GatewayTimeout"
                  }
                }
              }
            }
          },
          "default" : {
            "description" : "Service Unavailable",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorMessage"
                },
                "examples" : {
                  "Service_Unavailable" : {
                    "$ref" : "#/components/examples/DefaultError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ui-corridor-rules" : {
      "get" : {
        "tags" : [ "Payment Preparation" ],
        "summary" : "Get UI Corridor Rules.",
        "description" : "The endpoint enables Debtor Agents to request Creditor Market UI Payment rules (payment data) facilitating data capture prior to transaction submission, ensuring seamless end-to-end Straight-Through Processing (STP). The endpoint delivers country-specific payment regulations and information requirements, as defined by regulatory authorities and correspondent banks, to facilitate payment execution in JSON schema format.\n\n**Specifying Request Filter**\n\nParameters are specified in the form name=value. A parameter list is appended to a URI after a \"?\". Multiple parameters are separated by \"&\".\n        \n**Use of logical operator AND (payment-function and payment-type and country-from and country-to and currency-to)**\n\n https://api.swiftnet.sipn.swift.com/swift-preval/v1/ui-corridor-rules?payment-function=P2P&payment-type=A2A&country-from=UK&country-to=IN&currency-to=INR\n\n`Note that in this example, the query parameters are not URL encoded for readability.`\n",
        "operationId" : "getUICorridorRules",
        "parameters" : [ {
          "$ref" : "#/components/parameters/X-Request-ID"
        }, {
          "$ref" : "#/components/parameters/payment-function"
        }, {
          "$ref" : "#/components/parameters/payment-type"
        }, {
          "$ref" : "#/components/parameters/country-from"
        }, {
          "$ref" : "#/components/parameters/country-to"
        }, {
          "$ref" : "#/components/parameters/currency-to"
        }, {
          "$ref" : "#/components/parameters/version-date"
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "headers" : {
              "X-Request-ID" : {
                "$ref" : "#/components/headers/X-Request-ID"
              },
              "X-Payment-Scheme-Unique-ID" : {
                "$ref" : "#/components/headers/X-Payment-Scheme-Tracking-ID"
              }
            },
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : true
                },
                "examples" : {
                  "Example-1" : {
                    "$ref" : "#/components/examples/GetPaymentPreparationRuleEx-1"
                  }
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/400-BadRequest"
          },
          "401" : {
            "$ref" : "#/components/responses/401-Unauthorized"
          },
          "403" : {
            "$ref" : "#/components/responses/403-Forbidden"
          },
          "404" : {
            "$ref" : "#/components/responses/404-NotFound"
          },
          "406" : {
            "$ref" : "#/components/responses/406-NotAcceptable"
          },
          "413" : {
            "$ref" : "#/components/responses/414-URITooLong"
          },
          "415" : {
            "$ref" : "#/components/responses/415-UnsupportedMediaType"
          },
          "429" : {
            "$ref" : "#/components/responses/429-TooManyRequests"
          },
          "502" : {
            "$ref" : "#/components/responses/502-BadGateway"
          },
          "503" : {
            "$ref" : "#/components/responses/503-ServiceUnavailable"
          },
          "504" : {
            "$ref" : "#/components/responses/504-GatewayTimeout"
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "AccountIdentification4Choice" : {
        "x-MXComponent" : "AccountIdentification4Choice",
        "type" : "object",
        "description" : "Specifies the unique identification of an account as assigned by the account servicer.\n",
        "additionalProperties" : true,
        "oneOf" : [ {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "iban" : {
              "x-MXComponent" : "IBAN2007Identifier",
              "description" : "International Bank Account Number (IBAN) - identifier used internationally by financial institutions to uniquely identify the account of a customer. Further specifications of the format and content of the IBAN can be found in the standard ISO 13616 \"Banking and related financial services - International Bank Account Number (IBAN)\" version 1997-10-01, or later revisions.\n\nBased on datatype IBAN2007Identifier: The International Bank Account Number is a code used internationally by financial institutions to uniquely identify the account of a customer at a financial institution as described in the 2007 edition of the ISO 13616 standard \"Banking and related financial services - International Bank Account Number (IBAN)\" and replaced by the more recent edition of the standard.\n",
              "type" : "string",
              "pattern" : "^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$"
            }
          },
          "required" : [ "iban" ]
        }, {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "other" : {
              "$ref" : "#/components/schemas/GenericAccountIdentification1"
            }
          },
          "required" : [ "other" ]
        } ]
      },
      "AccountSchemeName1Choice" : {
        "x-MXComponent" : "AccountSchemeName1Choice",
        "type" : "object",
        "description" : "Sets of elements to identify a name of the identification scheme.\n",
        "additionalProperties" : true,
        "oneOf" : [ {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "code" : {
              "x-MXComponent" : "ExternalAccountIdentification1Code",
              "description" : "Name of the identification scheme, in a coded form as published in an external list.\n\nSpecifies the external account identification scheme name code in the format of character string with a maximum length of 4 characters.\nThe list of valid codes is an external code list published separately.\nExternal code sets can be downloaded from www.iso20022.org.\n",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 4
            }
          },
          "required" : [ "code" ]
        }, {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "proprietary" : {
              "x-MXComponent" : "Max35Text",
              "description" : "Name of the identification scheme, in a free text form.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 35
            }
          },
          "required" : [ "proprietary" ]
        } ]
      },
      "AccountVerificationRequest" : {
        "x-MXComponent" : "PartyVerifications1SWIFT",
        "type" : "object",
        "description" : "Configures a verification of a party request.\n",
        "additionalProperties" : false,
        "properties" : {
          "party" : {
            "description" : "Details of the party that will be verified.\n",
            "$ref" : "#/components/schemas/PartyIdentification319"
          },
          "party_account" : {
            "description" : "Identification of the account of the party to be verified.\n",
            "$ref" : "#/components/schemas/CashAccount217"
          },
          "party_agent" : {
            "description" : "Identification of the verification responder or Identification of the responding  service responder.\n\nUsage: Party Agent can be the account servicing agent of the account owner, or a payments service provider offering the validation of party service.\n\nWhenever clearing member identification is used as per the above guidelines, the clearing system identifiers are published as external codes on www.iso20022.org . Since December 2024, this code list also foresees the use of the country code as clearing system identifiers for countries without explicitly listed clearing systems.\n",
            "$ref" : "#/components/schemas/FinancialInstitutionIdentification27"
          },
          "requestor" : {
            "description" : "Identification of the verification requestor.\n",
            "$ref" : "#/components/schemas/OrganisationIdentification39"
          },
          "unstructured_remittance_information" : {
            "type" : "array",
            "maxItems" : 8,
            "description" : "Information supplied to enable the matching/reconciliation of an entry with the items that the payment is intended to settle, such as commercial invoices in an accounts receivable system, in an unstructured form.\n\nUsage: Can be used to identify sub-accounts of Party Account.\n",
            "items" : {
              "x-MXComponent" : "Max140Text",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 140
            }
          },
          "context" : {
            "x-MXComponent" : "PartyVerificationScope1Code",
            "description" : "Context of the party verification process.\n\nContext of a party verification service, in a codified form.\n\nCode Name Definition:\n*`CRDT` - CreditTransfer - Verification is in scope of a credit transfer process.\n*`DDEB` - DirectDebit - Verification is in scope of a direct debit process.\n*`OTHR` - Other - Verification is in scope of a different process than those covered by the other codes.\n*`REGI` - Registration - Verification is in scope of a party account registration or maintenance process.\n",
            "type" : "string",
            "enum" : [ "CRDT", "DDEB", "OTHR", "REGI" ]
          },
          "uetr" : {
            "x-MXComponent" : "UUIDv4Identifier",
            "description" : "Universally unique identifier to provide an end-to-end reference of a payment transaction.\n\nUsage: A service provider could use the UETR to link a verification of party to a payment transaction.\n\nBased on datatype UUIDv4Identifier: Universally Unique IDentifier (UUID) version 4, as described in IETC RFC 4122 \"Universally Unique IDentifier (UUID) URN Namespace\".\n",
            "type" : "string",
            "pattern" : "^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$"
          },
          "proprietary_service_parameters" : {
            "$ref" : "#/components/schemas/ProprietaryServiceParameter2"
          }
        },
        "required" : [ "party_account", "party_agent", "requestor", "context", "proprietary_service_parameters" ]
      },
      "AccountVerificationResponse" : {
        "x-MXComponent" : "PartyVerificationsReport1SWIFT",
        "type" : "object",
        "description" : "Result of a verification of party request.\n",
        "additionalProperties" : false,
        "properties" : {
          "party_name_match" : {
            "x-MXComponent" : "ItemMatch1Code",
            "description" : "Party name matching result reported by the verification service provider.\n\nCodified item matching level in a verification service.\nUsage: item could be for example the name or identification of a party.\n\nCode Name Definition:\n*`CMTC` - CloseMatch - Items closely resemble each other, as defined in the matching criteria of the verification service provider.\n*`MTCH` - Match - Items match according to the matching criteria set by the verification service provider.\n*`NMTC` - NoMatch - Items do not match according to the matching criteria set by the verification service provider.\n*`NOAP` - NotApplicable - Item verification check is not possible or not applicable.\n",
            "type" : "string",
            "enum" : [ "CMTC", "MTCH", "NMTC", "NOAP" ]
          },
          "party_identification_match" : {
            "x-MXComponent" : "ItemMatch2Code",
            "description" : "Party identification matching result reported by the verification service provider.\n\nCodified item matching level in a verification service.\nUsage: item could be for example the name or identification of a party.\n\nCode Name Definition:\n*`MTCH` - Match - Items match according to the matching criteria set by the verification service provider.\n*`NMTC` - NoMatch - Items do not match according to the matching criteria set by the verification service provider.\n*`NOAP` - NotApplicable - Item verification check is not possible or not applicable.\n",
            "type" : "string",
            "enum" : [ "MTCH", "NMTC", "NOAP" ]
          },
          "account_match" : {
            "x-MXComponent" : "ItemMatch3Code",
            "description" : "Account matching result reported by the verification service provider. \n\nCodified item matching level in a verification service.\nUsage: item could be for example the name or identification of a party.\n\nCode Name Definition:\n*`MTCF` - MatchFailing - Items match according to the matching criteria set by the verification service provider. However, the item is not available for its expected function.\n  Example, in the context of an account verification, the account numbers would match but the account cannot send or receive funds.\n*`MTCH` - Match - Items match according to the matching criteria set by the verification service provider.\n*`MTCP` - MatchCanProcess - Items match according to the matching criteria set by the verification service provider. In additiom, the item is available for its expected function.\n  Example, in the context of an account verification, the account numbers would match andthe account is able to send or receive funds.\n*`NMTC` - NoMatch - Items do not match according to the matching criteria set by the verification service provider.\n*`NOAP` - NotApplicable - Item verification check is not possible or not applicable.\n*`SNMC` - SubAccountNoMatch - Account matches, but sub account as defined in unstructured remittance information does not match.\n",
            "type" : "string",
            "enum" : [ "MTCF", "MTCH", "MTCP", "NMTC", "NOAP", "SNMC" ]
          },
          "account_currency_match" : {
            "x-MXComponent" : "ItemMatch2Code",
            "description" : "Account currency matching result reported by the verification service provider.\n\nCodified item matching level in a verification service.\nUsage: item could be for example the name or identification of a party.\n\nCode Name Definition:\n*`MTCH` - Match - Items match according to the matching criteria set by the verification service provider.\n*`NMTC` - NoMatch - Items do not match according to the matching criteria set by the verification service provider.\n*`NOAP` - NotApplicable - Item verification check is not possible or not applicable.\n",
            "type" : "string",
            "enum" : [ "MTCH", "NMTC", "NOAP" ]
          },
          "account_owner_type" : {
            "x-MXComponent" : "AccountOwnerOrganisationType1Code",
            "description" : "Specifies the type of account ownership.\n\nCode Name Definition:\n*`ORGN` - Organisation - An organisation owns the account.\n    Usage: This can be any kind of organisation, for example corporate, not for profit, government.\n*`PRIV` - Private - A private person owns the account.\n",
            "type" : "string",
            "enum" : [ "ORGN", "PRIV" ]
          },
          "party_postal_address_match" : {
            "x-MXComponent" : "ItemMatch1Code",
            "description" : "Party postal address matching result reported by the verification service provider.\n\nCodified item matching level in a verification service.\nUsage: item could be for example the name or identification of a party.\n\nCode Name Definition:\n*`CMTC` - CloseMatch - Items closely resemble each other, as defined in the matching criteria of the verification service provider.\n*`MTCH` - Match - Items match according to the matching criteria set by the verification service provider.\n*`NMTC` - NoMatch - Items do not match according to the matching criteria set by the verification service provider.\n*`NOAP` - NotApplicable - Item verification check is not possible or not applicable.\n",
            "type" : "string",
            "enum" : [ "CMTC", "MTCH", "NMTC", "NOAP" ]
          },
          "verification_source" : {
            "x-MXComponent" : "VerificationSource1Code",
            "description" : "Origin of the data used to verify the request.\n\nCodified identification of the origin of the data used by verification service provider.\n\nCode Name Definition:\n*`HOLD` - Holder - Verification source is the responding payments service provider itself, possibly using a solution provider.\n*`OBSD` - Observed - Verification source is derived from observed data, for example based on statistics of past transactions.\n*`SNAP` - Snapshot - Verification source is based on a copy of the data. It is a snapshot of the data at a moment in time.\n",
            "type" : "string",
            "enum" : [ "HOLD", "OBSD", "SNAP" ]
          },
          "verification_reason" : {
            "type" : "array",
            "description" : "Codified context of the verification results, informed by the verification service provider. \nThe foreseen codes are documented externally in the [Payment Pre-validation Functional Specifications - API V3](https://www2.swift.com/knowledgecentre/publications/pay_pre_vld_func_spec_api_v3).\n\nBased on datatype Max4Text: Specifies a character string with a maximum length of 4 characters.\n",
            "items" : {
              "x-MXComponent" : "Max4Text",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 4
            }
          },
          "matched_name" : {
            "x-MXComponent" : "Max140Text",
            "description" : "Name of the payment counterparty as reported by responding payments service provider.\n\nUsage: Recommended to fill in MatchedName when PartyNameMatch is CMTC : Close Match.\n\nBased on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 140
          },
          "matched_postal_address" : {
            "description" : "Information that locates and identifies a specific address, as defined by postal services.\n\nUsage: Recommended to fill in MatchedPostalAddress when PartyPostalAddressMatch is CMTC : Close Match.\n",
            "$ref" : "#/components/schemas/PostalAddress31"
          }
        },
        "required" : [ "verification_source" ]
      },
      "AddressType3Choice" : {
        "x-MXComponent" : "AddressType3Choice",
        "type" : "object",
        "description" : "Choice of formats for the type of address.\n",
        "additionalProperties" : true,
        "oneOf" : [ {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "code" : {
              "x-MXComponent" : "AddressType2Code",
              "description" : "Type of address expressed as a code.\n\nSpecifies the type of address.\n\nCode Name Definition:\n*`ADDR` - Postal - Address is the complete postal address.\n*`BIZZ` - Business - Address is the business address.\n*`DLVY` - DeliveryTo - Address is the address to which delivery is to take place.\n*`HOME` - Residential - Address is the home address.\n*`MLTO` - MailTo - Address is the address to which mail is sent.\n*`PBOX` - POBox - Address is a postal office (PO) box.\n",
              "type" : "string",
              "enum" : [ "ADDR", "BIZZ", "DLVY", "HOME", "MLTO", "PBOX" ]
            }
          },
          "required" : [ "code" ]
        }, {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "proprietary" : {
              "$ref" : "#/components/schemas/GenericIdentification30"
            }
          },
          "required" : [ "proprietary" ]
        } ]
      },
      "BICFIDec2014Identifier" : {
        "type" : "string",
        "description" : "Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362: 2014 - \"Banking - Banking telecommunication messages - Business identifier code (BIC)\".",
        "pattern" : "^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"
      },
      "CashAccount217" : {
        "x-MXComponent" : "CashAccount217",
        "type" : "object",
        "description" : "Provides the details to identify an account.\n",
        "additionalProperties" : false,
        "properties" : {
          "identification" : {
            "$ref" : "#/components/schemas/AccountIdentification4Choice"
          },
          "currency" : {
            "x-MXComponent" : "ActiveOrHistoricCurrencyCode",
            "description" : "Identification of the currency in which the account is held. \n\nUsage: Currency can be used in case the initiating party needs to identify which currency needs to be used for settlement on the account.\n\nA code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 \"Codes for the representation of currencies and funds\".\n",
            "type" : "string",
            "pattern" : "^[A-Z]{3,3}$"
          },
          "proxy" : {
            "$ref" : "#/components/schemas/ProxyAccountIdentification1"
          }
        }
      },
      "ClearingSystemIdentification2Choice" : {
        "x-MXComponent" : "ClearingSystemIdentification2Choice",
        "type" : "object",
        "description" : "Choice of a clearing system identifier.\n",
        "additionalProperties" : true,
        "oneOf" : [ {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "code" : {
              "x-MXComponent" : "ExternalClearingSystemIdentification1Code",
              "description" : "Identification of a clearing system, in a coded form as published in an external list.\n\nSpecifies the clearing system identification code, as published in an external clearing system identification code list.\nExternal code sets can be downloaded from www.iso20022.org.\n",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 5
            }
          },
          "required" : [ "code" ]
        }, {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "proprietary" : {
              "x-MXComponent" : "Max35Text",
              "description" : "Identification code for a clearing system, that has not yet been identified in the list of clearing systems.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 35
            }
          },
          "required" : [ "proprietary" ]
        } ]
      },
      "ClearingSystemMemberIdentification2" : {
        "x-MXComponent" : "ClearingSystemMemberIdentification2",
        "type" : "object",
        "description" : "Unique identification, as assigned by a clearing system, to unambiguously identify a member of the clearing system.\n",
        "additionalProperties" : false,
        "properties" : {
          "clearing_system_identification" : {
            "$ref" : "#/components/schemas/ClearingSystemIdentification2Choice"
          },
          "member_identification" : {
            "x-MXComponent" : "Max35Text",
            "description" : "Identification of a member of a clearing system.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 35
          }
        },
        "required" : [ "member_identification" ]
      },
      "DataProviderRequest" : {
        "type" : "object",
        "description" : "Request body for Data Provider lookup",
        "additionalProperties" : false,
        "properties" : {
          "party_agent" : {
            "$ref" : "#/components/schemas/FinancialInstitutionIdentification27"
          }
        }
      },
      "DataProviderResponse" : {
        "type" : "object",
        "description" : "Identification of the Data Provider for the Payment Pre-validation services, with details about the Data Provider implementation.\n",
        "additionalProperties" : false,
        "properties" : {
          "party_agent_match" : {
            "type" : "string",
            "description" : "Indicates if the Party Agent provided in the request resulted in a match on the active data providers or not.\n\n`MTCH` - Match - There is a match on the Party Agent provided in the request and the Party Agent is an active Data Provider.\n\n`NMTC` - NoMatch - There is no match on the Party Agent provided in the request and the Party Agent is not an active Data Provider.\n",
            "minLength" : 1,
            "maxLength" : 4
          },
          "party_agent_id" : {
            "type" : "string",
            "description" : "Identification of a financial institution.\n",
            "minLength" : 1,
            "maxLength" : 35
          },
          "party_agent_id_type" : {
            "type" : "string",
            "description" : "Code defining the identification type of a financial institution:\n\n  `BIC` - The party agent is identified through a Business Identifier Code\n  \n  `LEI` - The party agent is identified through a Legal Entity Identifier\n  \n  `CLG` - The party agent is identified through a Clearing System Member Identification\n",
            "minLength" : 1,
            "maxLength" : 3
          },
          "data_provider_name" : {
            "type" : "string",
            "description" : "Name of the data provider.\n",
            "minLength" : 1,
            "maxLength" : 140
          },
          "data_provider_institution_bic" : {
            "$ref" : "#/components/schemas/BICFIDec2014Identifier"
          },
          "data_provider_type" : {
            "type" : "string",
            "description" : "Indicates if the Data Provider services are directly offered by the financial institution or through an aggregator.\n\n  `AGG` - The data provider is an aggregator\n  \n  `DIR` - The data provider is the financial institution holding the account\n",
            "minLength" : 1,
            "maxLength" : 3
          },
          "support_channel" : {
            "type" : "string",
            "description" : "Indicates the support channel of the data provider.\n",
            "minLength" : 1,
            "maxLength" : 256
          },
          "environment" : {
            "type" : "string",
            "description" : "The environment in which the data provider is active:\n\n  `LIVE` - If the data provder is active in LIVE environment.\n  \n  `PILOT` - If the data provder is active in PILOT or TEST environment.\n",
            "minLength" : 1,
            "maxLength" : 5
          },
          "versions" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/VersionDetails"
            },
            "description" : "List of version configurations for this environment"
          }
        }
      },
      "FinancialInstitutionIdentification27" : {
        "x-MXComponent" : "FinancialInstitutionIdentification27",
        "type" : "object",
        "description" : "Specifies the details to identify a financial institution.\nDerived from FinancialInstitutionIdentification23.\n",
        "additionalProperties" : false,
        "properties" : {
          "bicfi" : {
            "x-MXComponent" : "BICFIDec2014Identifier",
            "description" : "Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362 \"Banking - Banking telecommunication messages - Business identifier code (BIC)\".\n\nBased on datatype BICFIDec2014Identifier: Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362: 2014 - \"Banking - Banking telecommunication messages - Business identifier code (BIC)\".\n",
            "type" : "string",
            "pattern" : "^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"
          },
          "clearing_system_member_identification" : {
            "$ref" : "#/components/schemas/ClearingSystemMemberIdentification2"
          },
          "lei" : {
            "x-MXComponent" : "LEIIdentifier",
            "description" : "Legal entity identifier of the financial institution.\n\nBased on datatype LEIIdentifier: Legal Entity Identifier is a code allocated to a party as described in ISO 17442 \"Financial Services - Legal Entity Identifier (LEI)\".\n",
            "type" : "string",
            "pattern" : "^[A-Z0-9]{18,18}[0-9]{2,2}$"
          }
        }
      },
      "GenericAccountIdentification1" : {
        "x-MXComponent" : "GenericAccountIdentification1",
        "type" : "object",
        "description" : "Information related to a generic account identification.\n",
        "additionalProperties" : false,
        "properties" : {
          "identification" : {
            "x-MXComponent" : "Max34Text",
            "description" : "Identification assigned by an institution.\n\nBased on datatype Max34Text: Specifies a character string with a maximum length of 34 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 34
          },
          "scheme_name" : {
            "$ref" : "#/components/schemas/AccountSchemeName1Choice"
          },
          "issuer" : {
            "x-MXComponent" : "Max35Text",
            "description" : "Entity that assigns the identification.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 35
          }
        },
        "required" : [ "identification" ]
      },
      "GenericIdentification30" : {
        "x-MXComponent" : "GenericIdentification30",
        "type" : "object",
        "description" : "Information related to an identification, for example, party identification or account identification.\n",
        "additionalProperties" : false,
        "properties" : {
          "identification" : {
            "x-MXComponent" : "Exact4AlphaNumericText",
            "description" : "Proprietary information, often a code, issued by the data source scheme issuer.\n\nBased on datatype Exact4AlphaNumericText: Specifies an alphanumeric string with a length of 4 characters.\n",
            "type" : "string",
            "pattern" : "^[a-zA-Z0-9]{4}$"
          },
          "issuer" : {
            "x-MXComponent" : "Max35Text",
            "description" : "Entity that assigns the identification.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 35
          },
          "scheme_name" : {
            "x-MXComponent" : "Max35Text",
            "description" : "Short textual description of the scheme.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 35
          }
        },
        "required" : [ "identification", "issuer" ]
      },
      "GenericOrganisationIdentification3" : {
        "x-MXComponent" : "GenericOrganisationIdentification3",
        "type" : "object",
        "description" : "Information related to an identification of an organisation.\n",
        "additionalProperties" : false,
        "properties" : {
          "identification" : {
            "x-MXComponent" : "Max256Text",
            "description" : "Identification assigned by an institution.\n\nBased on datatype Max256Text: Specifies a character string with a maximum length of 256 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 256
          },
          "scheme_name" : {
            "$ref" : "#/components/schemas/OrganisationIdentificationSchemeName1Choice"
          },
          "issuer" : {
            "x-MXComponent" : "Max35Text",
            "description" : "Entity that assigns the identification.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 35
          }
        },
        "required" : [ "identification" ]
      },
      "GenericPersonIdentification2" : {
        "x-MXComponent" : "GenericPersonIdentification2",
        "type" : "object",
        "description" : "Information related to an identification of a person.\n",
        "additionalProperties" : false,
        "properties" : {
          "identification" : {
            "x-MXComponent" : "Max256Text",
            "description" : "Unique and unambiguous identification of a person.\n\nBased on datatype Max256Text: Specifies a character string with a maximum length of 256 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 256
          },
          "scheme_name" : {
            "$ref" : "#/components/schemas/PersonIdentificationSchemeName1Choice"
          },
          "issuer" : {
            "x-MXComponent" : "Max35Text",
            "description" : "Entity that assigns the identification.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 35
          }
        },
        "required" : [ "identification" ]
      },
      "OrganisationIdentification39" : {
        "x-MXComponent" : "OrganisationIdentification39",
        "type" : "object",
        "description" : "Unique and unambiguous way to identify an organisation.\n",
        "additionalProperties" : false,
        "properties" : {
          "any_bic" : {
            "x-MXComponent" : "AnyBICDec2014Identifier",
            "description" : "Business identification code of the organisation.\n\nBased on datatype AnyBICDec2014Identifier: Code allocated to a financial or non-financial institution by the ISO 9362 Registration Authority, as described in ISO 9362: 2014 - \"Banking - Banking telecommunication messages - Business identifier code (BIC)\".\n",
            "type" : "string",
            "pattern" : "^[A-Z0-9]{4,4}[A-Z]{2,2}[A-Z0-9]{2,2}([A-Z0-9]{3,3}){0,1}$"
          },
          "lei" : {
            "x-MXComponent" : "LEIIdentifier",
            "description" : "Legal entity identification as an alternate identification for a party.\n\nBased on datatype LEIIdentifier: Legal Entity Identifier is a code allocated to a party as described in ISO 17442 \"Financial Services - Legal Entity Identifier (LEI)\".\n",
            "type" : "string",
            "pattern" : "^[A-Z0-9]{18,18}[0-9]{2,2}$"
          },
          "other" : {
            "$ref" : "#/components/schemas/GenericOrganisationIdentification3"
          }
        }
      },
      "OrganisationIdentificationSchemeName1Choice" : {
        "x-MXComponent" : "OrganisationIdentificationSchemeName1Choice",
        "type" : "object",
        "description" : "Sets of elements to identify a name of the organisation identification scheme.\n",
        "additionalProperties" : true,
        "oneOf" : [ {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "code" : {
              "x-MXComponent" : "ExternalOrganisationIdentification1Code",
              "description" : "Name of the identification scheme, in a coded form as published in an external list.\n\nSpecifies the external organisation identification scheme name code in the format of character string with a maximum length of 4 characters.\nThe list of valid codes is an external code list published separately.\nExternal code sets can be downloaded from www.iso20022.org.\n",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 4
            }
          },
          "required" : [ "code" ]
        }, {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "proprietary" : {
              "x-MXComponent" : "Max35Text",
              "description" : "Name of the identification scheme, in a free text form.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 35
            }
          },
          "required" : [ "proprietary" ]
        } ]
      },
      "Party62Choice" : {
        "x-MXComponent" : "Party62Choice",
        "type" : "object",
        "description" : "Specifies the identification of a person or an organisation.\n",
        "additionalProperties" : true,
        "oneOf" : [ {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "organisation_identification" : {
              "$ref" : "#/components/schemas/OrganisationIdentification39"
            }
          },
          "required" : [ "organisation_identification" ]
        }, {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "private_identification" : {
              "$ref" : "#/components/schemas/GenericPersonIdentification2"
            }
          },
          "required" : [ "private_identification" ]
        } ]
      },
      "PartyIdentification319" : {
        "x-MXComponent" : "PartyIdentification319",
        "type" : "object",
        "description" : "Specifies the identification of a person or an organisation.\n",
        "additionalProperties" : false,
        "properties" : {
          "name" : {
            "x-MXComponent" : "Max140Text",
            "description" : "Name by which a party is known and which is usually used to identify that party.\n\nBased on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 140
          },
          "postal_address" : {
            "$ref" : "#/components/schemas/PostalAddress31"
          },
          "identification" : {
            "$ref" : "#/components/schemas/Party62Choice"
          }
        }
      },
      "PersonIdentificationSchemeName1Choice" : {
        "x-MXComponent" : "PersonIdentificationSchemeName1Choice",
        "type" : "object",
        "description" : "Sets of elements to identify a name of the identification scheme.",
        "additionalProperties" : true,
        "oneOf" : [ {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "code" : {
              "x-MXComponent" : "ExternalPersonIdentification1Code",
              "description" : "Name of the identification scheme, in a coded form as published in an external list.\n\nSpecifies the external person identification scheme name code in the format of character string with a maximum length of 4 characters.\nThe list of valid codes is an external code list published separately.\nExternal code sets can be downloaded from www.iso20022.org.\n",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 4
            }
          },
          "required" : [ "code" ]
        }, {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "proprietary" : {
              "x-MXComponent" : "Max35Text",
              "description" : "Name of the identification scheme, in a free text form.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 35
            }
          },
          "required" : [ "proprietary" ]
        } ]
      },
      "PostalAddress31" : {
        "x-MXComponent" : "PostalAddress31",
        "type" : "object",
        "description" : "Information that locates and identifies a specific address, as defined by postal services.\n",
        "additionalProperties" : false,
        "properties" : {
          "address_type" : {
            "$ref" : "#/components/schemas/AddressType3Choice"
          },
          "care_of" : {
            "x-MXComponent" : "Max140Text",
            "description" : "Identifies an addressee that is accepting the correspondence for the intended recipient. Using care of ensures the correspondence reaches the right recipient rather than getting returned to the sender.\n\nBased on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 140
          },
          "department" : {
            "x-MXComponent" : "Max70Text",
            "description" : "Identification of a division of a large organisation or building.\n\nBased on datatype Max70Text: Specifies a character string with a maximum length of 70characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 70
          },
          "sub_department" : {
            "x-MXComponent" : "Max70Text",
            "description" : "Identification of a sub-division of a large organisation or building.\n\nBased on datatype Max70Text: Specifies a character string with a maximum length of 70characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 70
          },
          "street_name" : {
            "x-MXComponent" : "Max140Text",
            "description" : "Name of a street or thoroughfare.\n\nBased on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 140
          },
          "building_number" : {
            "x-MXComponent" : "Max16Text",
            "description" : "Number that identifies the position of a building on a street.\n\nBased on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 16
          },
          "building_name" : {
            "x-MXComponent" : "Max140Text",
            "description" : "Name of the building or house.\n\nBased on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 140
          },
          "floor" : {
            "x-MXComponent" : "Max70Text",
            "description" : "Floor or storey within a building.\n\nBased on datatype Max70Text: Specifies a character string with a maximum length of 70characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 70
          },
          "unit_number" : {
            "x-MXComponent" : "Max16Text",
            "description" : "Identifies a flat or dwelling within the building.\n\nBased on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 16
          },
          "post_box" : {
            "x-MXComponent" : "Max16Text",
            "description" : "Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for.\n\nBased on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 16
          },
          "room" : {
            "x-MXComponent" : "Max70Text",
            "description" : "Building room number.\n\nBased on datatype Max70Text: Specifies a character string with a maximum length of 70characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 70
          },
          "post_code" : {
            "x-MXComponent" : "Max16Text",
            "description" : "Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail.\n\nUsage rule: Post Code or Town Name must be present. Both Post Code and Town Name can be present.\n\nBased on datatype Max16Text: Specifies a character string with a maximum length of 16 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 16
          },
          "town_name" : {
            "x-MXComponent" : "Max140Text",
            "description" : "Name of a built-up area, with defined boundaries, and a local government.\n\nUsage rule: Post Code or Town Name must be present. Both Post Code and Town Name can be present.\n\nBased on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 140
          },
          "town_location_name" : {
            "x-MXComponent" : "Max140Text",
            "description" : "Specific location name within the town.\n\nBased on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 140
          },
          "district_name" : {
            "x-MXComponent" : "Max140Text",
            "description" : "Identifies a subdivision within a country sub-division.\n\nBased on datatype Max140Text: Specifies a character string with a maximum length of 140 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 140
          },
          "country_sub_division" : {
            "x-MXComponent" : "Max35Text",
            "description" : "Identifies a subdivision of a country such as state, region, county.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 35
          },
          "country" : {
            "x-MXComponent" : "CountryCode",
            "description" : "Nation with its own government.\n\nCode to identify a country, a dependency, or another area of particular geopolitical interest, on the basis of country names obtained from the United Nations (ISO 3166, Alpha-2 code).\n",
            "type" : "string",
            "pattern" : "^[A-Z]{2,2}$"
          },
          "address_line" : {
            "type" : "array",
            "maxItems" : 7,
            "description" : "Information that locates and identifies a specific address, as defined by postal services, presented in free format text.\n\nBased on datatype Max70Text: Specifies a character string with a maximum length of 70characters.\n",
            "items" : {
              "x-MXComponent" : "Max70Text",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 70
            }
          }
        },
        "required" : [ "country" ]
      },
      "ProprietaryServiceParameter2" : {
        "x-MXComponent" : "ProprietaryServiceParameter2",
        "type" : "object",
        "description" : "Proprietary configuration parameters used by the service provider.\n\nUsage for SWIFT BAV service V3:\nCode: SCHM, for VerificationScheme\nQualifier: PVAH, PVHI, PVAG\n\n*'PVAH'*-Scheme is Swift Payment Pre-validation. Validation source must be data provider or aggregator for data providers first and Central BAV only that uses statistics of past transactions second.\n*'PVHI'*-Scheme is Swift Payment Pre-validation. Validation source must be Central BAV only that uses statistics of past transactions.\n*'PVAG'*-Scheme is Swift Payment Pre-validation. Validation source must be data provider or aggregator for data providers only.\n",
        "additionalProperties" : false,
        "properties" : {
          "code" : {
            "x-MXComponent" : "Max4Text",
            "description" : "Proprietary code that defines a category of functionality in the service.\n\nUsage for SWIFT BAV service V3:\nCode: SCHM, for VerificationScheme\n",
            "type" : "string",
            "enum" : [ "SCHM" ]
          },
          "qualifier" : {
            "x-MXComponent" : "Max4Text",
            "description" : "Proprietary service parameter qualifier. \n\nUsage: to further subcategorise a service parameter code.\n\nUsage for SWIFT BAV service V3:\nQualifier: PVAH, PVHI, PVAG\n\n*'PVAH'*-Scheme is Swift Payment Pre-validation. Validation source must be data provider or aggregator for data providers first and Central BAV only that uses statistics of past transactions second.\n*'PVHI'*-Scheme is Swift Payment Pre-validation. Validation source must be Central BAV only that uses statistics of past transactions.\n*'PVAG'*-Scheme is Swift Payment Pre-validation. Validation source must be data provider or aggregator for data providers only.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 4
          }
        },
        "required" : [ "code", "qualifier" ]
      },
      "ProxyAccountIdentification1" : {
        "x-MXComponent" : "ProxyAccountIdentification1",
        "type" : "object",
        "description" : "Information related to a proxy  identification of the account.\n",
        "additionalProperties" : false,
        "properties" : {
          "type" : {
            "$ref" : "#/components/schemas/ProxyAccountType1Choice"
          },
          "identification" : {
            "x-MXComponent" : "Max2048Text",
            "description" : "Identification used to indicate the account identification under another specified name.\n\nBased on datatype Max2048Text: Specifies a character string with a maximum length of 2048 characters.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 2048
          }
        },
        "required" : [ "identification" ]
      },
      "ProxyAccountType1Choice" : {
        "x-MXComponent" : "ProxyAccountType1Choice",
        "type" : "object",
        "description" : "Specifies the scheme used for the identification of an account alias.\n",
        "additionalProperties" : true,
        "oneOf" : [ {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "code" : {
              "x-MXComponent" : "ExternalProxyAccountType1Code",
              "description" : "Name of the identification scheme, in a coded form as published in an external list.\n\nSpecifies the external proxy account type code, as published in the proxy account type external code set.\nExternal code sets can be downloaded from www.iso20022.org.\n",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 4
            }
          },
          "required" : [ "code" ]
        }, {
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "proprietary" : {
              "x-MXComponent" : "Max35Text",
              "description" : "Name of the identification scheme, in a free text form.\n\nBased on datatype Max35Text: Specifies a character string with a maximum length of 35 characters.\n",
              "type" : "string",
              "minLength" : 1,
              "maxLength" : 35
            }
          },
          "required" : [ "proprietary" ]
        } ]
      },
      "VersionConfiguration" : {
        "type" : "object",
        "description" : "Configuration details for a specific version\n",
        "properties" : {
          "verification_source" : {
            "type" : "string",
            "description" : "Indicates the source of verification\n  `SNAP` - Snapshot of the account data\n  `HOLD` - Holder of the account data\n  `OBSD` - Observed based on historical transactions\n  `PEND` - Data collection is in progress or is unavailable\n",
            "minLength" : 1,
            "maxLength" : 4
          },
          "country_scope" : {
            "type" : "string",
            "description" : "Indicates the countries supported or not supported by the Data Provider. If empty, there is no restriction on the requestor country.\n",
            "minLength" : 1,
            "maxLength" : 512
          },
          "account_owner_type" : {
            "type" : "string",
            "description" : "Indicates the type of account ownership supported for verification by the Data Provider.\n  `ORGN` -  Organisation - An organisation owns the account. Usage: This can be any kind of organisation, for example corporate, not for profit, government.\n  `PRIV` - Private - A private person owns the account.\n  `ANYY` - The two options are available for verification (e.g., Organisation and Private).\n  `PEND` - Data collection is in progress or is unavailable.\n",
            "minLength" : 1,
            "maxLength" : 4
          },
          "party_name_match" : {
            "type" : "string",
            "description" : "Indicates if the Data provider supports Party Name match.\n  `Y`-Data Provider supports name match\n  `N`-Data Provider does not support name match\n",
            "minLength" : 1,
            "maxLength" : 1
          },
          "party_name_close_match" : {
            "type" : "string",
            "description" : "Indicates if the Data provider supports close matching for party name.\n  `Y`-Data Provider supports close name matching\n  `N`-Data Provider does not support close name matching\n",
            "minLength" : 1,
            "maxLength" : 1
          },
          "party_postal_address_match" : {
            "type" : "string",
            "description" : "Indicates if the Data provider supports Party postal address match.\n  `Y`-Data Provider supports party postal address match\n  `N`-Data Provider does not support party postal address match\n",
            "minLength" : 1,
            "maxLength" : 1
          },
          "account_currency_match" : {
            "type" : "string",
            "description" : "Indicates if the Data provider supports Account currency match.\n  `Y`-Data Provider supports account currency match\n  `N`-Data Provider does not support account currency match\n",
            "minLength" : 1,
            "maxLength" : 1
          },
          "party_identification_match" : {
            "type" : "string",
            "description" : "Indicates if the Data provider supports Party identification match.\n  `Y`-Data Provider supports party identification match\n  `N`-Data Provider does not support party identification match\n",
            "minLength" : 1,
            "maxLength" : 1
          },
          "additional_information" : {
            "type" : "string",
            "description" : "Provides any other relevant information applicable to the data provider.\n",
            "minLength" : 1,
            "maxLength" : 1024
          }
        }
      },
      "VersionDetails" : {
        "type" : "object",
        "description" : "Version-specific configuration details",
        "properties" : {
          "version" : {
            "type" : "string",
            "description" : "Indicates the API version that the Data Provider is supporting on the Payment Pre-validation Data Provider services.\n\n  `v3` - The data provider is supporting BAV v3\n  \n  `v2` - The data provider is supporting BAV v2\n",
            "minLength" : 1,
            "maxLength" : 4
          },
          "configuration" : {
            "$ref" : "#/components/schemas/VersionConfiguration"
          }
        },
        "required" : [ "version", "configuration" ]
      },
      "Errors" : {
        "description" : "Container to return multiple ErrorMessage object. Collection of error can be useful when API needs to return multiple errors, for example validation errors. When the response code conveys application-specific functional semantics and consumer can parse machine-readable error code, this block can be useful. The error response must contain at least one error object.",
        "type" : "array",
        "items" : {
          "$ref" : "#/components/schemas/ErrorMessage"
        }
      },
      "ErrorMessage" : {
        "description" : "Custom error schema to support detailed error message.\n",
        "type" : "object",
        "readOnly" : true,
        "additionalProperties" : false,
        "properties" : {
          "severity" : {
            "description" : "Specifies the severity of the error.\n",
            "type" : "string",
            "enum" : [ "Fatal", "Transient", "Logic" ]
          },
          "code" : {
            "description" : "Specifies the custom error code as defined by the service provider.\n",
            "type" : "string",
            "minLength" : 3,
            "maxLength" : 70
          },
          "text" : {
            "description" : "Specifies the detail error message identifying the cause of the error.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 255
          },
          "user_message" : {
            "description" : "A human-readable text describing the error.\n",
            "type" : "string",
            "minLength" : 1,
            "maxLength" : 255
          },
          "more_info" : {
            "description" : "Specifies an URL to find more information about the error.\n",
            "type" : "string",
            "format" : "uri"
          }
        },
        "required" : [ "code", "severity", "text" ]
      }
    },
    "headers" : {
      "X-Request-ID" : {
        "description" : "The header is a unique identifier used to track an API request throughout its entire lifecycle. It serves as a \"trace\" for a given request/response cycle, allowing each system component that handles the request to associate logs, metrics, and actions with the same ID, facilitating debugging, monitoring, and tracing across distributed systems.",
        "schema" : {
          "type" : "string",
          "maxLength" : 75
        },
        "example" : "550e8400-e29b-41d4-a716-446655440000"
      },
      "X-Payment-Scheme-Tracking-ID" : {
        "description" : "The header provides a unique identifier for a corridor rule version used to track an API request. As the request flows through different API endpoint, the trace ID should be passed along in the headers of any subsequent API requests. The trace ID can be used in centralised log aggregators to group and search for logs related to the same request. A UUID value that follows the RFC 4122 version 4 specification and compacted by removing all dashes.",
        "schema" : {
          "type" : "string",
          "maxLength" : 32
        },
        "example" : "550e8400e29b41d4a716446655440000"
      }
    },
    "parameters" : {
      "X-Request-ID" : {
        "description" : "The header is a unique identifier used to track an API request throughout its entire lifecycle. It serves as a \"trace\" for a given request/response cycle, allowing each system component that handles the request to associate logs, metrics, and actions with the same ID, facilitating debugging, monitoring, and tracing across distributed systems. The id is an uuid as described in IETF RFC 4122 Universally Unique Identifier (UUID) URN Namespace.Pattern - ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$.\n\nUsage -\n- When a consumer makes an API request, the client or API gateway generates a unique trace ID and includes it in the X-Request-ID header.\n- If the request does not include a trace ID (e.g., from consumer), a new trace ID should be created by the API Gateway and returned to the client in the response header for future tracking.\n",
        "name" : "X-Request-ID",
        "in" : "header",
        "schema" : {
          "type" : "string",
          "format" : "uuid"
        },
        "example" : "550e8400-e29b-41d4-a716-446655440000"
      },
      "payment-function" : {
        "in" : "query",
        "name" : "payment-function",
        "description" : "Provides information on how payments are executed. Payments can be grouped based on the method or mechanism used to transfer funds, the parties involved, and the type of transaction.\n",
        "required" : true,
        "schema" : {
          "type" : "string",
          "enum" : [ "P2P" ]
        }
      },
      "payment-type" : {
        "in" : "query",
        "name" : "payment-type",
        "description" : "Describe how the payment is structured (Pay to Account, Pay to Wallet, Pay to Card).\n",
        "required" : true,
        "schema" : {
          "type" : "string",
          "enum" : [ "A2A", "A2W" ]
        }
      },
      "country-from" : {
        "in" : "query",
        "name" : "country-from",
        "description" : "Specify the country from which the payment is originating.\n",
        "required" : true,
        "schema" : {
          "type" : "string",
          "pattern" : "^[A-Z]{2,2}$"
        },
        "example" : "GB"
      },
      "country-to" : {
        "in" : "query",
        "name" : "country-to",
        "description" : "Specify the country to which the payment is to be directed.\n",
        "required" : true,
        "schema" : {
          "type" : "string",
          "pattern" : "^[A-Z]{2,2}$"
        },
        "example" : "IN"
      },
      "currency-to" : {
        "in" : "query",
        "name" : "currency-to",
        "description" : "Specify the currency code for the conversion of funds into the designated currency.\n",
        "required" : true,
        "schema" : {
          "type" : "string",
          "pattern" : "^[A-Z]{3,3}$"
        },
        "example" : "INR"
      },
      "version-date" : {
        "in" : "query",
        "name" : "version-date",
        "description" : "To request a specific historical version, specify the date in the ISO 8601 standard format YYYY-MM-DD. For instance, for a version from the 1st of January 2026, specify:\n\n2026-01-01\n\nThe date cannot be in the future. If the date parameter is omitted, the latest version will be returned by default.\n",
        "required" : false,
        "schema" : {
          "type" : "string",
          "format" : "date"
        },
        "example" : "2026-01-01"
      }
    },
    "responses" : {
      "400-BadRequest" : {
        "description" : "Bad Request",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "401-Unauthorized" : {
        "description" : "Unauthorized",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "403-Forbidden" : {
        "description" : "Forbidden",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "404-NotFound" : {
        "description" : "Not Found",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "405-MethodNotAllowed" : {
        "description" : "Method Not Allowed",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "406-NotAcceptable" : {
        "description" : "Not Acceptable",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "407-ProxyAuthenticationRequired" : {
        "description" : "Proxy Authentication Required",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "409-Conflict" : {
        "description" : "Conflict",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "410-Gone" : {
        "description" : "Gone",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "412-PreconditionFailed" : {
        "description" : "Precondition Failed",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "413-PayloadTooLarge" : {
        "description" : "Payload Too Large",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "414-URITooLong" : {
        "description" : "URI Too Long",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "415-UnsupportedMediaType" : {
        "description" : "Unsupported Media Type",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "429-TooManyRequests" : {
        "description" : "Too Many Requests",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "500-InternalServerError" : {
        "description" : "Internal Server Error",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "502-BadGateway" : {
        "description" : "Bad Gateway",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "503-ServiceUnavailable" : {
        "description" : "Service Unavailable",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      },
      "504-GatewayTimeout" : {
        "description" : "Gateway Timeout",
        "headers" : {
          "X-Request-ID" : {
            "$ref" : "#/components/headers/X-Request-ID"
          }
        },
        "content" : {
          "application/json" : {
            "schema" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/Errors"
              }, {
                "$ref" : "#/components/schemas/ErrorMessage"
              } ]
            }
          }
        }
      }
    },
    "securitySchemes" : {
      "oauthBearerToken" : {
        "type" : "http",
        "scheme" : "bearer",
        "bearerFormat" : "opaque OAuth 2.0",
        "description" : "The access token obtained as a result of OAuth 2.0 flows. SWIFT supports the below OAuth grant type for the two environments where the API is exposed. \n\n* MV-SIPN - jwt-bearer grant type [RFC 7523](https://tools.ietf.org/html/rfc7523) with Signed JWT assertion\n* Internet - jwt-bearer grant type [RFC 7523](https://tools.ietf.org/html/rfc7523) with Signed JWT assertion\n\nThis API uses JWT-Bearer grant type.\n\nPlease visit [SWIFT OAuth Token API](https://developer.swift.com/swift-oauth-token-api) page for more information and examples on how to generate an OAuth token.\n\nIn this declaration only the basic security element to transport the bearer token of an OAuth2 process is declared.\n"
      }
    },
    "examples" : {
      "3.1.1.1-Verify_account_using_Pre-validation_data_providers_and_central_BAV" : {
        "summary" : "3.1.1.1-Verify_account_using_Pre-validation_data_providers_and_central_BAV",
        "description" : "Verify account using Prevalidation data providers or central BAV (verification scheme: PVAH). In this example, requestor used an IBAN account. Other account formats can be used.\n",
        "value" : {
          "party_account" : {
            "identification" : {
              "iban" : "GB12BANK34567890123456"
            }
          },
          "party_agent" : {
            "bicfi" : "CREDGB22XXX"
          },
          "requestor" : {
            "any_bic" : "REQTUS33XXX"
          },
          "context" : "CRDT",
          "proprietary_service_parameters" : {
            "code" : "SCHM",
            "qualifier" : "PVAH"
          }
        }
      },
      "3.1.1.2-Verify_account_and_name_using_Pre-validation_data_providers_and_Central_BAV" : {
        "summary" : "3.1.1.2-Verify_account_and_name_using_Pre-validation_data_providers_and_Central_BAV",
        "description" : "Verify account and name using Pre-validation data providers or central BAV (verification scheme: PVAH). Note that central BAV does not verify name, but account only.\n",
        "value" : {
          "party" : {
            "name" : "DEF Electronics"
          },
          "party_account" : {
            "identification" : {
              "iban" : "GB12BANK34567890123456"
            }
          },
          "party_agent" : {
            "bicfi" : "CREDGB22XXX"
          },
          "requestor" : {
            "any_bic" : "REQTUS33XXX"
          },
          "context" : "CRDT",
          "proprietary_service_parameters" : {
            "code" : "SCHM",
            "qualifier" : "PVAH"
          }
        }
      },
      "3.1.1.3-Verify_account_and_id_using_Pre-validation_data_providers_and_Central_BAV" : {
        "summary" : "3.1.1.3-Verify_account_and_id_using_Pre-validation_data_providers_and_Central_BAV",
        "description" : "Verify account and ID using Pre-validation data providers or central BAV (verification scheme: PVAH). In this example, requestor used LEI as the organisation ID. Other types of identification can be used.\n",
        "value" : {
          "party" : {
            "identification" : {
              "organisation_identification" : {
                "lei" : "549300JZQ39WJPD7U585"
              }
            }
          },
          "party_account" : {
            "identification" : {
              "iban" : "GB12BANK34567890123456"
            }
          },
          "party_agent" : {
            "bicfi" : "CREDGB22XXX"
          },
          "requestor" : {
            "any_bic" : "REQTUS33XXX"
          },
          "context" : "CRDT",
          "proprietary_service_parameters" : {
            "code" : "SCHM",
            "qualifier" : "PVAH"
          }
        }
      },
      "3.1.1.4-Verify_account_and_currency_using_Pre-validation_data_providers_and_Central_BAV" : {
        "summary" : "3.1.1.4-Verify_account_and_currency_using_Pre-validation_data_providers_and_Central_BAV",
        "description" : "Verify account and currency using Pre-validation data providers or central BAV (verification scheme: PVAH). Note that central BAV does not verify currency, but account only.\n",
        "value" : {
          "party_account" : {
            "identification" : {
              "iban" : "GB12BANK34567890123456"
            },
            "currency" : "GBP"
          },
          "party_agent" : {
            "bicfi" : "CREDGB22XXX"
          },
          "requestor" : {
            "any_bic" : "REQTUS33XXX"
          },
          "context" : "CRDT",
          "proprietary_service_parameters" : {
            "code" : "SCHM",
            "qualifier" : "PVAH"
          }
        }
      },
      "3.1.1.5-Verify_account_and_address_using_Pre-validation_data_providers_and_Central_BAV" : {
        "summary" : "3.1.1.5-Verify_account_and_address_using_Pre-validation_data_providers_and_Central_BAV",
        "description" : "Verify account and address using Pre-validation data providers or central BAV (verification scheme: PVAH). Note that central BAV does not verify address, but account only.\n",
        "value" : {
          "party" : {
            "postal_address" : {
              "address_type" : {
                "code" : "BIZZ"
              },
              "department" : "Head Office",
              "sub_department" : "Retail",
              "street_name" : "1 London Bridge",
              "building_name" : "Shard",
              "floor" : "5",
              "post_code" : "SE1 9SG",
              "town_name" : "London",
              "country" : "GB"
            }
          },
          "party_account" : {
            "identification" : {
              "iban" : "GB12BANK34567890123456"
            }
          },
          "party_agent" : {
            "bicfi" : "CREDGB22XXX"
          },
          "requestor" : {
            "any_bic" : "REQTUS33XXX"
          },
          "context" : "CRDT",
          "proprietary_service_parameters" : {
            "code" : "SCHM",
            "qualifier" : "PVAH"
          }
        }
      },
      "3.1.1.6-Verify_account_name_id_address_and_currency_using_Pre-validation_data_providers_and_Central_BAV" : {
        "summary" : "3.1.1.6-Verify_account_name_id_address_and_currency_using_Pre-validation_data_providers_and_Central_BAV",
        "description" : "Verify account, name, ID, address, and currency using Pre-validation data providers or central BAV (verification scheme: PVAH). Note that central BAV does not verify name, id, address, or currency, but account only.\n",
        "value" : {
          "party" : {
            "name" : "DEF Electronics",
            "postal_address" : {
              "address_type" : {
                "code" : "BIZZ"
              },
              "department" : "Head Office",
              "sub_department" : "Retail",
              "street_name" : "1 London Bridge",
              "building_name" : "Shard",
              "floor" : "5",
              "post_code" : "SE1 9SG",
              "town_name" : "London",
              "country" : "GB"
            },
            "identification" : {
              "organisation_identification" : {
                "lei" : "549300JZQ39WJPD7U585"
              }
            }
          },
          "party_account" : {
            "identification" : {
              "iban" : "GB12BANK34567890123456"
            },
            "currency" : "GBP"
          },
          "party_agent" : {
            "bicfi" : "CREDGB22XXX"
          },
          "requestor" : {
            "any_bic" : "REQTUS33XXX"
          },
          "context" : "CRDT",
          "uetr" : "97ed4827-7b6f-4491-a06f-b548d5a7512d",
          "proprietary_service_parameters" : {
            "code" : "SCHM",
            "qualifier" : "PVAH"
          }
        }
      },
      "3.1.1.7-Verify_account_using_Pre-validation_central_BAV_only" : {
        "summary" : "3.1.1.7-Verify_account_using_Pre-validation_central_BAV_only",
        "description" : "Verify account using Prevalidation central BAV only (verification scheme: PVHI).\n",
        "value" : {
          "party_account" : {
            "identification" : {
              "iban" : "GB12BANK34567890123456"
            }
          },
          "party_agent" : {
            "bicfi" : "CREDGB22XXX"
          },
          "requestor" : {
            "any_bic" : "REQTUS33XXX"
          },
          "context" : "CRDT",
          "proprietary_service_parameters" : {
            "code" : "SCHM",
            "qualifier" : "PVHI"
          }
        }
      },
      "3.1.1.8-Verify_account_and_name_using_Pre-validation_data_providers_only" : {
        "summary" : "3.1.1.8-Verify_account_and_name_using_Pre-validation_data_providers_only",
        "description" : "Verify account and name using Pre-validation data provider only (verification scheme: PVAG).\n",
        "value" : {
          "party" : {
            "name" : "DEF Electronics"
          },
          "party_account" : {
            "identification" : {
              "iban" : "GB12BANK34567890123456"
            }
          },
          "party_agent" : {
            "bicfi" : "CREDGB22XXX"
          },
          "requestor" : {
            "any_bic" : "REQTUS33XXX"
          },
          "context" : "CRDT",
          "proprietary_service_parameters" : {
            "code" : "SCHM",
            "qualifier" : "PVAG"
          }
        }
      },
      "3.1.2.1-PartyAccount_matches" : {
        "summary" : "3.1.2.1-PartyAccount_matches",
        "description" : "PartyAccount matches and the matching was done by the party agent holding the account. \n",
        "value" : {
          "account_match" : "MTCH",
          "verification_source" : "HOLD"
        }
      },
      "3.1.2.2-PartyName_matches" : {
        "summary" : "3.1.2.2-PartyName_matches",
        "description" : "Party Account matches, Party Name matches the account owner name and the verification was done by the party agent holding the account. \n",
        "value" : {
          "party_name_match" : "MTCH",
          "account_match" : "MTCH",
          "verification_source" : "HOLD"
        }
      },
      "3.1.2.3-PartyId_matches" : {
        "summary" : "3.1.2.3-PartyId_matches",
        "description" : "Party Account matches, Party ID matches one of the account owner ID and the verification was done by the party agent holding the account. \n",
        "value" : {
          "party_identification_match" : "MTCH",
          "account_match" : "MTCH",
          "verification_source" : "HOLD"
        }
      },
      "3.1.2.4-AccountCurrency_matches" : {
        "summary" : "3.1.2.4-AccountCurrency_matches",
        "description" : "Account Currency matches the account currency and the verification was done by the party agent holding the account. \n",
        "value" : {
          "account_currency_match" : "MTCH",
          "account_match" : "MTCH",
          "verification_source" : "HOLD"
        }
      },
      "3.1.2.5-PartyAddress_matches" : {
        "summary" : "3.1.2.5-PartyAddress_matches",
        "description" : "PartyAddress matches the account owner address and the matching was done by the party agent holding the account. \n",
        "value" : {
          "party_postal_address_match" : "MTCH",
          "verification_source" : "HOLD"
        }
      },
      "3.1.2.6-All_matching_results_provided" : {
        "summary" : "3.1.2.6-All_matching_results_provided",
        "description" : "PartyAccount matches and is not capable of receiving funds because the account is closed (reason code = RC11). The PartyName matches closely the account owner name and this name was provided in the reponse. At transaction processing time name matching is not applied (reason code = RC50). The PartyId  matches one of the account owner id. At transaction processing time id matching is applied (reason code = RC61). The PartyAddress closely matches the account owner address and this address was provided in the response. The AccountCurrency matches the account currency. \n",
        "value" : {
          "party_name_match" : "CMTC",
          "party_identification_match" : "MTCH",
          "account_match" : "MTCF",
          "account_currency_match" : "MTCH",
          "account_owner_type" : "ORGN",
          "party_postal_address_match" : "CMTC",
          "verification_source" : "HOLD",
          "verification_reason" : [ "RC50", "RC11", "RC61" ],
          "matched_name" : "DEF Electronics",
          "matched_postal_address" : {
            "address_type" : {
              "code" : "BIZZ"
            },
            "department" : "Head Office",
            "sub_department" : "Retail Department",
            "street_name" : "1 Park Avenue",
            "building_name" : "Empire State Building",
            "floor" : "1",
            "post_code" : "11232",
            "town_name" : "New York City",
            "country_sub_division" : "New York",
            "country" : "US"
          }
        }
      },
      "3.1.2.7-Some_matching_results_provided" : {
        "summary" : "3.1.2.7-Some_matching_results_provided",
        "description" : "PartyAccount matches and is capable of receiving funds. The PartyName does not match the account owner name. At transaction processing time name matching is applied (reason code = RC51). The PartyId does not match one of the account owner id. The PartyAddress does not match the account owner address. The AccountCurrency does not match the account currency. \n",
        "value" : {
          "party_name_match" : "NMTC",
          "party_identification_match" : "NMTC",
          "account_match" : "MTCP",
          "account_currency_match" : "NMTC",
          "party_postal_address_match" : "NMTC",
          "verification_source" : "HOLD",
          "verification_reason" : [ "RC51" ],
          "matched_name" : "DEF Electronics"
        }
      },
      "3.1.2.8-PartyAccount_does_not_match" : {
        "summary" : "3.1.2.8-PartyAccount_does_not_match",
        "description" : "PartyAccount does not match one of the account of the party agent. \n",
        "value" : {
          "party_name_match" : "NOAP",
          "party_identification_match" : "NOAP",
          "account_match" : "NMTC",
          "account_currency_match" : "NOAP",
          "party_postal_address_match" : "NOAP",
          "verification_source" : "SNAP"
        }
      },
      "3.1.2.9-PartyAccount_matches_Subaccount_does_not_match" : {
        "summary" : "3.1.2.9-PartyAccount_matches_Subaccount_does_not_match",
        "description" : "PartyAccount matches. Subaccount does not match. \n",
        "value" : {
          "account_match" : "SNMC",
          "verification_source" : "HOLD"
        }
      },
      "3.1.2.10-PartyAccount_matches_no_other_matching_done_Snapshot" : {
        "summary" : "3.1.2.10-PartyAccount_matches_no_other_matching_done_Snapshot",
        "description" : "PartyAccount matches and the matching was done based on a Snapshot of the account database provided by the party agent holding the account. \n",
        "value" : {
          "account_match" : "MTCH",
          "verification_source" : "SNAP"
        }
      },
      "3.1.2.11-PartyAccount_matches_likely_to_receive_funds" : {
        "summary" : "3.1.2.11-PartyAccount_matches_likely_to_receive_funds",
        "description" : "PartyAccount matches and is likely to receive funds. The account verification was done by Central Beneficiary Account Verification (CBAV).\n",
        "value" : {
          "account_match" : "MTCP",
          "verification_source" : "OBSD",
          "verification_reason" : [ "RC40" ]
        }
      },
      "3.1.2.12-PartyAccount_matches_not_likely_to_receive_funds" : {
        "summary" : "3.1.2.12-PartyAccount_matches_not_likely_to_receive_funds",
        "description" : "PartyAccount matches and is not likely to receive funds. The account verification was done by Central Beneficiary Account Verification (CBAV). \n",
        "value" : {
          "account_match" : "MTCF",
          "verification_source" : "OBSD",
          "verification_reason" : [ "RC40" ]
        }
      },
      "3.1.2.13-PartyAccount_was_not_found" : {
        "summary" : "3.1.2.13-PartyAccount_was_not_found",
        "description" : "PartyAccount was not found. The account verification was done by Central Beneficiary Account Verification (CBAV). \n",
        "value" : {
          "account_match" : "NMTC",
          "verification_source" : "OBSD",
          "verification_reason" : [ "RC40" ]
        }
      },
      "3.1.2.14-PartyAccount_was_not_found_out_of_scope" : {
        "summary" : "3.1.2.14-PartyAccount_was_not_found_out_of_scope",
        "description" : "PartyAccount was not found because the country of the account is out of scope. The account verification was done by Central Beneficiary Account Verification (CBAV).\n",
        "value" : {
          "account_match" : "NMTC",
          "verification_source" : "OBSD",
          "verification_reason" : [ "RC40", "RC41" ]
        }
      },
      "3.1.2.15-PartyAccount_matches_more_likely_to_receive_funds_mixed_transactions" : {
        "summary" : "3.1.2.15-PartyAccount_matches_more_likely_to_receive_funds_mixed_transactions",
        "description" : "PartyAccount matches and is more likely to receive funds, but there is a mix of successfull and failed transactions for this account. The account verification was done by Central Beneficiary Account Verification (CBAV).\n",
        "value" : {
          "account_match" : "MTCP",
          "verification_source" : "OBSD",
          "verification_reason" : [ "RC40", "RC42" ]
        }
      },
      "3.1.2.16-PartyAccount_matches_more_likely_to_not_receive_funds_mixed_transactions" : {
        "summary" : "3.1.2.16-PartyAccount_matches_more_likely_to_not_receive_funds_mixed_transactions",
        "description" : "PartyAccount matches and is not likely to receive funds, but there are succesful transactions for this account. The account verification was done by Central Beneficiary Account Verification (CBAV). \n",
        "value" : {
          "account_match" : "MTCF",
          "verification_source" : "OBSD",
          "verification_reason" : [ "RC40", "RC42" ]
        }
      },
      "DataProviderRequestWithBIC" : {
        "summary" : "3.3.1.1-Check Data Provider Information using BIC only",
        "description" : "Request to check whether the Data Provider is active using BIC",
        "value" : {
          "party_agent" : {
            "bicfi" : "SWHQBEBB"
          }
        }
      },
      "DataProviderRequestWithClearingSystem" : {
        "summary" : "3.3.1.2-Check Data Provider Information using Clearing System Member Identification only",
        "description" : "Request to check whether the Data Provider is active using Clearing System Member Identification",
        "value" : {
          "party_agent" : {
            "clearing_system_member_identification" : {
              "clearing_system_identification" : {
                "code" : "GBDSC"
              },
              "member_identification" : "140991"
            }
          }
        }
      },
      "DataProviderRequestWithLEI" : {
        "summary" : "3.3.1.1-Check Data Provider Information using LEI only",
        "description" : "Request to check whether the Data Provider is active using LEI",
        "value" : {
          "party_agent" : {
            "lei" : "549300JZQ39WJPD7U585"
          }
        }
      },
      "DataProviderRequestWithMultipleIdentifiers" : {
        "summary" : "3.3.1.1-Check Data Provider Information using BIC, Clearing System Member Identification and LEI",
        "description" : "Request to check whether the Data Provider is active using multiple identifiers. Identification of the data provider is attempted using the following priority - BIC first; if no match is found, then Clearing System Member ID; and finally, LEI if neither of the previous identifiers yield a result.",
        "value" : {
          "party_agent" : {
            "bicfi" : "CREDGB22XXX",
            "clearing_system_member_identification" : {
              "clearing_system_identification" : {
                "code" : "GBDSC"
              },
              "member_identification" : "140991"
            },
            "lei" : "549300JZQ39WJPD7U585"
          }
        }
      },
      "DataProviderActiveResponse" : {
        "summary" : "Data Provider is Active",
        "description" : "Response if the given party agent in the request is an active Data Provider",
        "value" : {
          "party_agent_match" : "MTCH",
          "party_agent_id" : "SWHQBEBB",
          "party_agent_id_type" : "BIC",
          "data_provider_name" : "ACME Bank",
          "data_provider_institution_bic" : "ACMEMTMT",
          "data_provider_type" : "AGG",
          "support_channel" : "Support@bank.com",
          "environment" : "LIVE",
          "versions" : [ {
            "version" : "V2",
            "configuration" : {
              "verification_source" : "HOLD",
              "country_scope" : "BE,DE,HK",
              "account_owner_type" : "PRIV",
              "party_name_match" : "Y",
              "party_name_close_match" : "N",
              "party_postal_address_match" : "N",
              "account_currency_match" : "N",
              "party_identification_match" : "N",
              "additional_information" : "party.account: iban only supported; party.account.currency: only EUR accounts supported"
            }
          }, {
            "version" : "V3",
            "configuration" : {
              "verification_source" : "HOLD",
              "country_scope" : "BE,DE,HK",
              "account_owner_type" : "ANYY",
              "party_name_match" : "Y",
              "party_name_close_match" : "N",
              "party_postal_address_match" : "N",
              "account_currency_match" : "N",
              "party_identification_match" : "N",
              "additional_information" : "party.account: iban only supported; party.account.currency: only EUR accounts supported"
            }
          } ]
        }
      },
      "DataProviderNotActiveResponse" : {
        "summary" : "Data Provider is not active",
        "description" : "Response if the given party agent in the request is not an active Data Provider",
        "value" : {
          "party_agent_match" : "NMTC"
        }
      },
      "GetPaymentPreparationRuleEx-1" : {
        "summary" : "Example-1 - India UI corridor rules.",
        "value" : {
          "$schema" : "https://json-schema.org/draft/2020-12/schema",
          "$id" : "urn:com:swift:payment-preparation:gb:in:inr:p2p:a2a:2026-03-19:en",
          "title" : "Payment Preparation Schema (IN)",
          "type" : "object",
          "x-version-date-time" : "2026-03-19T17:26:00.000+01:00",
          "x-owner" : "Swift",
          "properties" : {
            "creditor_name" : {
              "title" : "Beneficiary Name",
              "description" : "The name by which the beneficiary is known to their servicing institution and is typically used to identify that party.",
              "x-Note" : "Full name with first name and last name at minimum. No nicknames.",
              "type" : "string",
              "minLength" : 2,
              "maxLength" : 140,
              "x-UIErrorMessage" : {
                "required" : "The beneficiary name is mandatory and must be provided in full.",
                "minLength" : "More than 1 character must be specified.",
                "maxLength" : "Must not exceed 140 characters."
              }
            },
            "creditor_postal_address" : {
              "title" : "Beneficiary Postal Address",
              "description" : "Information that identifies the actual, permanent address where a party resides, as defined by postal services.",
              "x-Note" : "At least one address_line is required, together with town_name and country. Address_line may appear a maximum of two occurrence (max 70 characters per line). Information in town_name and country must not be repeated in address_line under any circumstances.",
              "type" : "object",
              "properties" : {
                "address_line" : {
                  "title" : "Address Information",
                  "description" : "Full address in a single line text format. It should include at minimum the street name, number and postal code.",
                  "x-Note" : "Country and Town Name must not be part of address_line.",
                  "type" : "array",
                  "maxItems" : 2,
                  "x-UIErrorMessage" : {
                    "required" : "Address must be specified.",
                    "minLength" : "More than 1 character must be specified.",
                    "maxLength" : "Must not exceed 70 characters."
                  },
                  "items" : {
                    "type" : "string",
                    "minLength" : 2,
                    "maxLength" : 70
                  }
                },
                "town_name" : {
                  "title" : "Town Name",
                  "description" : "Name of a built-up area, with defined boundaries, and a local government.",
                  "x-Note" : "Name of the town or city where the individual resides and where the address is located.",
                  "type" : "string",
                  "minLength" : 2,
                  "maxLength" : 35,
                  "x-UIErrorMessage" : {
                    "required" : "Town must be specified.",
                    "minLength" : "More than 1 character must be specified.",
                    "maxLength" : "Must not exceed 35 character."
                  }
                },
                "country" : {
                  "title" : "Country",
                  "description" : "Country in which a person resides (the place of a person's home). In the case of a company, it is the country from which the affairs of that company are directed.",
                  "x-Note" : "The country must be validated and matched to a valid ISO 3166.",
                  "type" : "string",
                  "x-UIErrorMessage" : {
                    "required" : "Country must be specified."
                  }
                }
              },
              "required" : [ "address_line", "town_name", "country" ]
            },
            "creditor_nationality" : {
              "title" : "Beneficiary Nationality",
              "description" : "Represents the nationality (country of citizenship) of a beneficiary customer.",
              "x-Note" : "Nationality must be validated and matched to a valid ISO 3166.",
              "type" : "string",
              "x-UIErrorMessage" : {
                "required" : "Beneficiary nationality must be specified."
              }
            },
            "creditor_account_and_agent" : {
              "type" : "object",
              "description" : "End source to which funds from a payment transaction are credited.",
              "additionalProperties" : true,
              "oneOf" : [ {
                "type" : "object",
                "additionalProperties" : false,
                "properties" : {
                  "other_identification" : {
                    "title" : "Beneficiary Account Number",
                    "description" : "Bank account number of the party formatted as per local country rules.",
                    "type" : "string",
                    "pattern" : "^[0-9]{11,16}$",
                    "x-UIErrorMessage" : {
                      "required" : "Beneficiary Account must be specified.",
                      "pattern" : "Account number must be between 11 to 16 digits."
                    }
                  },
                  "clearing_member_identification" : {
                    "title" : "Beneficiary Bank IFSC",
                    "description" : "Identification of a financial institution as a member in a clearing system.",
                    "type" : "string",
                    "pattern" : "^[A-Z]{4}0[0-9]{6}$",
                    "x-UIErrorMessage" : {
                      "required" : "Beneficiary Bank must be specified.",
                      "pattern" : "IFSC must be 11 characters."
                    }
                  }
                },
                "required" : [ "other_identification", "clearing_member_identification" ]
              } ]
            },
            "regulatory_reporting_code" : {
              "title" : "Purpose of Payment",
              "description" : "Underlying reason for the payment transaction in a coded form as per regulatory code list.",
              "oneOf" : [ {
                "type" : "string",
                "const" : "P1301",
                "title" : "Funds by non‑residents for family support or savings"
              }, {
                "type" : "string",
                "const" : "P1007",
                "title" : "Advertising, trade fair service"
              }, {
                "type" : "string",
                "const" : "P1401",
                "title" : "Compensation of employees"
              }, {
                "type" : "string",
                "const" : "P1108",
                "title" : "Medical services provided by Indian healthcare professionals"
              }, {
                "type" : "string",
                "const" : "P0014",
                "title" : "Credit to NRE/NRO account"
              } ],
              "x-UIErrorMessage" : {
                "required" : "Purpose of Payment must be specified."
              }
            }
          },
          "required" : [ "creditor_name", "creditor_postal_address", "creditor_nationality", "creditor_account_and_agent", "regulatory_reporting_code" ]
        }
      },
      "BadRequest" : {
        "summary" : "Bad Request",
        "value" : {
          "severity" : "Fatal",
          "code" : "SwAP501",
          "text" : "API request is malformed."
        }
      },
      "BadRequestParametersMissingOrNotSupported" : {
        "summary" : "Bad Request, Parameters Missing Or Not Supported",
        "value" : {
          "severity" : "Fatal",
          "code" : "Sw.payVal.badRequest",
          "text" : "Cannot service as the API request is malformed for the given scenario and might be missing a parameter or is not supported.",
          "user_message" : "<< Any further details on the error returned by Swift. >>"
        }
      },
      "InvalidToken" : {
        "summary" : "Invalid Token",
        "value" : {
          "severity" : "Fatal",
          "code" : "SwAP502",
          "text" : "Invalid OAuth access token."
        }
      },
      "InsufficientScope" : {
        "summary" : "Insufficient Scope",
        "value" : {
          "severity" : "Fatal",
          "code" : "SwAP503",
          "text" : "OAuth access token has insufficient scope for the requested service."
        }
      },
      "InconsistentClient" : {
        "summary" : "Inconsistent Client",
        "value" : {
          "severity" : "Fatal",
          "code" : "Sw.payVal.inconsistentClient",
          "text" : "Client certificate is inconsistent with the requesting agent identification provided."
        }
      },
      "NotFound" : {
        "summary" : "Not Found",
        "value" : {
          "severity" : "Fatal",
          "code" : "SwAP506",
          "text" : "Resource does not exist."
        }
      },
      "TooManyRequests" : {
        "summary" : "Too Many Requests",
        "value" : {
          "severity" : "Transient",
          "code" : "SwAP507",
          "text" : "Request cannot be processed at this time. Please try again."
        }
      },
      "ServiceUnavailable" : {
        "summary" : "Service Unavailable",
        "value" : {
          "severity" : "Transient",
          "code" : "SwAP590",
          "text" : "Service is temporarily unavailable."
        }
      },
      "DataProviderUnavailable" : {
        "summary" : "Data Provider Unavailable",
        "value" : {
          "severity" : "Transient",
          "code" : "Sw.payVal.unavailable",
          "text" : "Data Provider Service is temporarily unavailable."
        }
      },
      "GatewayTimeout" : {
        "summary" : "Gateway Timeout",
        "value" : {
          "severity" : "Transient",
          "code" : "SwAP591",
          "text" : "Service Provider time out."
        }
      },
      "DefaultError" : {
        "summary" : "Default Error",
        "value" : {
          "severity" : "Fatal",
          "code" : "Sw.payVal.defaultError",
          "text" : "Service is temporarily unavailable."
        }
      }
    }
  }
}