Este guia foi elaborado para orientar você, passo a passo, no processo de criação de credenciais e certificados para suas aplicações. Através dele, você aprenderá como gerar, armazenar e gerenciar suas credenciais de forma segura e eficiente, garantindo o acesso controlado aos ambientes desejados.
Abordaremos desde a criação inicial da credencial, passando pela geração do certificado, até as melhores práticas para o armazenamento dos dados sensíveis, como o Client ID e Client Secret. Além disso, você encontrará instruções para revogar credenciais e lidar com possíveis erros durante o processo.

Importante: Somente administradores da organização e administradores do integrador parceiro podem criar credenciais e certificados.
Criação de credencial
a. Na página da aplicação para a qual você quer obter credencial, clique em Credenciais e certificados ou clique no card (b) presente mais abaixo na página.

c. Clique no botão criar credencial para iniciar o fluxo de criação.

Para criar a credencial é muito simples, basta escolher o ambiente para o qual ela será válida e dar um nome.

Importante: O nome não pode ter mais de 50 caracteres.
d. Com a credencial criada, não esqueça de copiar o Client ID e Client Secret em um local seguro. Conforme alertamos em amarelo (d) ela será exibida uma única vez e não iremos armazenar o Client Secret em local algum por segurança.

Criação de certificado
Com a credencial criada, registramos tudo em um card identificando o nome, ambiente, últimos 6 caracteres do Client ID, quem criou e quando. Para gerar o certificado da credencial criada, clique em Gerar certificado (e).

Para geração do certificado, o primeiro passo é gerar o token temporário. Coloque o Client Secret da credencial e clique em Gerar token temporário (f).

Com o token gerado, agora termine de preencher os demais campos de identificação do certificado conforme solicitado e clique em Gerar certificado (g).

Com o certificado criado, faça o download para sua máquina clicando em Baixar certificado (h).

Importante: Você só poderá sair desta tela após concluir o download, garantindo que o arquivo foi salvo corretamente.

Pronto! Com credencial e certificado criadas fica tudo registrado em um card (i) com o nome do usuário que fez a operação, a data de criação e expiração do certificado. A qualquer momento você pode revogar a credencial clicando em Revogar (j).

Atenção: Caso ocorra um erro ao carregar a base de credenciais, exibiremos uma mensagem na tela com o botão Tentar novamente. Você poderá clicar em Tentar novamente até 3 vezes. Se o erro persistir, recomendamos abrir um ticket de suporte para que nossa equipe possa ajudar.

Alertamos o usuário quando o certificado está há 30 dias de expirar (j). Nesses casos, é exibido um botão (k) para gerar um novo certificado.

