Certificados
Upload POST
Envia o certificado digital A1 do contribuinte -- pré-requisito pra qualquer emissão (NF-e/CT-e/MDF-e/NFS-e assinam com ele).
Corpo da requisição
| Campo | Tipo | Obrigatório | Observação |
|---|---|---|---|
arquivo_base64 | string | Sim | Arquivo PFX/P12 do certificado A1, codificado em Base64 (não é multipart). |
senha | string | Sim | Senha do certificado, em texto puro no corpo (sempre por HTTPS). |
curl -X POST https://areacliente.centralfiscal.com.br/v1/contribuintes/{contribuinte_id}/certificado-digital \
-H "Authorization: Bearer cf_live_51JqK..." \
-H "Content-Type: application/json" \
-d '{
"arquivo_base64": "MIIKXQIBAzCCCh...",
"senha": "sua-senha-do-certificado"
}'Validação, na própria chamada
Não existe um passo de validação separado -- ele acontece de forma síncrona dentro
desta chamada: o arquivo é decodificado e aberto com a senha informada. Se algo estiver
errado, você recebe 400 na hora, não um upload "aceito" que falha depois:
| Situação | Resposta |
|---|---|
| Senha errada ou arquivo não é um PFX/P12 válido | 400 -- "Certificado A1 ou senha invalidos." |
| Arquivo válido, mas sem nenhum certificado dentro | 400 -- "Certificado A1 nao encontrado no arquivo informado." |
Um certificado já vencido é aceito no upload -- a validade (
valido_ate)
é só armazenada pra exibição, não bloqueia o envio. A emissão em si é que vai falhar
na SEFAZ se o certificado estiver expirado no momento de assinar.
Resposta
{
"certificado_digital_id": "7b1e...",
"tipo": "A1",
"titular": "CN=CENTRAL FISCAL COMERCIO LTDA:12345678000190, ...",
"numero_serie": "4F3A9C1B...",
"valido_de": "2026-02-10T00:00:00-03:00",
"valido_ate": "2027-02-10T00:00:00-03:00",
"status": "ACTIVE"
}
A senha e o arquivo nunca voltam na resposta -- nem aqui, nem em nenhuma consulta
posterior.