transmitirDeclaracao method

Future<TransmitirDeclaracaoResponse> transmitirDeclaracao({
  1. String? contribuinteNumero,
  2. required TransmitirDeclaracaoRequest declaracaoData,
  3. String? contratanteNumero,
  4. String? autorPedidoDadosNumero,
})

Transmite a Declaração Sócio Econômica - DEFIS

contribuinteNumero CNPJ do contribuinte (apenas Pessoa Jurídica é aceita) declaracaoData Dados da declaração incluindo ano, empresa, situação especial, etc. contratanteNumero Número do contratante (opcional, usa dados da autenticação se não informado) autorPedidoDadosNumero Número do autor do pedido de dados (opcional, usa dados da autenticação se não informado)

Implementation

Future<TransmitirDeclaracaoResponse> transmitirDeclaracao({
  String? contribuinteNumero,
  required TransmitirDeclaracaoRequest declaracaoData,
  String? contratanteNumero,
  String? autorPedidoDadosNumero,
}) async {
  final resolvedContribuinte =
      contribuinteNumero ??
      _apiClient.contribuinteNumero ??
      (throw ArgumentError('CNPJ do contribuinte é obrigatório'));
  final request = BaseRequest(
    contribuinteNumero: resolvedContribuinte,
    pedidoDados: PedidoDados(
      idSistema: 'DEFIS',
      idServico: 'TRANSDECLARACAO141',
      versaoSistema: '1.0',
      dados: jsonEncode(declaracaoData.toJson()),
    ),
  );

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