## SEFAZ / RS / NFC-e (SVRS)
Consulta Nota Fiscal de Consumidor Eletrônica (NFC-e) na Sefaz Virtual Rio Grande do Sul (SVRS)


### URL do site
- https://dfe-portal.svrs.rs.gov.br/NFCE/Consulta

### Requisição
URL para POST: `https://api.infosimples.com/api/v2/consultas/sefaz/rs/nfce-svrs`



| Parâmetro     | Descrição                                                                                                                                                                                                                                                                  |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| token*        | Chave de autenticação da API. É com o token que a API reconhece e autoriza quem está fazendo a consulta.                                                                                                                                                                   |
| nfce*         | Nfce                                                                                                                                                                                                                                                                       |
| login_cpf**   | Este parâmetro é necessário caso o login no GOV.BR seja feito com CPF e senha. Deve ser informado o CPF para fazer login no GOV.BR.                                                                                                                                        |
| login_senha** | Este parâmetro é necessário caso o login no GOV.BR seja feito com CPF e senha. Deve ser informada a senha para fazer login no GOV.BR.                                                                                                                                      |
| pkcs12_cert** | Este parâmetro é necessário caso o login no GOV.BR seja feito com certificado digital. Conteúdo do arquivo do certificado digital A1 encriptado seguindo <a href="https://api.infosimples.com/consultas/docs/certificados#criptografia">as instruções de criptografia</a>. |
| pkcs12_pass** | Este parâmetro é necessário caso o login no GOV.BR seja feito com certificado digital. Senha do certificado digital A1 encriptada seguindo <a href="https://api.infosimples.com/consultas/docs/certificados#criptografia">as instruções de criptografia</a>.               |

> * Parâmetro obrigatório.

> ** Parâmetro opcional. Pode ser necessário informar algum dos parâmetros opcionais para que a consulta funcione adequadamente.