Como renovar o certificado?
A renovação do certificado dinâmico é essencial para garantir a comunicação segura entre sua aplicação e as APIs do Itaú. O certificado dinâmico tem validade de 365 dias, e o processo de renovação deve ser iniciado dentro da janela dos 30 dias finais antes do vencimento.
Importante: Não é necessário gerar novas credenciais (client_id e client_secret) para renovar o certificado. Utilize as credenciais já existentes.
Cenários de renovação
A renovação do certificado dinâmico pode ocorrer em dois cenários, dependendo da situação do certificado atual:
| Cenário | Condição | Ação necessária |
|---|---|---|
| Certificado ainda válido | O certificado está dentro do período de validade e entrou na janela de renovação (faltam 30 dias ou menos para o vencimento) | Gerar um novo certificado |
| Certificado expirado | O período de validade de 365 dias já foi encerrado | Executar o fluxo completo de criação de um novo certificado |
Certificado ainda válido (dentro da janela de 30 dias)
Quando o certificado ainda não expirou, mas já entrou na janela dos 30 dias finais de validade, existem duas opções para renová-lo. A opção recomendada é gerar um novo certificado completo.
- Coexistência de certificados: Caso o novo certificado seja gerado durante a janela de 30 dias finais do vencimento, ambos os certificados (antigo e novo) serão válidos simultaneamente até que a troca seja concluída e o certificado antigo expire. Isso permite uma transição segura, sem interrupção do serviço.
- Este é o processo recomendado por oferecer maior segurança, uma vez que gera uma nova chave privada e um novo CSR, eliminando riscos associados à reutilização de chaves anteriores.
Resumo do fluxo recomendado:
1. Utilize suas credenciais descriptografadas já existentes (client_id, client_secret, certificado_vigente.crt e chave_privada_vigente.key).
2. Solicite um novo access_token por meio de requisição ao STS Itaú (validade de 5 minutos). Caso expire, solicite novamente.
curl -s -k -X POST "https://sts.itau.com.br/api/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
--cert ./certificado_vigente.crt \
--key ./chave_privada_vigente.key \
-d "grant_type=client_credentials&client_id=abc12345-1234-5678-9abc-def012345678&client_secret=99887766-aabb-ccdd-eeff-001122334455"3. Gere um novo CSR e uma nova chave privada utilizando comandos OpenSSL conforme seu sistema operacional (Windows, Linux ou macOS)
Para isso siga os passos a seguir:
Pré-requisitos
client_idetoken temporariodecifrados- OpenSSL instalado
Comandos para gerar o CSR
Windows
openssl req -new -subj "//CN={{CLIENT_ID}}\OU={{SITE OU APP DO PARCEIRO}}\L={{CIDADE}}\ST={{ESTADO}}\C={{PAIS}}" -out ARQUIVO_REQUEST_CERTIFICADO.csr -nodes -sha512 -newkey rsa:2048 -keyout ARQUIVO_CHAVE_PRIVADA.keyLinux e macOS
openssl req -new -subj "/CN={{CLIENT_ID}}/OU={{SITE OU APP DO PARCEIRO}}/L={{CIDADE}}/ST={{ESTADO}}/C={{PAIS}}" -out ARQUIVO_REQUEST_CERTIFICADO.csr -nodes -sha512 -newkey rsa:2048 -keyout ARQUIVO_CHAVE_PRIVADA.keyExemplo de como deve ficar o comando a ser executado:
openssl req -new -subj "//CN=56a29ee3-60fe-47f8-95d9-7538b80ccf04\OU=ABC LTDA\L=SAO PAULO\ST=SP\C=BR" -out ARQUIVO_REQUEST_CERTIFICADO.csr -nodes -sha512 -newkey rsa:2048 -keyout ARQUIVO_CHAVE_PRIVADA.keyImportante: Utilize as credenciais decifradas. As credenciais cifradas (recebidas por e-mail) não funcionarão.
Parâmetros
| Parâmetro | Descrição | Exemplo |
|---|---|---|
{{CLIENT_ID}} |
Client_Id decifrado (deve ser igual ao contido no token) | 56a29ee3-60fe-47f8-95d9-7538b80ccf04 |
{{SITE OU APP DO PARCEIRO}} |
Nome do serviço/parceiro (sem caracteres especiais) | ABC LTDA |
{{CIDADE}} |
Cidade da empresa (sem caracteres especiais) | SAO PAULO |
{{ESTADO}} |
UF do estado | SP |
{{PAIS}} |
Código internacional de 2 letras | BR |
Arquivos gerados
| Arquivo | Descrição |
|---|---|
ARQUIVO_REQUEST_CERTIFICADO.csr |
Arquivo CSR a ser enviado ao STS Itaú |
ARQUIVO_CHAVE_PRIVADA.key |
Chave privada do certificado (manter em segurança) |
Validação (opcional)
openssl req -in ARQUIVO_REQUEST_CERTIFICADO.csr -noout -textVerifique se o CN (Common Name) é exatamente igual ao client_id. Confira também os campos OU, L, ST e C.
4. Envie o novo CSR para a rota de renovação: POST /seguranca/v2/certificado/renovacao.
Curl exemplo:
curl --request POST \
--url 'https://sts.itau.com.br/seguranca/v2/certificado/renovacao' \
--header 'Authorization: Bearer $TOKEN GERADO NO PROCESSO ANTERIOR' \
--header 'Content-Type: text/plain' \
--header 'x-itau-correlationID: 1fcfd2bf-7476-49a0-94cb-aa16fb33ff9f' \
--cert ./certificado.crt \
--key ./chave_privada.key \
--data '-----BEGIN CERTIFICATE REQUEST-----
(Cole aqui o conteúdo do novo arquivo .csr)
-----END CERTIFICATE REQUEST-----'5. O retorno da API trará o novo certificado emitido pelo Itaú no formato .crt.
6. Salve o novo certificado e atualize as referências em sua aplicação.
Vantagens desta opção:
- Maior segurança com chaves criptográficas totalmente novas.
- Coexistência dos dois certificados durante a transição, evitando indisponibilidade.
- Conformidade com as melhores práticas de segurança.
Certificado expirado
Se o certificado dinâmico expirou, ou seja, decorreu o prazo de validade de 365 dias do seu arquivo .CRT, é necessário gerar um novo certificado dinâmico, siga o fluxo a seguir:
- Utilize suas credenciais existentes geradas anteriormente;
- Siga o fluxo de criação de Criação de certificado para gerar um novo
.crt.
Como fazer a primeira chamada a uma API?
Depois de criar sua credencial e gerar o certificado, você já tem tudo o que precisa para consumir as APIs do Itaú. Este guia mostra como fazer isso usando curl na linha de comando.
Pré-requisitos
Ao final da jornada de criação de credencial e certificado no DevPortal, você terá os seguintes dados e arquivos:
| Item | O que é | Como obter |
|---|---|---|
| Client ID | Identificador único da sua aplicação | Exibido ao criar a credencial no DevPortal |
| Client Secret | Senha da sua credencial | Exibido uma única vez ao criar a credencial — copie e guarde em local seguro |
| Certificado (.crt) | Certificado digital da sua aplicação | Baixado ao clicar em "Baixar certificado" no DevPortal |
| Chave privada (.key) | Chave privada correspondente ao certificado | Baixada junto com o certificado |
Importante:
- O Client Secret é exibido apenas uma vez. Se você não copiou, será necessário revogar a credencial e criar uma nova.
- O Certificado (.crt) estará disponível para download apenas uma única vez.
- As credenciais, o certificado e a chave privada são ativos sensíveis e devem ser armazenados de forma segura. Não inclua essas informações em código-fonte ou repositórios públicos.
Passo 1 — Gerar o access token
Antes de chamar qualquer API, você precisa obter um access token. Esse token é a autorização que permite sua aplicação acessar os serviços do Itaú.
A chamada utiliza mTLS (mutual TLS), ou seja, tanto o servidor quanto a sua aplicação se autenticam mutuamente por meio do certificado.
Comando curl
curl -s -k -X POST "https://sts.itau.com.br/api/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
--cert /caminho/para/seu-certificado.crt \
--key /caminho/para/sua-chave-privada.key \
-d "grant_type=client_credentials&client_id=SEU_CLIENT_ID&client_secret=SEU_CLIENT_SECRET"O que cada parâmetro significa
| Parâmetro | Descrição |
|---|---|
-s |
Modo silencioso — não exibe barra de progresso |
-k |
Ignora a validação do certificado SSL do servidor |
-X POST |
Define o método HTTP como POST |
--cert |
Caminho para o arquivo do certificado (.crt) baixado do DevPortal |
--key |
Caminho para o arquivo da chave privada (.key) baixada do DevPortal |
-H "Content-Type: ..." |
Indica que o corpo da requisição é do tipo formulário |
grant_type=client_credentials |
Tipo de autenticação OAuth 2.0 (credenciais de cliente) |
client_id |
Seu Client ID |
client_secret |
Seu Client Secret |
Exemplo com valores preenchidos
curl -s -k -X POST "https://sts.itau.com.br/api/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
--cert ./certificado.crt \
--key ./chave_privada.key \
-d "grant_type=client_credentials&client_id=abc12345-1234-5678-9abc-def012345678&client_secret=99887766-aabb-ccdd-eeff-001122334455"Resposta esperada
Se tudo estiver correto, você receberá uma resposta como esta:
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6...",
"token_type": "Bearer",
"expires_in": 300
}Guarde o valor do campo access_token, ele será usado no próximo passo.
Atenção: O token tem validade limitada (campo expires_in, em segundos). Quando expirar, basta repetir este passo para gerar um novo.
Passo 2 — Chamar a API
Com o access token em mãos, você já pode fazer a chamada à API desejada. A conexão continua usando mTLS, então o certificado e a chave privada também são necessários nesta etapa.
Comando curl
curl -s -k -X GET "https://api.itau.com.br/{api}/{versao}/{recurso}" \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
--cert /caminho/para/seu-certificado.crt \
--key /caminho/para/sua-chave-privada.keyO que substituir
| Placeholder | Substitua por |
|---|---|
| {api} | Nome da API contratada (ex: pix, cobranca) |
| {versao} | Versão da API (ex: v1, v2) |
| {recurso} | Recurso desejado (ex: cob, pix) |
| SEU_ACCESS_TOKEN | O access_token obtido no Passo 1 |
Exemplo de chamada
curl -s -k -X GET "https://api.itau.com.br/pix/v2/cob" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6..." \
-H "Content-Type: application/json" \
--cert ./certificado.crt \
--key ./chave_privada.keySe a autenticação e o endpoint estiverem corretos, a API retornará uma resposta de sucesso (HTTP 200).
Dica: Consulte a documentação específica de cada API no catálogo de soluções para conhecer os endpoints, parâmetros e exemplos de requisição disponíveis.