{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/itau-unibanco/main/json-schema/itau-unibanco-response-electronic-channels-list-schema.json",
  "title": "ResponseElectronicChannelsList",
  "x-generated": "2026-10-18",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/itau-unibanco-open-finance-channels-openapi.yml#/components/schemas/ResponseElectronicChannelsList",
  "type": "object",
  "required": [
    "data",
    "links",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "description": "Conjunto de informações referente aos canais eletrônicos de atendimento da instituição",
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/ElectronicChannelsData"
      }
    },
    "links": {
      "$ref": "#/$defs/Links"
    },
    "meta": {
      "$ref": "#/$defs/Meta"
    }
  },
  "$defs": {
    "ElectronicChannelIdentification": {
      "type": "object",
      "description": "Identificação dos canais eletrônicos para atendimento",
      "required": [
        "type",
        "urls"
      ],
      "x-regulatory-required": [
        "type",
        "urls"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "INTERNET_BANKING",
            "MOBILE_BANKING",
            "SAC",
            "OUVIDORIA",
            "CHAT",
            "OUTROS"
          ],
          "description": "Tipo de canal de atendimento eletrônico"
        },
        "additionalInfo": {
          "type": "string",
          "description": "Campo de texto livre para descrever complementação de informações necessárias. De preenchimento obrigatório para  o tipo de canal de atendimento 'OUTROS'\nRestrição: Preenchimento obrigatório para o tipo de canal de atendimento 'OUTROS'\n",
          "minLength": 1,
          "maxLength": 300,
          "pattern": "^(?!\\s)[\\w\\W\\s]*[^\\s]$"
        },
        "urls": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ElectronicChannelUrl"
          },
          "minItems": 1,
          "description": "URLs dos canais eletrônicos de atendimento"
        }
      }
    },
    "ElectronicChannelService": {
      "type": "object",
      "required": [
        "name",
        "code"
      ],
      "x-regulatory-required": [
        "name",
        "code"
      ],
      "properties": {
        "name": {
          "type": "string",
          "enum": [
            "ABERTURA_CONTAS_DEPOSITOS_OU_PAGAMENTO_PRE_PAGA",
            "SAQUE_MOEDA_EM_ESPECIE",
            "RECEBIMENTOS_PAGAMENTOS_QUALQUER_NATUREZA",
            "TRANSFERENCIAS_ELETRONICAS_VISANDO_MOVIMENTACAO_CONTAS_DEPOSITOS_OU_PAGAMENTO_TITULARIDADE_CLIENTES",
            "CONSULTA_SALDOS_EXTRATOS_CONTAS_DEPOSITOS_CONTAS_PAGAMENTOS",
            "APLICACOES_RESGATES_INVESTIMENTOS",
            "EXECUCAO_ATIVA_PASSIVA_ORDENS_PAGAMENTO_SOLICITACAO_CLIENTES_USUARIOS",
            "DEPOSITOS_MOEDA_ESPECIE_CHEQUE",
            "OPERACOES_CREDITO_BEM_COMO_OUTROS_SERVICOS_PRESTADOS_ACOMPANHAMENTO_OPERACAO",
            "CARTAO_CREDITO",
            "SEGUROS",
            "OPERACOES_ARRENDAMENTO_MERCANTIL",
            "ABERTURA_CONTA_PAGAMENTO_POS_PAGA",
            "COMPRA_VENDA_MOEDA_ESTRANGEIRA_ESPECIE",
            "COMPRA_VENDA_CHEQUE_CHEQUE_VIAGEM_BEM_COMO_CARGA_MOEDA_ESTRANGEIRA_CARTAO_PRE_PAGO",
            "COMPRA_VENDA_OURO",
            "OUTROS_PRODUTOS_SERVICOS",
            "CANCELAMENTO",
            "INFORMACOES",
            "RECLAMACOES"
          ],
          "description": "Nome dos Serviços efetivamente prestados pelo Canal de Atendimento"
        },
        "code": {
          "type": "string",
          "enum": [
            "ABRE_CONTA_DEPOSITO_OU_PRE_PAGA",
            "SAQUE_MOEDA_ESPECIE",
            "RECEBE_PAGA_QUALQUER_NATUREZA",
            "TRANSFERENCIAS_ELETRONICAS_MOVIMENTA_CONTAS_DEPOSITOS_OU_PAGTO_TITULARES_CLIENTES",
            "CONSULTA_SALDOS_EXTRATOS_CONTAS_DEPOSITOS_PAGTOS",
            "APLICA_RESGATA_INVESTIMENTOS",
            "EXECUCAO_ATIVA_PASSIVA_ORDENS_PAGTO",
            "DEPOSITO_MOEDA_ESPECIE_CHEQUE",
            "OPERA_CREDITO_OUTROS_SERVICOS_ACOMPANHA_OPERACAO",
            "CARTAO_CREDITO",
            "SEGUROS",
            "OPERA_ARRENDAMENTO_MERCANTIL",
            "ABERTURA_CONTA_PAGAMENTO_POS_PAGA",
            "COMPRA_VENDA_MOEDA_ESTRANGEIRA_ESPECIE",
            "COMPRA_VENDA_CHEQUE_CHEQUE_VIAGEM_CARGA_MOEDA_ESTRANGEIRA_CARTAO_PRE_PAGO",
            "COMPRA_VENDA_OURO",
            "OUTROS_PRODUTOS_SERVICOS",
            "CANCELAMENTO",
            "INFORMACOES",
            "RECLAMACOES"
          ],
          "description": "Código dos Serviços efetivamente prestados pelo Canal de Atendimento"
        },
        "additionalInfo": {
          "type": "string",
          "description": "Texto livre para complementar informação relativa ao Serviço disponível, quando for selecionada a opção 'OUTROS_PRODUTOS_SERVICOS'",
          "maxLength": 2000,
          "minLength": 1,
          "pattern": "^(?!\\s)[\\w\\W\\s]*[^\\s]$"
        }
      }
    },
    "ElectronicChannelUrl": {
      "type": "string",
      "pattern": "^(?!\\s)[\\w\\W\\s]*[^\\s]$",
      "minLength": 1,
      "maxLength": 1024
    },
    "ElectronicChannelsData": {
      "type": "object",
      "required": [
        "identification",
        "services"
      ],
      "properties": {
        "participant": {
          "$ref": "#/$defs/ElectronicChannelsParticipant"
        },
        "identification": {
          "$ref": "#/$defs/ElectronicChannelIdentification"
        },
        "services": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ElectronicChannelService"
          },
          "minItems": 1,
          "description": "Traz a relação de serviços disponbilizados pelo Canal de Atendimento"
        }
      }
    },
    "ElectronicChannelsParticipant": {
      "type": "object",
      "description": "Conjunto de informações relativas ao participante do produto de Open Finance",
      "required": [
        "brand",
        "name",
        "cnpjNumber"
      ],
      "x-regulatory-required": [
        "brand",
        "name",
        "cnpjNumber",
        "urlComplementaryList"
      ],
      "properties": {
        "brand": {
          "type": "string",
          "description": "Nome da marca selecionada pela Organização proprietária da dependência (titular).",
          "maxLength": 80,
          "minLength": 1,
          "pattern": "^(?!\\s)[\\w\\W\\s]*[^\\s]$"
        },
        "name": {
          "type": "string",
          "description": "Nome da marca selecionada pela Organização proprietária da dependência (titular).",
          "maxLength": 80,
          "minLength": 1,
          "pattern": "^(?!\\s)[\\w\\W\\s]*[^\\s]$"
        },
        "cnpjNumber": {
          "type": "string",
          "pattern": "^\\d{14}$",
          "description": "Número completo do CNPJ da instituição",
          "maxLength": 14,
          "minLength": 14
        },
        "urlComplementaryList": {
          "type": "string",
          "description": "URL do link que conterá a lista complementar com os nomes e CNPJs agrupados sob o mesmo cnpjNumber. Os contidos nessa lista possuem as mesmas características para produtos e serviços. \nEndereço eletrônico de acesso ao canal. Será obrigatoriamente preenchido se houver lista complementar com os nomes e CNPJs a ser disponibilizada. \n\nRestrição: Será obrigatoriamente preenchido se houver lista complementar com os nomes e CNPJs a ser disponibilizada\n",
          "maxLength": 1024,
          "minLength": 1,
          "pattern": "^(?!\\s)[\\w\\W\\s]*[^\\s]$"
        }
      }
    },
    "Links": {
      "type": "object",
      "description": "Referências para outros recursos da API requisitada",
      "properties": {
        "self": {
          "type": "string",
          "format": "url",
          "description": "URL da página atualmente requisitada",
          "maxLength": 2000,
          "minLength": 5
        },
        "first": {
          "type": "string",
          "format": "url",
          "description": "URL da primeira página de registros",
          "maxLength": 2000,
          "minLength": 5
        },
        "prev": {
          "type": "string",
          "format": "url",
          "description": "URL da página anterior de registros",
          "maxLength": 2000,
          "minLength": 5
        },
        "next": {
          "type": "string",
          "format": "url",
          "description": "URL da próxima página de registros",
          "maxLength": 2000,
          "minLength": 5
        },
        "last": {
          "type": "string",
          "format": "url",
          "description": "URL da última página de registros",
          "maxLength": 2000,
          "minLength": 5
        }
      }
    },
    "Meta": {
      "type": "object",
      "description": "Meta informações referente à API requisitada",
      "properties": {
        "totalRecords": {
          "type": "integer",
          "description": "Total de registros encontrados"
        },
        "totalPages": {
          "type": "integer",
          "description": "Total de páginas para os registros encontrados"
        }
      },
      "required": [
        "totalRecords",
        "totalPages"
      ]
    }
  }
}