consultarDetalhesPagamento method
Consulta detalhes de pagamento na modalidade PERTMEI
contribuinteNumero - CNPJ do contribuinte (obrigatório)
numeroParcelamento - Número do parcelamento (obrigatório)
anoMesParcela - Mês da parcela paga no formato AAAAMM (obrigatório)
Retorna informações detalhadas de pagamento de uma parcela ou erro detalhado
Implementation
Future<ConsultarDetalhesPagamentoResponse> consultarDetalhesPagamento(
String? contribuinteNumero,
int numeroParcelamento,
int anoMesParcela,
) async {
try {
final resolvedContribuinte =
contribuinteNumero ?? _apiClient.contribuinteNumero;
// Validação dos dados obrigatórios
if (resolvedContribuinte == null || resolvedContribuinte.isEmpty) {
return ConsultarDetalhesPagamentoResponse(
status: '400',
mensagens: [
Mensagem(
codigo: '[Erro-PERTMEI-VALIDATION]',
texto: 'CNPJ do contribuinte é obrigatório',
),
],
dados: null,
);
}
if (numeroParcelamento <= 0) {
return ConsultarDetalhesPagamentoResponse(
status: '400',
mensagens: [
Mensagem(
codigo: '[Erro-PERTMEI-VALIDATION]',
texto: 'Número do parcelamento deve ser maior que zero',
),
],
dados: null,
);
}
if (anoMesParcela < 202001 || anoMesParcela > 209912) {
return ConsultarDetalhesPagamentoResponse(
status: '400',
mensagens: [
Mensagem(
codigo: '[Erro-PERTMEI-VALIDATION]',
texto:
'Ano/mês da parcela deve estar no formato AAAAMM (ex: 202306)',
),
],
dados: null,
);
}
final request = BaseRequest(
contribuinteNumero: resolvedContribuinte,
pedidoDados: PedidoDados(
idSistema: 'PERTMEI',
idServico: 'DETPAGTOPARC225',
versaoSistema: '1.0',
dados: jsonEncode({
'numeroParcelamento': numeroParcelamento,
'anoMesParcela': anoMesParcela,
}),
),
);
final response = await _apiClient.post('/Consultar', request);
return ConsultarDetalhesPagamentoResponse.fromJson(response);
} catch (e) {
return ConsultarDetalhesPagamentoResponse(
status: '500',
mensagens: [
Mensagem(
codigo: '[Erro-PERTMEI-INTERNAL]',
texto: 'Erro interno: $e',
),
],
dados: null,
);
}
}