Logo Java

Emita Nota Fiscal Eletrônica pelo seu sistema Java utilizando a nossa API

Hoje o Java é a linguagem de programação mais popular no mundo, sendo utilizada por empresas de todos os portes para desenvolvimento de todo tipo de sistemas.

A emissão de NFe, NFSe ou NFCe utilizando Java pode ser feita de forma direta através da comunicação sem intermediários com as receitas estaduais ou prefeituras, porém existem inúmeras vantagens em utilizar uma API de terceiros para esta emissão

O Focus NFe possui uma API simples e completa para emissão destes documentos fiscais, abaixo você irá encontrar exemplos funcionais de código-fonte em Java utilizando a nossa API.


import java.util.HashMap;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class Main {
  
  public static void main(String[] args) throws JSONException{
    
    /* Para ambiente de produção use a variável abaixo:
    String server = "https://api.focusnfe.com.br/"; */
    String server = "https://homologacao.focusnfe.com.br";
    
    String token =  "Token_enviado_pelo_suporte";
    
    /* Substituir pela sua identificação interna da nota. */
    String ref = "12345";
    
    Client client = Client.create();
    
    String url = server.concat("nfe2/autorizar.json?token="+ token +"&ref="+ ref);
    
    /* Aqui são criados as hash's que receberão os dados da nota. */
    HashMap<String, String> nfe = new HashMap<String, String>();
    HashMap<String, String> itens = new HashMap<String, String>();
    
    nfe.put("data_emissao", "2017-08-28T15:00:00-03:00");
    nfe.put("natureza_operacao", "Remessa de Produtos");
    nfe.put("forma_pagamento", "0");
    nfe.put("tipo_documento", "1");
    nfe.put("finalidade_emissao", "1");
    nfe.put("cnpj_emitente", "51916585000125");
    nfe.put("nome_emitente", "ACME LTDA");
    nfe.put("nome_fantasia_emitente", "ACME TESTES");
    nfe.put("logradouro_emitente", "Rua Interventor Manoel Ribas");
    nfe.put("numero_emitente", "1355 ");
    nfe.put("bairro_emitente", "Jardim Gutierres ");
    nfe.put("municipio_emitente", "Campo Mourao");
    nfe.put("uf_emitente", "PR");
    nfe.put("cep_emitente", "87300410");
    nfe.put("telefone_emitente", "44912345678");
    nfe.put("inscricao_estadual_emitente", "101942171617");
    nfe.put("nome_destinatario", "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");
    nfe.put("cpf_destinatario", "51966818092");
    nfe.put("inscricao_estadual_destinatario", "ISENTO");
    nfe.put("telefone_destinatario", "19912345678");
    nfe.put("logradouro_destinatario", "Rua Leonor Campos");
    nfe.put("numero_destinatario", "29");
    nfe.put("bairro_destinatario", "Swiss Park");
    nfe.put("municipio_destinatario", "Campinas");
    nfe.put("uf_destinatario", "SP");
    nfe.put("pais_destinatario", "Brasil");
    nfe.put("cep_destinatario", "13049555");
    nfe.put("icms_base_calculo", "0");
    nfe.put("icms_valor_total", "0");
    nfe.put("icms_base_calculo_st", "0");
    nfe.put("icms_valor_total_st", "0");
    nfe.put("icms_modalidade_base_calculo", "0");
    nfe.put("icms_valor", "0");
    nfe.put("valor_frete", "19.90");
    nfe.put("valor_seguro", "0");
    nfe.put("valor_total", "79.90");
    nfe.put("valor_produtos", "60.00");
    nfe.put("valor_desconto", "0.00");
    nfe.put("valor_ipi", "0");
    nfe.put("modalidade_frete", "1");
    itens.put("numero_item","128");
    itens.put("codigo_produto","1007");
    itens.put("descricao","Multi Mist 500g");
    itens.put("cfop","6102");
    itens.put("unidade_comercial","un");
    itens.put("quantidade_comercial","2");
    itens.put("valor_unitario_comercial","30");
    itens.put("valor_unitario_tributavel","30");
    itens.put("unidade_tributavel","un");
    itens.put("codigo_ncm","11041900");
    itens.put("valor_frete","19.90");
    itens.put("valor_desconto","0.00");
    itens.put("quantidade_tributavel","2");
    itens.put("valor_bruto","60.00");
    itens.put("icms_situacao_tributaria","103");
    itens.put("icms_origem","0");
    itens.put("pis_situacao_tributaria","07");
    itens.put("cofins_situacao_tributaria","07");
    itens.put("ipi_situacao_tributaria","53");
    itens.put("ipi_codigo_enquadramento_legal","999");
    
    /* Depois de fazer o input dos dados, são criados os objetos JSON já com os valores das hash's. */
    JSONObject json = new JSONObject (nfe);
    JSONObject JsonItens = new JSONObject (itens);
    
    /* Aqui adicionamos os objetos JSON nos campos da API como array no JSON principal. */
    json.append("items", JsonItens);
    
    /* É recomendado verificar como os dados foram gerados em JSON e se ele está seguindo a estrutura especificada em nossa documentação.
    System.out.print(json); */
    
    WebResource request = client.resource(url);
    
    ClientResponse resposta = request.post(ClientResponse.class, json);
    
    int HttpCode = resposta.getStatus(); 
    
    String body = resposta.getEntity(String.class);
    
    /* As três linhas a seguir exibem as informações retornadas pela nossa API. 
    * Aqui o seu sistema deverá interpretar e lidar com o retorno. */
    System.out.print("HTTP Code: ");
    System.out.print(HttpCode);
    System.out.printf(body);
    
  }
}
                      


