COFRE NFE
Precisa de mais integrações?

O envio de arquivos abaixo é a forma mais simples de integração, ideal para quem só precisa enviar notas fiscais. Se o seu software também precisa pesquisar notas já armazenadas, baixar os XMLs, gerenciar empresas da contabilidade (criar, alterar, ativar módulos) ou outras integrações, consulte nossa documentação completa de APIs, com todos os endpoints disponíveis, autenticação e exemplos de uso.

Se você usa Linux, também disponibilizamos scripts prontos (bash) para automatizar o envio e o download de notas: script de Envio de Notas e script de Baixar Notas.

Teste a API para Envio de Arquivos
"retorno" com valor "1"
"page" com valor "envia_nfe_avulso"
Parâmetro: "file"
Parâmetro: "xml"

Se preferir baixe este HTML

Instruções

Integre seu software de vendas com o COFRE NFE para salvar e disponibilizar todas as notas.
Basta configurar seu software para que envie as notas fiscais diretamente para nós.

Para enviar uma nota ao COFRE NFE basta efetuar um POST do arquivo XML para o endereço https://painel.cofrenfe.com.br/enviar-notas/enviar?retorno=1
O arquivo poderá ser enviado em formato file (upload) ou se você preferir pode enviar a string do arquivo XML dentro de um campo chamado "xml".
Caso a nota seja importada ou já esteja na base dados o retorno será um HTTP/1.1 200 "OK"
Caso a nota não seja importada por algum motivo o retorno será um HTTP/1.1 500 "ERR"

Exemplo de formulário HTML com Upload de arquivo

HTML
<form action="https://painel.cofrenfe.com.br/enviar-notas/enviar" method="post" enctype="multipart/form-data">
    <input type="hidden" name="retorno" value="1" />
    <label for="file">Arquivo XML:</label>
    <input type="file" name="file" id="file" />
    <input value="Enviar" type="submit" />
</form>                

Exemplo de formulário HTML com envio de XML via string

HTML
<form action="https://painel.cofrenfe.com.br/enviar-notas/enviar" method="post" autocomplete="off">
<input type="hidden" name="retorno" value="1" />            
<label for="xml">Conteúdo do XML:</label>
    <textarea name="xml" id="xml" placeholder="Cole o conteúdo do XML da nota fiscal aqui..." required></textarea>
    <button type="submit">Enviar</button>
</form>                

Exemplos de post via cURL

cURL
curl -v -F "arquivo=@/home/minha-nota.xml" -H "Content-Type: multipart/form-data" "https://painel.cofrenfe.com.br/enviar-notas/enviar?retorno=1"

cURL
curl -X POST "https://painel.cofrenfe.com.br/enviar-notas/enviar?retorno=1" -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "xml=CONTEUDO_DO_XML_AQUI"

cURL
curl -X POST "https://painel.cofrenfe.com.br/enviar-notas/enviar?retorno=1" -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "xml=$(cat /home/minha-nota.xml)"

Exemplo de post via PHP

PHP
$ch = curl_init();
$options = array(
	CURLOPT_RETURNTRANSFER => true,
	CURLOPT_FOLLOWLOCATION => true,
	CURLOPT_SSL_VERIFYHOST => false,
	CURLOPT_SSL_VERIFYPEER => false,
	CURLOPT_URL => 'https://painel.cofrenfe.com.br/enviar-notas/enviar',
	CURLOPT_POSTFIELDS => array(
		'retorno' => 1,
		'arquivo' => new CURLFile('/home/arquivos/nota.xml')
	),
	CURLOPT_VERBOSE => true, // Para debug
	CURLOPT_HTTPHEADER => array(
		'Content-Type: multipart/form-data'
	)  
);
curl_setopt_array($ch , $options);
$output = curl_exec($ch);$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$response = json_decode($output, true);if ($http_code === 200 && isset($response['sucesso']) && $response['sucesso'] == 1) {
  echo 'sucesso';
} else {
	echo 'erro';
}echo "\n\nRetorno";
echo $output;

Exemplo de post via C#

C#
private void button1_Click(object sender, EventArgs e) {
	ASCIIEncoding encoding = new ASCIIEncoding();
	WebClient Client = new WebClient();
	byte[] responseArray = Client.UploadFile("https://painel.cofrenfe.com.br/enviar-notas/enviar?retorno=1", "C:\\arquivos\\nota.xml");
	richTextBox1.Text = System.Text.Encoding.ASCII.GetString(responseArray);		
}

Exemplo de post via Delphi

Delphi/Pascal

function enviaNF(caminhoarquivo:string):boolean;
var
  DataStream: TIdMultiPartFormDataStream;
  retorno: string;
  IdHTTP1: TIdHTTP;
begin
  IdHTTP1 := TIdHTTP.Create(nil);
  // Se tem Proxy:
  // IdHTTP1.ProxyParams.BasicAuthentication := True;
  // IdHTTP1.ProxyParams.ProxyServer := frmConfig.proxy_servidor.text;
  // IdHTTP1.ProxyParams.ProxyPort := StrToInt(frmConfig.proxy_porta.text);
  // IdHTTP1.ProxyParams.ProxyUsername := frmConfig.proxy_usuario.text;
  // IdHTTP1.ProxyParams.ProxyPassword := frmConfig.proxy_senha.text;
  DataStream := TIdMultiPartFormDataStream.Create;
  try
    DataStream.AddFormField('aplicacao', '[NOME-DA-SUA-APLICACAO]');
    DataStream.AddFormField('retorno', '3');
    DataStream.AddFile( 'file', caminhoarquivo, 'text/xml' );
    retorno := IdHTTP1.Post('https://painel.cofrenfe.com.br/enviar-notas/enviar', DataStream);
  finally
    DataStream.Free;
    IdHTTP1.Free;
  end;  if (retorno='OK') then 
    Result :=true
  else
    Result :=false;end;funcoes.enviaNF('C:\arquivos\nota1000.xml');

Restaram dúvidas? Entre em contato conosco agora mesmo via formulário de atendimento.