Jump to content

Recommended Posts

Posted (edited)

Boas,

Por acaso não estarás a colocar algum tipo de caracter a mais quando estás a criar o xml? Isso aconteceu-me quando tentei imitar aquele softwarezinho que a AT disponibilizou, e que na mensagem enviada para lá ia com aqueles " " para dar o enter. Eu penso que desde que não haja outro carater dentro das tags (pass e created) que não aqueles gerados pelo algoritmo, não deve haver problemas.

Depois diz como correu.

Boas,

O problema estava num espaço no XML a seguir à password (o post do dia 15/12) ... ontem não tinha reparado mas hoje quando peguei no código reparei ... não há nada como olhinhos frescos ehehe

requeststr += "<wss:Password>" & Password & " </wss:Password>"

Hoje já consegui colocar algumas faturas de teste e já verifiquei algumas coisas incriveis ... por exemplo podemos colocar 2 facturas com o mesmo número desde que o nº de contribuinte do comprador seja diferente ... o sistema aceita ..... dei por isso porque esqueci-me de mudar o nº da fatura de teste e tinha mudado o nº de contribuinte do cliente...

Entretanto há algumas questões ainda não esclarecidas e que já foram mencionadas aqui no forum (como a questão de indicar que uma fatura foi anulada), mas o complicado vai ser continuar a desenvolver depois do dia 31/12 e ainda há muito trabalho e testes pela frente ... em ... 2013 ...

Entretanto, e para o caso de não voltar a escrever antes do dia 31, desejo um ano de 2013 excelente para todos e com o espirito de entreajuda que se tem demonstrado ...

FELIZ 2013 !!

Edited by pmmachado
Posted

Boa Tarde,

gostaria de saber se alguem me pode ajudar com a criação da chave nonce para o Serviço Webservice da AT através do openssl.

Os comandos que estou a utilizar são os seguintes:

- openssl rand -base64 32 -out key.txt

de seguida:

- type key.txt|openssl rsautl -encrypt -inkey chavepub.cer -pubin|openssl enc -base64

ao autenticar o erro é sempre "8" não foi possivel decifrar o campo.

Obrigado

Posted

Qual e a classe que usas para gerar a password simetrica?

Não é nenhuma classe. No meu código, a função GerarChaveSimetrica() é uma função que eu criei. A única coisa que tens que fazer é criar um array de 16 bytes que sejam sempre diferentes.

-Deu-me o erro 2 - tamanho do utilizador invalido.. o meu utilizador e constituido por (9digitos/1digito)---experimentei meter 3 zeros antes do digito a seguir a barra e retornou-me o erro 3(NIF inválido)! os dados estão correctos!! alguem se deparou com este problema?

No campo username tem que estar deste formato NNNNNNNNN/UUUU obrigatoriamente. O NIF, tem que existir como é óbvio. E o subutilizador também.

Tens que o criar no portal das financas.

Alguém sabe como obtenho o certificado definitivo?

O certificado digital que foi cedido pela AT expira dia 31 de Dezembro. Pelo que a partir daí, tens que ter o teu próprio certificado digital.

Para isso, tens que criar um certificate signing request (CSR) com os dados que eles pretendem (ver comunicado do envio das faturas) e no site da e-fatura submeter esse csr.

Vão te responder com o certificado digital, que irás ter que o fundir com a chave privada que é gerada no momento da criação do CSR e aí utilizas esse ficheiro XPTO.pfx para assegurar a ligação com o servidor da AT.

Posted (edited)

o comando que utilizei para gerar o .csr foi:

openssl req -new -newkey rsa:2048 -nodes -out %1.csr -keyout %1.key -subj "/C=PT/ST=Coimbra/L=Coimbra/O=<Nome da Empresa>/OU=<departamento>/CN=<N. Contribuinte>/emailAddress=<email>" .

No entanto quando tento emitir o ficheiro da-me o erro "Por motivos de ordem técnica não nos é possível responder ao seu pedido.