import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class Main {
  
  public static void main(String[] args){
    
    /* Para ambiente de produção use a variável abaixo:
    String server = "https://api.focusnfe.com.br/"; */
    String server = "https://homologacao.focusnfe.com.br";
    
    String token =  "token_enviado_pelo_suporte ";
    
    /* Substituir pela sua identificação interna da nota. */
    String ref = "12345";
    
    Client client = Client.create();
    
    String url = server.concat("nfe2/consultar.json?token="+ token +"&ref="+ ref);
    
    WebResource request = client.resource(url);
    
    ClientResponse resposta = request.get(ClientResponse.class);
    
    int HttpCode = resposta.getStatus(); 
    
    String body = resposta.getEntity(String.class);
    
    /* As três linhas abaixo imprimem as informações retornadas pela API. 
    * Aqui o seu sistema deverá interpretar e lidar com o retorno. */
    System.out.print("HTTP Code: ");
    System.out.print(HttpCode);
    System.out.printf(body);
  }
}
                      


import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class Main {
  
  public static void main(String[] args){
    
    /* Para ambiente de produção use a variável abaixo:
    String server = "https://api.focusnfe.com.br/"; */
    String server = "https://homologacao.focusnfe.com.br";
    
    String token =  "token_enviado_pelo_suporte";
    
    /* Substituir pela sua identificação interna da nota. */
    String ref = "12345";
    
    String justificativa = "Teste_de_cancelamento_de_nota";
    
    Client client = Client.create();
    
    String url = server.concat("nfe2/cancelar.json?token="+ token +"&ref="+ ref+ "&justificativa="+justificativa);
    
    WebResource request = client.resource(url);
    
    ClientResponse resposta = request.post(ClientResponse.class);
    
    int HttpCode = resposta.getStatus(); 
    
    String body = resposta.getEntity(String.class);
    
    /* As três linhas abaixo imprimem as informações retornadas pela API. 
    * Aqui o seu sistema deverá interpretar e lidar com o retorno. */
    System.out.print("HTTP Code: ");
    System.out.print(HttpCode);
    System.out.printf(body);
  }
}
                      


