emitirCcmei method

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

Emite o CCMEI (Cadastro Centralizado de MEI) em formato PDF

Entrada:

  • cnpj: CNPJ do MEI (14 dígitos, pode ser formatado)
  • contratanteNumero: CNPJ do contratante (opcional)
  • autorPedidoDadosNumero: CPF/CNPJ do autor (opcional)

Saída:

  • EmitirCcmeiResponse contendo:
    • pdfBase64: PDF do CCMEI codificado em Base64
    • dataEmissao: Data de emissão do documento
    • status: Status da requisição

Exemplo:

final response = await ccmeiService.emitirCcmei(
  '12345678000190',
  contratanteNumero: '98765432000100',
);
// Saída: EmitirCcmeiResponse { pdfBase64: 'JVBERi0xLjQ...', status: 200 }

Throws ArgumentError se o CNPJ for inválido

Implementation

Future<EmitirCcmeiResponse> emitirCcmei(
  String? cnpj, {
  String? contratanteNumero,
  String? autorPedidoDadosNumero,
}) async {
  final resolvedCnpj =
      cnpj ??
      _apiClient.contribuinteNumero ??
      (throw ArgumentError('CNPJ do contribuinte é obrigatório'));
  // Validar formato do CNPJ antes de fazer a requisição
  ValidacoesUtils.validateCNPJ(resolvedCnpj);

  // Criar requisição com dados específicos do serviço CCMEI
  final request = BaseRequest(
    contribuinteNumero: resolvedCnpj,
    pedidoDados: PedidoDados(
      idSistema: 'CCMEI',
      idServico: 'EMITIRCCMEI121', // ID específico para emissão de CCMEI
      versaoSistema: '1.0',
      dados: '',
    ),
  );

  // Executar requisição para o endpoint de emissão
  final response = await _apiClient.post(
    '/Emitir',
    request,
    contratanteNumero: contratanteNumero,
    autorPedidoDadosNumero: autorPedidoDadosNumero,
  );
  return EmitirCcmeiResponse.fromJson(response);
}