Por favor tente mais tarde."

Tento ligar para a linha de apoio, mas estão encerrados!! alguem com o mesmo problema?

Edited by joaoMoreira
Posted (edited)

Alguem já conseguiu validar com sucesso o Webservice da AT?

Sim, mas com o certificado de testes... ainda não consegui obter o certificado definitivo.. tas a desenvolver em que linguagem?

eis o código de encriptação, à semelhança do que já foi postado:

String publicKey = certCP.PublicKey.Key.ToXmlString(false);
		String PassFinancas = "******";
		String  DataCriacao = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.ff") + "Z";
		//AesCryptoServiceProvider symetricKey = new AesCryptoServiceProvider();
		//symetricKey.GenerateKey();
		//symetricKey.GenerateIV();
		//symetricKey.Mode = CipherMode.ECB;
		//symetricKey.Padding = PaddingMode.PKCS7;

		RijndaelManaged rijndaelCipher = new RijndaelManaged();
		rijndaelCipher.GenerateKey();
		rijndaelCipher.Mode = CipherMode.ECB;
		rijndaelCipher.Padding = PaddingMode.PKCS7;		
		string simetrickey = rijndaelCipher.Key.ToString();
		Byte[] chaveSimetrica = rijndaelCipher.Key;
		SymmetricAlgorithm rijn = SymmetricAlgorithm.Create();
		rijn.Key = rijndaelCipher.IV;
		rijn.IV = rijndaelCipher.IV;
		rijn.Mode = CipherMode.ECB;
		MemoryStream msPassFinancas = new MemoryStream();
		CryptoStream csPassFinancas = new CryptoStream(msPassFinancas, rijn.CreateEncryptor(rijn.Key, rijn.IV), CryptoStreamMode.Write);
		using (StreamWriter swPassFinancas = new StreamWriter(csPassFinancas))
		{
			swPassFinancas.Write(PassFinancas);
		}
		MemoryStream msDataCriacao = new MemoryStream();
		CryptoStream csDataCriacao = new CryptoStream(msDataCriacao, rijn.CreateEncryptor(rijn.Key, rijn.IV), CryptoStreamMode.Write);
		using(StreamWriter swDataCriacao = new StreamWriter(csDataCriacao))
		{
			swDataCriacao.Write(DataCriacao);
		}
		String PassFinancasEncriptada = Convert.ToBase64String(msPassFinancas.ToArray());
		String DataCriacaoEncriptada = Convert.ToBase64String(msDataCriacao.ToArray());
		RSACryptoServiceProvider AlgRSA = new RSACryptoServiceProvider();
		AlgRSA.FromXmlString(publicKey);
		Byte[] Chave = AlgRSA.Encrypt(rijn.Key, false);
		String  ChaveSimetricaEncriptada = Convert.ToBase64String(Chave);

Edited by joaoMoreira
Posted

Alguem já conseguiu validar com sucesso o Webservice da AT?

Sim, mas com o certificado de testes... ainda não consegui obter o certificado definitivo.. tas a desenvolver em que linguagem?

O certificado que a AT nos enviou, penso eu, mas só funcionará no servidor definitivo.

1º porque se pensarmos bem, o servidor é de testes, então, só funciona o CD deles

2º porque se acederem ao endereço do servidor definitivo, o colocarem o novo certificado, a autenticação é efetuada

Apesar de que há uns dias atrás funcionava o certificado de testes e o novo.

Posted

O certificado que a AT nos enviou, penso eu, mas só funcionará no servidor definitivo.

1º porque se pensarmos bem, o servidor é de testes, então, só funciona o CD deles

2º porque se acederem ao endereço do servidor definitivo, o colocarem o novo certificado, a autenticação é efetuada

Apesar de que há uns dias atrás funcionava o certificado de testes e o novo.

mas qual e o endereço definitivo?

Posted (edited)

Boa Tarde a todos,

Estou a trabalhar num código em PHP, para a comunicação, por webservice com a AT.

