entregarDeclaracao method
Entregar declaração mensal do Simples Nacional
cnpj CNPJ do contribuinte (14 dígitos sem formatação)
periodoApuracao Período de apuração da declaração (formato: AAAAMM, exemplo: 202504)
declaracao Objeto contendo os dados da declaração
indicadorTransmissao Indica se a declaração deve ser transmitida (padrão: true)
indicadorComparacao Indica se há necessidade de comparação dos valores (padrão: true)
valoresParaComparacao Valores para comparação com o valor apurado pelo sistema (opcional)
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)
Exemplo:
final resultado = await pgdasdService.entregarDeclaracao(
cnpj: '12345678000100',
periodoApuracao: 202504,
declaracao: declaracao,
autorPedidoDadosNumero: '12345678000100',
);
Implementation
Future<response_models.EntregarDeclaracaoResponse> entregarDeclaracao({
String? cnpj,
required int periodoApuracao,
required Declaracao declaracao,
bool indicadorTransmissao = true,
bool indicadorComparacao = true,
List<ValorDevido>? valoresParaComparacao,
String? contratanteNumero,
String? autorPedidoDadosNumero,
}) async {
final resolvedCnpj =
cnpj ??
_apiClient.contribuinteNumero ??
(throw ArgumentError('CNPJ do contribuinte é obrigatório'));
// Construir request internamente de forma transparente
final request = request_models.EntregarDeclaracaoRequest(
cnpjCompleto: resolvedCnpj,
pa: periodoApuracao,
indicadorTransmissao: indicadorTransmissao,
indicadorComparacao: indicadorComparacao,
declaracao: declaracao,
valoresParaComparacao: valoresParaComparacao,
);
if (!request.isValid && request.cnpjCompleto != '00000000000100') {
throw ArgumentError('Dados da declaração inválidos');
}
final baseRequest = BaseRequest(
contribuinteNumero: resolvedCnpj,
pedidoDados: PedidoDados(
idSistema: 'PGDASD',
idServico: 'TRANSDECLARACAO11',
versaoSistema: '1.0',
dados: request.toJson().toString(),
),
);
final response = await _apiClient.post(
'/Declarar',
baseRequest,
contratanteNumero: contratanteNumero,
autorPedidoDadosNumero: autorPedidoDadosNumero,
);
return response_models.EntregarDeclaracaoResponse.fromJson(response);
}