obterListaMensagensPorContribuinte method

Future<ListaMensagensResponse> obterListaMensagensPorContribuinte(
  1. String? contribuinte, {
  2. String? cnpjReferencia,
  3. int statusLeitura = 0,
  4. int? indicadorFavorito,
  5. int indicadorPagina = 0,
  6. String? ponteiroPagina,
  7. String? contratanteNumero,
  8. String? autorPedidoDadosNumero,
})

Obtém a lista de mensagens da Caixa Postal de um contribuinte

Serviço API: MSGCONTRIBUINTE61 Endpoint: /Consultar

contribuinte - Número do CPF/CNPJ do contribuinte cnpjReferencia - Número do CNPJ para filtro (apenas para PJ) statusLeitura - Status da mensagem: 0=Todas (não se aplica), 1=Lida, 2=Não Lida indicadorFavorito - Filtro por favorita: 0=Não favorita, 1=Favorita, null=Sem filtro indicadorPagina - Página: 0=Inicial (mais recentes), 1=Não-inicial ponteiroPagina - Ponteiro para página (necessário se indicadorPagina=1) contratanteNumero - CNPJ do contratante (opcional, usa dados da autenticação se não informado) autorPedidoDadosNumero - CPF/CNPJ do autor do pedido (opcional, usa dados da autenticação se não informado)

Implementation

Future<ListaMensagensResponse> obterListaMensagensPorContribuinte(
  String? contribuinte, {
  String? cnpjReferencia,
  int statusLeitura = 0,
  int? indicadorFavorito,
  int indicadorPagina = 0,
  String? ponteiroPagina,
  String? contratanteNumero,
  String? autorPedidoDadosNumero,
}) async {
  final resolvedContribuinte =
      contribuinte ??
      _apiClient.contribuinteNumero ??
      (throw ArgumentError('CNPJ/CPF do contribuinte é obrigatório'));
  final dadosMap = <String, dynamic>{
    'statusLeitura': statusLeitura.toString(),
    'indicadorPagina': indicadorPagina.toString(),
  };

  if (cnpjReferencia != null && cnpjReferencia.isNotEmpty) {
    dadosMap['cnpjReferencia'] = cnpjReferencia;
  }

  if (indicadorFavorito != null) {
    dadosMap['indicadorFavorito'] = indicadorFavorito.toString();
  }

  if (ponteiroPagina != null && ponteiroPagina.isNotEmpty) {
    dadosMap['ponteiroPagina'] = ponteiroPagina;
  } else if (indicadorPagina == 0) {
    dadosMap['ponteiroPagina'] = '00000000000000';
  }

  final request = BaseRequest(
    contribuinteNumero: resolvedContribuinte,
    pedidoDados: PedidoDados(
      idSistema: 'CAIXAPOSTAL',
      idServico: 'MSGCONTRIBUINTE61',
      versaoSistema: '1.0',
      dados: jsonEncode(dadosMap),
    ),
  );

  final response = await _apiClient.post(
    '/Consultar',
    request,
    contratanteNumero: contratanteNumero,
    autorPedidoDadosNumero: autorPedidoDadosNumero,
  );
  return ListaMensagensResponse.fromJson(response);
}