Quando tento o envio do XML, este gera-me um erro "PHP Fatal error: SOAP-ERROR: Encoding: object has no 'TaxRegistrationNumber' property in ...". Gostaria de saber se alguém já teve esse erro? Ou possuem alguma solução para o problema reportado. Este não chega nem a gerar o xml de envio, nem mesmo o de resposta, consegui confirmar que a estrutura do Soap é preenchida, o erro ocorre quando chamo o método "RegisterInvoice".

Agradeço a quem possa ajudar,

Joaquim Oliveira

Edited by jokimen
Posted (edited)

Boa Tarde a todos,

Estou a trabalhar num código em PHP, para a comunicação, por webservice com a AT.

Quando tento o envio do XML, este gera-me um erro "PHP Fatal error: SOAP-ERROR: Encoding: object has no 'TaxRegistrationNumber' property in ...". Gostaria de saber se alguém já teve esse erro? Ou possuem alguma solução para o problema reportado. Este não chega nem a gerar o xml de envio, nem mesmo o de resposta, consegui confirmar que a estrutura do Soap é preenchida, o erro ocorre quando chamo o método "RegisterInvoice".

Agradeço a quem possa ajudar,

Joaquim Oliveira

Bom Ano Novo.

Tambem estou com problemas na chamada do método "RegisterInvoice". Mas isto porque, ao que percebi, o parametro e uma classe "registerinvoicetype" da qual nao tenho nenhuma informação.

Alguem tem essa informação ou sabe dizer em que propriedades coloco a informação e em que formato.

Obrigado.

Edited by Xendro
Posted

Já alguém conseguiu submeter facturas no ambiente de testes utilizando PHP ?

Estou a tentar usar a biblioteca de SOAP do PHP e nem me consigo ligar. Dá-me sempre "Could not connect to host" .

Obrigado

Boas fernandods

Também estou a usar PHP e a mim dá-me "Invalid Address" e um Soap Error mas acho que o problema está do lado deles.

Posted

Boas de novo,

Pessoal eu ao tentar enviar a seguinte FT, estou a receber uma resposta por parte da AT que nao me permite identificar o que esta errado quando tento enviar uma fatura.

Envio de FT

>>>SENT<<<

<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
 <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext">
	 <wss:UsernameToken>
	 <wss:Username>506547736/0001</wss:Username>
	 <wss:Password>N794eA/j1lI56Ftce/WLsA==</wss:Password>
	 <wss:Nonce>HlM+kMxd/Su3qcsqXaOcWfSgnL93NucjwO4l9d8WRHddT/7vqciQfEyJo+GmH3pFV8e7MElvNpHX
ZDK3DV9ER13svJ5mmT3S7q2XY85Zcnjrko1qJCfs1hPYjMEwMML+Pvat0x7RrLhIiWqswgHJ9mBB
TbSDt9JRYSg3gdUKJ4SImclrfbO606rn1AxGm8sr508cwiAOJiPQ6OKZb2+kMrOBxM486aDcqVde
WhSbOKSSXSoxK01gsDMmCUIbhQjUIaPH+d4hAqylYL5kq+CSmYhQ3qvWgzquQj64qpHLFq0nyCwP
CYZJXAJWEjjHixCR3kYj+KyfkDXSABUbSeZ05g==</wss:Nonce>
	 <wss:Created>jF0FDmy7Z+t4Tt9miyd6pNQ53jwQthyVkZtq+fpyhlI=</wss:Created>
	 </wss:UsernameToken>
 </wss:Security>
