obterListaMensagensPorContribuinte method
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);
}