{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/plaid/main/json-schema/plaid-account-payment-network-list-schema.json",
  "title": "Payment Networks entity",
  "description": "Array of payment networks.\nNot all deposit accounts support ACH transfers. For example, a prepaid debit card account doesn't support ACH\n",
  "x-generated": "2026-09-23",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/plaid-core-exchange-openapi.yml#/components/schemas/AccountPaymentNetworkList",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/$defs/PaginatedArray"
    },
    {
      "type": "object",
      "properties": {
        "paymentNetworks": {
          "type": "array",
          "description": "Array of payment networks.\nNot all deposit accounts support ACH transfers. For example, a prepaid debit card account doesn't support ACH\n",
          "items": {
            "$ref": "#/$defs/PaymentNetwork"
          },
          "minItems": 1
        }
      },
      "required": [
        "paymentNetworks"
      ]
    }
  ],
  "$defs": {
    "PageMetadata": {
      "title": "Page Metadata",
      "description": "Contains the opaque identifier, `nextPageKey`, to indicate a paginated result set.\nThe `nextOffset` identifier is deprecated and will be removed with a future major release.\n",
      "type": "object",
      "properties": {
        "nextOffset": {
          "type": "string",
          "deprecated": true,
          "description": "Opaque identifier. Does not need to be numeric or have any specific pattern.\nDeprecated in favor of `nextPageKey`, will be removed with a future major release\n"
        },
        "nextPageKey": {
          "type": "string",
          "description": "Opaque identifier. Does not need to be numeric or have any specific pattern.\nImplementation specific\n"
        },
        "totalElements": {
          "type": "integer",
          "description": "Total number of elements\n"
        }
      }
    },
    "PaginatedArray": {
      "title": "Paginated Array",
      "description": "Base class for results that may be paginated\n",
      "type": "object",
      "properties": {
        "page": {
          "$ref": "#/$defs/PageMetadata"
        }
      }
    },
    "PaymentNetwork": {
      "title": "Payment Network Supported by Account",
      "description": "This provides details required to execute a transaction against the account within the payment network\n",
      "type": "object",
      "properties": {
        "bankId": {
          "type": "string",
          "description": "Bank identifier used by the payment network. Typically the 9-digit\nrouting transit number (RTN) associated with the account number at a US institution,\nor the 3-digit Institution (FID) and 5-digit Transit numbers for Canadian institutions,\nincluding leading zeroes\n"
        },
        "identifier": {
          "type": "string",
          "description": "The number used to identify the account within the payment network.\nSend 4 to 17 digits with no separators, even if displayed to customers formatted. A value with separators is rejected and that account's Auth data will be discarded, though the response still succeeds and the account still appears.\n"
        },
        "type": {
          "$ref": "#/$defs/PaymentNetworkType"
        },
        "transferIn": {
          "type": "boolean",
          "description": "Can transfer funds to the account using this information. Plaid expects that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH\n"
        },
        "transferOut": {
          "type": "boolean",
          "description": "Can transfer funds from the account using this information. Plaid expects that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH\n"
        }
      },
      "required": [
        "bankId",
        "identifier",
        "type",
        "transferIn",
        "transferOut"
      ]
    },
    "PaymentNetworkType": {
      "title": "Payment Network Type",
      "description": "Suggested values for Payment Network Type. `US&#95;` refers to the USA, and `CA&#95;` refers to Canada.\nPossible values:\n\n* CA&#95;ACSS: Automated Clearing House Settlement System\n* CA&#95;LVTS: Large-Value Transfer System\n* US&#95;ACH: Automated Clearing House (mostly small banks)\n* US&#95;CHIPS: Clearinghouse Interbank Payments System (primarily big banks)\n* US&#95;FEDNOW: Federal Reserve Instant Payment System\n\n**NOTE**: `US&#95;FEDNOW` is supported as of v6.0. `US&#95;FEDWIRE` and `US&#95;RTP` are not supported payment network types.\n",
      "type": "string",
      "enum": [
        "CA_ACSS",
        "CA_LVTS",
        "US_ACH",
        "US_CHIPS",
        "US_FEDNOW",
        "US_FEDWIRE",
        "US_RTP"
      ]
    }
  }
}