</S:Header>
<S:Body>
 <ns2:RegisterInvoiceElem xmlns:ns2="http://servicos.portaldasfinancas.gov.pt/faturas/">
	 <TaxRegistrationNumber>506547736</TaxRegistrationNumber>
	 <ns2:InvoiceNo>FT 1/1</ns2:InvoiceNo>
	 <ns2:InvoiceDate>2013-01-01</ns2:InvoiceDate>
	 <ns2:InvoiceType>FT</ns2:InvoiceType>
	 <ns2:InvoiceStatus>N</ns2:InvoiceStatus>
	 <CustomerTaxID>506239110</CustomerTaxID>
	 <Line>
	 <ns2:CreditAmount>100</ns2:CreditAmount>
	 <ns2:Tax>
		 <ns2:TaxType>IVA</ns2:TaxType>
		 <ns2:TaxCountryRegion>PT</ns2:TaxCountryRegion>
		 <ns2:TaxPercentage>23</ns2:TaxPercentage>
	 </ns2:Tax>
	 </Line>
	 <DocumentTotals>
	 <ns2:TaxPayable>23</ns2:TaxPayable>
	 <ns2:NetTotal>100</ns2:NetTotal>
	 <ns2:GrossTotal>123</ns2:GrossTotal>
	 </DocumentTotals>
 </ns2:RegisterInvoiceElem>
</S:Body>
</S:Envelope>

>>>RECEIVED<<<

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/%22>
<SOAP-ENV:Header />
<SOAP-ENV:Body>
 <SOAP-ENV:Fault>
	 <faultstring>DTD encountered in SOAP context at offset 2 of</faultstring>
	 <detail>fews.gdcontfsimpostosdev</detail>
 </SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Alguem faz ideia do que possa estar mal?

Por exemplo se eu no campo do TaxRegistrationNumber colocar um nif invalido( com menos 2 numeros) eu recebo uma mensagem deles a dizer o seguinte:

