Pular para o conteúdo principal
Neste passo a passo, você consulta o saldo e os certificados, verifica o titular, cria um protocolo, agenda a videoconferência e cancela o protocolo. Os exemplos usam a chave czk_live_SUA_CHAVE. Troque pela sua.
Não há ambiente de testes. O passo 3 desconta 1 certificado do saldo real, e o passo 6 devolve esse certificado.
1

Consulte o saldo e os certificados

Cada protocolo desconta 1 certificado do saldo.
Liste os certificados que você pode criar.
Resposta (resumida):
Escolha um item de data. No passo 3, copie type, model e validity_months desse item para certificate.
2

Verifique o titular

Confira os dados antes de criar o protocolo. A verificação não desconta saldo.
Resposta (resumida):
Confira verification_result, mesmo quando a resposta for 200. Se o valor não for approved, interrompa a criação e siga a orientação de message.
3

Crie o protocolo

Gere uma chave de idempotência para esta criação. Ao reenviar a mesma chamada, mantenha a chave e os dados. Não envie name nem company_name: a API preenche os dois. Em certificate, use type, model e validity_months do item escolhido no passo 1.Use o e-mail do próprio cliente. Cada e-mail só pode ser usado com um CPF, por exigência da Autoridade Certificadora que emite o certificado. Um mesmo CPF pode usar mais de um e-mail. O e-mail não pode ter o sinal +.
A API responde 202 com o protocolo em creating. Se o e-mail já estiver vinculado a outro CPF, a resposta é 422 holder_email_in_use; se tiver o sinal +, é 400 validation_error. Nos dois casos nada é criado: troque o e-mail e reenvie com a mesma chave.Resposta (resumida):
Para e-CNPJ, use e_cnpj em certificate.type. Informe a empresa em customer e o representante legal em representative. Veja o exemplo completo em Cria protocolo.
4

Acompanhe o protocolo

O cabeçalho Location traz o caminho para consultar o protocolo. Consulte a cada 5 segundos enquanto status for creating. Esse intervalo vem no cabeçalho Retry-After da criação.
Resposta (resumida):
Compartilhe protocol_number com o titular para emitir o certificado digital. Quando a resposta trouxer protocol_url, compartilhe também esse link para entrar na fila da videoconferência.Guarde protocol_id nos seus registros para consultar o protocolo pela API. Se a criação falhar, siga as instruções do Ciclo de vida.
5

Agende a videoconferência

Consulte os horários livres e escolha um. Listar os horários não reserva nenhum. Os exemplos usam datas fixas: use um date e um time que GET /appointment-slots devolver.
Dias sem horário livre vêm com times vazio. Se has_more for true, use em from o dia seguinte ao último recebido. Os horários usam America/Sao_Paulo (horário de Brasília).Agende o horário escolhido. Defina um tempo limite de pelo menos 35 segundos: a chamada espera até 30 segundos pelo resultado.
Resposta (resumida):
Confira status, appointment e error, mesmo com uma resposta 200.
  • Confirme appointment_scheduled e o dia e horário escolhidos em appointment.
  • Se o resultado ainda não aparecer e não houver error, consulte o protocolo de novo. Não repita a ação com uma nova chave.
  • Se error.code for slot_unavailable, escolha outro horário e use uma nova chave, como pedido-12345-agendar-2.
  • Para outros erros, siga o Ciclo de vida.
6

Cancele o protocolo

Cancele antes da emissão do certificado. O cancelamento devolve 1 certificado ao saldo. A chamada não tem corpo e exige uma chave nova, porque é uma nova ação.
Resposta (resumida):
Como no agendamento, defina um tempo limite de pelo menos 35 segundos e confira status e error, mesmo com 200. Confirme cancelled. Se error.code for invalid_state, o protocolo continua ativo e não pode ser cancelado. Veja as regras de cancelamento.

Chaves de idempotência

Os exemplos usam uma chave por ação: pedido-12345-criar-1, pedido-12345-agendar-1 e pedido-12345-cancelar-1. O sufixo -1 marca a primeira tentativa. Para uma nova ação, como outro horário, troque a chave, por exemplo para pedido-12345-agendar-2. Veja Idempotência.

Outras ações

Próximos passos

Ciclo de vida do protocolo

Os status do protocolo e o que fazer em cada um.

Idempotência

Reenvie com segurança, sem duplicar protocolos.

Erros

Formato dos erros e quando tentar de novo.