import java.util.HashMap;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class Main {
  
  public static void main(String[] args) throws JSONException{
    
    /* Para ambiente de produção use a variável abaixo:
    String server = "https://api.focusnfe.com.br/"; */
    String server = "https://homologacao.focusnfe.com.br";
    
    String token =  "Token_enviado_pelo_suporte";
    
    /* Substituir pela sua identificação interna da nota. */
    String ref = "12345";
    
    Client client = Client.create();
    
    String url = server.concat("nfse?token="+ token +"&ref="+ ref);
    
    /* Aqui são criados as hash's que receberão os dados da nota. */
    HashMap<String, String> nfse = new HashMap<String, String>();
    HashMap<String, String> prestador = new HashMap<String, String>();
    HashMap<String, String> tomador = new HashMap<String, String>();
    HashMap<String, String> TomadorEndereco = new HashMap<String, String>();
    HashMap<String, String> servico = new HashMap<String, String>();
    
    nfse.put("data_emissao", "2017-08-30T10:50:00-03:00");
    nfse.put("natureza_operacao", "1");
    prestador.put("cnpj", "51916585000125");
    prestador.put("inscricao_municipal", "123456");
    prestador.put("codigo_municipio", "4128104");
    tomador.put("cpf", "51966818092");
    tomador.put("razao_social", "ACME LTDA");
    tomador.put("email", "email-do-tomador@google.com.br");
    TomadorEndereco.put("bairro", "Jardim America");
    TomadorEndereco.put("cep", "80000000");
    TomadorEndereco.put("codigo_municipio", "4128104");
    TomadorEndereco.put("logradouro", "Rua Paulo Centrone");
    TomadorEndereco.put("numero", "168");
    TomadorEndereco.put("uf", "PR");
    servico.put("discriminacao", "Teste de servico");
    servico.put("aliquota", "3.00");
    servico.put("base_calculo", "1.0");
    servico.put("valor_iss", "0.03");
    servico.put("iss_retido", "false");
    servico.put("codigo_tributario_municipio", "8640202");
    servico.put("item_lista_servico", "4.03");
    servico.put("valor_servicos", "1.0");
    servico.put("valor_liquido", "1.0");
    
    /* Depois de fazer o input dos dados, são criados os objetos JSON já com os valores das hash's. */
    JSONObject json = new JSONObject (nfse);
    JSONObject JsonPrestador = new JSONObject (prestador);
    JSONObject JsonTomador = new JSONObject (tomador);
    JSONObject JsonTomadorEndereco = new JSONObject (TomadorEndereco);
    JSONObject JsonServico = new JSONObject (servico);
    
    /* Aqui adicionamos os objetos JSON nos campos da API como array no JSON principal. */
    json.accumulate("prestador", JsonPrestador);
    json.accumulate("tomador", JsonTomador);
    JsonTomador.accumulate("endereco", JsonTomadorEndereco);
    json.accumulate("servico", JsonServico);
    
    /* É recomendado verificar como os dados foram gerados em JSON e se ele está seguindo a estrutura especificada em nossa documentação.
    System.out.print(json); */
    
    WebResource request = client.resource(url);
    
    ClientResponse resposta = request.post(ClientResponse.class, json);
    
    int HttpCode = resposta.getStatus(); 
    
    String body = resposta.getEntity(String.class);
    
    /* As três linhas a seguir exibem as informações retornadas pela nossa API. 
    * Aqui o seu sistema deverá interpretar e lidar com o retorno. */
    System.out.print("HTTP Code: ");
    System.out.print(HttpCode);
    System.out.printf(body);
  }
}
                    


import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class Main {
  
  public static void main(String[] args){
    
    /* Para ambiente de produção use a variável abaixo:
    String server = "https://api.focusnfe.com.br/"; */
    String server = "https://homologacao.focusnfe.com.br";
    
    String token =  "token_enviado_pelo_suporte ";
    
    /* Substituir pela sua identificação interna da nota. */
    String ref = "12345";
    
    Client client = Client.create();
    
    String url = server.concat("nfse/"+ref+"?"+ "token="+ token);
    
    WebResource request = client.resource(url);
    
    ClientResponse resposta = request.get(ClientResponse.class);
    
    int HttpCode = resposta.getStatus(); 
    
    String body = resposta.getEntity(String.class);
    
    /* As três linhas abaixo imprimem as informações retornadas pela API. 
    * Aqui o seu sistema deverá interpretar e lidar com o retorno. */
    System.out.print("HTTP Code: ");
    System.out.print(HttpCode);
    System.out.printf(body);
  }
}
                    