### Exemplos de respostas (OK)
```json
{
  "code": 200,
  "code_message": "A requisição foi processada com sucesso.",
  "errors": [],
  "header": {
    "api_version": "v2",
    "api_version_full": "2.2.15-20231219200651",
    "product": "Consultas",
    "service": "sefaz/rs/nfce-svrs",
    "parameters": {
      "nfce": "11111111111111111111111111111111111111111111",
      "pkcs12_cert_md5": "aa25eae9298a43740f9a763477c20a1f",
      "pkcs12_pass_md5": "c9c59c5246576b81c3f2712100204dec"
    },
    "client_name": "Minha Empresa",
    "token_name": "Token de Produção",
    "billable": true,
    "price": "0.28",
    "requested_at": "2023-12-20T11:03:03.000-03:00",
    "elapsed_time_in_milliseconds": 121,
    "remote_ip": "111.111.111.111",
    "signature": "U2FsdGVkX18j3IYP9KAiV1y9upuY9aw7jK1xQu4P16EnFIyIG2wivlYiXyyt2YqjyPxFtXmmXOgpp6HH4nQ78w=="
  },
  "data_count": 1,
  "data": [
    {
      "dados_destinatario": {
        "nome_razao_social": "Exemplo de Nome",
        "cnpj_cpf_id_estrangeiro": "123.456.789-10",
        "endereco": "Avenida Paulista, 807. São Paulo. SP. Brasil.",
        "bairro_distrito": "",
        "cep": "01311-915",
        "municipio": "SAO PAULO / SP",
        "telefone": "(11) 1111-1111",
        "uf": "SP",
        "pais": "",
        "indicador_ie": "",
        "inscricao_estadual": "",
        "inscricao_suframa": "",
        "im": "11111111",
        "email": "exemplo@email.com"
      },
      "dados_emitente": {
        "nome_razao_social": "Exemplo de Nome",
        "nome_fantasia": "Exemplo de Nome Fantasia",
        "cnpj": "12.345.678/9012-34",
        "cpf": "123.456.789-01",
        "normalizado_cnpj": "12345678901234",
        "normalizado_cpf": "12345678901",
        "endereco": "Avenida Paulista, 807. São Paulo. SP. Brasil.",
        "bairro_distrito": "Rincao",
        "cep": "01311-915",
        "municipio": "SAO PAULO / SP",
        "telefone": "(11) 1111-1111",
        "uf": "SP",
        "pais": "1058 - BRASIL",
        "inscricao_estadual": "860544354",
        "inscricao_estadual_substituto_tributario": "",
        "inscricao_municipal": "111",
        "municipio_ocorrencia_icms": "",
        "cnae_fiscal": "",
        "codigo_regime_tributario": "3 - Regime Normal"
      },
      "dados_nfe": {
        "modelo": "65",
        "serie": "8",
        "numero": "1111111111",
        "data_emissao": "11/11/1111",
        "normalizado_data_emissao": "11/11/1111",
        "data_saida_entrada": "",
        "normalizado_data_saida_entrada": "",
        "valor_total": "23,00",
        "normalizado_valor_total": 23.0
      },
      "dados_produtos_servicos": [
        {
          "numero_item": "use_valueuse_value",
          "descricao": "Exemplo de descrição",
          "quantidade": "1,0000",
          "normalizado_quantidade": 1.0,
          "unidade_comercial": "UN",
          "valor": "23,00",
          "normalizado_valor": 23.0,
          "codigo_produto": "11",
          "codigo_ncm": "11111111",
          "codigo_cest": "",
          "codigo_barra": "",
          "indicador_escala_relevante": "",
          "cnpj_fabricante_mercadoria": "12.345.678/9012-34",
          "normalizado_cnpj_fabricante_mercadoria": "12345678901234",
          "codigo_beneficio_fiscal_uf": "",
          "codigo_ex_tipi": "",
          "cfop": "5102",
          "outras_despesas_acessorias": "use_valueuse_value",
          "valor_desconto": "",
          "normalizado_valor_desconto": 0.0,
          "valor_frete": "",
          "normalizado_valor_frete": 0.0,
          "valor_seguro": "",
          "normalizado_valor_seguro": 0.0,
          "indicador_composicao_valor_total_nfe": "1use_value",
          "codigo_ean_comercial": "1111111111111",
          "quantidade_comercial": "1,0000",
          "codigo_ean_tributavel": "1111111111111",
          "unidade_tributavel": "UN",
          "quantidade_tributavel": "1,0000",
          "valor_unitario_comercializacao": "23,0000000000",
          "normalizado_valor_unitario_comercializacao": 0.0,
          "valor_unitario_tributacao": "23,0000000000",
          "normalizado_valor_unitario_tributacao": 0.0,
          "numero_pedido_compra": "use_valueuse_value",
          "item_pedido_compra": "",
          "valor_aproximado_tributos": "valor_aproximado_trinutos",
          "numero_fci": "use_valueuse_value",
          "icms": {
            "origem_mercadoria": "0 - Nacional",
            "tributacao_icms": "00 - Tributada integralmente",
            "modalidade_icms": "3 - Valor da Operação",
            "base_calculo": "23,00",
            "normalizado_base_calculo": 23.0,
            "aliquota": "17,0000",
            "normalizado_aliquota": 17.0,
            "valor": "",
            "normalizado_valor": 0.0,
            "percentual_fcp": "",
            "normalizado_percentual_fcp": 0.0,
            "valor_fcp": "",
            "normalizado_valor_fcp": 0.0,
            "valor_bc_icms_st_retido": "",
            "normalizado_valor_bc_icms_st_retido": 0.0,
            "aliquota_suportada_consumidor_final": "",
            "normalizado_aliquota_suportada_consumidor_final": 0.0,
            "valor_proprio_substituto": "",
            "normalizado_valor_proprio_substituto": 0.0,
            "valor_st_retido": "",
            "normalizado_valor_st_retido": 0.0,
            "valor_base_calculo_fcp_retido_anteriormente_st": "",
            "normalizado_valor_base_calculo_fcp_retido_anteriormente_st": 0.0,
            "percentual_fcp_retido_anteriormente_st": "use_valueuse_value",
            "normalizado_percentual_fcp_retido_anteriormente_st": 0.0,
            "valor_fcp_retido_st": "",
            "normalizado_valor_fcp_retido_st": 0.0,
            "percentual_reducao_base_calculo_efetiva": "use_valueuse_value",
            "normalizado_percentual_reducao_base_calculo_efetiva": 0.0,
            "valor_base_calculo_efetiva": "",
            "normalizado_valor_base_calculo_efetiva": 0.0,
            "aliquota_efetiva": "",
            "normalizado_aliquota_efetiva": 0.0,
            "valor_efetivo": "",
            "normalizado_valor_efetivo": 0.0,
            "valor_icms_desonerado": "",
            "normalizado_valor_icms_desonerado": 0.0,
            "motivo_desoneracao": "Exemplo de Texto",
            "codigo_situacao_operacao_simples_nacional": ""
          },
          "pis": {
            "cst": "01 - Operação Tributável (base de cálculo = valor da operação alíquota normal (cumulativo/não cumulativo))",
            "base_calculo": "19,09",
            "normalizado_base_calculo": 19.09,
            "aliquota": "0,6500",
            "normalizado_aliquota": 0.65,
            "valor": "0,12",
            "normalizado_valor": 0.12
          },
          "cofins": {
            "cst": "01 - Operação Tributável (base de cálculo = valor da operação alíquota normal (cumulativo/não cumulativo))",
            "base_calculo": "19,09",
            "normalizado_base_calculo": 19.09,
            "aliquota": "3,0000",
            "normalizado_aliquota": 3.0,
            "valor": "0,57",
            "normalizado_valor": 0.57
          }
        }
      ],
      "emissao": {
        "processo": "1111111-11.1111.1.11.1111",
        "versao_processo": "",
        "tipo_emissao": "Exemplo de Texto",
        "finalidade": "1 - Normal",
        "natureza_operacao": "Venda",
        "indicador_intermediador_marketplace": "0 - Operação sem intermediador",
        "tipo_operacao": "1 - Saída",
        "digest_value_nfe": "ABCDEF0123456789="
      },
      "eventos_nfe": [
        {
          "evento": "Exemplo de texto",
          "protocolo": "SPP1111111111",
          "data_autorizacao": "11/11/1111 às 11:11:11-03:00",
          "normalizado_data_autorizacao": "11/11/2020 11:11:11",
          "data_inclusao_db": "11/11/2020 às 11:11:11",
          "normalizado_data_inclusao_db": "11/11/2020 11:11:11"
        }
      ],
      "formas_pagamento": [
        {
          "ind_forma_pagamento": "",
          "meio_pagamento": "1 - Dinheiro",
          "descricao_meio_pagamento": "",
          "valor_pagamento": "50,00",
          "normalizado_valor_pagamento": 50.0,
          "tipo_integracao_pagamento": "",
          "cnpj_credenciadora": "12.345.678/9012-34",
          "normalizado_cnpj_credenciadora": "",
          "bandeira_operadora": "",
          "numero_autorizacao": "111",
          "troco": "27.00",
          "normalizado_troco": 2700.0
        }
      ],
      "informacoes_adicionais": {
        "formato_impressao_danfe": "4 - DANFE NFC-e",
        "entrada_em_contigencia": "",
        "justificativa": "SOLICITAÇÃO DE CANCELAMENTO DE CAR"
      },
      "informacoes_suplementares": {
        "qr_code_url": "https://exemplo.de.url.com.br/exemplo",
        "nfce_url": "https://exemplo.de.url.com.br/exemplo"
      },
      "situacao_atual": "AUTORIZADA (Ambiente de autorização: produção)",
      "totais_icms": {
        "base_calculo": "0,00",
        "normalizado_base_calculo": 0.0,
        "valor_icms": "0,00",
        "normalizado_valor_icms": 0.0,
        "valor_icms_desonerado": "",
        "normalizado_valor_icms_desonerado": 0.0,
        "valor_total_fcp": "0,00",
        "normalizado_valor_total_fcp": 0.0,
        "valor_total_icms_fcp": "0,00",
        "normalizado_valor_total_icms_fcp": 0.0,
        "valor_total_icms_intersetadual_uf_destino": "0,00",
        "normalizado_valor_total_icms_intersetadual_uf_destino": 0.0,
        "valor_total_icms_intersetadual_uf_rem": "0,00",
        "normalizado_valor_total_icms_intersetadual_uf_rem": 0.0,
        "base_calculo_icms_st": "",
        "normalizado_base_calculo_icms_st": 0.0,
        "valor_icms_substituicao": "0,00",
        "normalizado_valor_icms_substituicao": 0.0,
        "valor_total_fcp_retido_st": "",
        "normalizado_valor_total_fcp_retido_st": 0.0,
        "valor_total_fcp_retido_anteriormente_st": "",
        "normalizado_valor_total_fcp_retido_anteriormente_st": 0.0,
        "valor_total_produtos": "23,00",
        "normalizado_valor_total_produtos": 0.0,
        "valor_frete": "0,00",
        "normalizado_valor_frete": 0.0,
        "valor_seguro": "0,00",
        "normalizado_valor_seguro": 0.0,
        "valor_total_descontos": "0,00",
        "normalizado_valor_total_descontos": 0.0,
        "valor_total_ii": "0,00",
        "normalizado_valor_total_ii": 0.0,
        "valor_total_ipi": "0,00",
        "normalizado_valor_total_ipi": 0.0,
        "valor_total_ipi_devolvido": "",
        "normalizado_valor_total_ipi_devolvido": 0.0,
        "valor_pis": "0,12",
        "normalizado_valor_pis": 0.12,
        "valor_cofins": "0,57",
        "normalizado_valor_cofins": 0.57,
        "outras_despesas_acessorias": "use_valueuse_value",
        "normalizado_outras_despesas_acessorias": 0.0,
        "valor_total_nfe": "23,00",
        "normalizado_valor_total_nfe": 0.0,
        "valor_aproximado_tributos": "valor_aproximado_trinutos",
        "normalizado_valor_aproximado_tributos": 7.0
      },
      "transporte": {
        "modalidade_frete": "9 - Sem Ocorrência de Transporte"
      },
      "site_receipt": "https://www.exemplo.com/exemplo-de-url"
    }
  ],
  "site_receipts": [
    "https://www.exemplo.com/exemplo-de-url"
  ]
}
```


