obterIndicadorDte method

Future<DteResponse> obterIndicadorDte(
  1. String? cnpj, {
  2. String? contratanteNumero,
  3. String? autorPedidoDadosNumero,
})

Obtém informação que indica se há adesão ao DTE de um contribuinte

Obtém informação que indica se há adesão ao DTE - Domicílio Tributário Eletrônico, no Caixa Postal do Simples Nacional e no e-CAC de um contribuinte.

cnpj CNPJ do contribuinte (apenas Pessoa Jurídica - tipo 2) 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)

Retorna DteResponse com o indicador de enquadramento e status

Exemplo:

final response = await dteService.obterIndicadorDte('12345678000195');
if (response.sucesso) {
  print('Status: ${response.statusEnquadramentoDescricao}');
  print('É optante DTE: ${response.isOptanteDte}');
}

Implementation

Future<DteResponse> obterIndicadorDte(
  String? cnpj, {
  String? contratanteNumero,
  String? autorPedidoDadosNumero,
}) async {
  final resolvedCnpj =
      cnpj ??
      _apiClient.contribuinteNumero ??
      (throw ArgumentError('CNPJ do contribuinte é obrigatório'));
  final request = BaseRequest(
    contribuinteNumero: resolvedCnpj,
    pedidoDados: PedidoDados(
      idSistema: 'DTE',
      idServico: 'CONSULTASITUACAODTE111',
      versaoSistema: '1.0',
      dados: '', // Campo dados deve ser enviado vazio conforme documentação
    ),
  );

  try {
    final response = await _apiClient.post(
      '/Consultar',
      request,
      contratanteNumero: contratanteNumero,
      autorPedidoDadosNumero: autorPedidoDadosNumero,
    );
    final dteResponse = DteResponse.fromJson(response);

    _validarResposta(dteResponse);

    return dteResponse;
  } catch (e) {
    if (e is ArgumentError) {
      rethrow;
    }

    throw Exception('Erro ao consultar indicador DTE: ${e.toString()}');
  }
}