import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class Main {
  
  public static void main(String[] args){
    
    /* Para ambiente de produção use a variável abaixo:
    String server = "https://api.focusnfe.com.br/"; */
    String server = "https://homologacao.focusnfe.com.br";
    
    String token =  "token_enviado_pelo_suporte";
    
    /* Substituir pela sua identificação interna da nota. */
    String ref = "12345";
    
    String justificativa = "Teste_de_cancelamento_de_nota";
    
    Client client = Client.create();
    
    String url = server.concat("nfse/" + ref + "?token="+ token +"&justificativa="+justificativa);
    
    WebResource request = client.resource(url);
    
    ClientResponse resposta = request.delete(ClientResponse.class);
    
    int HttpCode = resposta.getStatus(); 
    
    String body = resposta.getEntity(String.class);
    
    /* As três linhas abaixo imprimem as informações retornadas pela API. 
    * Aqui o seu sistema deverá interpretar e lidar com o retorno. */
    System.out.print("HTTP Code: ");
    System.out.print(HttpCode);
    System.out.printf(body);
  }
}
                    


import java.util.HashMap;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class Main {
  
  public static void main(String[] args) throws JSONException{
    
    /* Para ambiente de produção use a variável abaixo:
    String server = "https://api.focusnfe.com.br/"; */
    
    String server = "https://homologacao.focusnfe.com.br";
    
    String token =  "Token_enviado_pelo_suporte";
    
    /* Substituir pela sua identificação interna da nota. */
    String ref = "12345";
    
    Client client = Client.create();
    
    String url = server.concat("nfce.json?token="+ token +"&ref="+ ref);
    
    /* Aqui são criados as hash's que receberão os dados da nota. */
    HashMap<String, String> nfce = new HashMap<String, String>();
    HashMap<String, String> itens = new HashMap<String, String>();
    HashMap<String, String> formasPagamento = new HashMap<String, String>();
    
    nfce.put("data_emissao", "2017-08-28T17:20:00-03:00");
    nfce.put("consumidor_final", "1");
    nfce.put("modalidade_frete", "9");
    nfce.put("natureza_operacao", "Venda ao Consumidor");
    nfce.put("tipo_documento", "1");
    nfce.put("finalidade_emissao", "1");
    nfce.put("presenca_comprador", "1");
    nfce.put("indicador_inscricao_estadual_destinatario", "9");
    nfce.put("cnpj_emitente", "51916585000125");
    nfce.put("cpf_destinatario", "");
    nfce.put("id_estrangeiro_destinatario", "1234567");
    nfce.put("nome_destinatario", "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");
    nfce.put("informacoes_adicionais_contribuinte", "Documento emitido por ME ou EPP optante pelo Simples Nacional nao gera direito a credito fiscal de ICMS lei 123/2006.");
    nfce.put("valor_produtos", "1.0000");
    nfce.put("valor_desconto", "0.0000");
    nfce.put("valor_total", "1.0000");
    nfce.put("forma_pagamento", "0");
    nfce.put("icms_base_calculo", "0.0000");
    nfce.put("icms_valor_total", "0.0000");
    nfce.put("icms_base_calculo_st", "0.0000");
    nfce.put("icms_valor_total_st", "0.0");
    nfce.put("icms_modalidade_base_calculo", "3");
    nfce.put("valor_frete", "0.0");
    itens.put("numero_item", "1");
    itens.put("unidade_comercial", "PC");
    itens.put("unidade_tributavel", "PC");
    itens.put("codigo_ncm", "94019090");
    itens.put("codigo_produto", "Div.13350000");
    itens.put("descricao", "NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL");
    itens.put("cfop", "5102");
    itens.put("valor_unitario_comercial", "1.0000000000");
    itens.put("valor_unitario_tributavel", "1.0000000000");
    itens.put("valor_bruto", "1.0000");
    itens.put("quantidade_comercial", "1.0000");
    itens.put("quantidade_tributavel", "1.0000");
    itens.put("quantidade", "1.0000");
    itens.put("icms_origem", "0");
    itens.put("icms_base_calculo", "1.00");
    itens.put("icms_modalidade_base_calculo", "3");
    itens.put("valor_frete", "0.0");
    itens.put("valor_outras_despesas", "0.0");
    itens.put("icms_situacao_tributaria", "102");
    formasPagamento.put("forma_pagamento", "99");
    formasPagamento.put("valor_pagamento", "1.0000");
    
    /* Depois de fazer o input dos dados, são criados os objetos JSON já com os valores das hash's. */
    JSONObject json = new JSONObject (nfce);
    JSONObject JsonItens = new JSONObject (itens);
    JSONObject JsonPagamento = new JSONObject (formasPagamento);
    
    /* Aqui adicionamos os objetos JSON nos campos da API como array no JSON principal. */
    json.append("items", JsonItens);
    json.append("formas_pagamento", JsonPagamento);
    
    /* É recomendado verificar como os dados foram gerados em JSON e se ele está seguindo a estrutura especificada em nossa documentação.
    System.out.print(json); */
    
    WebResource request = client.resource(url);
    
    ClientResponse resposta = requestpost(ClientResponse.class, json);
    
    int HttpCode = resposta.getStatus(); 
    
    String body = resposta.getEntity(String.class);
    
    /* As três linhas a seguir exibem as informações retornadas pela nossa API. 
    * Aqui o seu sistema deverá interpretar e lidar com o retorno. */
    System.out.print("HTTP Code: ");
    System.out.print(HttpCode);
    System.out.printf(body);
  }
}
                  