<faultstring>simple-type 1: element TaxRegistrationNumber value '5547736' is not a valid instance of type {http://servicos.portaldasfinancas.gov.pt/faturas/}SAFPTPortugueseVatNumber</faultstring>

Ou seja o que eu interpreto daqui é que eles estão a receber correctamente os meus XML, pq caso contrário nao recebia essa mensagem de erro quando submeto um nif invalido, mas em relação ao XML de envio de fatura que coloquei no inicio, nao consigo identificar o que possa estar mal, alguma ideia?????

Posted

Boas,

Reportei isso à AT e o que me responderam foi:

"Agradecemos o seu email, e informamos que a situação reportada está a ser corrigida, Estamos de momento a resolver esta questão.

Solicitamos que volte a testar mais tarde."

Devem estar com problemas no serviço. Pois eu não alterei nada no meu código (que estava funcional no dia 31/12) e agora também não funciona!

Posted (edited)

Ok Raul,

O mais ridiculo é que eles nem se quer dão ao trabalho de colocar um simples aviso no site sobre esta situação.

Enfim, thanks + uma vez 😉

Edited by rmartyn
Posted

Boas de novo,

Pessoal eu ao tentar enviar a seguinte FT, estou a receber uma resposta por parte da AT que nao me permite identificar o que esta errado quando tento enviar uma fatura.

Envio de FT

>>>SENT<<<

<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/%22>
<S:Header>
 <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext%22>
	 <wss:UsernameToken>
	 <wss:Username>506547736/0001</wss:Username>
	 <wss:Password>N794eA/j1lI56Ftce/WLsA==</wss:Password>
	 <wss:Nonce>HlM+kMxd/Su3qcsqXaOcWfSgnL93NucjwO4l9d8WRHddT/7vqciQfEyJo+GmH3pFV8e7MElvNpHX
ZDK3DV9ER13svJ5mmT3S7q2XY85Zcnjrko1qJCfs1hPYjMEwMML+Pvat0x7RrLhIiWqswgHJ9mBB
TbSDt9JRYSg3gdUKJ4SImclrfbO606rn1AxGm8sr508cwiAOJiPQ6OKZb2+kMrOBxM486aDcqVde
WhSbOKSSXSoxK01gsDMmCUIbhQjUIaPH+d4hAqylYL5kq+CSmYhQ3qvWgzquQj64qpHLFq0nyCwP
CYZJXAJWEjjHixCR3kYj+KyfkDXSABUbSeZ05g==</wss:Nonce>
	 <wss:Created>jF0FDmy7Z+t4Tt9miyd6pNQ53jwQthyVkZtq+fpyhlI=</wss:Created>
	 </wss:UsernameToken>
 </wss:Security>
</S:Header>
<S:Body>
 <ns2:RegisterInvoiceElem xmlns:ns2="http://servicos.portaldasfinancas.gov.pt/faturas/%22>
	 <TaxRegistrationNumber>506547736</TaxRegistrationNumber>
	 <ns2:InvoiceNo>FT 1/1</ns2:InvoiceNo>
	 <ns2:InvoiceDate>2013-01-01</ns2:InvoiceDate>
	 <ns2:InvoiceType>FT</ns2:InvoiceType>
	 <ns2:InvoiceStatus>N</ns2:InvoiceStatus>
	 <CustomerTaxID>506239110</CustomerTaxID>
	 <Line>
	 <ns2:CreditAmount>100</ns2:CreditAmount>
	 <ns2:Tax>
		 <ns2:TaxType>IVA</ns2:TaxType>
		 <ns2:TaxCountryRegion>PT</ns2:TaxCountryRegion>
		 <ns2:TaxPercentage>23</ns2:TaxPercentage>
	 </ns2:Tax>
	 </Line>
	 <DocumentTotals>
	 <ns2:TaxPayable>23</ns2:TaxPayable>
	 <ns2:NetTotal>100</ns2:NetTotal>
	 <ns2:GrossTotal>123</ns2:GrossTotal>
	 </DocumentTotals>
 </ns2:RegisterInvoiceElem>
</S:Body>
</S:Envelope>

>>>RECEIVED<<<

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/%22>
<SOAP-ENV:Header />
<SOAP-ENV:Body>
 <SOAP-ENV:Fault>
	 <faultstring>DTD encountered in SOAP context at offset 2 of</faultstring>
	 <detail>fews.gdcontfsimpostosdev</detail>
 </SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Alguem faz ideia do que possa estar mal?

Por exemplo se eu no campo do TaxRegistrationNumber colocar um nif invalido( com menos 2 numeros) eu recebo uma mensagem deles a dizer o seguinte:

<faultstring>simple-type 1: element TaxRegistrationNumber value '5547736' is not a valid instance of type {http://servicos.portaldasfinancas.gov.pt/faturas/}SAFPTPortugueseVatNumber</faultstring>

Ou seja o que eu interpreto daqui é que eles estão a receber correctamente os meus XML, pq caso contrário nao recebia essa mensagem de erro quando submeto um nif invalido, mas em relação ao XML de envio de fatura que coloquei no inicio, nao consigo identificar o que possa estar mal, alguma ideia?????

Boas,

tal como já escreveu o RaulLima, o código que funcionava no dia 31/12/2012 dá o mesmo erro e pela info que ele tem da AT o problema é mesmo deles ... Só ontem à noite é que voltei a poder pegar neste assunto e obtive esse erro. Pretendia contactar a AT hoje, mas visto que já há info dada pelo RaulLima, resta aguardar.

O próprio teste de conectividade da AT dá erro, embora outro ... "com.sun.xml.ws.client.ClientTransportException: HTTP transport error: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake"

Já agora, um excelente 2013 para todos !

Posted (edited)

Boas de novo,

Pessoal eu ao tentar enviar a seguinte FT, estou a receber uma resposta por parte da AT que nao me permite identificar o que esta errado quando tento enviar uma fatura.

Envio de FT

>>>SENT<<<

<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/%22>
<S:Header>
 <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext%22>
	 <wss:UsernameToken>
	 <wss:Username>506547736/0001</wss:Username>
	 <wss:Password>N794eA/j1lI56Ftce/WLsA==</wss:Password>
	 <wss:Nonce>HlM+kMxd/Su3qcsqXaOcWfSgnL93NucjwO4l9d8WRHddT/7vqciQfEyJo+GmH3pFV8e7MElvNpHX
ZDK3DV9ER13svJ5mmT3S7q2XY85Zcnjrko1qJCfs1hPYjMEwMML+Pvat0x7RrLhIiWqswgHJ9mBB
TbSDt9JRYSg3gdUKJ4SImclrfbO606rn1AxGm8sr508cwiAOJiPQ6OKZb2+kMrOBxM486aDcqVde
WhSbOKSSXSoxK01gsDMmCUIbhQjUIaPH+d4hAqylYL5kq+CSmYhQ3qvWgzquQj64qpHLFq0nyCwP
CYZJXAJWEjjHixCR3kYj+KyfkDXSABUbSeZ05g==</wss:Nonce>
	 <wss:Created>jF0FDmy7Z+t4Tt9miyd6pNQ53jwQthyVkZtq+fpyhlI=</wss:Created>
	 </wss:UsernameToken>
 </wss:Security>
</S:Header>
<S:Body>
 <ns2:RegisterInvoiceElem xmlns:ns2="http://servicos.portaldasfinancas.gov.pt/faturas/%22>
	 <TaxRegistrationNumber>506547736</TaxRegistrationNumber>
	 <ns2:InvoiceNo>FT 1/1</ns2:InvoiceNo>
	 <ns2:InvoiceDate>2013-01-01</ns2:InvoiceDate>
	 <ns2:InvoiceType>FT</ns2:InvoiceType>
	 <ns2:InvoiceStatus>N</ns2:InvoiceStatus>
	 <CustomerTaxID>506239110</CustomerTaxID>
	 <Line>
	 <ns2:CreditAmount>100</ns2:CreditAmount>
	 <ns2:Tax>
		 <ns2:TaxType>IVA</ns2:TaxType>
		 <ns2:TaxCountryRegion>PT</ns2:TaxCountryRegion>
		 <ns2:TaxPercentage>23</ns2:TaxPercentage>
	 </ns2:Tax>
	 </Line>
	 <DocumentTotals>
	 <ns2:TaxPayable>23</ns2:TaxPayable>
	 <ns2:NetTotal>100</ns2:NetTotal>
	 <ns2:GrossTotal>123</ns2:GrossTotal>
	 </DocumentTotals>
 </ns2:RegisterInvoiceElem>
</S:Body>
</S:Envelope>

>>>RECEIVED<<<

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/%22>
<SOAP-ENV:Header />
<SOAP-ENV:Body>
 <SOAP-ENV:Fault>
	 <faultstring>DTD encountered in SOAP context at offset 2 of</faultstring>
	 <detail>fews.gdcontfsimpostosdev</detail>
 </SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Alguem faz ideia do que possa estar mal?

Por exemplo se eu no campo do TaxRegistrationNumber colocar um nif invalido( com menos 2 numeros) eu recebo uma mensagem deles a dizer o seguinte:

<faultstring>simple-type 1: element TaxRegistrationNumber value '5547736' is not a valid instance of type {http://servicos.portaldasfinancas.gov.pt/faturas/}SAFPTPortugueseVatNumber</faultstring>

Ou seja o que eu interpreto daqui é que eles estão a receber correctamente os meus XML, pq caso contrário nao recebia essa mensagem de erro quando submeto um nif invalido, mas em relação ao XML de envio de fatura que coloquei no inicio, nao consigo identificar o que possa estar mal, alguma ideia?????

Não vejo o que possa estar mal rmartyn, manda email para o suporte da AT.

Eu nem consigo que o XML chegue lá, não me podes ajudar mostrando-me como construís-te o SOAP??

Edited by jokimen
Posted (edited)

É um erro deles que se já encontra reportado.

Temos que aguardar novidades 😉.

A ligação eu não consegui fazer por SOAP, tive que fazer com um request simples, existem varias opções para o fazer, eu no meu caso utilizei cURL.

Creio que o erro deles já se encontra resolvido pessoal.

Edited by rmartyn

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.