# MANUTENÇÃO DO CSC Administração do Código de Segurança do Contribuinte - CSC [Acesso ao CSC](http://nfce.encat.org/empresario/csc/) ## IMPORTANTE: Esse serviço, via webservice, não foi ainda liberado para uso, então que necessitar de um CSC para a emissão de NFCe (modelo 65) deverá proceder conforme estabelecido pela sua unidade autorizadora (SEFAZ do seu estado) **Função:** serviço destinado às opções de consulta, requisição e revogação dos números de CSC NFC-e. **Processo:** síncrono. **Método:** admCscNFCe ## Descrição Este método objetiva que as empresas emissoras de Nota Fiscal de Consumidor Eletrônica - NFC-e - possam efetuar o gerenciamento dos números de CSC NFC-e por meio do uso de Web Service. Esse serviço poderá ser usado como alternativa às soluções já existentes de gerenciamento do CSC NFC-e por meio de página web. O CSC NFC-e e seu respectivo número de identificação constituem informações fundamentais para a correta geração do QR-Code que deverá ser impresso no DANFE NFC-e. O serviço de manutenção do CSC NFC-e oferecerá três funcionalidades distintas: - consulta de códigos de segurança ativos; - revogação de código de segurança ativo; - requisição de novo código de segurança. Cada contribuinte (CNPJ Raiz) poderá manter até dois CSC ativos simultaneamente. Na hipótese de haver dois CSC ativos, só será aceita a requisição de novo CSC após a revogação de um deles. A funcionalidade de consulta de CSC ativos poderá ser usada a qualquer tempo sem nenhum tipo de restrição ## Dependências [NFePHP\Common\Certificate::class](Certificate.md) [NFePHP\NFe\Tools::class](Tools.md) [NFePHP\NFe\Common\Standardize::class](Standardize.md) ## Exemplo de Uso ```php use NFePHP\NFe\Tools; use NFePHP\Common\Certificate; use NFePHP\NFe\Common\Standardize; use NFePHP\NFe\Common\Complements; try { $certificate = Certificate::readPfx($content, 'senha'); $tools = new Tools($configJson, $certificate); $tools->model('55'); $indOp = 1; $response = $tools->sefazCsc($indOp); //você pode padronizar os dados de retorno atraves da classe abaixo //de forma a facilitar a extração dos dados do XML //NOTA: mas lembre-se que esse XML muitas vezes será necessário, // quando houver a necessidade de protocolos $stdCl = new Standardize($response); //nesse caso $std irá conter uma representação em stdClass do XML $std = $stdCl->toStd(); //nesse caso o $arr irá conter uma representação em array do XML $arr = $stdCl->toArray(); //nesse caso o $json irá conter uma representação em JSON do XML $json = $stdCl->toJson(); //verifique se o evento foi processado if ($std->cStat != 128) { //houve alguma falha e o evento não foi processado //TRATAR } else { $cStat = $std->retEvento->infEvento->cStat; if ($cStat == '101' || $cStat == '155') { //SUCESSO PROTOCOLAR A SOLICITAÇÂO ANTES DE GUARDAR $xml = Complements::toAuthorize($tools->lastRequest, $response); //grave o XML protocolado } else { //houve alguma falha no evento //TRATAR } } } catch (\Exception $e) { echo $e->getMessage(); } ``` ## Parametros | Variável | Detalhamento | | :---: | :--- | | $configJson | String Json com os dados de configuração (OBRIGATÓRIO) | | $content | String com o conteúdo do certificado PFX (OBRIGATÓRIO) | | $certificado | Classe Certificate::class contendo o certificado digital(OBRIGATÓRIO) | | $indOp | Identificador do tipo de operação: 1 - Consulta CSC Ativos; 2 - Solicita novo CSC; 3 - Revoga CSC Ativo (OBRIGATÓRIO) | ## Mensagens ### ENVIO *Consulta CSC Ativos* ```xml 52 1.00 2 1 58716523 ``` *Solicita outro CSC* ```xml 52 1.00 2 2 58716523 ``` *Cancela CSC Ativo* >NOTA: O CSC e o CSCid estão contidos no config.json ```xml 52 1.00 2 3 58716523 000002 GPB0JBWLUR6HWFTVEAS6RJ69GPCROFPBBB8G ```