import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class Main {
  
  public static void main(String[] args){
    
    /* Para ambiente de produção use a variável abaixo:
    String server = "https://api.focusnfe.com.br/"; */
    
    String server = "https://homologacao.focusnfe.com.br";
    
    String token =  "token_enviado_pelo_suporte ";
    
    /* Substituir pela sua identificação interna da nota. */
    String ref = "12345";
    
    Client client = Client.create();
    
    String url = server.concat("nfce/"+ref+".json?"+ "token="+ token);
    
    WebResource request = client.resource(url);
    
    ClientResponse resposta = (ClientResponse) request.get(ClientResponse.class);
    
    int HttpCode = resposta.getStatus(); 
    
    String body = resposta.getEntity(String.class);
    
    /* As três linhas abaixo imprimem as informações retornadas pela API. 
    * Aqui o seu sistema deverá interpretar e lidar com o retorno. */
    System.out.print("HTTP Code: ");
    System.out.print(HttpCode);
    System.out.printf(body);
  }
}
                  


import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class Main {
  
  public static void main(String[] args){
    /* Para ambiente de produção use a variável abaixo:
    String server = "https://api.focusnfe.com.br/"; */
    
    String server = "https://homologacao.focusnfe.com.br";
    
    String token =  "token_enviado_pelo_suporte";
    
    /* Substituir pela sua identificação interna da nota. */
    String ref = "12345";
    
    String justificativa = "Teste_de_cancelamento_de_nota";
    
    Client client = Client.create();
    
    String url = server.concat("nfce/" + ref + "?token="+ token +"&justificativa="+justificativa);
    
    WebResource request = client.resource(url);
    
    ClientResponse resposta = (ClientResponse) request.delete(ClientResponse.class);
    
    int HttpCode = resposta.getStatus(); 
    
    String body = resposta.getEntity(String.class);
    
    /* As três linhas abaixo imprimem as informações retornadas pela API. 
    * Aqui o seu sistema deverá interpretar e lidar com o retorno. */
    System.out.print("HTTP Code: ");
    System.out.print(HttpCode);
    System.out.printf(body);
  }
}
                  

Documentação

Nós oferecemos uma REST API com integração em formato JSON para você integrar seu sistema de forma rápida e fácil, independente da linguagem que utiliza.

Todos os dias mais de 1600 empresas contam com o Focus NFe para emitir seus documentos fiscais, conheça algumas delas.

Logo da Magazine Luiza Marketing Place, um Cliente Focus NFe
Logo da ifood, um Cliente Focus NFe
Logo da Survey Monkey, um Cliente Focus NFe
Logo da Printi, um Cliente Focus NFe
Logo da Editora Europa, um Cliente Focus  NFe
Logo da NHS, um Cliente Focus NFe
Logo da Guichê Virtual, um Cliente Focus NFe
Logo da Wpensar, um Cliente Focus NFe
Logo da BierHeld, um Cliente Focus NFe
Logo da Liv Up, um Cliente Focus NFe
Logo da Dress e Go, um Cliente Focus NFe
Logo da Impact Hub, um Cliente Focus NFe

Quer saber mais sobre nossas APIs? Entre em contato conosco!

Entrar em Contato