### Arquivo de visualização de consulta

O arquivo de visualização de consulta (`site_receipts`) disponibilizado no retorno da API é **emitido pela fonte original**.

### Exemplos de códigos para integração com a API


#### Python
```python
# Testado com: Python 3.10.19, Python 3.14.0
import requests
import base64
# pip install aes-bridge
import aes_bridge

url = 'https://api.infosimples.com/api/v2/consultas/sefaz/rs/nfce-svrs'
args = {
  "nfce":        "VALOR_DO_PARAMETRO_NFCE",
  "login_cpf":   "VALOR_DO_PARAMETRO_LOGIN_CPF",
  "login_senha": "VALOR_DO_PARAMETRO_LOGIN_SENHA",
  "pkcs12_cert": aes_bridge.encrypt(base64.b64encode(open("certificado.pfx", "rb").read()).decode(), "INFORME_A_CHAVE_DE_CRIPTOGRAFIA").decode("ascii").replace("+", "-").replace("/", "_").rstrip("="),
  "pkcs12_pass": aes_bridge.encrypt("SENHA_DO_CERTIFICADO", "INFORME_A_CHAVE_DE_CRIPTOGRAFIA").decode("ascii").replace("+", "-").replace("/", "_").rstrip("="),
  "token":       "INFORME_AQUI_O_TOKEN_DA_CHAVE_DE_ACESSO",
  "timeout":     "300"
}

response = requests.post(url, args)
response_json = response.json()
response.close()

if response_json['code'] == 200:
  print("Retorno com sucesso: ", response_json['data'])
elif response_json['code'] in range(600, 799):
  mensagem = "Resultado sem sucesso. Leia para saber mais: \n"
  mensagem += "Código: {} ({})\n".format(response_json['code'], response_json['code_message'])
  mensagem += "; ".join(response_json['errors'])
  print(mensagem)

print("Cabeçalho da consulta: ", response_json['header'])
print("URLs com arquivos de visualização (HTML/PDF): ", response_json['site_receipts'])
```


## Estamos prontos para ajudar
Ainda tem alguma dúvida ou precisa de ajuda na sua integração? Entre em contato em [suporte@infosimples.com.br](mailto:suporte@infosimples.com.br) e receba ajuda da nossa equipe técnica altamente qualificada.
