Estou com problemas no cadastro da empresa na nuvem fiscal

Quando vou gerar um objeto “Empresa”, o campo “regime_especial_tributacao” está gerando erro, pois estou passando zero como valor para esse parametro, conversei com um contador sobre o assunto ele falou que o correto nessa empresa que estou usando para testar a api é passar zero, pois não tem “regime especial tributação”, dando uma olhada na api é zero valor padrão do campo, quando tento executar o método de cadastrar a api retorna esse erro :

error retornado, acredito ser alguma validação do proprio sdk do c#, pois fiz o teste direto pelo postman na api é não gerou esse error.

eu testei direto na api da nuvem fiscal e funcionou sem o campo “regime_especial_tributacao”, testei também com o valor zero e também deu certo e o objeto gerador está correto, pois testei ele enviando pelo postman e também deu certo.

O campo regime_especial_tributacao é obrigatório no JSON do endpoint CriarEmpresa. O que não significa que a sua empresa precisa de regime especial de tributação. Basta você informar o valor 0 (zero), que indica “Sem regime tributário especial”.

A documentação do endpoint (e do campo regime_especial_tributacao) está disponível aqui:

Sim, estou passando 0 no parametro “regime_especial_tributacao” e mesmo assim gerar erro, não estou usando o “CriarEmpresa”, estou utilizando o “CriarEmpresaAsync”.
Obs: A parte do “int.Parse(franchise.TaxRegime)”, estou passando o regime de tributação para inteiro pois na database está como char.

Você consegue passar por favor o código-fonte completo, ou pelo menos toda a construção da chamada pelo SDK?

[HttpPost("{franchise_id}")]
        public async Task<IActionResult> CreateFanchise(Guid franchise_id)
        {
            Configuration config = new Configuration();
            HttpClient httpClient = new HttpClient();
            HttpClientHandler httpClientHandler = new HttpClientHandler();

            var franchise = await _franchiseRepository.GetFranchise(franchise_id);

            var endereco = new EmpresaEndereco(franchise.Person.District, franchise.Person.Number, franchise.Person.Complement,
                franchise.Person.District, franchise.Person.City.CodIBGE, franchise.Person.City.Name, franchise.Person.City.State,
                franchise.Person.City.Country.CountryCode, franchise.Person.City.Country.Name, franchise.Person.CEP);

            Empresa empresa = new Empresa(franchise.Person.CPFeCNPJ, new DateTime(), new DateTime(), franchise.Person.RGeStateRegistration, " ",
                franchise.Person.Name, franchise.Person.FantasyName, franchise.Person.CellPhone, franchise.Person.Email, endereco,
                false,int.Parse(franchise.TaxRegime), 0);

            config.AccessToken = tokenAcess;

            config.BasePath = baseUrl;

            var ApiInstance = new EmpresaApi(httpClient, config, httpClientHandler);

            try
            {
                Empresa result = await ApiInstance.CriarEmpresaAsync(empresa);

                if (result is null)
                {
                    throw new ApiException(204, "cnpj não encontrado em nossa pesquisa.");
                }

                return Ok(result);
            }
            catch (ApiException ex)
            {
                if (ex.ErrorCode == 204)
                {
                    return BadRequest(ex.Message);
                }

                return BadRequest(ex.Message);
            }

        }

Então sobre esse problema, eu estava dando uma olhada no código fonte do sdk, na propriedade “regime_especial_tributacao” está marcado o “[DataMember(Name = “regime_especial_tributacao”, IsRequired = true, EmitDefaultValue = false)]”, mas se eu não me engano o “EmitDefaultValue” , não aceita o valor padrão, quando coloquei essa propriedade como true acabou o problema do “regime_especial_tributario”, não entendo muito sobre isso acredito ser por isso o problema,
link que mostrar um exemplo :

1 curtida

Obrigado pela informação. Realmente, havia um problema nesse parâmetro.

Como tivemos novidades e atualizações na API com a versão 1.1, o SDK pra .NET também foi atualizado e agora deve estar correto.

Este tópico foi fechado automaticamente 24 horas depois da última resposta. Novas respostas não são mais permitidas.